# Querying Job Resource Specifications

#### Function

This API is used to query the resource specifications of a specified job.

You must specify the resource specifications when creating a training job or an inference job.

#### URI

GET /v1/{project_id}/job/resource-specs

Table 1 describes the required parameters.

Table 1 Parameters
Parameter | Mandatory | Type | Description
--- | --- | --- | ---
project_id | Yes | String | Project ID. For details about how to obtain the project ID, see Obtaining a Project ID.

Table 2 Parameters
Parameter | Mandatory | Type | Description
--- | --- | --- | ---
job_type | No | String | Job type. The value can be train or inference. This parameter is not required for querying the specifications of ExeML resources.
engine_id | No | Long | Engine ID of a job. Default value: 0 This parameter is not required for querying the specifications of ExeML resources.

project_type

No

Integer

Project type. Default value: 0

- 0: non-ExeML project
- 1: ExeML job for image classification
- 2: ExeML job for object detection
- 3: ExeML job for predictive analytics

#### Request Body

None

#### Response Body

Table 3 describes the response parameters.

Table 3 Parameters
Parameter | Type | Description
--- | --- | ---
is_success | Boolean | Whether the request is successful
error_message | String | Error message of a failed API call. This parameter is not included when the API call succeeds.
error_code | String | Error code of a failed API call. For details, see Error Codes. This parameter is not included when the API call succeeds.
spec_total_count | Integer | Total number of job resource specifications
specs | specs array | List of resource specifications attributes. For details, see Table 4.

Table 4 specs parameters
Parameter | Type | Description
--- | --- | ---
spec_id | Long | ID of the resource specifications
core | String | Number of cores of the resource specifications
cpu | String | CPU memory of the resource specifications
gpu_num | Integer | Number of GPUs of the resource specifications
gpu_type | String | GPU type of the resource specifications
spec_code | String | Type of the resource specifications
max_num | Integer | Maximum number of nodes that can be selected
unit_num | Integer | Number of pricing units
storage | String | SSD size of a resource flavor
interface_type | Integer | Interface type
no_resource | Boolean | Whether the resources of the selected specifications are sufficient. True indicates that no resource is available.

#### Samples

The following shows how to query the resource specifications of a training job.

- Sample request

      GET    https://endpoint/v1/{project_id}/job/resource-specs?job_type=train

- Successful sample response

      {
          "specs": [

              {
                  "spec_id": 2,
                  "core": "2",
                  "cpu": "8",
                  "gpu_num": 0,
                  "gpu_type": "",
                  "spec_code": "modelarts.vm.cpu.2u",
                  "unit_num": 1,
                  "max_num": 2,
                  "storage": "",
                  "interface_type": 1,
                  "no_resource": false
              },
              {
                  "spec_id": 4,
                  "core": "8",
                  "cpu": "64",
                  "gpu_num": 1,
                  "gpu_type": "v100",
                  "spec_code":"modelarts.vm.gpu.v100",
                  "unit_num": 1,
                  "max_num": 4,
                  "storage": "",
                  "interface_type": 1,
                  "no_resource": false
              }
          ],
          "is_success": true,
          "spec_total_count": 2
      }

- Failed sample response

      {
          "is_success": false,
          "error_message": "Error string",
          "error_code": "ModelArts.0105"
      }

#### Status Code

For details about the status code, see Table 1.

#### Error Codes

See Error Codes.

Parent topic: Resource and Engine Specifications