
# 添加应用 - UploadApp
#### 功能介绍
添加应用应用。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/Workspace/doc?api=UploadApp)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-workspace/workspace_09_0128.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                           | 访问级别  | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | workspace:appcenter:createApp | Write | -           | -   | -  | -      |
     
  
 
#### URI
POST /v1/{project_id}/app-center/apps
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述    |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID。 |
   
#### 请求参数
表2请求Body参数 
| 参数                 | 是否必选 | 参数类型                                                      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| name               | 是    | String                                                    | 应用名称,名称需满足如下规则: 1. 不可为全空格。   2. 不允许包含如下字符:\^;\|\~\`{}\[\]\<\>。   3. 长度1\~128个字符。                                                                                                                                                                                                                                                                                                    |
| version            | 是    | String                                                    | 版本号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| description        | 是    | String                                                    | 描述。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| authorization_type | 是    | String                                                    | - *ALL_USER* - 全部用户   - *ASSIGN_USER* - 授权指定用户                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| app_file_store     | 是    | [FileStoreLink] object | 文件存储路径支持OBS或者外部链接，store_type指定实际生效的配置,bucket_store和file_link必须设置其一。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| app_icon_url       | 否    | String                                                    | 图片的路径,支持使用可访问的URL地址或DataURIscheme。 - *可访问的URL* - https://xxx.x.xx.x/xxx/xx.jpg。   - *DataURIscheme* - data;image/png;base64,iVBORw0KGgoAAAANS; 注意使用dataURLStream时，字符串最大长度为87500，即最多使用约64KB大小的图片。                                                                                                                                                                                                                                                                                             |
| install_type       | 是    | String                                                    | 安装方式： - *QUIET_INSTALL* - 静默安装。   - *UNZIP_INSTALL* - 解压安装。   - *GUI_INSTALL* - 用户通过GUI界面安装。    安装命令(静默安装命令)，例: ${FILE_PATH} /S。 例: unzip ${FILE_PATH}。 install_type为QUIET_INSTALL、UNZIP_INSTALL时install_command非空。 预定义变量将采用以下值: ${FILE_PATH}: 应用安装包在桌面本地的存储路径。 |
| install_command    | 否    | String                                                    | 安装命令(静默安装命令)。 例: ${FILE_PATH} /S。 预定义变量将采用以下值: ${FILE_PATH}: 应用安装包在桌面本地的存储路径。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| uninstall_command  | 否    | String                                                    | 卸载命令(静默卸载命令)。 例: msiexec /uninstall ${FILE_PATH} /quiet。 预定义变量将采用以下值: ${FILE_PATH}: 应用安装包在桌面本地的存储路径。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| support_os         | 是    | String                                                    | 系统类型： - *Linux* -   - *Windows* -   - *Other* -                                                                                                                                                                                                                                                                                                                                     |
| catalog_id         | 是    | String                                                    | 分类ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| install_info       | 否    | String                                                    | 安装信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   
 表3FileStoreLink 
| 参数           | 是否必选 | 参数类型                                                  | 描述                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| store_type   | 是    | String                                                | 存储方式： - *OBS* - OBS桶存储。   - *LINK* - 外部存储,使用的可访问下载链接。    |
| bucket_store | 否    | [BucketStore] object | OBS桶存储。                                                                                                                                                                                                                                                                                                                              |
| file_link    | 否    | String                                                | 文件下载完整路径。                                                                                                                                                                                                                                                                                                                            |
   
 表4BucketStore 
| 参数               | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| bucket_name      | 否    | String | 桶名称固定格式:wks-appcenter-{project_id}; 需先调用桶授权接口进行授权。                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| bucket_file_path | 否    | String | OBS对象路径。 注: bucket_file_path是对象在obs中的完整路径,不能以/开头。 例如桶存在如下目录结构的数据。 Bucket: ├─dir1 \| ├─object1.txt \| └─object2.txt └─object3.txt Object1的路径: dir1/object1.txt Object2的路径: dir1/object2.txt Object3的路径: object3.txt |
   
#### 响应参数
**状态码：200**
表5响应Body参数 
| 参数                 | 参数类型                                                       | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|
| id                 | String                                                     | 唯一标识。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| tenant_id          | String                                                     | 租户id。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| name               | String                                                     | 应用名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| version            | String                                                     | 版本号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| description        | String                                                     | 描述。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| authorization_type | String                                                     | - *ALL_USER* - 全部用户   - *ASSIGN_USER* - 授权指定用户                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| app_file_store     | [FileStoreLink] object | 应用存储信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| app_icon_url       | String                                                     | 应用图标路径。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| install_type       | String                                                     | 安装方式： - *QUIET_INSTALL* - 静默安装。   - *UNZIP_INSTALL* - 解压安装。   - *GUI_INSTALL* - 用户通过GUI界面安装。    安装命令(静默安装命令)，例: ${FILE_PATH} /S。 例: unzip ${FILE_PATH}。 install_type为QUIET_INSTALL、UNZIP_INSTALL时install_command非空。 预定义变量将采用以下值: ${FILE_PATH}: 应用安装包在桌面本地的存储路径。 |
| install_command    | String                                                     | 安装命令(静默安装命令)。 例: ${FILE_PATH} /S。 预定义变量将采用以下值: ${FILE_PATH}: 应用安装包在桌面本地的存储路径。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| uninstall_command  | String                                                     | 卸载命令(静默卸载命令)。 例: msiexec /uninstall ${FILE_PATH} /quiet。 预定义变量将采用以下值: ${FILE_PATH}: 应用安装包在桌面本地的存储路径。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| support_os         | String                                                     | 系统类型： - *Linux* -   - *Windows* -   - *Other* -                                                                                                                                                                                                                                                                                                                                     |
| status             | String                                                     | 应用状态(正常、禁用) - 'NORMAL' - 正常   - 'FORBIDDEN' - 禁用状态                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| application_source | String                                                     | 应用来源： - *CUSTOM* - 用户上传   - *SYSTEM* - 内置应用   - *MARKET* - 市场应用                                                                                                                                                                                                                                                                                                                     |
| create_time        | String                                                     | 应用创建时间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| catalog_id         | String                                                     | 分类ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| catalog            | String                                                     | 分类名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| install_info       | String                                                     | 安装信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   
 表6FileStoreLink 
| 参数           | 参数类型                                                   | 描述                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|
| store_type   | String                                                 | 存储方式： - *OBS* - OBS桶存储。   - *LINK* - 外部存储,使用的可访问下载链接。    |
| bucket_store | [BucketStore] object | OBS桶存储。                                                                                                                                                                                                                                                                                                                              |
| file_link    | String                                                 | 文件下载完整路径。                                                                                                                                                                                                                                                                                                                            |
   
 表7BucketStore 
| 参数               | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|
| bucket_name      | String | 桶名称固定格式:wks-appcenter-{project_id}; 需先调用桶授权接口进行授权。                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| bucket_file_path | String | OBS对象路径。 注: bucket_file_path是对象在obs中的完整路径,不能以/开头。 例如桶存在如下目录结构的数据。 Bucket: ├─dir1 \| ├─object1.txt \| └─object2.txt └─object3.txt Object1的路径: dir1/object1.txt Object2的路径: dir1/object2.txt Object3的路径: object3.txt |
   
**状态码：400**
表8响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：401**
表9响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：403**
表10响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：404**
表11响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：405**
表12响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：500**
表13响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
**状态码：503**
表14响应Body参数 
| 参数         | 参数类型   | 描述         |
|:---|:---|:---|
| error_code | String | 错误码，失败时返回。 |
| error_msg  | String | 错误描述。      |
   
#### 请求示例
```
{
  "name" : "notepad++.exe",
  "version" : "v1.1.1",
  "description" : "xxx",
  "authorization_type" : "ALL_USER",
  "app_file_store" : {
    "store_type" : "OBS",
    "bucket_store" : {
      "bucket_name" : "wks-appcenter-xxxx",
      "bucket_file_path" : "app-file/xxxx.exe"
    },
    "file_link" : "https://host-addresss/xxxxx.jpg"
  },
  "app_icon_url" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8 /w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==",
  "install_type" : "UNZIP_INSTALL",
  "install_command" : "${FILE_PATH} /S",
  "uninstall_command" : "msiexec /uninstall ${FILE_PATH} /quiet",
  "support_os" : "Windows",
  "catalog_id" : "xxxx-xxx-xxxx",
  "install_info" : "xxxx-xxx-xxxx"
}
```
#### 响应示例
**状态码：200**
成功响应。
```
{
  "id" : "x-xx-xxx",
  "tenant_id" : "xxx-xx-x-xx",
  "name" : "xxx.exe",
  "version" : "v1.1.1",
  "description" : "测试应用。",
  "authorization_type" : "ALL_USER",
  "app_file_store" : {
    "store_type" : "OBS",
    "bucket_store" : {
      "bucket_name" : "wks-appcenter-xxxx",
      "bucket_file_path" : "app-file/xxxx.exe"
    },
    "file_link" : "https://host-addresss/xxxxx.jpg"
  },
  "app_icon_url" : "https://host-addresss/xxxxx",
  "install_type" : "QUIET_INSTALL",
  "install_command" : "${FILE_PATH} /S",
  "uninstall_command" : "msiexec /uninstall ${FILE_PATH} /quiet",
  "support_os" : "Windows",
  "status" : "NORMAL",
  "application_source" : "CUSTOM",
  "create_time" : "2024-12-25T06:56:58.622Z",
  "catalog_id" : 1,
  "catalog" : "其他",
  "install_info" : "安装信息"
}
```
#### 状态码
| 状态码 | 描述                      |
|:---|:---|
| 200 | 成功响应。                   |
| 400 | 由于包含语法错误，当前请求无法被服务器理解。  |
| 401 | 鉴权失败。                   |
| 403 | 没有操作权限。                 |
| 404 | 找不到资源。                  |
| 405 | 请求中指定的方法不被允许。           |
| 500 | 服务内部错误，具体返回错误码请参见错误码说明。 |
| 503 | 服务不可用。                  |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-workspace/ErrorCode.html)。
