
# 新建检查任务V3 - CreateTaskV3
#### 功能介绍
根据项目ID、代码仓地址、分支、任务名、规则集等参数在项目下新建一个代码检查任务，返回新建的代码检查任务的任务ID。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-codecheck/codecheck_03_0006.html)。
#### 授权信息
账号根用户具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备如下身份策略权限，更多的权限说明请参见[权限和授权项](https://support.huaweicloud.com/api-codecheck/Permission.html)。
| 授权项                       | 访问级别  | 资源类型（\*为必须） | 条件键                     | 别名 | 依赖的授权项 |
|:---|:---|:---|:---|:---|:---|
| codeartscheck:task:create | Write | task \*     | -                       | -  | -      |
| codeartscheck:task:create | Write | -           | codeartscheck:ProjectId | -  | -      |
   
#### URI
POST /v3/task
#### 请求参数
表1请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释：** 用户Token。通过调用IAM服务[获取用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)接口获取（响应消息头中X-Subject-Token的值）。 **约束限制：** 不涉及。 **取值范围：** 长度为\[1\~100000\]的字符。 **默认取值：** 不涉及。 |
| Content-Type | 是    | String | **参数解释：** 编码格式。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** application/json，传任何值，接口返回值均为json格式。                                                                                                |
   
表2请求Body参数 
| 参数              | 是否必选 | 参数类型                                                                                   | 描述                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| branch          | 是    | String                                                                                 | **参数解释：** 仓库分支。 **约束限制：** 不涉及。 **取值范围：** 长度为\[1\~200\]个字符。 **默认取值：** 不涉及。                                                                                        |
| config_template | 是    | [CreateTaskV3ConfigTemplate] object | **参数解释：** 任务的配置模板参数，存放任务相关的一些配置。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                    |
| name            | 是    | String                                                                                 | **参数解释：** 任务名。 **约束限制：** 任意中英文、数字、点.、连字符-及下划线_，且长度为1-128。 **取值范围：** 长度为\[1\~128\]个字符。 **默认取值：** 不涉及。                                                             |
| project_id      | 是    | String                                                                                 | **参数解释：** 项目的32位UUID，项目唯一标识，通过[查询项目列表](https://support.huaweicloud.com/api-projectman/ListProjectsV4.html)接口获取。 **约束限制：** 不涉及。 **取值范围：** 32位项目ID。 **默认取值：** 不涉及。 |
| project_name    | 是    | String                                                                                 | **参数解释：** 项目名称，通过[查询项目列表](https://support.huaweicloud.com/api-projectman/ListProjectsV4.html)接口获取。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                  |
| repo_url        | 是    | String                                                                                 | **参数解释：** 代码仓地址。 **约束限制：** 不涉及。 **取值范围：** repo仓传以git开头的地址； 非repo仓传以http开头的地址。 **默认取值：** 不涉及。                                     |
   
 表3CreateTaskV3ConfigTemplate 
| 参数           | 是否必选 | 参数类型                                                                                   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| repo_type    | 是    | String                                                                                 | **参数解释：** 代码仓类型。 **约束限制：** 不涉及。 **取值范围：** - DevCloud：CodeArtsRepo仓。   - Gitee：Gitee仓。   - GitHub：GitHub仓。   - GitPub：通用Git仓。   - gitcode：GitCode仓。   - gitlab：GitLab仓。   - self_gitlab：自建GitLab仓。   - tfs_git：TFS仓。   - bitbucket：Bitbucket仓。    **默认取值：** 不涉及。                          |
| branch       | 是    | String                                                                                 | **参数解释：** 分支名。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| rule_sets    | 是    | Array of [ConfigTemplateRuleSet] objects | **参数解释：** 规则集列表。 **约束限制：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| project_id   | 否    | String                                                                                 | **参数解释：** 项目的32位UUID，项目唯一标识，通过[查询项目列表](https://support.huaweicloud.com/api-projectman/ListProjectsV4.html)接口获取。 **约束限制：** 不涉及。 **取值范围：** 32位项目ID。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| project_name | 否    | String                                                                                 | **参数解释：** 项目名称，通过[查询项目列表](https://support.huaweicloud.com/api-projectman/ListProjectsV4.html)接口获取。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| authId       | 否    | String                                                                                 | **参数解释：** 用户预先创建的项目下的代码源扩展点ID，保存了代码仓信息。 **约束限制：** 使用CodeArtsRepo仓可不填，使用其他类型仓库必填。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| authType     | 否    | String                                                                                 | **参数解释：** 授权类型。 **约束限制：** 使用CodeArtsRepo仓可不填，使用其他类型仓库必填。 **取值范围：** - DevCloud：CodeArtsRepo仓。   - Gitee：Gitee仓。   - GitHub：GitHub仓。   - GitPub：通用Git仓。   - gitcode：GitCode仓。   - gitlab：GitLab仓。   - self_gitlab：自建GitLab仓。   - tfs_git：TFS仓。   - bitbucket：Bitbucket仓。    **默认取值：** 不涉及。 |
   
 表4ConfigTemplateRuleSet 
| 参数       | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| language | 否    | String | **参数解释：** 语言类型。 **约束限制：** 不涉及。 **取值范围：** 自定义语言或者系统内置语言，当前支持的系统内置语言有： - ARKTS   - C#   - CANGJIE   - C++   - CSS   - GO   - HTML   - JAVA   - JAVASCRIPT   - KOTLIN   - LUA   - PHP   - PYTHON   - RUST   - SCALA   - SHELL   - SQL   - TERRAFORM   - TYPESCRIPT   - AZURERESOURCEMANAGER   - DOCKER   - KUBERNETES    **默认取值：** 不涉及。 |
   
#### 响应参数
**状态码：200**
表5响应Body参数 
| 参数         | 参数类型                                                                    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|
| result     | [CreateTaskV3Result] object | **参数解释：** 创建代码检查任务的结果。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| httpStatus | String                                                                  | **参数解释：** HTTP响应状态。 **取值范围：** - OK：请求已成功处理，服务器返回了请求的资源或操作结果。   - ACCEPTED：请求已被服务器接受，但处理尚未完成（通常用于异步操作）。   - INTERNAL_SERVER_ERROR：接口内部异常。   - BAD_REQUEST：参数校验异常。    |
| status     | String                                                                  | **参数解释：** 接口响应状态。 **取值范围：** - success：接口响应成功。   - error：接口响应失败。                                                                                                                                                                                                                                                                                                                                         |
   
 表6CreateTaskV3Result 
| 参数                     | 参数类型                                                                                            | 描述                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|
| id                     | String                                                                                          | **参数解释：** 任务ID，即新建检查任务接口的返回值，每个代码检查任务及其下的分支任务、通过API创建的增量任务都有唯一的任务ID。即[查询任务列表](https://support.huaweicloud.com/api-codecheck/ShowTasksList.html)接口响应中的id字段。 **取值范围：** 不涉及。                                                                                                                                                       |
| checkParamList         | Array of [CustomParameter] objects                     | **参数解释：** 自定义参数列表。                                                                                                                                                                                                                                                                                                                                                                              |
| criterionSets          | Array of [ConfigTemplateRuleSetInfo] objects | **参数解释：** 规则集列表，该字段一般返回空数组\[\]。                                                                                                                                                                                                                                                                                                                                                                 |
| customParams           | Array of [CustomParameter] objects                     | **参数解释：** 自定义参数列表，该字段一般返回空数组\[\]。                                                                                                                                                                                                                                                                                                                                                               |
| enableSubModule        | Boolean                                                                                         | **参数解释：** 是否支撑子模块。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                               |
| modelSets              | Array of strings                                                                                | **参数解释：** 模型集列表，该字段一般返回空数组\[\]。                                                                                                                                                                                                                                                                                                                                                                 |
| reviewData             | Array of strings                                                                                | **参数解释：** 门禁配置，该字段一般返回空数组\[\]。                                                                                                                                                                                                                                                                                                                                                                  |
| ruleSets               | Array of strings                                                                                | **参数解释：** 规则集配置，该字段一般返回空数组\[\]。                                                                                                                                                                                                                                                                                                                                                                 |
| smLevelSwitch          | Boolean                                                                                         | **参数解释：** 是否支持国密。 **取值范围：** - true：打开国密。   - false：关闭国密。    |
| taskIds                | Array                                                                                           | **参数解释：** 任务ID列表，该字段一般返回空数组\[\]。                                                                                                                                                                                                                                                                                                                                                                |
| versionUpdateDelayDays | Array                                                                                           | **参数解释：** 版本升级缓冲期，该字段一般返回空数组\[\]。                                                                                                                                                                                                                                                                                                                                                               |
   
 表7ConfigTemplateRuleSetInfo 
| 参数        | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|
| language  | String | **参数解释：** 语言类型。 **取值范围：** 自定义语言或者系统内置语言，当前支持的系统内置语言有： - ARKTS   - C#   - CANGJIE   - C++   - CSS   - GO   - HTML   - JAVA   - JAVASCRIPT   - KOTLIN   - LUA   - PHP   - PYTHON   - RUST   - SCALA   - SHELL   - SQL   - TERRAFORM   - TYPESCRIPT   - AZURERESOURCEMANAGER   - DOCKER   - KUBERNETES    |
| ruleSetId | String | **参数解释：** 规则集ID。 **取值范围：** 长度为\[1\~32\]个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
 表8CustomParameter 
| 参数        | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|
| isPrivate | Boolean | **参数解释：** 是否是私密参数。 **取值范围：** - true：私密参数。   - false：非私密参数。    |
| key       | String  | **参数解释：** 自定义参数的key。 **取值范围：** 长度为\[1\~128\]个字符。                                                                                                                                                                                                                                                                                  |
| value     | String  | **参数解释：** 自定义参数的Value。 **取值范围：** 长度为\[1\~8192\]个字符。                                                                                                                                                                                                                                                                               |
   
**状态码：400**
表9响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                             |
|:---|:---|:---|
| error_code | String | **参数解释：** 错误码。 **取值范围：** 不涉及。  |
| error_msg  | String | **参数解释：** 错误描述。 **取值范围：** 不涉及。 |
   
**状态码：401**
表10响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                             |
|:---|:---|:---|
| error_code | String | **参数解释：** 错误码。 **取值范围：** 不涉及。  |
| error_msg  | String | **参数解释：** 错误描述。 **取值范围：** 不涉及。 |
   
#### 请求示例
在项目ID为8c7c74775f4f496596e4a39d34b209c3和项目名为projectName的项目下新建任务名为CppWebHookTest和分支为master和检查语言为C++的CodeArtsRepo仓库类型的代码检查任务。
```
POST https://{endpoint}/v3/task
{
  "repo_url" : "git@codehub.devcloud.example.com:8c7c74775f4f496596e4a39d34b209c3/CppWebHookTest.git",
  "branch" : "master",
  "name" : "CppWebHookTest",
  "config_template" : {
    "branch" : "master",
    "repo_type" : "DevCloud",
    "rule_sets" : [ {
      "language" : "C++"
    } ],
    "project_id" : "8c7c74775f4f496596e4a39d34b209c3",
    "project_name" : "projectName"
  },
  "project_id" : "8c7c74775f4f496596e4a39d34b209c3",
  "project_name" : "projectName"
}
```
#### 响应示例
**状态码：200**
请求成功!
```
{
  "httpStatus" : "OK",
  "result" : {
    "checkParamList" : [ ],
    "criterionSets" : [ ],
    "customParams" : [ ],
    "id" : "8df8d58f832a408f88e4aebea0ff6fc5",
    "modelSets" : [ ],
    "reviewData" : [ ],
    "ruleSets" : [ ],
    "taskIds" : [ ],
    "versionUpdateDelayDays" : [ ]
  },
  "status" : "success"
}
```
**状态码：400**
请求异常。
```
{
  "error_code" : "CC.xxxxxxxx.400",
  "error_msg" : "请求参数校验失败,请检查请求参数是否正确"
}
```
**状态码：401**
权限不足。
```
{
  "error_code" : "CC.00000003",
  "error_msg" : "认证信息过期"
}
```
#### 状态码
| 状态码 | 描述    |
|:---|:---|
| 200 | 请求成功! |
| 400 | 请求异常。 |
| 401 | 权限不足。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-codecheck/ErrorCode.html)。
