
# 创建技术栈 - CreateTechnologyStack
#### 功能介绍
此API用于创建自定义技术栈。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-servicestage/servicestage_06_0183.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                              | 访问级别  | 资源类型（\*为必须） | 条件键 | 别名                               | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | servicestage::createRuntimeStack | write | -           | -   | servicestage:runtimestack:create | -      |
     
  
 
#### URI
POST /v3/{project_id}/cas/runtimestacks
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释：** 租户项目ID。获取方法，请参考[获取项目ID](https://support.huaweicloud.com/api-servicestage/servicestage_06_0164.html)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
#### 请求消息
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| Content-Type | 是    | String | **参数解释：** 消息体的类型（格式）。 **约束限制：** 不涉及 **取值范围：** application/json;charset=utf8 **默认取值：** 不涉及                                                                                                                      |
| X-Auth-Token | 是    | String | **参数解释：** 调用接口的认证方式分为Token和AK/SK两种，如果您使用的Token方式，此参数为必填，请填写Token的值。Token获取方式，请参考[认证鉴权](https://support.huaweicloud.com/api-servicestage/servicestage_06_0010.html)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
表3请求Body参数 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| name        | 是    | String | **参数解释：** 技术栈名称。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                             |
| deploy_mode | 是    | String | **参数解释：** 部署类型。 **取值范围：** - container：容器部署。  - virtualmachine：虚拟机部署。   **默认取值：** 不涉及                                                     |
| type        | 是    | String | **参数解释：** 技术栈类型。 **取值范围：** - "deploy_mode"为"container"时，支持Java、Tomcat。  - "deploy_mode"为"virtualmachine"时，支持Java、Tomcat。   **默认取值：** 不涉及 |
| version     | 是    | String | **参数解释：** 版本号。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                              |
| spec        | 否    | Object | **参数解释：** 技术栈相关参数，请参考[表4]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| description | 否    | String | **参数解释：** 技术栈描述。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                           |
   
 表4spec 
| 参数         | 是否必选 | 参数类型                  | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| sdk        | 否    | String                | **参数解释：** 技术栈工具包。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| os         | 否    | String                | **参数解释：** 技术栈操作系统。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| parameters | 否    | Map\<String, String\> | **参数解释：** 技术栈相关镜像参数。 **取值范围：** 键（Key）和值（Value）取值说明： - os_url，操作系统镜像地址，用于作为容器部署类型技术栈的基础镜像。值示例：swr.cn-north-4.myhuaweicloud.com/example/euleros_x86_64:2.9.5。  - os_type，容器部署类型技术栈的操作系统镜像类型。值可以为系统预置（system）或者自定义（custom）。  - jdk_url，JDK版本软件包的存储路径。值示例：obs://example/bisheng-jdk-8u412-linux-aarch64.tar.gz。  - tomcat_url，Tomcat版本软件包的存储路径。值示例：obs://example/apache-tomcat-8.5.100.tar.gz。   **默认取值：** 不涉及 |
   
#### 响应消息
表5响应参数 
| 参数              | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|
| id              | String  | **参数解释：** 技术栈的ID。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| name            | String  | **参数解释：** 运行时名称。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| project_id      | String  | **参数解释：** 租户项目ID。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| deploy_mode     | String  | **参数解释：** 部署类型。 **取值范围：** - container：容器部署。  - virtualmachine：虚拟机部署。                                                                                                                                                                 |
| version         | String  | **参数解释：** 版本号。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| type            | String  | **参数解释：** 技术栈类型。 **取值范围：** - "deploy_mode"为"container"时，支持Java、Tomcat。  - "deploy_mode"为"virtualmachine"时，支持Java、Tomcat。                                                                                                |
| version         | String  | **参数解释：** 技术栈版本。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| spec            | Object  | **参数解释：** 技术栈相关参数，请参考[表6]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| description     | String  | **参数解释：** 技术栈描述。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| system          | Integer | **参数解释：** 是否系统技术栈。 **取值范围：** - 1：系统技术栈。  - 0：自定义技术栈。                                                                                                                                                                      |
| status          | String  | **参数解释：** 技术栈状态。 **取值范围：** - Supported：启用。  - Deprecated：已弃用。  - Disable：未启用。   |
| creator         | String  | **参数解释：** 创建人。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| create_time     | Integer | **参数解释：** 创建时间。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| update_time     | Integer | **参数解释：** 修改时间。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| component_count | Integer | **参数解释：** 技术栈关联的组件个数。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   
 表6spec 
| 参数         | 参数类型                 | 描述                                                                                                                                                                                                                                                                         |
|:---|:---|:---|
| os         | String               | **参数解释：** 技术栈操作系统。 **取值范围：** 不涉及                           |
| sdk        | String               | **参数解释：** 技术栈工具包。 **取值范围：** 不涉及                              |
| parameters | Map\<String,String\> | **参数解释：** 技术栈相关镜像地址。 **取值范围：** 不涉及 |
   
#### 请求示例
创建虚拟机部署类型的自定义Java技术栈版本。
```
{
"name": "test",
"deploy_mode": "virtualmachine",
"type": "Java",
"version": "1.0.0",
"description": "1234",
"spec": {
"parameters": {
"jdk_url": "obs://example/bisheng-jdk-8u412-linux-aarch64.tar.gz"
}
}
}
```
#### 响应示例
```
{
    "id": "cf4727f0-0d6f-43d5-b1b8-f2c1f09d1611",
    "name": "test",
    "project_id": "578ac30b81034b89a7255b3af26db9c9",
    "deploy_mode": "virtualmachine",
    "type": "Java",
    "version": "1.0.0",
    "description": null,
    "spec": {
        "os": null,
        "sdk": null,
        "parameters": {
            "jdk_url": "obs://example/bisheng-jdk-8u412-linux-aarch64.tar.gz"
        }
    },
    "system": 0,
    "status": "Disable",
    "creator": "example",
    "create_time": 1722934506431,
    "update_time": 1722934506431
}
```
#### 状态码
| 状态码 | 描述          |
|:---|:---|
| 200 | 操作成功        |
| 400 | 错误的请求       |
| 404 | 请求对象不存在     |
| 409 | 请求与当前对象状态冲突 |
| 500 | 内部错误        |
   
#### 错误码
请参考[ServiceStage错误码](https://support.huaweicloud.com/api-servicestage/servicestage_06_0162.html)。
