
# 获取应用列表 （推荐） - ListAllApp
#### 功能介绍
查询项目下应用列表。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-deployman/CloudDeploy_api_1001.html)。
#### URI
POST /v1/applications/list
#### 请求参数
表1请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| Content-Type | 是    | String | **参数解释**： 消息体的类型（格式）。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： application/json。                                                                                                            |
| X-Auth-Token | 是    | String | **参数解释**： 用户Token。 通过调用IAM服务[获取用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)接口获取（响应消息头中X-Subject-Token的值）。 **约束限制**： 不涉及。 **取值范围**： 字符串，长度不超过20000个字符。 **默认取值**： 不涉及。 |
   
表2请求Body参数 
| 参数         | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| project_id | 是    | String           | **参数解释**： 项目id，获取方式请参见[获取项目id](https://support.huaweicloud.com/api-deployman/CloudDeploy_api_0012.html)。 **约束限制**： 不涉及。 **取值范围**： 只能由英文字母、数字组成，且长度为32个字符。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| page       | 是    | Integer          | **参数解释**： 分页页码，表示从此页开始查询。 **约束限制**： 不涉及。 **取值范围**： 1-99999 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| size       | 是    | Integer          | **参数解释**： 每页显示的条目数量。 **约束限制**： 不涉及。 **取值范围**： 1-100 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| sort_name  | 否    | String           | **参数解释**： 排序字段的名称。 **约束限制**： 不涉及。 **取值范围**： - name: 应用名称   - startTime: 开始时间    **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| sort_by    | 否    | String           | **参数解释**： 排序顺序。 **约束限制**： 不涉及。 **取值范围**： - ASC: 正序   - asc: 正序   - DESC: 逆序   - desc: 逆序    **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| states     | 否    | Array of strings | **参数解释**： 应用状态列表。 **约束限制**： 不涉及。 **取值范围**： - abort: 部署中止   - failed: 部署失败   - not_started: 取消执行   - pending: 排队中   - running: 正在部署   - succeeded: 部署成功   - timeout: 部署超时   - not_executed: 未执行    **默认取值**： 不涉及。 |
| group_id   | 否    | String           | **参数解释**： 应用的分组id，传入no_grouped为查询未分组的应用。 **约束限制**： 不涉及。 **取值范围**： 只能由英文字母、数字组成，且长度为32个字符 或者 no_grouped。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   
#### 响应参数
**状态码：200**
表3响应Body参数 
| 参数        | 参数类型                                                                        | 描述                                                                                                                       |
|:---|:---|:---|
| total_num | Integer                                                                     | **参数解释**： 应用总数。 **取值范围**： 不涉及。 |
| result    | Array of [AppExecutionInfo] objects | **参数解释**： 应用列表数组。                                                                          |
   
 表4AppExecutionInfo 
| 参数                 | 参数类型                                                                                | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|
| id                 | String                                                                              | **参数解释**： 应用id。 **取值范围**： 由英文字母、数字组成，且长度为32个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| name               | String                                                                              | **参数解释**： 应用名称。 **取值范围**： 由中文字符、英文字母、数字及"_"、"-"组成，且长度为\[3-128\]个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| duration           | String                                                                              | **参数解释**： 最后一次部署时长，格式为：HH:mm:ss。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| is_disable         | Boolean                                                                             | **参数解释**： 当前应用是否被禁用。 **取值范围**： - true: 被禁用   - false: 未被禁用                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| project_id         | String                                                                              | **参数解释**： 项目id，获取方式请参见[获取项目id](https://support.huaweicloud.com/api-deployman/CloudDeploy_api_0012.html)。。 **取值范围**： 由英文字母、数字组成，且长度为32个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| project_name       | String                                                                              | **参数解释**： 项目名称。 **取值范围**： 长度为\[3,128\]个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| is_care            | Boolean                                                                             | **参数解释**： 当前用户是否已收藏本应用。 **取值范围**： - true: 已收藏   - false: 未收藏                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| can_modify         | Boolean                                                                             | **参数解释**： 当前用户是否有编辑权限。 **取值范围**： - true: 有权限   - false: 无权限                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| can_delete         | Boolean                                                                             | **参数解释**： 当前用户是否有删除的权限。 **取值范围**： - true: 有权限   - false: 无权限                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| can_view           | Boolean                                                                             | **参数解释**： 当前用户是否有查看权限。 **取值范围**： - true: 有权限   - false: 无权限                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| can_execute        | Boolean                                                                             | **参数解释**： 当前用户是否有部署权限。 **取值范围**： - true: 有权限   - false: 无权限                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| can_copy           | Boolean                                                                             | **参数解释**： 当前用户是否有复制权限。 **取值范围**： - true: 有权限   - false: 无权限                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| can_manage         | Boolean                                                                             | **参数解释**： 当前用户是否有编辑应用权限矩阵的权限。 **取值范围**： - true: 有权限   - false: 无权限                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| can_create_env     | Boolean                                                                             | **参数解释**： 当前用户是否有创建环境的权限。 **取值范围**： - true: 有权限   - false: 无权限                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| can_disable        | Boolean                                                                             | **参数解释**： 当前用户是否有禁用应用的权限。 **取值范围**： - true: 有权限   - false: 无权限                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| deploy_system      | String                                                                              | **参数解释**： 部署类型模式。 **取值范围**： - deployTemplate: 部署模板                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| create_user_id     | String                                                                              | **参数解释**： 应用创建者用户id。 **取值范围**： 由英文字母、数字组成，且长度为\[1,32\]个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| create_tenant_id   | String                                                                              | **参数解释**： 应用创建者租户id。 **取值范围**： 由英文字母、数字组成，且长度为\[1,32\]个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| create_time        | String                                                                              | **参数解释**： 创建时间。格式为yyyy-MM-dd HH:mm:ss。例如：2021-02-25 10:37:27。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| update_time        | String                                                                              | **参数解释**： 修改时间。格式为yyyy-MM-dd HH:mm:ss。例如：2021-02-25 10:37:27。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| execution_time     | String                                                                              | **参数解释**： 最后一次部署时间。格式为yyyy-MM-dd HH:mm:ss。例如：2021-02-25 10:37:27。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| end_time           | String                                                                              | **参数解释**： 最后一次部署结束时间。格式为yyyy-MM-dd HH:mm:ss。例如：2021-02-25 10:37:27。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| execution_state    | String                                                                              | **参数解释**： 部署状态。 **取值范围**： - abort: 部署中止   - failed: 部署失败   - not_started: 取消执行   - pending: 排队中   - running: 正在部署   - succeeded: 部署成功    |
| release_id         | Integer                                                                             | **参数解释**： 部署记录序列号。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| executor_id        | String                                                                              | **参数解释**： 最后一次部署者id。 **取值范围**： 由英文字母、数字组成，且长度为\[1,32\]个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| executor_nick_name | String                                                                              | **参数解释**： 最后一次部署者昵称。 **取值范围**： 字符串，长度为\[1-30\]个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| arrange_infos      | Array of [TaskBaseResponseBody] objects | **参数解释**： 部署任务信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   
 表5TaskBaseResponseBody 
| 参数            | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|
| id            | String | **参数解释**： 部署任务id。 **取值范围**： 由英文字母、数字组成，且长度为32个字符。                                                                                                                                                                                                                                                                                                                                                                                                          |
| state         | String | **参数解释**： 部署任务状态。 **取值范围**： - Available: 可执行状态   - Draft: 草稿状态   - initialized： 初始化状态    |
| deploy_system | String | **参数解释**： 部署类型模式。 **取值范围**： - deployTemplate: 部署模板                                                                                                                                                                                                                                                               |
   
**状态码：400**
表6响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误码  |
| error_msg  | String | 错误描述 |
   
**状态码：403**
表7响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误码  |
| error_msg  | String | 错误描述 |
   
#### 请求示例
获取应用列表
```
https://{endpoint}/v1/applications/list
{
  "project_id" : "6039d4480efc4dddb178abff98719913",
  "page" : 1,
  "size" : 10
}
```
#### 响应示例
**状态码：200**
OK 请求响应成功
```
{
  "result" : [ {
    "id" : "cb439d016d8641c8a44c177a121fad15",
    "name" : "Test",
    "duration" : "00:00:17",
    "is_disable" : true,
    "project_id" : "1ff8aa6dda4643bd9cbdbb588fb24bde",
    "project_name" : "项目1",
    "is_care" : false,
    "can_modify" : true,
    "can_delete" : true,
    "can_view" : true,
    "can_execute" : true,
    "can_copy" : true,
    "can_manage" : false,
    "can_create_env" : false,
    "can_disable" : false,
    "create_user_id" : "04ec4661a8df4359b50980a9c958c86d",
    "create_tenant_id" : "208fbb09068e4820b9209ef9ff4da73d",
    "create_time" : "2023-07-05 20:34:40.0",
    "update_time" : "2023-08-02 14:20:30.0",
    "execution_time" : "2023-08-18 09:40:16",
    "end_time" : "2023-08-18 09:40:33",
    "execution_state" : "failed",
    "release_id" : 4,
    "executor_id" : "6baa7454109d47c192f22078fe6cda20",
    "executor_nick_name" : "测试账号",
    "arrange_infos" : [ {
      "id" : "e700f15965694253940502911220d76b",
      "state" : "Draft",
      "deploy_system" : "deployTemplate"
    } ]
  } ],
  "total_num" : 1
}
```
**状态码：400**
Bad Request
```
{
  "error_code" : "Deploy.00015002",
  "error_msg" : "Invalid request parameter."
}
```
**状态码：403**
Forbidden
```
{
  "error_code" : "Deploy.00011154",
  "error_msg" : "You do not have permissions to perform this operation."
}
```
#### SDK代码示例
SDK代码示例如下。
#### Java
获取应用列表
```
package com.huaweicloud.sdk.test;
import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.codeartsdeploy.v2.region.CodeArtsDeployRegion;
import com.huaweicloud.sdk.codeartsdeploy.v2.*;
import com.huaweicloud.sdk.codeartsdeploy.v2.model.*;
public class ListAllAppSolution {
    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");
        ICredential auth = new BasicCredentials()
                .withAk(ak)
                .withSk(sk);
        CodeArtsDeployClient client = CodeArtsDeployClient.newBuilder()
                .withCredential(auth)
                .withRegion(CodeArtsDeployRegion.valueOf("<YOUR REGION>"))
                .build();
        ListAllAppRequest request = new ListAllAppRequest();
        ListAllAppRequestBody body = new ListAllAppRequestBody();
        body.withSize(10);
        body.withPage(1);
        body.withProjectId("6039d4480efc4dddb178abff98719913");
        request.withBody(body);
        try {
            ListAllAppResponse response = client.listAllApp(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}
```
#### Python
获取应用列表
```
# coding: utf-8
import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcodeartsdeploy.v2.region.codeartsdeploy_region import CodeArtsDeployRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcodeartsdeploy.v2 import *
if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]
    credentials = BasicCredentials(ak, sk)
    client = CodeArtsDeployClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(CodeArtsDeployRegion.value_of("<YOUR REGION>")) \
        .build()
    try:
        request = ListAllAppRequest()
        request.body = ListAllAppRequestBody(
            size=10,
            page=1,
            project_id="6039d4480efc4dddb178abff98719913"
        )
        response = client.list_all_app(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)
```
#### Go
获取应用列表
```
package main
import (
"fmt"
"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    codeartsdeploy "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/codeartsdeploy/v2"
"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/codeartsdeploy/v2/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/codeartsdeploy/v2/region"
)
func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")
    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        Build()
    client := codeartsdeploy.NewCodeArtsDeployClient(
        codeartsdeploy.CodeArtsDeployClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())
    request := &model.ListAllAppRequest{}
request.Body = &model.ListAllAppRequestBody{
Size: int32(10),
Page: int32(1),
ProjectId: "6039d4480efc4dddb178abff98719913",
}
response, err := client.ListAllApp(request)
if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}
```
#### 更多
更多编程语言的SDK代码示例，请参见[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/CodeArtsDeploy/sdk?api=ListAllApp)的代码示例页签，可生成自动对应的SDK代码示例。
#### 状态码
| 状态码 | 描述          |
|:---|:---|
| 200 | OK 请求响应成功   |
| 400 | Bad Request |
| 403 | Forbidden   |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-deployman/ErrorCode.html)。
