
# 根据组件ID修改组件信息
#### 功能介绍
此API通过组件ID修改组件信息。
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=ServiceStage&api=ChangeComponent)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### URI
PUT /v2/{project_id}/cas/applications/{application_id}/components/{component_id}
表1路径参数 
| 参数             | 是否必选 | 参数类型   | 描述                                                                                                   |
|:---|:---|:---|:---|
| project_id     | 是    | String | 租户项目ID。获取方法，请参考[获取项目ID](https://support.huaweicloud.com/api-servicestage/servicestage_06_0164.html)。 |
| application_id | 是    | String | 应用ID。获取方法，请参考[获取所有应用](https://support.huaweicloud.com/api-servicestage/servicestage_06_0031.html)。   |
| component_id   | 是    | String | 组件ID。获取方法，请参考[获取应用所有组件](https://support.huaweicloud.com/api-servicestage/servicestage_06_0040.html)。 |
   
#### 请求消息
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                           |
|:---|:---|:---|:---|
| Content-Type | 是    | String | 消息体的类型（格式），默认取值为"application/json;charset=utf8"。                                                                                             |
| X-Auth-Token | 是    | String | 调用接口的认证方式分为Token和AK/SK两种，如果您使用的Token方式，此参数为必填，请填写Token的值。Token获取方式，请参考[获取用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)。 |
   
表3请求Body参数 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                                                                    |
|:---|:---|:---|:---|
| name        | 否    | String | 应用组件名称。 由英文字母、数字、中划线（-）、下划线（_）组成，并以英文字母开头，英文字母或者数字结尾，不区分英文字母大小写，长度为2\~64个字符。 |
| description | 否    | String | 描述。 最大长度为128个字符。                                                                              |
| source      | 否    | Object | 代码/软件包来源，请参考[表4]。                                                              |
| build       | 否    | Object | 构建工程，请参考[表8]。                                                             |
   
 表4source 
| 参数   | 是否必选 | 参数类型   | 描述                                                                                                                                                         |
|:---|:---|:---|:---|
| kind | 是    | String | 类型，支持源码code和artifact软件包。                                                                                                                                   |
| spec | 是    | Object | 对应code请参考[表5]；对应artifact请参考[表6]。 |
   
 表5code spec 
| 参数        | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| repo_type | 否    | String | **参数解释：** 代码仓类型。 **取值范围：** - DevCloud：codearts制品仓。  - Gitee：开源中国推出代码托管平台。    - GitHub：开源代码仓。  - GitLab：开源代码仓。  - Bitbucket：源代码托管网站。   **默认取值：** 不涉及 |
| repo_url  | 否    | String | 代码仓url，如：https://github.com/example/demo.git。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| repo_ref  | 否    | String | 代码分支或者Tag，默认是master。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| repo_auth | 否    | String | 授权名称，在授权列表获取。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   
 表6artifact spec 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| storage    | 否    | String | 存储方式，支持软件仓库swr、镜像仓库swr、对象存储obs、软件发布库codearts。                                                                                                                                                                                                                                                                              |
| type       | 否    | String | 类别。 - 虚拟机部署支持软件包package。  - 容器部署支持软件包package、镜像包image。   |
| url        | 否    | String | 软件包/源码地址。                                                                                                                                                                                                                                                                                                                  |
| auth       | 否    | String | 认证方式：支持iam、none。默认是iam。                                                                                                                                                                                                                                                                                                    |
| properties | 否    | Object | 软件包的其他属性，只有在选择对象存储obs的时候才需要添加。[表7]。                                                                                                                                                                                                                                            |
| webUrl     | 否    | String | 软件仓库地址。                                                                                                                                                                                                                                                                                                                    |
   
 表7artifact spec properties 
| 参数       | 是否必选 | 参数类型   | 描述                                                          |
|:---|:---|:---|:---|
| endpoint | 否    | String | obs的终端地址，比如：https://obs.region_id.external_domain_name.com。 |
| bucket   | 否    | String | 软件包在obs的桶名。                                                 |
| key      | 否    | String | obs桶中的对象，一般是软件包名，有文件夹的话要加上文件夹的路径。比如test.jar或者demo/test.jar。 |
   
 表8build 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                  |
|:---|:---|:---|:---|
| parameters | 否    | Object | 请参考[表9]。只在没有ID，新创建构建时提供。 |
   
 表9parameters 
| 参数                  | 是否必选 | 参数类型                  | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| build_cmd           | 否    | String                | 编译命令。默认： 1. 根目录存在build.sh：./build.sh  2. 根据运行系统，示例如下： - Java和Tomcat：**mvn clean package**  - Nodejs: **npm build**     |
| dockerfile_path     | 否    | String                | dockerfile地址。默认是根目录./。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| artifact_namespace  | 否    | String                | 构建归档组织。默认cas_{project_id}。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| cluster_id          | 是    | String                | 指定构建集群的id。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| node_label_selector | 否    | Map\<String, String\> | key是标签的键，value是标签的值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| cluster_name        | 否    | String                | 指定构建集群的名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| use_public_cluster  | 否    | Boolean               | 是否使用公共集群： - true：是  - false：否                                                                                                                                                                                                                                                                                                                                                                                                      |
| cluster_type        | 否    | String                | 指定构建集群的类型。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   
#### 响应消息
表10响应参数 
| 参数             | 参数类型    | 描述                                                                                                                                                                                                                           |
|:---|:---|:---|
| id             | String  | 应用组件ID。                                                                                                                                                                                                                      |
| name           | String  | 应用组件名称。                                                                                                                                                                                                                      |
| status         | integer | 取值0或1。 0：表示正常状态。 1：表示正在删除。                                                                                                                        |
| runtime        | String  | 运行时。                                                                                                                                                                                                                         |
| category       | String  | 应用组件类型如：Webapp、MicroService、Common。                                                                                                                                                                                          |
| sub_category   | String  | 应用组件子类型。 Webapp的子类型有Web。 MicroService的子类型有Java Chassis、Spring Cloud。 Common的子类型可以为空。 |
| description    | String  | 描述。                                                                                                                                                                                                                          |
| project_id     | String  | 项目ID。                                                                                                                                                                                                                        |
| application_id | String  | 应用ID。                                                                                                                                                                                                                        |
| source         | Object  | 代码/软件包来源，请参考[表11]。                                                                                                                                                    |
| build          | Object  | 构建工程，请参考[表15]。                                                                                                                                                    |
| create_time    | Integer | 创建时间。                                                                                                                                                                                                                        |
| update_time    | Integer | 修改时间。                                                                                                                                                                                                                        |
| creator        | String  | 创建者。                                                                                                                                                                                                                         |
   
 表11source 
| 参数   | 参数类型   | 描述                                                                                                                                  |
|:---|:---|:---|
| kind | String | 类型。                                                                                                                                 |
| spec | Object | 对应code请参考[表12]；对应artifact请参考[表13]。 |
   
 表12code spec 
| 参数        | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|
| repo_type | String | 代码仓类型。 - DevCloud，codearts制品仓。  - Gitee，开源中国推出代码托管平台。    - GitHub，开源代码仓。  - GitLab，开源代码仓。  - Bitbucket，源代码托管网站。   |
| repo_url  | String | 代码仓url，如：https://github.com/example/demo.git。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| repo_ref  | String | 代码分支或者Tag，默认是master。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| repo_auth | String | 授权名称，在授权列表获取。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   
 表13spec 
| 参数         | 参数类型   | 描述                                                                                 |
|:---|:---|:---|
| storage    | String | 存储方式。                                                                              |
| type       | String | 类别。                                                                                |
| url        | String | 软件包/源码地址。                                                                          |
| auth       | String | 认证方式。                                                                              |
| properties | Object | 软件包的其他属性，只有在选择对象存储obs的时候才需要添加，请参考[表14]。 |
   
 表14artifact spec properties 
| 参数       | 参数类型   | 描述                                                          |
|:---|:---|:---|
| endpoint | String | obs的终端地址，比如：https://obs.region_id.external_domain_name.com。 |
| bucket   | String | 软件包在obs的桶名。                                                 |
| key      | String | obs桶中的对象，一般是软件包名，有文件夹的话要加上文件夹的路径。比如test.jar或者demo/test.jar。 |
   
 表15build 
| 参数         | 参数类型   | 描述                                                               |
|:---|:---|:---|
| id         | String | 类型。                                                              |
| parameters | Object | 请参考[表16]。 |
   
 表16parameters 
| 参数                  | 参数类型                  | 描述                   |
|:---|:---|:---|
| build_cmd           | String                | 编译命令。                |
| dockerfile_path     | String                | dockerfile地址。        |
| artifact_namespace  | String                | 构建归档组织。              |
| cluster_id          | String                | 指定构建集群的id。           |
| node_label_selector | Map\<String, String\> | key是标签的键，value是标签的值。 |
   
#### 请求示例
修改指定组件ID对应的组件信息，修改组件名称为test-micro，设置组件软件包来源为存储在obs下test-soft桶中的fusionweather-1.0.0.jar包，指定cce-test集群为组件构建集群。
```
{
"name": "test-micro",
"description": "",
"source": {
"kind": "artifact",
"spec": {
"storage": "obs",
"type": "package",
"url": "obs://test-soft/fusionweather-1.0.0.jar",
"auth": "iam",
"webUrl": "",
"properties": {
"bucket": "test-soft",
"endpoint": "https://obs.region_id.development.com:443",
"key": "fusionweather-1.0.0.jar"
}
}
},
"build": {
"parameters": {
"artifact_namespace": "ns",
"use_public_cluster": false,
"cluster_id": "523498f1-36c4-11eb-ae36-0255ac1000c2",
"cluster_name": "cce-test",
"cluster_type": "VirtualMachine"
}
},
}
```
#### 响应示例
```
{
"id": "1cfdda6f-84cd-4ead-8e09-628fabf662e2",
"name": "test-micro",
"runtime": "Java8",
"category": "MicroService",
"sub_category": "Java Chassis",
"description": "",
"project_id": "e7d2e9c589e5445e808a8ff0d1235aca",
"application_id": "4d92833a-fa05-4fc0-a761-e67620022310",
"source": {
"kind": "artifact",
"spec": {
"storage": "obs",
"type": "package",
"url": "obs://test-soft/fusionweather-1.0.0.jar",
"auth": "iam",
"properties": {
"bucket": "test-soft",
"endpoint": "https://obs.region_id.development.com:443",
"key": "fusionweather-1.0.0.jar"
}
}
},
"build": {
"id": "zpdkj42b3rnko8bmyojzt1ng828ubychw13j8flv",
"parameters": {
"artifact_namespace": "ns",
"cluster_id": "523498f1-36c4-11eb-ae36-0255ac1000c2"
}
},
"status": 0,
"creator": "ss-test",
"create_time": 1610331760105,
"update_time": 1610519881943
}
```
#### 状态码
| 状态码 | 描述       |
|:---|:---|
| 200 | 操作成功。    |
| 400 | 错误的请求。   |
| 404 | 请求对象不存在。 |
| 500 | 内部错误。    |
   
#### 错误码
请参考[ServiceStage错误码](https://support.huaweicloud.com/api-servicestage/servicestage_06_0162.html)。
