
# 创建自动作业模板
#### 功能介绍
创建自动作业模板
#### URI
POST /v1/{project_id}/eihealth-projects/{eihealth_project_id}/auto-jobs
表1路径参数 
| 参数                  | 是否必选 | 参数类型   | 描述                                                                                                                                                                                    |
|:---|:---|:---|:---|
| eihealth_project_id | 是    | String | 平台项目ID，您可以在平台单击所需的项目名称，进入项目设置页面查看。 最小长度：**1** 最大长度：**128**                                                              |
| project_id          | 是    | String | 华为云项目ID，您可以从[获取项目ID](https://support.huaweicloud.com/api-eihealth/eihealth_33_0044.html)中获取。 最小长度：**1** 最大长度：**128** |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                         |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。Token认证就是在调用API的时候将Token加到请求消息头，从而通过身份认证，获得操作API的权限，[获取Token](https://support.huaweicloud.com/api-eihealth/eihealth_33_0010.html)接口响应消息头中X-Subject-Token的值即为Token。 |
   
表3请求Body参数 
| 参数                    | 是否必选 | 参数类型                                                                              | 描述                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| name                  | 是    | String                                                                            | 自动作业的名称，取值范围：\[1,63\]，允许大小写字母、数字、以及特殊字符中划线(-) 最小长度：**1** 最大长度：**63**                                                                                                                                                                                                                          |
| description           | 否    | String                                                                            | 自动作业的描述,取值范围：输入字符最大长度为255 最大长度：**255**                                                                                                                                                                                                                                                                                           |
| database_id           | 是    | String                                                                            | 自动作业依赖的数据库ID 最小长度：**1** 最大长度：**128**                                                                                                                                                                                                                                                           |
| database_column       | 是    | String                                                                            | 自动作业状态更新列 最小长度：**1** 最大长度：**55**                                                                                                                                                                                                                                                                 |
| database_column_type  | 否    | String                                                                            | 自动作业状态更新列的类型，不填默认为EXISTED                                                                                                                                                                                                                                                                                                                                       |
| clean_database_column | 否    | Boolean                                                                           | 是否清空作业状态更新列 缺省值：**true**                                                                                                                                                                                                                                                                                                         |
| database_trigger      | 否    | Array of [DatabaseTriggerDto] objects | 自动作业触发器 数组长度：**0 - 10**                                                                                                                                                                                                                                                                                                        |
| tool_id               | 是    | String                                                                            | 作业依赖的组件id，组件当前仅支持流程，取值范围\[1,135\]，支持大小写字母和数字。目前支持两种格式，特殊id：{流程名称}::{流程版本}::{源项目名称}；正常id：流程id 最小长度：**1** 最大长度：**135**                                                                                                                                                                           |
| tool_type             | 是    | String                                                                            | 作业依赖的组件类型，仅支持填写workflow                                                                                                                                                                                                                                                                                                                                         |
| job_name              | 是    | String                                                                            | 作业的名称，取值范围：\[1,63\]，允许大小写字母、数字、以及特殊字符中划线(-) 最小长度：**1** 最大长度：**63**                                                                                                                                                                                                                               |
| job_name_type         | 是    | String                                                                            | 作业的名称类型 枚举值： - **DATABASE**  - **MANUAL**  - **AUTO**   |
| job_description       | 否    | String                                                                            | 作业的描述,取值范围：输入字符最大长度为255 最小长度：**0** 最大长度：**255**                                                                                                                                                                                                                                                 |
| labels                | 否    | Array of strings                                                                  | 作业标签，取值范围\[0,5\]，单个标签最大长度32字符，仅仅包含小写字母或数字或大写字母 最小长度：**1** 最大长度：**32** 数组长度：**0 - 5**                                                                                                                                                                           |
| priority              | 否    | Integer                                                                           | 作业的优先级,取值范围\[0,9\]，0最低，默认数值0 最小值：**0** 最大值：**9**                                                                                                                                                                                                                                                |
| timeout               | 否    | Integer                                                                           | 作业执行超时时长，取值范围: \[1, 144000\]，单位：分钟，默认数值1440 最小值：**1** 最大值：**144000**                                                                                                                                                                                                                             |
| output_dir            | 否    | String                                                                            | 作业结果存储目录，不指定则在workflow的工作目录下生产job同名子目录，指定则以指定路径为准;输出路径必须以斜杠（/）开头且不能以斜杠（/）结尾，不能包含两个以上相邻的斜杠（/），不能包含以下特殊字符：\\ : ; \* ? \< " \> \| 。其中单个文件夹名称不能以中划线（-）开头，不能以英文句号（.）或斜杠（/）或空格开头或结尾 最小长度：**0** 最大长度：**128**                                                                                          |
| output_dir_type       | 否    | String                                                                            | 输出路径的类型                                                                                                                                                                                                                                                                                                                                                         |
| node_labels           | 否    | Array of strings                                                                  | 节点标签 取值范围\[0,1\]，单个标签最大长度63字符 最小长度：**1** 最大长度：**63** 数组长度：**0 - 1**                                                                                                                                                                                            |
| io_acc_id             | 否    | String                                                                            | 自动作业使用的IO加速实例id，不填表示不使用 最小长度：**0** 最大长度：**128**                                                                                                                                                                                                                                                   |
| tasks                 | 否    | Array of [JobTaskDto] objects                 | 自动作业依赖的流程信息 数组长度：**0 - 64**                                                                                                                                                                                                                                                                                                     |
   
 表4DatabaseTriggerDto 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| name       | 是    | String | 触发器的列名，取值范围：\[1,63\] 最小长度：**1** 最大长度：**63**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| judge_mode | 是    | String | 触发器的判断模式 枚举值： - **gte**  - **lte**  - **gt**  - **lt**  - **like**  - **notlike**  - **equal**  - **notequal**   |
| value      | 是    | String | 触发器的取值，取值范围：\[1,128\] 最小长度：**1** 最大长度：**128**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   
 表5JobTaskDto 
| 参数          | 是否必选 | 参数类型                                                                          | 描述                                                                                                                                                                         |
|:---|:---|:---|:---|
| task_name   | 是    | String                                                                        | 子任务实际名称，取值范围\[1,32\]，只能以大小写字母开头，由大小写字母、数字、中划线（-）、下划线（_）组成，以大小写字符或数字结尾。需要和已有子任务的名称一致。 最小长度：**1** 最大长度：**32** |
| inputs      | 否    | Array of [TaskParameterDto] objects | 任务的输入参数信息 数组长度：**0 - 128**                                                                                                                  |
| resources   | 否    | [TaskResourceDto] object             | 应用申请资源                                                                                                                                                                     |
| io_acc_type | 否    | String                                                                        | 子任务使用的IO加速实例类型，不填表示不使用； 最小长度：**0** 最大长度：**128**                                                            |
   
 表6TaskParameterDto 
| 参数     | 是否必选 | 参数类型             | 描述                                                                                                                                                                 |
|:---|:---|:---|:---|
| name   | 是    | String           | 子任务的参数名称，长度为\[1,32\]，以小写字母开头，允许出现中划线(-)、小写字母和数字，且必须以小写字母或数字结尾。需要和已有应用的参数名称一致。 最小长度：**1** 最大长度：**32** |
| source | 否    | String           | 子任务的参数类型，不填默认MANUAL                                                                                                                                                |
| values | 否    | Array of strings | 子任务的参数数值，根据参数类型进行合法性校验 最小长度：**0** 最大长度：**2048** 数组长度：**0 - 128**    |
   
 表7TaskResourceDto 
| 参数       | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| cpu      | 否    | String | cpu申请使用量，取值范围\[0.1-128\]，单位C，支持一位小数。对于应用，不填默认1C；对于流程和作业，不填默认使用前一级的配置，填值会覆盖更新。覆盖关系：作业-\>流程-\>应用 最小长度：**0** 最大长度：**24**                    |
| cpu_type | 否    | String | cpu架构类型，不填默认X86 最小长度：**0** 最大长度：**24**                                                                                                     |
| memory   | 否    | String | 内存申请使用量，取值范围\[0.1-3072\]，单位G，支持一位小数。对于应用，不填默认1G；对于流程和作业，不填默认使用前一级的配置，填值会覆盖更新。覆盖关系：作业-\>流程-\>应用 最小长度：**0** 最大长度：**24**                     |
| gpu_type | 否    | String | gpu架构类型，取值范围 ' '\|GPU\|Snt9\|D310。对于流程和作业，不填默认使用前一级的配置，填值会覆盖更新。覆盖关系：作业-\>流程-\>应用 最小长度：**0** 最大长度：**24**                                     |
| gpu      | 否    | String | gpu申请使用量，取值范围\[0-16\]，仅支持整数，Snt9有特殊约束，申请数量需要是0,1,2,4,8。对于应用，不填默认0；对于流程和作业，不填默认使用前一级的配置，填值会覆盖更新。覆盖关系：作业-\>流程-\>应用 最小长度：**0** 最大长度：**24** |
   
#### 响应参数
**状态码： 201**
表8响应Body参数 
| 参数                  | 参数类型                                                                   | 描述        |
|:---|:---|:---|
| id                  | String                                                                 | 作业id      |
| max_platform_flavor | [TaskResourceDto] object     | 平台节点最大规格  |
| app_infos           | Array of [AppFilterDto] objects | 筛选后的app集合 |
| job_info            | [JobFilterDto] object           | 筛选后的job   |
   
 表9AppFilterDto 
| 参数              | 参数类型                                                               | 描述     |
|:---|:---|:---|
| app_id          | String                                                             | 应用id   |
| app_name        | String                                                             | 应用名称   |
| app_version     | String                                                             | 应用版本   |
| app_resource    | [TaskResourceDto] object | 应用资源   |
| app_node_labels | Array of strings                                                   | 计算节点标签 |
   
 表10TaskResourceDto 
| 参数       | 参数类型   | 描述                                                                                                                                                                                                      |
|:---|:---|:---|
| cpu      | String | cpu申请使用量，取值范围\[0.1-128\]，单位C，支持一位小数。对于应用，不填默认1C；对于流程和作业，不填默认使用前一级的配置，填值会覆盖更新。覆盖关系：作业-\>流程-\>应用 最小长度：**0** 最大长度：**24**                  |
| cpu_type | String | cpu架构类型，不填默认X86 最小长度：**0** 最大长度：**24**                                                                                                   |
| memory   | String | 内存申请使用量，取值范围\[0.1-3072\]，单位G，支持一位小数。对于应用，不填默认1G；对于流程和作业，不填默认使用前一级的配置，填值会覆盖更新。覆盖关系：作业-\>流程-\>应用 最小长度：**0** 最大长度：**24**                    |
| gpu_type | String | gpu架构类型，取值范围 ' '\|GPU\|Snt9\|D310。对于流程和作业，不填默认使用前一级的配置，填值会覆盖更新。覆盖关系：作业-\>流程-\>应用 最小长度：**0** 最大长度：**24**                                |
| gpu      | String | gpu申请使用量，取值范围\[0-16\]，仅支持整数，Snt9有特殊约束，申请数量需要是0,1,2,4,8。对于应用，不填默认0；对于流程和作业，不填默认使用前一级的配置，填值会覆盖更新。覆盖关系：作业-\>流程-\>应用 最小长度：**0** 最大长度：**24** |
   
 表11JobFilterDto 
| 参数              | 参数类型             | 描述     |
|:---|:---|:---|
| job_name        | String           | 作业名称   |
| job_node_labels | Array of strings | 计算节点标签 |
   
#### 请求示例
创建自动作业，自动作业名称为demo-auto-job，使用如下数据库，使用数据库列为user_name。
```
https://eihealth.cn-north-4.myhuaweicloud.com/v1/{project_id}/eihealth-projects/{eihealth_project_id}/auto-jobs
{
  "name" : "demo-auto-job",
  "description" : "description",
  "database_id" : "2adc4b5fbeeb4a518f177167074a5fb2",
  "database_column" : "user_name",
  "database_column_type" : "NEW",
  "clean_database_column" : false,
  "database_trigger" : [ {
    "name" : "status",
    "judge_mode" : "gte",
    "value" : "100"
  } ],
  "tool_id" : "baabcb56-5bb6-11eb-8a0d-fa163e3ddba1",
  "tool_type" : "workflow",
  "job_name" : "demo-job",
  "job_name_type" : "AUTO",
  "job_description" : "description",
  "labels" : [ "labelA", "labelB" ],
  "priority" : 0,
  "timeout" : 1440,
  "output_dir" : "/job",
  "output_dir_type" : "MANUAL",
  "node_labels" : [ "health.node" ],
  "io_acc_id" : "baabcb56-5bb6-11eb-8a0d-fa163e3ddba1",
  "tasks" : [ {
    "task_name" : "app1-1",
    "inputs" : [ {
      "name" : "dir-parameter",
      "source" : "MANUAL",
      "values" : [ "/test" ]
    } ],
    "resources" : {
      "cpu" : "1C",
      "cpu_type" : "X86",
      "memory" : "1G",
      "gpu_type" : "GPU",
      "gpu" : "0"
    },
    "io_acc_type" : "SFS"
  } ]
}
```
#### 响应示例
**状态码： 201**
CREATED
```
{
  "id" : "baabcb56-5bb6-11eb-8a0d-fa163e3ddba1",
  "app_infos" : [ {
    "app_id" : "baabcb56-5bb6-11eb-8a0d-fa163e3ddba1",
    "app_name" : "demo-app",
    "app_version" : "1.0.0",
    "app_node_labels" : [ "health.node" ]
  } ],
  "job_info" : {
    "job_name" : "demo-job",
    "job_node_labels" : [ "health.node" ]
  }
}
```
#### 状态码
| 状态码 | 描述      |
|:---|:---|
| 201 | CREATED |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-eihealth/ErrorCode.html)。
