
# 发布应用 - PublishApp
#### 功能介绍
批量发布应用，不允许发布同名的应用。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/WorkspaceApp/doc?api=PublishApp)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-workspace/workspace_09_0128.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                   | 访问级别  | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | workspace:app:publish | Write | app \*      | -   | -  | -      |
  | workspace:app:publish | Write | appGroup \* | -   | -  | -      |
     
  
 
#### URI
POST /v1/{project_id}/app-groups/{app_group_id}/apps
表1路径参数 
| 参数           | 是否必选 | 参数类型   | 描述     |
|:---|:---|:---|:---|
| project_id   | 是    | String | 项目ID。  |
| app_group_id | 是    | String | 应用组ID。 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                      |
|:---|:---|:---|:---|
| X-Auth-Token | 否    | String | 用户Token。 通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
   
表3请求Body参数 
| 参数    | 是否必选 | 参数类型                                                           | 描述                 |
|:---|:---|:---|:---|
| items | 是    | Array of [PublishApp] objects | 发布应用列表(单次最多20个应用)。 |
   
 表4PublishApp 
| 参数                | 是否必选 | 参数类型                                                           | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| name              | 是    | String                                                         | 应用名称,名称需满足如下规则: 1. 名称允许可见字符或空格，不可为全空格。   2. 不允许包含如下字符:\^;\|\~\`{}\[\]\<\>。   3. 长度1\~64个字符。    |
| version           | 否    | String                                                         | 应用版本号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| command_param     | 否    | String                                                         | 启动命令行参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| icon_uri          | 否    | String                                                         | 图标地址，该字段当前未使用。 说明： - 图片的默认大小当前限制为8KB，即1024 \* 8字节。   - 如果数据格式为data;image/png;base64,iVBORw0KGgoAAAANS时实际大小约为字段约为：size \* 4/3 + 4bytes。                                                                     |
| execute_path      | 是    | String                                                         | 执行路径。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| work_path         | 否    | String                                                         | 应用工作目录。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| icon_path         | 否    | String                                                         | 应用图标的路径。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| icon_index        | 否    | Integer                                                        | 应用图标的索引。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| description       | 否    | String                                                         | 应用描述。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| source_type       | 是    | Integer                                                        | 应用类型： - '1':系统保留不可用。   - '2':镜像应用。   - '3':自定义应用。                                              |
| publisher         | 否    | String                                                         | 应用发布者。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| source_image_ids  | 否    | Array of strings                                               | 镜像ids,最多20个。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| sandbox_enable    | 否    | Boolean                                                        | 是否使用沙箱模式运行，取值为： - false: 表示不以沙箱模式运行。   - true: 表示以沙箱模式运行。                                                                                                                                                  |
| app_extended_info | 否    | [AppExtendedInfo] object | 自定义应用业务扩展信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| pre_launch_policy | 否    | Integer                                                        | 预开状态：0：非预开，1：会话预开，3：应用预开。                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   
 表5AppExtendedInfo 
| 参数            | 是否必选 | 参数类型                 | 描述         |
|:---|:---|:---|:---|
| extended_info | 否    | Map\<String,String\> | 扩展信息的键值对映射 |
   
#### 响应参数
**状态码：200**
表6响应Body参数 
| 参数    | 参数类型                                              | 描述        |
|:---|:---|:---|
| count | Integer                                           | 总数。       |
| items | Array of [App] objects | 查发布的应用列表。 |
   
 表7App 
| 参数                | 参数类型                                                            | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|
| id                | String                                                          | 应用ID。                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| name              | String                                                          | 应用名称。                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| version           | String                                                          | 应用版本号。                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| command_param     | String                                                          | 启动命令行参数。                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| execute_path      | String                                                          | 执行路径。                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| work_path         | String                                                          | 应用工作目录。                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| icon_path         | String                                                          | 应用图标的路径。                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| icon_index        | Integer                                                         | 应用图标的索引。                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| description       | String                                                          | 应用描述。                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| app_group_id      | String                                                          | 应用组标识Id。                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| state             | String                                                          | 应用状态： - *NORMAL* - 正常状态。   - *FORBIDDEN* - 禁用状态。                                                                                                             |
| tenant_id         | String                                                          | 所在的租户ID。                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| publish_at        | String                                                          | 发布时间。                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| source_type       | Integer                                                         | 应用类型： - '1':系统内置应用   - '2':镜像应用   - '3':自定义应用    |
| publisher         | String                                                          | 应用发布者。                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| icon_url          | String                                                          | 图标url。                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| publishable       | Boolean                                                         | 是否可发布应用： - true: 可发布。   - false: 不可发布。                                                                                                                       |
| sandbox_enable    | Boolean                                                         | 是否使用沙箱模式运行，取值为： - false: 表示不以沙箱模式运行。   - true: 表示以沙箱模式运行。                                                                                                    |
| is_pre_boot       | Boolean                                                         | 是否开启应用预开，取值为： - false: 表示关闭应用预开。   - true: 表示开启应用预开。                                                                                                         |
| pre_launch_policy | Integer                                                         | 预开状态：0：非预开，1：会话预开，3：应用预开。                                                                                                                                                                                                                                                                                                                                                                                                                        |
| app_extended_info | [AppExtendedInfo] object | 自定义应用业务扩展信息。                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   
 表8AppExtendedInfo 
| 参数            | 参数类型                 | 描述         |
|:---|:---|:---|
| extended_info | Map\<String,String\> | 扩展信息的键值对映射 |
   
**状态码：400**
表9响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：401**
表10响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：403**
表11响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：404**
表12响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：405**
表13响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：500**
表14响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：503**
表15响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
#### 请求示例
```
POST /v1/a4da8115c9d8464ead3a38309130523f/app-groups/656582710889807872/apps
{
  "items" : [ {
    "name" : "7-Zip File Manager",
    "version" : "19.0.0.0",
    "command_param" : "",
    "execute_path" : "C:\\Program Files\\7-Zip\\7zFM.exe",
    "work_path" : "",
    "icon_path" : "C:\\Program Files\\7-Zip\\7zFM.exe",
    "icon_index" : 0,
    "description" : "",
    "publisher" : "Igor Pavlov",
    "source_image_ids" : [ "5d411710-98ac-47b5-af7c-3ecf6a0514b5" ],
    "source_type" : 2
  } ]
}
```
#### 响应示例
**状态码：200**
操作成功。
```
{
  "count" : 1,
  "items" : [ {
    "id" : "656599335839993860",
    "name" : "7-Zip File Manager",
    "version" : "19.0.0.0",
    "command_param" : "",
    "execute_path" : "C:\\Program Files\\7-Zip\\7zFM.exe",
    "work_path" : "",
    "icon_path" : "C:\\Program Files\\7-Zip\\7zFM.exe",
    "icon_index" : 0,
    "description" : "",
    "app_group_id" : "656582710889807872",
    "state" : "NORMAL",
    "tenant_id" : "26a0420e9e284569a23f1b2f7d9b5011",
    "publish_at" : "2024-01-15T08:39:56.265Z",
    "source_type" : 2,
    "publisher" : "Igor Pavlov",
    "sandbox_enable" : false
  } ]
}
```
#### 状态码
| 状态码 | 描述                      |
|:---|:---|
| 200 | 操作成功。                   |
| 400 | 由于包含语法错误，当前请求无法被服务器理解。  |
| 401 | 鉴权失败。                   |
| 403 | 没有操作权限。                 |
| 404 | 找不到资源。                  |
| 405 | 请求中指定的方法不被允许。           |
| 500 | 服务内部错误，具体返回错误码请参见错误码说明。 |
| 503 | 服务不可用。                  |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-workspace/ErrorCode_0.html)。
