{
  "name": "cloudstudio",
  "display_name": "Cloud Studio（云端 IDE）",
  "description": "提供对 云端 IDE 工作空间和空间模板相关的操作，包括创建工作空间、启动工作空间、停止工作空间、删除工作空间、拉取工作空间模板列表、置顶工作空间模板等。",
  "domain": "other",
  "api_version": "2023-05-08",
  "endpoint": "cloudstudio.tencentcloudapi.com",
  "actions": [
    {
      "name": "CreateWorkspace",
      "description": "创建工作空间",
      "status": "online",
      "parameters": [
        {
          "name": "Name",
          "type": "string",
          "required": true,
          "description": "工作空间名称, 长度限制 2~64",
          "example": "workspace-name"
        },
        {
          "name": "Description",
          "type": "string",
          "required": false,
          "description": "工作空间描述, 长度限制 0~255",
          "example": "this is a workspace"
        },
        {
          "name": "Specs",
          "type": "string",
          "required": false,
          "description": "工作空间规格。Standard: 2C4G, Calculation: 4C8G, Profession: 8C16G. 默认是 Standard。",
          "example": "Standard"
        },
        {
          "name": "Image",
          "type": "string",
          "required": false,
          "description": "工作空间基础镜像名称, 默认会使用 All In One 镜像, 长度限制 1~255",
          "example": "cloudstudio-devops-docker.pkg.coding.net/artifacts/workspace/go-1.20:2023-04-25.0943"
        },
        {
          "name": "Repository",
          "type": "object",
          "required": false,
          "description": "Git 仓库. 工作空间启动时会自动克隆该仓库",
          "example": "{         \"url\": \"https://github.com/koajs/koa.git\",         \"branch\": \"v0.0.1\"     }",
          "children": [
            {
              "name": "Url",
              "type": "string",
              "required": true,
              "description": "Git 仓库地址",
              "example": "https://github.com/koajs/koa.git"
            },
            {
              "name": "Branch",
              "type": "string",
              "required": false,
              "description": "Git 仓库分支名或 Tag 名",
              "example": "main"
            }
          ]
        },
        {
          "name": "Envs",
          "type": "array",
          "required": false,
          "description": "环境变量. 会被注入到工作空间中",
          "example": "[{\"name\": \"test\", \"value\": \"test\"}]",
          "item_type": "object",
          "children": [
            {
              "name": "Name",
              "type": "string",
              "required": true,
              "description": "环境变量 key",
              "example": "env_key"
            },
            {
              "name": "Value",
              "type": "string",
              "required": true,
              "description": "环境变量 value",
              "example": "env_value"
            }
          ]
        },
        {
          "name": "Extensions",
          "type": "array",
          "required": false,
          "description": "预装插件. 工作空间启动时, 会自动安装这些插件。长度限制: 0~10",
          "example": "[\"cloudstudio.tencent-cloud-toolkit@1.3.0\"]",
          "item_type": "string"
        },
        {
          "name": "Lifecycle",
          "type": "object",
          "required": false,
          "description": "工作空间生命周期钩子. 分为三个阶段 init, start, destroy. 分别表示工作空间数据初始化阶段, 工作空间启动阶段, 工作空间关闭阶段. 用户可以自定义 shell 命令.",
          "example": "{         \"init\": [             {                 \"name\": \"init\",                 \"command\": \"echo init\"             }         ],         \"start\": [             {                 \"name\": \"start\",                 \"command\": \"echo start\"             }         ],         \"destroy\": [             {                 \"name\": \"shutdown\",                 \"command\": \"echo shutdown\"             }         ]     }",
          "children": [
            {
              "name": "Init",
              "type": "array",
              "required": false,
              "description": "工作空间首次初始化时执行",
              "example": "[{\"Name\": \"init\", \"Command\": \"echo 'init workspace'\"}]",
              "item_type": "object",
              "children": [
                {
                  "name": "Name",
                  "type": "string",
                  "required": true,
                  "description": "指令描述",
                  "example": "init"
                },
                {
                  "name": "Command",
                  "type": "string",
                  "required": true,
                  "description": "具体命令",
                  "example": "echo 'init workspace'"
                }
              ]
            },
            {
              "name": "Start",
              "type": "array",
              "required": false,
              "description": "每次工作空间启动时执行",
              "example": "[{\"Name\": \"start\", \"Command\": \"echo 'start workspace'\"}]",
              "item_type": "object",
              "children": [
                {
                  "name": "Name",
                  "type": "string",
                  "required": true,
                  "description": "指令描述",
                  "example": "init"
                },
                {
                  "name": "Command",
                  "type": "string",
                  "required": true,
                  "description": "具体命令",
                  "example": "echo 'init workspace'"
                }
              ]
            },
            {
              "name": "Destroy",
              "type": "array",
              "required": false,
              "description": "每次工作空间关闭时执行",
              "example": "[{\"Name\": \"destroy\", \"Command\": \"echo 'destroy workspace'\"}]",
              "item_type": "object",
              "children": [
                {
                  "name": "Name",
                  "type": "string",
                  "required": true,
                  "description": "指令描述",
                  "example": "init"
                },
                {
                  "name": "Command",
                  "type": "string",
                  "required": true,
                  "description": "具体命令",
                  "example": "echo 'init workspace'"
                }
              ]
            }
          ]
        },
        {
          "name": "TenantAppId",
          "type": "integer",
          "required": false,
          "description": "应用名称",
          "example": "1303697168"
        },
        {
          "name": "TenantUin",
          "type": "string",
          "required": false,
          "description": "用户UIN",
          "example": "100015915015"
        },
        {
          "name": "TenantUniqVpcId",
          "type": "string",
          "required": false,
          "description": "VPCID",
          "example": "vpc-rdfkabjj"
        },
        {
          "name": "TenantSubnetId",
          "type": "string",
          "required": false,
          "description": "子网ID",
          "example": "subnet-bx88somq"
        },
        {
          "name": "Region",
          "type": "string",
          "required": false,
          "description": "地域",
          "example": "ap-shanghai"
        }
      ],
      "required": [
        "Name"
      ]
    },
    {
      "name": "CreateWorkspaceToken",
      "description": "创建工作空间临时访问凭证，重复调用会创建新的 Token，旧的 Token 将会自动失效",
      "status": "online",
      "parameters": [
        {
          "name": "SpaceKey",
          "type": "string",
          "required": true,
          "description": "工作空间 SpaceKey",
          "example": "knhwex"
        },
        {
          "name": "TokenExpiredLimitSec",
          "type": "integer",
          "required": false,
          "description": "token过期时间，单位是秒，默认 3600",
          "example": "3600"
        },
        {
          "name": "Policies",
          "type": "array",
          "required": false,
          "description": "token 授权策略，可选值为 workspace-run-only, all。默认为 workspace-run-only",
          "example": "[\"workspace-run-only\"]",
          "item_type": "string"
        }
      ],
      "required": [
        "SpaceKey"
      ]
    },
    {
      "name": "DescribeConfig",
      "description": "获取用户配置",
      "status": "online",
      "parameters": [
        {
          "name": "Name",
          "type": "string",
          "required": true,
          "description": "配置名称",
          "example": "codeAssistXEnabled"
        }
      ],
      "required": [
        "Name"
      ]
    },
    {
      "name": "DescribeImages",
      "description": "获取基础镜像列表",
      "status": "online",
      "parameters": [],
      "required": []
    },
    {
      "name": "DescribeWorkspaces",
      "description": "获取用户工作空间列表",
      "status": "online",
      "parameters": [
        {
          "name": "Name",
          "type": "string",
          "required": false,
          "description": "工作空间名称过滤条件",
          "example": "workspace-name"
        }
      ],
      "required": []
    },
    {
      "name": "ModifyWorkspace",
      "description": "修改工作空间",
      "status": "online",
      "parameters": [
        {
          "name": "SpaceKey",
          "type": "string",
          "required": true,
          "description": "工作空间 SpaceKey. 更新该工作空间的属性",
          "example": "ubbyfp"
        },
        {
          "name": "Name",
          "type": "string",
          "required": false,
          "description": "工作空间名称",
          "example": "workspace-name"
        },
        {
          "name": "Description",
          "type": "string",
          "required": false,
          "description": "工作空间描述",
          "example": "this is a workspace"
        },
        {
          "name": "Specs",
          "type": "string",
          "required": false,
          "description": "工作空间规格。STANDARD: 2C4G, CALCULATION: 4C8G, PROFESSION: 8C16G. 默认是 STANDARD。",
          "example": "STANDARD"
        },
        {
          "name": "Envs",
          "type": "array",
          "required": false,
          "description": "环境变量. 会被注入到工作空间中",
          "example": "[{\"name\": \"test\", \"value\": \"test\"}]",
          "item_type": "object",
          "children": [
            {
              "name": "Name",
              "type": "string",
              "required": true,
              "description": "环境变量 key",
              "example": "env_key"
            },
            {
              "name": "Value",
              "type": "string",
              "required": true,
              "description": "环境变量 value",
              "example": "env_value"
            }
          ]
        },
        {
          "name": "Extensions",
          "type": "array",
          "required": false,
          "description": "预装插件. 工作空间启动时, 会自动安装这些插件",
          "example": "[\"cloudstudio.tencent-cloud-toolkit@1.3.0\"]",
          "item_type": "string"
        },
        {
          "name": "Lifecycle",
          "type": "object",
          "required": false,
          "description": "工作空间生命周期钩子. 分为三个阶段 init, start, destroy. 分别表示工作空间数据初始化阶段, 工作空间启动阶段, 工作空间关闭阶段. 用户可以自定义 shell 命令.",
          "example": "{ \"init\": [ { \"name\": \"init\", \"command\": \"echo init\" } ], \"start\": [ { \"name\": \"start\", \"command\": \"echo start\" } ], \"destroy\": [ { \"name\": \"shutdown\", \"command\": \"echo shutdown\" } ] }",
          "children": [
            {
              "name": "Init",
              "type": "array",
              "required": false,
              "description": "工作空间首次初始化时执行",
              "example": "[{\"Name\": \"init\", \"Command\": \"echo 'init workspace'\"}]",
              "item_type": "object",
              "children": [
                {
                  "name": "Name",
                  "type": "string",
                  "required": true,
                  "description": "指令描述",
                  "example": "init"
                },
                {
                  "name": "Command",
                  "type": "string",
                  "required": true,
                  "description": "具体命令",
                  "example": "echo 'init workspace'"
                }
              ]
            },
            {
              "name": "Start",
              "type": "array",
              "required": false,
              "description": "每次工作空间启动时执行",
              "example": "[{\"Name\": \"start\", \"Command\": \"echo 'start workspace'\"}]",
              "item_type": "object",
              "children": [
                {
                  "name": "Name",
                  "type": "string",
                  "required": true,
                  "description": "指令描述",
                  "example": "init"
                },
                {
                  "name": "Command",
                  "type": "string",
                  "required": true,
                  "description": "具体命令",
                  "example": "echo 'init workspace'"
                }
              ]
            },
            {
              "name": "Destroy",
              "type": "array",
              "required": false,
              "description": "每次工作空间关闭时执行",
              "example": "[{\"Name\": \"destroy\", \"Command\": \"echo 'destroy workspace'\"}]",
              "item_type": "object",
              "children": [
                {
                  "name": "Name",
                  "type": "string",
                  "required": true,
                  "description": "指令描述",
                  "example": "init"
                },
                {
                  "name": "Command",
                  "type": "string",
                  "required": true,
                  "description": "具体命令",
                  "example": "echo 'init workspace'"
                }
              ]
            }
          ]
        }
      ],
      "required": [
        "SpaceKey"
      ]
    },
    {
      "name": "RemoveWorkspace",
      "description": "删除工作空间",
      "status": "online",
      "parameters": [
        {
          "name": "SpaceKey",
          "type": "string",
          "required": true,
          "description": "工作空间 SpaceKey",
          "example": "ubbyfp"
        }
      ],
      "required": [
        "SpaceKey"
      ]
    },
    {
      "name": "RunWorkspace",
      "description": "运行空间",
      "status": "online",
      "parameters": [
        {
          "name": "SpaceKey",
          "type": "string",
          "required": true,
          "description": "工作空间 SpaceKey",
          "example": "ubbyfp"
        }
      ],
      "required": [
        "SpaceKey"
      ]
    },
    {
      "name": "StopWorkspace",
      "description": "停止运行空间",
      "status": "online",
      "parameters": [
        {
          "name": "SpaceKey",
          "type": "string",
          "required": true,
          "description": "工作空间 SpaceKey",
          "example": "ubbyfp"
        }
      ],
      "required": [
        "SpaceKey"
      ]
    }
  ]
}