# 获取训练作业支持的AI预置框架 - ShowTrainingJobEngines
#### 功能介绍
获取训练作业支持的AI预置框架接口用于查询当前系统中支持的AI预置框架列表。
该接口适用于以下场景：当用户需要了解系统中可用的AI预置框架，以便在创建训练作业时选择合适的框架时，可以通过此接口获取支持的框架列表。使用该接口的前提条件是用户具有相应的操作权限。查询成功后，用户将获得系统中所有支持的AI预置框架的详细信息。若用户无权限操作或查询失败，接口将返回相应的错误信息。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/ModelArts/doc?api=ShowTrainingJobEngines)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-modelarts/modelarts_03_0138.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                           | 访问级别 | 资源类型（\*为必须） | 条件键 | 别名                     | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | modelarts:trainJob:getEngines | Read | trainJob \* | -   | modelarts:trainJob:get | -      |
     
  
 
#### URI
GET /v2/{project_id}/training-job-engines
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释** ：用户项目ID。获取方法请参见[获取项目ID和名称](https://support.huaweicloud.com/api-modelarts/modelarts_03_0147.html)。 **约束限制**：1 - 64字符，字母、数字和中划线。 **取值范围**：不涉及。 **默认取值**：不涉及。 |
   
#### 请求参数
无
#### 响应参数
**状态码：200**
表2响应Body参数 
| 参数    | 参数类型                                                                                                 | 描述                                                                                                              |
|:---|:---|:---|
| total | Integer                                                                                              | **参数解释**：训练作业引擎规格总数。 **取值范围**：不涉及。 |
| items | Array of [items] objects | **参数解释**：引擎规格参数列表。                                                                                              |
   
 表3items 
| 参数             | 参数类型                                                                                                 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|
| engine_id      | String                                                                                               | **参数解释**：引擎规格的ID。如"caffe-1.0.0-python2.7"。 **取值范围**：不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| engine_name    | String                                                                                               | **参数解释**：引擎规格的名称。如"Caffe"。 **取值范围**：不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| engine_version | String                                                                                               | **参数解释**：引擎规格的版本。对一个引擎名称，有多个版本的引擎，如使用python2.7的"Caffe-1.0.0-python2.7"等。 **取值范围**：不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| v1_compatible  | Boolean                                                                                              | **参数解释**：是否为v1兼容模式。 **取值范围**： - true：v1兼容   - false：v1不兼容    |
| run_user       | String                                                                                               | **参数解释**：引擎默认启动用户uid。 **取值范围**：不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| image_info     | [image_info] object | **参数解释**：引擎具体信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   
 表4image_info 
| 参数            | 参数类型   | 描述                                                                                                                      |
|:---|:---|:---|
| cpu_image_url | String | **参数解释**：cpu规格下对应镜像。 **取值范围**：不涉及。         |
| gpu_image_url | String | **参数解释**：gpu或者Ascend规格下对应镜像。 **取值范围**：不涉及。 |
| image_version | String | **参数解释**：镜像版本。 **取值范围**：不涉及。               |
   
#### 请求示例
如下以查询北京四训练作业所有的公共引擎规格为例（引擎过多，只显示部分）。
```
GET https://endpoint/v2/{project_id}/training-job-engines
```
#### 响应示例
**状态码：200**
```
{
  "total" : 20,
  "items" : [ {
    "engine_id" : "caffe-1.0.0-python2.7",
    "engine_name" : "Caffe",
    "engine_version" : "caffe-1.0.0-python2.7",
    "v1_compatible" : true,
    "run_user" : "",
    "image_info" : {
      "cpu_image_url" : "modelarts-job-dev-image/caffe1-cpu-cp27:1.0.0",
      "gpu_image_url" : "modelarts-job-dev-image/caffe1-gpu-cuda8-cp27:1.0.0",
      "image_version" : "3.1.0"
    }
  }, {
    "engine_id" : "horovod-cp36-tf-1.16.2",
    "engine_name" : "Horovod",
    "engine_version" : "0.16.2-TF-1.13.1-python3.6",
    "v1_compatible" : true,
    "run_user" : "",
    "image_info" : {
      "cpu_image_url" : "modelarts-job-dev-image/tensorflow-gpu-cuda10-cp36-horovod0162:1.13.1",
      "gpu_image_url" : "modelarts-job-dev-image/tensorflow-gpu-cuda10-cp36-horovod0162:1.13.1",
      "image_version" : "3.2.1"
    }
  }, {
    "engine_id" : "horovod_0.20.0-tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64",
    "engine_name" : "Horovod",
    "engine_version" : "horovod_0.20.0-tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64",
    "v1_compatible" : false,
    "run_user" : "1102",
    "image_info" : {
      "cpu_image_url" : "aip/horovod_tensorflow:train",
      "gpu_image_url" : "aip/horovod_tensorflow:train",
      "image_version" : "horovod_0.20.0-tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64-20210912152543-1e0838d"
    }
  }, {
    "engine_id" : "tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64",
    "engine_name" : "TensorFlow",
    "engine_version" : "tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64",
    "v1_compatible" : false,
    "run_user" : "1102",
    "image_info" : {
      "cpu_image_url" : "aip/tensorflow_2_1:train",
      "gpu_image_url" : "aip/tensorflow_2_1:train",
      "image_version" : "tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64-20210912152543-1e0838d"
    }
  }, {
    "engine_id" : "xgboost-sklearn-python3.6",
    "engine_name" : "XGBoost-Sklearn",
    "engine_version" : "XGBoost-0.80-Sklearn-0.18.1-python3.6",
    "v1_compatible" : true,
    "run_user" : "",
    "image_info" : {
      "cpu_image_url" : "modelarts-job-dev-image/python-train-py36:secure",
      "gpu_image_url" : "",
      "image_version" : "2.0.10-20211101113705"
    }
  } ]
}
```
#### 状态码
| 状态码 | 描述 |
|:---|:---|
| 200 | ok |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-modelarts/modelarts_03_0095.html)。
