
# 获取组件列表 - ListComponents
#### 功能介绍
获取组件列表。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/CAE/doc?api=ListComponents)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-cae/cae_06_0016.html)。
- 如果使用身份策略授权，当前API调用无需身份策略权限。
#### URI
GET /v1/{project_id}/cae/applications/{application_id}/components
表1路径参数 
| 参数             | 是否必选 | 参数类型   | 描述                                                                                |
|:---|:---|:---|:---|
| project_id     | 是    | String | 项目ID，获取项目ID请参见[获取项目ID](https://support.huaweicloud.com/api-cae/cae_06_0021.html)。 |
| application_id | 是    | String | 应用ID。                                                                             |
表2Query参数 
| 参数       | 是否必选 | 参数类型   | 描述                                                                                                                                   |
|:---|:---|:---|:---|
| limit    | 否    | String | 限制本次返回结果的条数。                                                                                                                         |
| offset   | 否    | String | 分页偏移位，查询起始位置。                                                                                                                        |
| status   | 否    | String | **参数解释：** 组件状态。 **取值范围：** - created: 未部署。 - running: 运行中。 - paused: 已停止。 - notReady: 未就绪。 **默认取值：** 此字段为非必选项，不传递时，接口可正常调用且返回全部状态的组件。 |
| sort_key | 否    | String | **参数解释：** 排序字段。 **取值范围：** - created_at: 组件创建时间。 - updated_at: 组件更新时间。 **默认取值：** 此字段为非必选项，不传递时，接口可正常调用且默认为created_at。                 |
| sort     | 否    | String | **参数解释：** 升降序规则。 **取值范围：** - asc: 升序。 - desc: 降序。 **默认取值：** 此字段为非必选项，不传递时，接口可正常调用且默认为desc。                                           |
#### 请求参数
表3请求Header参数 
| 参数                      | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| X-Auth-Token            | 是    | String | 用户Token。 - 获取Token，请参考《[统一身份认证服务API参考](https://support.huaweicloud.com/api-iam/iam_30_0001.html)》的"获取用户Token"章节。 - 请求响应成功后在响应消息头中包含的"X-Subject-Token"的值即为Token值。                                                               |
| X-Enterprise-Project-ID | 否    | String | 企业项目ID。 - 创建环境时，环境会绑定企业项目ID。 - 最大长度36字节，带"-"连字符的UUID格式，或者是字符串"0"。 - 该字段不传（或传为字符串"0"）时，则查询默认企业项目下的资源。 说明： 关于企业项目ID的获取及企业项目特性的详细信息，请参见《[企业管理服务用户指南](https://support.huaweicloud.com/usermanual-em/zh-cn_topic_0126101490.html)》。 |
| X-Environment-ID        | 是    | String | 环境ID。 - 获取环境ID，通过[获取环境列表](https://support.huaweicloud.com/api-cae/ListEnvironments.html)来获取环境信息。 - 请求响应成功后在响应体的items数组中的一个元素即为一个环境的信息，其中id字段即是环境ID。                                                                            |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数          | 参数类型                                                                      | 描述                           |
|:---|:---|:---|
| api_version | String                                                                    | API版本，固定值"v1"，该值不可修改。        |
| kind        | String                                                                    | API类型，固定值"Component"，该值不可修改。 |
| items       | Array of [ComponentItem] objects | 组件列表。                        |
| total_count | Integer                                                                   | 分页总数。                        |
   
 表5ComponentItem 
| 参数          | 参数类型                                                            | 描述    |
|:---|:---|:---|
| id          | String                                                          | 组件ID。 |
| name        | String                                                          | 组件名称。 |
| annotations | Map\<String,String\>                                            | 资源信息。 |
| created_at  | String                                                          | 创建时间。 |
| updated_at  | String                                                          | 更新时间。 |
| spec        | [ComponentSpec] object | 组件规格。 |
   
 表6ComponentSpec 
| 参数                         | 参数类型                                                            | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|
| runtime                    | String                                                          | 语言/运行时。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| env_id                     | String                                                          | 环境ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| replica                    | Integer                                                         | 实例个数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| source                     | [Source] object               | 源信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| build                      | [Build] object                 | 构建信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| resource_limit             | [ResourceLimit] object | 实例规格。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| access_info                | Array of [Access] objects     | 访问方式列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| image_url                  | String                                                          | 镜像地址。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| available_replica          | Integer                                                         | 可用实例个数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| job_id                     | String                                                          | 任务ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| build_id                   | String                                                          | 构建任务ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| status                     | String                                                          | 组件状态。 - created: 未部署。 - running: 运行中。 - paused: 已停止。 - notReady: 未就绪。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| job_status                 | String                                                          | 组件上次的操作结果。 - deploying：部署中。 - retrying：重试中。 - restarting：重启中。 - scaling：伸缩中。 - stopping：停止中。 - starting：启动中。 - rollingBack：回滚中。 - upgrading：升级中。 - configuring：配置中。 - deleting：删除中。 - deploy_failed：部署失败。 - retry_failed：重试失败。 - restart_failed：重启失败。 - scale_failed：伸缩失败。 - stop_failed：停止失败。 - start_failed：启动失败。 - rollback_failed：回滚失败。 - upgrade_failed：升级失败。 - configure_failed：配置失败。 - delete_failed：删除失败。 - create_succeeded：创建成功。 - deploy_succeeded：部署成功。 - retry_succeeded：重试成功。 - restart_succeeded：重启成功。 - scale_succeeded：伸缩成功。 - stop_succeeded：停止成功。 - start_succeeded：启动成功。 - rollback_succeeded：回滚成功。 - upgrade_succeeded：升级成功。 - configure_succeeded：配置成功。 |
| build_log_id               | String                                                          | 构建日志ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| configuration_operation_id | String                                                          | 组件最新配置的操作ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| terminated                 | String                                                          | 组件上执行的任务是否被强制终止。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   
 表7Source 
| 参数       | 参数类型                                          | 描述                                                                                                                                                         |
|:---|:---|:---|
| code     | [Repo] object | 源码仓库信息。                                                                                                                                                    |
| type     | String                                        | **参数解释：** 源类型。 **约束限制：** 更新组件时，源类型需要与创建组件时的源类型保持一致。 **取值范围：** - image：镜像 - code：源码 - softwarePackage：软件包 **默认取值：** 不涉及。                                    |
| sub_type | String                                        | 源子类型。 - 源类型为code时，子类型表示不同的代码仓库，如DevCloud（CodeArts）、GitLab、GitHub、Gitee、Bitbucket。 - 源类型为softwarePackage时，子类型表示不同的软件包仓库，如BinObs、BinDevCloud（CodeArts软件发布库）。 |
| url      | String                                        | url地址。 - 源类型为image时，url地址为镜像地址。 - 源类型为code时，url地址为git地址。 - 源类型为softwarePackage时，url地址为软件包地址。                                                               |
   
 表8Repo 
| 参数        | 参数类型   | 描述                     |
|:---|:---|:---|
| auth_name | String | 授权名称。                  |
| branch    | String | 分支。                    |
| namespace | String | 命名空间，需填写命名空间的Base64编码。 |
   
 表9Build 
| 参数         | 参数类型                                                | 描述                                                                                                                                                                            |
|:---|:---|:---|
| archive    | [Archive] object | 构建产物纳管。                                                                                                                                                                       |
| parameters | Map\<String,String\>                                | 构建附加参数。 - base_image：基础镜像地址。 - build_cmd：自定义构建命令。 - dockerfile_path：自定义dockerfile文件路径 - dockerfile_content：自定义dockerfile内容 - artifact_name: 针对java多模块构建，指定构建后运行的产物，以".jar"结尾。 |
   
 表10Archive 
| 参数                 | 参数类型   | 描述         |
|:---|:---|:---|
| artifact_namespace | String | 产物纳管SWR组织。 |
   
 表11ResourceLimit 
| 参数           | 参数类型   | 描述     |
|:---|:---|:---|
| cpu_limit    | String | cpu限额。 |
| memory_limit | String | 内存限额。  |
   
 表12Access 
| 参数      | 参数类型   | 描述                                                                                                         |
|:---|:---|:---|
| address | String | 访问地址。                                                                                                      |
| type    | String | **参数解释：** 访问方式类型。 **取值范围：** - ClusterIP：集群内部IP访问方式 - LoadBalancer：负载均衡访问方式 - Ingress：路由访问方式 **默认取值：** 不涉及。 |
   
#### 请求示例
获取组件列表。
```
GET https://{endpoint}/v1/{project_id}/cae/applications/{application_id}/components
```
#### 响应示例
**状态码：200**
请求成功。
```
{
  "api_version" : "v1",
  "kind" : "Component",
  "items" : [ {
    "id" : "610fb1de-5ac6-424e-b910-d7be902575d0",
    "name" : "demo-xxx",
    "annotations" : {
      "version" : "1.0.0",
      "enterprise_project_id" : ""
    },
    "created_at" : "2022-06-09T07:01:05.323979Z",
    "updated_at" : "2022-06-09T07:01:05.323979Z",
    "spec" : {
      "runtime" : "Docker",
      "env_id" : "50d18173-5df0-4db4-a2b6-8a428d42146b",
      "replica" : 1,
      "source" : {
        "type" : "image",
        "url" : "xxx/demo-jar:v2"
      },
      "build" : {
        "archive" : {
          "artifact_namespace" : "xxx"
        },
        "parameters" : {
          "base_image" : ""
        }
      },
      "resource_limit" : {
        "cpu_limit" : "500m",
        "memory_limit" : "1Gi"
      },
      "image_url" : "xxx/demo-jar:v2",
      "available_replica" : 1,
      "job_id" : "251b7d84-c353-416a-864f-5878a94c3d28",
      "status" : "running",
      "configuration_operation_id" : "xxx"
    }
  } ],
  "total_count" : 1
}
```
#### 状态码
| 状态码 | 描述    |
|:---|:---|
| 200 | 请求成功。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-cae/ErrorCode.html)。
