{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "batch.core.windows.net",
  "info": {
    "description": "A client for issuing REST requests to the Azure Batch service.",
    "title": "BatchService",
    "version": "2017-06-01.5.1",
    "x-apisguru-categories": [
      "cloud"
    ],
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png"
    },
    "x-ms-code-generation-settings": {
      "name": "BatchServiceClient"
    },
    "x-origin": [
      {
        "format": "swagger",
        "url": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/batch/data-plane/Microsoft.Batch/stable/2017-06-01.5.1/BatchService.json",
        "version": "2.0"
      }
    ],
    "x-preferred": false,
    "x-providerName": "windows.net",
    "x-serviceName": "batch-BatchService"
  },
  "consumes": [
    "application/json; odata=minimalmetadata"
  ],
  "produces": [
    "application/json"
  ],
  "parameters": {
    "ApiVersionParameter": {
      "description": "Client API Version.",
      "in": "query",
      "name": "api-version",
      "required": true,
      "type": "string"
    }
  },
  "paths": {
    "/applications": {
      "get": {
        "description": "This operation returns only applications and versions that are available for use on compute nodes; that is, that can be used in an application package reference. For administrator information about applications and versions that are not yet available to compute nodes, use the Azure portal or the Azure Resource Manager API.",
        "operationId": "Application_List",
        "parameters": [
          {
            "default": 1000,
            "description": "The maximum number of items to return in the response. A maximum of 1000 applications can be returned.",
            "format": "int32",
            "in": "query",
            "maximum": 1000,
            "minimum": 1,
            "name": "maxresults",
            "required": false,
            "type": "integer",
            "x-ms-client-name": "maxResults",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the list of applications.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/ApplicationListResult"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Lists all of the applications available in the specified account.",
        "tags": [
          "Applications"
        ],
        "x-ms-pageable": {
          "nextLinkName": "odata.nextLink"
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/applications/{applicationId}": {
      "get": {
        "description": "This operation returns only applications and versions that are available for use on compute nodes; that is, that can be used in an application package reference. For administrator information about applications and versions that are not yet available to compute nodes, use the Azure portal or the Azure Resource Manager API.",
        "operationId": "Application_Get",
        "parameters": [
          {
            "description": "The ID of the application.",
            "in": "path",
            "name": "applicationId",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the application.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/ApplicationSummary"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Gets information about the specified application.",
        "tags": [
          "Applications"
        ],
        "x-ms-request-id": "request-id"
      }
    },
    "/certificates": {
      "get": {
        "operationId": "Certificate_List",
        "parameters": [
          {
            "description": "An OData $filter clause.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An OData $select clause.",
            "in": "query",
            "name": "$select",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 1000,
            "description": "The maximum number of items to return in the response. A maximum of 1000 certificates can be returned.",
            "format": "int32",
            "in": "query",
            "maximum": 1000,
            "minimum": 1,
            "name": "maxresults",
            "required": false,
            "type": "integer",
            "x-ms-client-name": "maxResults",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the list of certificates.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/CertificateListResult"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Lists all of the certificates that have been added to the specified account.",
        "tags": [
          "Certificates"
        ],
        "x-ms-examples": {
          "Certificate list": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "deleteCertificateError": {
                        "code": "PoolsReferencingCertificate",
                        "message": "The specified certificate is being used by the below mentioned pool(s)",
                        "values": [
                          {
                            "name": "Pools",
                            "value": "mypool1"
                          }
                        ]
                      },
                      "previousState": "deleting",
                      "previousStateTransitionTime": "2014-07-31T21:11:58.236Z",
                      "publicData": "#####...",
                      "state": "deleteFailed",
                      "stateTransitionTime": "2014-07-31T21:12:58.236Z",
                      "thumbprint": "0123456789abcdef0123456789abcdef01234567",
                      "thumbprintAlgorithm": "sha1",
                      "url": "https://account.region.batch.azure.com/certificates(thumbprintAlgorithm=sha1,thumbprint=0123456789abcdef0123456789abcdef01234567)"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "odata.nextLink"
        },
        "x-ms-request-id": "request-id"
      },
      "post": {
        "operationId": "Certificate_Add",
        "parameters": [
          {
            "description": "The certificate to be added.",
            "in": "body",
            "name": "certificate",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CertificateAddParameter"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "201": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Adds a certificate to the specified account.",
        "tags": [
          "Certificates"
        ],
        "x-ms-examples": {
          "Certificate add": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "certificate": {
                "certificateFormat": "pfx",
                "data": "#####...",
                "password": "certpassword",
                "thumbprint": "0123456789abcdef0123456789abcdef01234567",
                "thumbprintAlgorithm": "sha1"
              },
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "201": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/certificates(thumbprintAlgorithm={thumbprintAlgorithm},thumbprint={thumbprint})": {
      "delete": {
        "description": "You cannot delete a certificate if a resource (pool or compute node) is using it. Before you can delete a certificate, you must therefore make sure that the certificate is not associated with any existing pools, the certificate is not installed on any compute nodes (even if you remove a certificate from a pool, it is not removed from existing compute nodes in that pool until they restart), and no running tasks depend on the certificate. If you try to delete a certificate that is in use, the deletion fails. The certificate status changes to deleteFailed. You can use Cancel Delete Certificate to set the status back to active if you decide that you want to continue using the certificate.",
        "operationId": "Certificate_Delete",
        "parameters": [
          {
            "description": "The algorithm used to derive the thumbprint parameter. This must be sha1.",
            "in": "path",
            "name": "thumbprintAlgorithm",
            "required": true,
            "type": "string"
          },
          {
            "description": "The thumbprint of the certificate to be deleted.",
            "in": "path",
            "name": "thumbprint",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "202": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Deletes a certificate from the specified account.",
        "tags": [
          "Certificates"
        ],
        "x-ms-examples": {
          "Certificate delete": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "thumbprint": "0123456789abcdef0123456789abcdef01234567",
              "thumbprintAlgorithm": "sha1"
            },
            "responses": {
              "202": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      },
      "get": {
        "description": "Gets information about the specified certificate.",
        "operationId": "Certificate_Get",
        "parameters": [
          {
            "description": "The algorithm used to derive the thumbprint parameter. This must be sha1.",
            "in": "path",
            "name": "thumbprintAlgorithm",
            "required": true,
            "type": "string"
          },
          {
            "description": "The thumbprint of the certificate to get.",
            "in": "path",
            "name": "thumbprint",
            "required": true,
            "type": "string"
          },
          {
            "description": "An OData $select clause.",
            "in": "query",
            "name": "$select",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the certificate.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/Certificate"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "tags": [
          "Certificates"
        ],
        "x-ms-examples": {
          "Certificate get": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "thumbprint": "0123456789abcdef0123456789abcdef01234567",
              "thumbprintAlgorithm": "sha1"
            },
            "responses": {
              "200": {
                "body": {
                  "deleteCertificateError": {
                    "code": "PoolsReferencingCertificate",
                    "message": "The specified certificate is being used by the below mentioned pool(s)",
                    "values": [
                      {
                        "name": "Pools",
                        "value": "mypool1"
                      }
                    ]
                  },
                  "previousState": "deleting",
                  "previousStateTransitionTime": "2014-07-31T21:11:58.236Z",
                  "publicData": "#####...",
                  "state": "deleteFailed",
                  "stateTransitionTime": "2014-07-31T21:12:58.236Z",
                  "thumbprint": "0123456789abcdef0123456789abcdef01234567",
                  "thumbprintAlgorithm": "sha1",
                  "url": "https://account.region.batch.azure.com/certificates(thumbprintAlgorithm=sha1,thumbprint=0123456789abcdef0123456789abcdef01234567)"
                }
              }
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/certificates(thumbprintAlgorithm={thumbprintAlgorithm},thumbprint={thumbprint})/canceldelete": {
      "post": {
        "description": "If you try to delete a certificate that is being used by a pool or compute node, the status of the certificate changes to deleteFailed. If you decide that you want to continue using the certificate, you can use this operation to set the status of the certificate back to active. If you intend to delete the certificate, you do not need to run this operation after the deletion failed. You must make sure that the certificate is not being used by any resources, and then you can try again to delete the certificate.",
        "operationId": "Certificate_CancelDeletion",
        "parameters": [
          {
            "description": "The algorithm used to derive the thumbprint parameter. This must be sha1.",
            "in": "path",
            "name": "thumbprintAlgorithm",
            "required": true,
            "type": "string"
          },
          {
            "description": "The thumbprint of the certificate being deleted.",
            "in": "path",
            "name": "thumbprint",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "204": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Cancels a failed deletion of a certificate from the specified account.",
        "tags": [
          "Certificates"
        ],
        "x-ms-examples": {
          "Certificate cancel delete": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "thumbprint": "0123456789abcdef0123456789abcdef01234567",
              "thumbprintAlgorithm": "sha1"
            },
            "responses": {
              "204": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/jobs": {
      "get": {
        "operationId": "Job_List",
        "parameters": [
          {
            "description": "An OData $filter clause.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An OData $select clause.",
            "in": "query",
            "name": "$select",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An OData $expand clause.",
            "in": "query",
            "name": "$expand",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 1000,
            "description": "The maximum number of items to return in the response. A maximum of 1000 jobs can be returned.",
            "format": "int32",
            "in": "query",
            "maximum": 1000,
            "minimum": 1,
            "name": "maxresults",
            "required": false,
            "type": "integer",
            "x-ms-client-name": "maxResults",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the list of jobs.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/CloudJobListResult"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Lists all of the jobs in the specified account.",
        "tags": [
          "Jobs"
        ],
        "x-ms-examples": {
          "Job list": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "constraints": {
                        "maxTaskRetryCount": 0,
                        "maxWallClockTime": "P10675199DT2H48M5.4775807S"
                      },
                      "creationTime": "2016-11-19T00:05:25.311915Z",
                      "eTag": "0x8D4100FC46D5BF4",
                      "executionInfo": {
                        "poolId": "poolId",
                        "startTime": "2016-11-19T00:05:25.3309105Z"
                      },
                      "id": "jobId",
                      "lastModified": "2016-11-19T00:05:27.2137716Z",
                      "onAllTasksComplete": "noAction",
                      "onTaskFailure": "noAction",
                      "poolInfo": {
                        "poolId": "poolId"
                      },
                      "previousState": "disabled",
                      "previousStateTransitionTime": "2016-11-19T00:05:26.88777Z",
                      "priority": 0,
                      "state": "active",
                      "stateTransitionTime": "2016-11-19T00:05:27.2137716Z",
                      "url": "https://account.region.batch.azure.com/jobs/jobId",
                      "usesTaskDependencies": false
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "odata.nextLink"
        },
        "x-ms-request-id": "request-id"
      },
      "post": {
        "description": "The Batch service supports two ways to control the work done as part of a job. In the first approach, the user specifies a Job Manager task. The Batch service launches this task when it is ready to start the job. The Job Manager task controls all other tasks that run under this job, by using the Task APIs. In the second approach, the user directly controls the execution of tasks under an active job, by using the Task APIs. Also note: when naming jobs, avoid including sensitive information such as user names or secret project names. This information may appear in telemetry logs accessible to Microsoft Support engineers.",
        "operationId": "Job_Add",
        "parameters": [
          {
            "description": "The job to be added.",
            "in": "body",
            "name": "job",
            "required": true,
            "schema": {
              "$ref": "#/definitions/JobAddParameter"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "201": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Adds a job to the specified account.",
        "tags": [
          "Jobs"
        ],
        "x-ms-examples": {
          "Add a basic job": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "job": {
                "id": "jobId",
                "poolInfo": {
                  "poolId": "poolId"
                },
                "priority": 0
              },
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "201": {}
            }
          },
          "Add a complex job": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "job": {
                "constraints": {
                  "maxTaskRetryCount": -1,
                  "maxWallClockTime": "PT1H"
                },
                "id": "jobId",
                "jobManagerTask": {
                  "commandLine": "myprogram.exe",
                  "constraints": {
                    "maxTaskRetryCount": 0,
                    "maxWallClockTime": "PT1H",
                    "retentionTime": "PT1H"
                  },
                  "environmentSettings": [
                    {
                      "name": "myvariable",
                      "value": "myvalue"
                    }
                  ],
                  "id": "taskId",
                  "killJobOnCompletion": false,
                  "resourceFiles": [
                    {
                      "blobSource": "http://mystorage1.blob.core.windows.net/scripts/myprogram.exe?st=2013-08-09T08%3a49%3a37.0000000Z&se=2013-08-10T08%3a49%3a37.0000000Z&sr=c&sp=d&si=YWJjZGTVMZw%3d%3d&sig=%2bSzBm0wi8xECuGkKw97wnkSZ%2f62sxU%2b6Hq6a7qojIVE%3d",
                      "filePath": "myprogram.exe"
                    },
                    {
                      "blobSource": "http://mystorage1.blob.core.windows.net/scripts/test.txt?st=2013-08-09T08%3a49%3a37.0000000Z&se=2013-08-10T08%3a49%3a37.0000000Z&sr=c&sp=d&si=YWJjZGTVMZw%3d%3d&sig=%2bSzBm0wi8xECuGkKw97wnkSZ%2f62sxU%2b6Hq6a7qojIVE%3d",
                      "filePath": "test.txt"
                    }
                  ],
                  "runExclusive": true,
                  "userIdentity": {
                    "autoUser": {
                      "elevationLevel": "admin",
                      "scope": "task"
                    }
                  }
                },
                "metadata": [
                  {
                    "name": "myproperty",
                    "value": "myvalue"
                  }
                ],
                "poolInfo": {
                  "autoPoolSpecification": {
                    "autoPoolIdPrefix": "mypool",
                    "pool": {
                      "certificateReferences": [
                        {
                          "storeLocation": "localMachine",
                          "storeName": "Root",
                          "thumbprint": "0123456789abcdef0123456789abcdef01234567",
                          "thumbprintAlgorithm": "sha1",
                          "visibility": [
                            "task"
                          ]
                        }
                      ],
                      "cloudServiceConfiguration": {
                        "osFamily": "4",
                        "targetOSVersion": "*"
                      },
                      "enableAutoScale": false,
                      "enableInterNodeCommunication": true,
                      "maxTasksPerNode": 2,
                      "metadata": [
                        {
                          "name": "myproperty",
                          "value": "myvalue"
                        }
                      ],
                      "resizeTimeout": "PT15M",
                      "startTask": {
                        "commandLine": "myprogram2.exe",
                        "environmentSettings": [
                          {
                            "name": "myvariable",
                            "value": "myvalue"
                          }
                        ],
                        "maxTaskRetryCount": 2,
                        "resourceFiles": [
                          {
                            "blobSource": "http://mystorage1.blob.core.windows.net/scripts/myprogram2.exe?st=2013-08-09T08%3a49%3a37.0000000Z&se=2013-08-10T08%3a49%3a37.0000000Z&sr=c&sp=d&si=YWJjZGTVMZw%3d%3d&sig= %2bSzBm0wi8xECuGkKw97wnkSZ%2f62sxU%2b6Hq6a7qojIVE%3d",
                            "filePath": "myprogram2.exe"
                          }
                        ],
                        "userIdentity": {
                          "autoUser": {
                            "elevationLevel": "admin",
                            "scope": "task"
                          }
                        },
                        "waitForSuccess": true
                      },
                      "targetDedicatedNodes": 3,
                      "targetLowPriorityNodes": 0,
                      "taskSchedulingPolicy": {
                        "nodeFillType": "spread"
                      },
                      "vmSize": "small"
                    },
                    "poolLifetimeOption": "job"
                  }
                },
                "priority": 100
              },
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "201": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/jobs/{jobId}": {
      "delete": {
        "description": "Deleting a job also deletes all tasks that are part of that job, and all job statistics. This also overrides the retention period for task data; that is, if the job contains tasks which are still retained on compute nodes, the Batch services deletes those tasks' working directories and all their contents.  When a Delete Job request is received, the Batch service sets the job to the deleting state. All update operations on a job that is in deleting state will fail with status code 409 (Conflict), with additional information indicating that the job is being deleted.",
        "operationId": "Job_Delete",
        "parameters": [
          {
            "description": "The ID of the job to delete.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "202": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Deletes a job.",
        "tags": [
          "Jobs"
        ],
        "x-ms-request-id": "request-id"
      },
      "get": {
        "operationId": "Job_Get",
        "parameters": [
          {
            "description": "The ID of the job.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          },
          {
            "description": "An OData $select clause.",
            "in": "query",
            "name": "$select",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An OData $expand clause.",
            "in": "query",
            "name": "$expand",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the job.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/CloudJob"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Gets information about the specified job.",
        "tags": [
          "Jobs"
        ],
        "x-ms-examples": {
          "Job get": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobId": "jobId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "200": {
                "body": {
                  "constraints": {
                    "maxTaskRetryCount": 0,
                    "maxWallClockTime": "P10675199DT2H48M5.4775807S"
                  },
                  "creationTime": "2016-11-19T00:05:25.311915Z",
                  "eTag": "0x8D4100FC49F0278",
                  "executionInfo": {
                    "endTime": "2016-11-19T00:05:27.578581Z",
                    "poolId": "poolId",
                    "startTime": "2016-11-19T00:05:25.3309105Z",
                    "terminateReason": "UserTerminate"
                  },
                  "id": "jobId",
                  "lastModified": "2016-11-19T00:05:27.5391608Z",
                  "onAllTasksComplete": "noAction",
                  "onTaskFailure": "noAction",
                  "poolInfo": {
                    "poolId": "poolId"
                  },
                  "previousState": "active",
                  "previousStateTransitionTime": "2016-11-19T00:05:27.2137716Z",
                  "priority": 0,
                  "state": "completed",
                  "stateTransitionTime": "2016-11-19T00:05:27.578581Z",
                  "url": "https://account.region.batch.azure.com/jobs/jobId",
                  "usesTaskDependencies": false
                }
              }
            }
          }
        },
        "x-ms-request-id": "request-id"
      },
      "patch": {
        "description": "This replaces only the job properties specified in the request. For example, if the job has constraints, and a request does not specify the constraints element, then the job keeps the existing constraints.",
        "operationId": "Job_Patch",
        "parameters": [
          {
            "description": "The ID of the job whose properties you want to update.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The parameters for the request.",
            "in": "body",
            "name": "jobPatchParameter",
            "required": true,
            "schema": {
              "$ref": "#/definitions/JobPatchParameter"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Updates the properties of the specified job.",
        "tags": [
          "Jobs"
        ],
        "x-ms-examples": {
          "Job patch": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobId": "jobId",
              "jobPatchParameter": {
                "constraints": {
                  "maxTaskRetryCount": -1,
                  "maxWallClockTime": "PT1H"
                },
                "poolInfo": {
                  "poolId": "poolId"
                },
                "priority": 100
              },
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "200": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      },
      "put": {
        "description": "This fully replaces all the updatable properties of the job. For example, if the job has constraints associated with it and if constraints is not specified with this request, then the Batch service will remove the existing constraints.",
        "operationId": "Job_Update",
        "parameters": [
          {
            "description": "The ID of the job whose properties you want to update.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The parameters for the request.",
            "in": "body",
            "name": "jobUpdateParameter",
            "required": true,
            "schema": {
              "$ref": "#/definitions/JobUpdateParameter"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Updates the properties of the specified job.",
        "tags": [
          "Jobs"
        ],
        "x-ms-examples": {
          "Job update": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobId": "jobId",
              "jobUpdateParameter": {
                "constraints": {
                  "maxTaskRetryCount": -1,
                  "maxWallClockTime": "PT1H"
                },
                "poolInfo": {
                  "poolId": "poolId"
                },
                "priority": 100
              },
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "200": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/jobs/{jobId}/addtaskcollection": {
      "post": {
        "description": "Note that each task must have a unique ID. The Batch service may not return the results for each task in the same order the tasks were submitted in this request. If the server times out or the connection is closed during the request, the request may have been partially or fully processed, or not at all. In such cases, the user should re-issue the request. Note that it is up to the user to correctly handle failures when re-issuing a request. For example, you should use the same task IDs during a retry so that if the prior operation succeeded, the retry will not create extra tasks unexpectedly. If the response contains any tasks which failed to add, a client can retry the request. In a retry, it is most efficient to resubmit only tasks that failed to add, and to omit tasks that were successfully added on the first attempt.",
        "operationId": "Task_AddCollection",
        "parameters": [
          {
            "description": "The ID of the job to which the task collection is to be added.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The tasks to be added.",
            "in": "body",
            "name": "taskCollection",
            "required": true,
            "schema": {
              "$ref": "#/definitions/TaskAddCollectionParameter"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the results of the add task collection operation.",
            "headers": {
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/TaskAddCollectionResult"
            }
          },
          "default": {
            "description": "Unexpected error",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Adds a collection of tasks to the specified job.",
        "tags": [
          "Tasks"
        ],
        "x-ms-examples": {
          "Add a basic collection of tasks": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobId": "jobId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "taskCollection": {
                "value": [
                  {
                    "commandLine": "cmd /c dir /s",
                    "id": "simple1"
                  },
                  {
                    "commandLine": "cmd /c dir /s",
                    "id": "simple2"
                  }
                ]
              }
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "eTag": "0x8D3D623CD661246",
                      "lastModified": "2016-09-06T07:02:44.7589958Z",
                      "location": "https://account.region.batch.azure.com/jobs/jobId/tasks/simple1",
                      "status": "success",
                      "taskId": "simple1"
                    },
                    {
                      "eTag": "0x8D3D623CD7072CC",
                      "lastModified": "2016-09-06T07:02:44.8270028Z",
                      "location": "https://account.region.batch.azure.com/jobs/jobId/tasks/simple2",
                      "status": "success",
                      "taskId": "simple2"
                    }
                  ]
                }
              }
            }
          },
          "Add a complex collection of tasks": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobId": "jobId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "taskCollection": {
                "value": [
                  {
                    "affinityInfo": {
                      "affinityId": "affinityId"
                    },
                    "commandLine": "cmd /c dir /s",
                    "constraints": {
                      "maxTaskRetryCount": 5,
                      "maxWallClockTime": "P1D",
                      "retentionTime": "P2D"
                    },
                    "environmentSettings": [
                      {
                        "name": "env1",
                        "value": "value1"
                      },
                      {
                        "name": "env2",
                        "value": "value2"
                      }
                    ],
                    "id": "complex1",
                    "multiInstanceSettings": {
                      "commonResourceFiles": [
                        {
                          "blobSource": "https://common.blob.core.windows.net/",
                          "filePath": "common.exe"
                        }
                      ],
                      "coordinationCommandLine": "cmd /c echo coordinating",
                      "numberOfInstances": 3
                    },
                    "resourceFiles": [
                      {
                        "blobSource": "https://account.blob.core.windows.net/",
                        "filePath": "file1"
                      }
                    ]
                  },
                  {
                    "commandLine": "cmd /c dir /s",
                    "id": "simple3"
                  }
                ]
              }
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "eTag": "0x8D3D623CE295629",
                      "lastModified": "2016-09-06T07:02:46.0386857Z",
                      "location": "https://account.region.batch.azure.com/jobs/jobId/tasks/simple3",
                      "status": "success",
                      "taskId": "simple3"
                    },
                    {
                      "eTag": "0x8D3D623CE29A412",
                      "lastModified": "2016-09-06T07:02:46.0406802Z",
                      "location": "https://account.region.batch.azure.com/jobs/jobId/tasks/complex1",
                      "status": "success",
                      "taskId": "complex1"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/jobs/{jobId}/disable": {
      "post": {
        "description": "The Batch Service immediately moves the job to the disabling state. Batch then uses the disableTasks parameter to determine what to do with the currently running tasks of the job. The job remains in the disabling state until the disable operation is completed and all tasks have been dealt with according to the disableTasks option; the job then moves to the disabled state. No new tasks are started under the job until it moves back to active state. If you try to disable a job that is in any state other than active, disabling, or disabled, the request fails with status code 409.",
        "operationId": "Job_Disable",
        "parameters": [
          {
            "description": "The ID of the job to disable.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The parameters for the request.",
            "in": "body",
            "name": "jobDisableParameter",
            "required": true,
            "schema": {
              "$ref": "#/definitions/JobDisableParameter"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "202": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Disables the specified job, preventing new tasks from running.",
        "tags": [
          "Jobs"
        ],
        "x-ms-examples": {
          "Job disable": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobDisableParameter": {
                "disableTasks": "terminate"
              },
              "jobId": "jobId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "202": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/jobs/{jobId}/enable": {
      "post": {
        "description": "When you call this API, the Batch service sets a disabled job to the enabling state. After the this operation is completed, the job moves to the active state, and scheduling of new tasks under the job resumes. The Batch service does not allow a task to remain in the active state for more than 7 days. Therefore, if you enable a job containing active tasks which were added more than 7 days ago, those tasks will not run.",
        "operationId": "Job_Enable",
        "parameters": [
          {
            "description": "The ID of the job to enable.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "202": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Enables the specified job, allowing new tasks to run.",
        "tags": [
          "Jobs"
        ],
        "x-ms-examples": {
          "Job enable": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobId": "jobId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "202": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/jobs/{jobId}/jobpreparationandreleasetaskstatus": {
      "get": {
        "description": "This API returns the Job Preparation and Job Release task status on all compute nodes that have run the Job Preparation or Job Release task. This includes nodes which have since been removed from the pool. If this API is invoked on a job which has no Job Preparation or Job Release task, the Batch service returns HTTP status code 409 (Conflict) with an error code of JobPreparationTaskNotSpecified.",
        "operationId": "Job_ListPreparationAndReleaseTaskStatus",
        "parameters": [
          {
            "description": "The ID of the job.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          },
          {
            "description": "An OData $filter clause. To get the status of the Job Preparation and Job Release tasks on a specific compute node, use \"nodeId eq '{desired-node-id}'\"",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An OData $select clause.",
            "in": "query",
            "name": "$select",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 1000,
            "description": "The maximum number of items to return in the response. A maximum of 1000 tasks can be returned.",
            "format": "int32",
            "in": "query",
            "maximum": 1000,
            "minimum": 1,
            "name": "maxresults",
            "required": false,
            "type": "integer",
            "x-ms-client-name": "maxResults",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing a list of Job Preparation and Job Release task statuses.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/CloudJobListPreparationAndReleaseTaskStatusResult"
            }
          },
          "default": {
            "description": "The error from the Batch service. If this API is invoked on a job which has no Job Preparation or Job Release task, the Batch service returns HTTP status code 409.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Lists the execution status of the Job Preparation and Job Release task for the specified job across the compute nodes where the job has run.",
        "tags": [
          "Jobs"
        ],
        "x-ms-examples": {
          "Job list preparation and release task status": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobId": "jobId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "200": {
                "body": {
                  "odata.nextLink": "https://account.region.batch.azure.com/jobs/myjob/jobpreparationandreleasestatus?$skipToken=tvm-2167304207_1-20140905t174658z&api-version=2017-06-01.5.1",
                  "value": [
                    {
                      "jobPreparationTaskExecutionInfo": {
                        "endTime": "2015-05-02T20:12:42Z",
                        "exitCode": 0,
                        "retryCount": 0,
                        "startTime": "2015-05-01T10:20:31Z",
                        "state": "completed",
                        "taskRootDirectory": "tasks/myjob/job-1/myjobpreptask",
                        "taskRootDirectoryUrl": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-2167304207_1-20140905t174658z/files/tasks/myjob/job-1/myjobpreptask"
                      },
                      "jobReleaseTaskExecutionInfo": {
                        "endTime": "2015-05-02T20:12:42Z",
                        "exitCode": 0,
                        "startTime": "2015-05-01T10:20:31Z",
                        "state": "completed",
                        "taskRootDirectory": "tasks/myjob/job-1/myjobreleasetask",
                        "taskRootDirectoryUrl": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-2167304207_1-20140905t174658z/files/tasks/myjob/job-1/myjobreleasetask"
                      },
                      "nodeId": "tvm-2167304207_1-20140905t174658z",
                      "nodeUrl": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-2167304207_1-20140905t174658z",
                      "poolId": "poolId"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "odata.nextLink"
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/jobs/{jobId}/taskcounts": {
      "get": {
        "description": "Task counts provide a count of the tasks by active, running or completed task state, and a count of tasks which succeeded or failed. Tasks in the preparing state are counted as running. If the validationStatus is unvalidated, then the Batch service has not been able to check state counts against the task states as reported in the List Tasks API. The validationStatus may be unvalidated if the job contains more than 200,000 tasks.",
        "operationId": "Job_GetTaskCounts",
        "parameters": [
          {
            "description": "The ID of the job.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the task counts for the specified job.",
            "headers": {
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/TaskCounts"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Gets the task counts for the specified job.",
        "tags": [
          "Jobs"
        ],
        "x-ms-examples": {
          "Job get task counts": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobId": "jobId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "200": {
                "body": {
                  "active": 5,
                  "completed": 4,
                  "failed": 2,
                  "running": 7,
                  "succeeded": 2,
                  "validationStatus": "unvalidated"
                }
              }
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/jobs/{jobId}/tasks": {
      "get": {
        "description": "For multi-instance tasks, information such as affinityId, executionInfo and nodeInfo refer to the primary task. Use the list subtasks API to retrieve information about subtasks.",
        "operationId": "Task_List",
        "parameters": [
          {
            "description": "The ID of the job.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          },
          {
            "description": "An OData $filter clause.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An OData $select clause.",
            "in": "query",
            "name": "$select",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An OData $expand clause.",
            "in": "query",
            "name": "$expand",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 1000,
            "description": "The maximum number of items to return in the response. A maximum of 1000 tasks can be returned.",
            "format": "int32",
            "in": "query",
            "maximum": 1000,
            "minimum": 1,
            "name": "maxresults",
            "required": false,
            "type": "integer",
            "x-ms-client-name": "maxResults",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the list of tasks.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/CloudTaskListResult"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Lists all of the tasks that are associated with the specified job.",
        "tags": [
          "Tasks"
        ],
        "x-ms-examples": {
          "Task list": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobId": "jobId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "commandLine": "cmd /c echo task1",
                      "constraints": {
                        "maxTaskRetryCount": 0,
                        "maxWallClockTime": "P10675199DT2H48M5.4775807S",
                        "retentionTime": "P10675199DT2H48M5.4775807S"
                      },
                      "creationTime": "2016-11-21T22:43:31.4733476Z",
                      "eTag": "0x8D4125FD1A825A4",
                      "executionInfo": {
                        "requeueCount": 0,
                        "retryCount": 0
                      },
                      "id": "task1",
                      "lastModified": "2016-11-21T22:43:31.4733476Z",
                      "state": "active",
                      "stateTransitionTime": "2016-11-21T22:43:31.4733476Z",
                      "url": "https://account.region.batch.azure.com/jobs/jobId/tasks/task1",
                      "userIdentity": {
                        "autoUser": {
                          "elevationLevel": "nonAdmin",
                          "scope": "task"
                        }
                      }
                    },
                    {
                      "commandLine": "cmd /c echo task2",
                      "constraints": {
                        "maxTaskRetryCount": 3,
                        "maxWallClockTime": "P10675199DT2H48M5.4775807S",
                        "retentionTime": "P10675199DT2H48M5.4775807S"
                      },
                      "creationTime": "2016-11-21T22:43:31.6736345Z",
                      "eTag": "0x8D4125FD2153345",
                      "executionInfo": {
                        "requeueCount": 0,
                        "retryCount": 0
                      },
                      "id": "task2",
                      "lastModified": "2016-11-21T22:43:32.1880389Z",
                      "state": "active",
                      "stateTransitionTime": "2016-11-21T22:43:31.6736345Z",
                      "url": "https://account.region.batch.azure.com/jobs/jobId/tasks/task2",
                      "userIdentity": {
                        "autoUser": {
                          "elevationLevel": "nonAdmin",
                          "scope": "task"
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "odata.nextLink"
        },
        "x-ms-request-id": "request-id"
      },
      "post": {
        "operationId": "Task_Add",
        "parameters": [
          {
            "description": "The ID of the job to which the task is to be added.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The task to be added.",
            "in": "body",
            "name": "task",
            "required": true,
            "schema": {
              "$ref": "#/definitions/TaskAddParameter"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "201": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Adds a task to the specified job.",
        "tags": [
          "Tasks"
        ],
        "x-ms-examples": {
          "Add a basic task": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobId": "jobId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "task": {
                "commandLine": "cmd /c echo task1",
                "id": "task1"
              }
            },
            "responses": {
              "201": {}
            }
          },
          "Add a task with exit conditions": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobId": "jobId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "task": {
                "commandLine": "cmd /c exit 3",
                "exitConditions": {
                  "exitCodeRanges": [
                    {
                      "end": 4,
                      "exitOptions": {
                        "jobAction": "terminate"
                      },
                      "start": 2
                    }
                  ]
                },
                "id": "taskId",
                "userIdentity": {
                  "autoUser": {
                    "elevationLevel": "nonAdmin",
                    "scope": "task"
                  }
                }
              }
            },
            "responses": {
              "201": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/jobs/{jobId}/tasks/{taskId}": {
      "delete": {
        "description": "When a task is deleted, all of the files in its directory on the compute node where it ran are also deleted (regardless of the retention time). For multi-instance tasks, the delete task operation applies synchronously to the primary task; subtasks and their files are then deleted asynchronously in the background.",
        "operationId": "Task_Delete",
        "parameters": [
          {
            "description": "The ID of the job from which to delete the task.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the task to delete.",
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Deletes a task from the specified job.",
        "tags": [
          "Tasks"
        ],
        "x-ms-examples": {
          "Task delete": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobId": "jobId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "taskId": "taskId"
            },
            "responses": {
              "200": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      },
      "get": {
        "description": "For multi-instance tasks, information such as affinityId, executionInfo and nodeInfo refer to the primary task. Use the list subtasks API to retrieve information about subtasks.",
        "operationId": "Task_Get",
        "parameters": [
          {
            "description": "The ID of the job that contains the task.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the task to get information about.",
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "string"
          },
          {
            "description": "An OData $select clause.",
            "in": "query",
            "name": "$select",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An OData $expand clause.",
            "in": "query",
            "name": "$expand",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the task.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/CloudTask"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Gets information about the specified task.",
        "tags": [
          "Tasks"
        ],
        "x-ms-examples": {
          "Task get": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobId": "jobId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "taskId": "taskId"
            },
            "responses": {
              "200": {
                "body": {
                  "commandLine": "cmd /c hostname",
                  "constraints": {
                    "maxTaskRetryCount": 0,
                    "maxWallClockTime": "P10675199DT2H48M5.4775807S",
                    "retentionTime": "P10675199DT2H48M5.4775807S"
                  },
                  "creationTime": "2016-09-06T06:59:15.1161429Z",
                  "eTag": "0x8D3D62350711C55",
                  "executionInfo": {
                    "requeueCount": 0,
                    "retryCount": 0
                  },
                  "id": "testTask",
                  "lastModified": "2016-09-06T06:59:15.1161429Z",
                  "multiInstanceSettings": {
                    "coordinationCommandLine": "cmd /c echo coordinating",
                    "numberOfInstances": 3
                  },
                  "state": "active",
                  "stateTransitionTime": "2016-09-06T06:59:15.1161429Z",
                  "url": "https://account.region.batch.azure.com/jobs/jobId/tasks/taskId",
                  "userIdentity": {
                    "autoUser": {
                      "elevationLevel": "nonAdmin",
                      "scope": "task"
                    }
                  }
                }
              }
            }
          }
        },
        "x-ms-request-id": "request-id"
      },
      "put": {
        "description": "Updates the properties of the specified task.",
        "operationId": "Task_Update",
        "parameters": [
          {
            "description": "The ID of the job containing the task.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the task to update.",
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The parameters for the request.",
            "in": "body",
            "name": "taskUpdateParameter",
            "required": true,
            "schema": {
              "$ref": "#/definitions/TaskUpdateParameter"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "tags": [
          "Tasks"
        ],
        "x-ms-examples": {
          "Task update": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobId": "jobId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "taskId": "taskId",
              "taskUpdateParameter": {
                "constraints": {
                  "maxTaskRetryCount": 3,
                  "maxWallClockTime": "PT1H",
                  "retentionTime": "PT1H"
                }
              }
            },
            "responses": {
              "200": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/jobs/{jobId}/tasks/{taskId}/files": {
      "get": {
        "operationId": "File_ListFromTask",
        "parameters": [
          {
            "description": "The ID of the job that contains the task.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the task whose files you want to list.",
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "string"
          },
          {
            "description": "An OData $filter clause.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "Whether to list children of the task directory. This parameter can be used in combination with the filter parameter to list specific type of files.",
            "in": "query",
            "name": "recursive",
            "required": false,
            "type": "boolean"
          },
          {
            "default": 1000,
            "description": "The maximum number of items to return in the response. A maximum of 1000 files can be returned.",
            "format": "int32",
            "in": "query",
            "maximum": 1000,
            "minimum": 1,
            "name": "maxresults",
            "required": false,
            "type": "integer",
            "x-ms-client-name": "maxResults",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the list of files.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/NodeFileListResult"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Lists the files in a task's directory on its compute node.",
        "tags": [
          "Files"
        ],
        "x-ms-examples": {
          "File list from task": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobId": "jobId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "recursive": false,
              "taskId": "taskId"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "isDirectory": false,
                      "name": "startup\\ProcessEnv.cmd",
                      "properties": {
                        "contentLength": 1813,
                        "contentType": "application/octet-stream",
                        "creationTime": "2014-09-19T21:56:17.679195Z",
                        "lastModified": "2014-09-19T21:56:17.679195Z"
                      },
                      "url": "https://account.region.batch.azure.com/jobs/jobId/tasks/taskId/files/startup\\ProcessEnv.cmd"
                    },
                    {
                      "isDirectory": false,
                      "name": "startup\\stderr.txt",
                      "properties": {
                        "contentLength": 0,
                        "contentType": "application/octet-stream",
                        "creationTime": "2014-09-19T21:56:17.5590855Z",
                        "lastModified": "2014-09-19T21:56:17.5590855Z"
                      },
                      "url": "https://account.region.batch.azure.com/jobs/jobId/tasks/taskId/files/startup\\stderr.txt"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "odata.nextLink"
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/jobs/{jobId}/tasks/{taskId}/files/{filePath}": {
      "delete": {
        "operationId": "File_DeleteFromTask",
        "parameters": [
          {
            "description": "The ID of the job that contains the task.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the task whose file you want to delete.",
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The path to the task file or directory that you want to delete.",
            "in": "path",
            "name": "filePath",
            "required": true,
            "type": "string"
          },
          {
            "description": "Whether to delete children of a directory. If the filePath parameter represents a directory instead of a file, you can set recursive to true to delete the directory and all of the files and subdirectories in it. If recursive is false then the directory must be empty or deletion will fail.",
            "in": "query",
            "name": "recursive",
            "required": false,
            "type": "boolean"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Deletes the specified task file from the compute node where the task ran.",
        "tags": [
          "Files"
        ],
        "x-ms-examples": {
          "File delete from task": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "filePath": "wd\\testFile.txt",
              "jobId": "jobId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "recursive": false,
              "taskId": "task1"
            },
            "responses": {
              "200": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      },
      "get": {
        "description": "Returns the content of the specified task file.",
        "operationId": "File_GetFromTask",
        "parameters": [
          {
            "description": "The ID of the job that contains the task.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the task whose file you want to retrieve.",
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The path to the task file that you want to get the content of.",
            "in": "path",
            "name": "filePath",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The byte range to be retrieved. The default is to retrieve the entire file. The format is bytes=startRange-endRange.",
            "in": "header",
            "name": "ocp-range",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the file content.",
            "headers": {
              "Content-Length": {
                "description": "The length of the file.",
                "format": "int64",
                "type": "integer"
              },
              "Content-Type": {
                "description": "The content type of the file.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "ocp-batch-file-isdirectory": {
                "description": "Whether the object represents a directory.",
                "type": "boolean"
              },
              "ocp-batch-file-mode": {
                "description": "The file mode attribute in octal format.",
                "type": "string"
              },
              "ocp-batch-file-url": {
                "description": "The URL of the file.",
                "type": "string"
              },
              "ocp-creation-time": {
                "description": "The file creation time.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "type": "file"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "tags": [
          "Files"
        ],
        "x-ms-request-id": "request-id"
      },
      "head": {
        "description": "Gets the properties of the specified task file.",
        "operationId": "File_GetPropertiesFromTask",
        "parameters": [
          {
            "description": "The ID of the job that contains the task.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the task whose file you want to get the properties of.",
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The path to the task file that you want to get the properties of.",
            "in": "path",
            "name": "filePath",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the file properties.",
            "headers": {
              "Content-Length": {
                "description": "The length of the file.",
                "format": "int64",
                "type": "integer"
              },
              "Content-Type": {
                "description": "The content type of the file.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "ocp-batch-file-isdirectory": {
                "description": "Whether the object represents a directory.",
                "type": "boolean"
              },
              "ocp-batch-file-mode": {
                "description": "The file mode attribute in octal format.",
                "type": "string"
              },
              "ocp-batch-file-url": {
                "description": "The URL of the file.",
                "type": "string"
              },
              "ocp-creation-time": {
                "description": "The file creation time.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "tags": [
          "Files"
        ],
        "x-ms-examples": {
          "File get properties from task": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "filePath": "wd\\testFile.txt",
              "jobId": "jobId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "taskId": "taskId"
            },
            "responses": {
              "200": {
                "headers": {
                  "Content-Length": "17",
                  "Content-Type": "application/octet-stream",
                  "Last-Modified": "Fri, 17 Feb 2017 00:00:00 GMT",
                  "ocp-batch-file-isdirectory": "false",
                  "ocp-creation-time": "Fri, 17 Feb 2017 00:00:00 GMT"
                }
              }
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/jobs/{jobId}/tasks/{taskId}/reactivate": {
      "post": {
        "description": "Reactivation makes a task eligible to be retried again up to its maximum retry count. The task's state is changed to active. As the task is no longer in the completed state, any previous exit code or failure information is no longer available after reactivation. Each time a task is reactivated, its retry count is reset to 0. Reactivation will fail for tasks that are not completed or that previously completed successfully (with an exit code of 0). Additionally, it will fail if the job has completed (or is terminating or deleting).",
        "operationId": "Task_Reactivate",
        "parameters": [
          {
            "description": "The ID of the job containing the task.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the task to reactivate.",
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "204": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Reactivates a task, allowing it to run again even if its retry count has been exhausted.",
        "tags": [
          "Tasks"
        ],
        "x-ms-examples": {
          "Task reactivate": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobId": "jobId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "taskId": "taskId"
            },
            "responses": {
              "204": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/jobs/{jobId}/tasks/{taskId}/subtasksinfo": {
      "get": {
        "description": "If the task is not a multi-instance task then this returns an empty collection.",
        "operationId": "Task_ListSubtasks",
        "parameters": [
          {
            "description": "The ID of the job.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the task.",
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "string"
          },
          {
            "description": "An OData $select clause.",
            "in": "query",
            "name": "$select",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the list of subtasks.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/CloudTaskListSubtasksResult"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Lists all of the subtasks that are associated with the specified multi-instance task.",
        "tags": [
          "Tasks"
        ],
        "x-ms-examples": {
          "Task list subtasks": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobId": "jobId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "taskId": "taskId"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "endTime": "2016-09-06T06:59:20.0242024Z",
                      "exitCode": 0,
                      "id": 1,
                      "nodeInfo": {
                        "affinityId": "TVM:tvm-2544493925_3-20160905t051718z",
                        "nodeId": "tvm-2544493925_3-20160905t051718z",
                        "nodeUrl": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-2544493925_3-20160905t051718z",
                        "poolId": "mpiPool",
                        "taskRootDirectory": "\\workitems\\jobId\\job-1\\taskId\\1",
                        "taskRootDirectoryUrl": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-2544493925_3-20160905t051718z/files//workitems/jobId/job-1/taskId/1"
                      },
                      "previousState": "running",
                      "previousStateTransitionTime": "2016-09-06T06:59:16.3139271Z",
                      "startTime": "2016-09-06T06:59:16.3139271Z",
                      "state": "completed",
                      "stateTransitionTime": "2016-09-06T06:59:20.0242024Z"
                    },
                    {
                      "id": 2,
                      "nodeInfo": {
                        "affinityId": "TVM:tvm-2544493925_2-20160905t051718z",
                        "nodeId": "tvm-2544493925_2-20160905t051718z",
                        "nodeUrl": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-2544493925_2-20160905t051718z",
                        "poolId": "mpiPool",
                        "taskRootDirectory": "\\workitems\\jobId\\job-1\\taskId\\2",
                        "taskRootDirectoryUrl": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-2544493925_2-20160905t051718z/files//workitems/jobId/job-1/taskId/2"
                      },
                      "startTime": "2016-09-06T06:59:16.9702844Z",
                      "state": "running",
                      "stateTransitionTime": "2016-09-06T06:59:16.9702844Z"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/jobs/{jobId}/tasks/{taskId}/terminate": {
      "post": {
        "description": "When the task has been terminated, it moves to the completed state. For multi-instance tasks, the terminate task operation applies synchronously to the primary task; subtasks are then terminated asynchronously in the background.",
        "operationId": "Task_Terminate",
        "parameters": [
          {
            "description": "The ID of the job containing the task.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the task to terminate.",
            "in": "path",
            "name": "taskId",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "204": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Terminates the specified task.",
        "tags": [
          "Tasks"
        ],
        "x-ms-examples": {
          "Task terminate": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobId": "jobId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "taskId": "taskId"
            },
            "responses": {
              "204": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/jobs/{jobId}/terminate": {
      "post": {
        "description": "When a Terminate Job request is received, the Batch service sets the job to the terminating state. The Batch service then terminates any active or running tasks associated with the job, and runs any required Job Release tasks. The job then moves into the completed state.",
        "operationId": "Job_Terminate",
        "parameters": [
          {
            "description": "The ID of the job to terminate.",
            "in": "path",
            "name": "jobId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The parameters for the request.",
            "in": "body",
            "name": "jobTerminateParameter",
            "required": false,
            "schema": {
              "$ref": "#/definitions/JobTerminateParameter"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "202": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Terminates the specified job, marking it as completed.",
        "tags": [
          "Jobs"
        ],
        "x-ms-examples": {
          "Job terminate": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobId": "jobId",
              "jobTerminateParameter": {
                "terminateReason": "User supplied termination reason"
              },
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "202": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/jobschedules": {
      "get": {
        "operationId": "JobSchedule_List",
        "parameters": [
          {
            "description": "An OData $filter clause.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An OData $select clause.",
            "in": "query",
            "name": "$select",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An OData $expand clause.",
            "in": "query",
            "name": "$expand",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 1000,
            "description": "The maximum number of items to return in the response. A maximum of 1000 job schedules can be returned.",
            "format": "int32",
            "in": "query",
            "maximum": 1000,
            "minimum": 1,
            "name": "maxresults",
            "required": false,
            "type": "integer",
            "x-ms-client-name": "maxResults",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the list of job schedules.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/CloudJobScheduleListResult"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Lists all of the job schedules in the specified account.",
        "tags": [
          "JobSchedules"
        ],
        "x-ms-examples": {
          "JobSchedule list": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "creationTime": "2016-11-18T21:52:22.5431125Z",
                      "eTag": "0x8D40FFD2E10996A",
                      "executionInfo": {
                        "recentJob": {
                          "id": "jobSchedule1:job-1",
                          "url": "https://account.region.batch.azure.com/jobs/jobSchedule1:job-1"
                        }
                      },
                      "id": "jobSchedule1",
                      "jobSpecification": {
                        "constraints": {
                          "maxTaskRetryCount": 0,
                          "maxWallClockTime": "P10675199DT2H48M5.4775807S"
                        },
                        "onAllTasksComplete": "noAction",
                        "onTaskFailure": "noAction",
                        "poolInfo": {
                          "poolId": "poolId"
                        },
                        "priority": 0,
                        "usesTaskDependencies": false
                      },
                      "lastModified": "2016-11-18T21:52:24.0064874Z",
                      "previousState": "disabled",
                      "previousStateTransitionTime": "2016-11-18T21:52:23.6471782Z",
                      "state": "active",
                      "stateTransitionTime": "2016-11-18T21:52:24.0064874Z",
                      "url": "https://account.region.batch.azure.com/jobschedules/jobSchedule1"
                    },
                    {
                      "creationTime": "2016-11-18T21:51:05.8184017Z",
                      "eTag": "0x8D40FFCFF760B51",
                      "executionInfo": {
                        "nextRunTime": "2020-01-01T12:30:00Z"
                      },
                      "id": "jobSchedule2",
                      "jobSpecification": {
                        "constraints": {
                          "maxTaskRetryCount": 0,
                          "maxWallClockTime": "P10675199DT2H48M5.4775807S"
                        },
                        "onAllTasksComplete": "noAction",
                        "onTaskFailure": "noAction",
                        "poolInfo": {
                          "poolId": "testPool2"
                        },
                        "priority": 0,
                        "usesTaskDependencies": false
                      },
                      "lastModified": "2016-11-18T21:51:05.8184017Z",
                      "schedule": {
                        "doNotRunUntil": "2020-01-01T12:30:00Z"
                      },
                      "state": "active",
                      "stateTransitionTime": "2016-11-18T21:51:05.8184017Z",
                      "url": "https://account.region.batch.azure.com/jobschedules/jobSchedule2"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "odata.nextLink"
        },
        "x-ms-request-id": "request-id"
      },
      "post": {
        "operationId": "JobSchedule_Add",
        "parameters": [
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The job schedule to be added.",
            "in": "body",
            "name": "cloudJobSchedule",
            "required": true,
            "schema": {
              "$ref": "#/definitions/JobScheduleAddParameter"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "201": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Adds a job schedule to the specified account.",
        "tags": [
          "JobSchedules"
        ],
        "x-ms-examples": {
          "Add a basic JobSchedule": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "cloudJobSchedule": {
                "id": "jobScheduleId",
                "jobSpecification": {
                  "poolInfo": {
                    "poolId": "poolId"
                  }
                },
                "schedule": {
                  "recurrenceInterval": "PT5M"
                }
              },
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "201": {}
            }
          },
          "Add a complex JobScheduleAdd": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "cloudJobSchedule": {
                "id": "jobScheduleId",
                "jobSpecification": {
                  "constraints": {
                    "maxTaskRetryCount": -1,
                    "maxWallClockTime": "PT1H"
                  },
                  "jobManagerTask": {
                    "commandLine": "myprogram.exe",
                    "constraints": {
                      "maxTaskRetryCount": 0,
                      "maxWallClockTime": "PT1H",
                      "retentionTime": "PT1H"
                    },
                    "environmentSettings": [
                      {
                        "name": "myvariable",
                        "value": "myvalue"
                      }
                    ],
                    "id": "mytask1",
                    "killJobOnCompletion": true,
                    "resourceFiles": [
                      {
                        "blobSource": "http://mystorage1.blob.core.windows.net/scripts/myprogram.exe?st=2013-08-09T08%3a49%3a37.0000000Z&se=2013-08-10T08%3a49%3a37.0000000Z&sr=c&sp=d&si=YWJjZGTVMZw%3d%3d&sig=%2bSzBm0wi8xECuGkKw97wnkSZ%2f62sxU%2b6Hq6a7qojIVE%3d",
                        "filePath": "myprogram.exe"
                      },
                      {
                        "blobSource": "http://mystorage1.blob.core.windows.net/scripts/test.txt?st=2013-08-09T08%3a49%3a37.0000000Z&se=2013-08-10T08%3a49%3a37.0000000Z&sr=c&sp=d&si=YWJjZGTVMZw%3d%3d&sig=%2bSzBm0wi8xECuGkKw97wnkSZ%2f62sxU%2b6Hq6a7qojIVE%3d",
                        "filePath": "test.txt"
                      }
                    ],
                    "runExclusive": true,
                    "userIdentity": {
                      "autoUser": {
                        "elevationLevel": "nonAdmin",
                        "scope": "task"
                      }
                    }
                  },
                  "poolInfo": {
                    "autoPoolSpecification": {
                      "autoPoolIdPrefix": "mypool",
                      "pool": {
                        "certificateReferences": [
                          {
                            "storeLocation": "localMachine",
                            "storeName": "Root",
                            "thumbprint": "0123456789abcdef0123456789abcdef01234567",
                            "thumbprintAlgorithm": "sha1",
                            "visibility": [
                              "task"
                            ]
                          }
                        ],
                        "cloudServiceConfiguration": {
                          "osFamily": "4",
                          "targetOSVersion": "*"
                        },
                        "enableAutoScale": false,
                        "enableInterNodeCommunication": true,
                        "maxTasksPerNode": 2,
                        "metadata": [
                          {
                            "name": "myproperty",
                            "value": "myvalue"
                          }
                        ],
                        "resizeTimeout": "PT15M",
                        "startTask": {
                          "commandLine": "myprogram2.exe",
                          "environmentSettings": [
                            {
                              "name": "myvariable",
                              "value": "myvalue"
                            }
                          ],
                          "maxTaskRetryCount": 2,
                          "resourceFiles": [
                            {
                              "blobSource": "http://mystorage1.blob.core.windows.net/scripts/myprogram2.exe?st=2013-08-09T08%3a49%3a37.0000000Z&se=2013-08-10T08%3a49%3a37.0000000Z&sr=c&sp=d&si=YWJjZGTVMZw%3d%3d&sig= %2bSzBm0wi8xECuGkKw97wnkSZ%2f62sxU%2b6Hq6a7qojIVE%3d",
                              "filePath": "myprogram2.exe"
                            }
                          ],
                          "userIdentity": {
                            "autoUser": {
                              "elevationLevel": "admin",
                              "scope": "task"
                            }
                          },
                          "waitForSuccess": true
                        },
                        "targetDedicatedNodes": 3,
                        "targetLowPriorityNodes": 0,
                        "taskSchedulingPolicy": {
                          "nodeFillType": "spread"
                        },
                        "vmSize": "small"
                      },
                      "poolLifetimeOption": "jobSchedule"
                    }
                  },
                  "priority": 100
                },
                "metadata": [
                  {
                    "name": "myproperty",
                    "value": "myvalue"
                  }
                ],
                "schedule": {
                  "doNotRunAfter": "2014-09-10T06:30:00.000Z",
                  "doNotRunUntil": "2014-09-10T02:30:00.000Z",
                  "recurrenceInterval": "PT5M",
                  "startWindow": "PT1M"
                }
              },
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "201": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/jobschedules/{jobScheduleId}": {
      "delete": {
        "description": "When you delete a job schedule, this also deletes all jobs and tasks under that schedule. When tasks are deleted, all the files in their working directories on the compute nodes are also deleted (the retention period is ignored). The job schedule statistics are no longer accessible once the job schedule is deleted, though they are still counted towards account lifetime statistics.",
        "operationId": "JobSchedule_Delete",
        "parameters": [
          {
            "description": "The ID of the job schedule to delete.",
            "in": "path",
            "name": "jobScheduleId",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "202": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Deletes a job schedule from the specified account.",
        "tags": [
          "JobSchedules"
        ],
        "x-ms-examples": {
          "JobSchedule delete": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobScheduleId": "jobScheduleId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "202": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      },
      "get": {
        "description": "Gets information about the specified job schedule.",
        "operationId": "JobSchedule_Get",
        "parameters": [
          {
            "description": "The ID of the job schedule to get.",
            "in": "path",
            "name": "jobScheduleId",
            "required": true,
            "type": "string"
          },
          {
            "description": "An OData $select clause.",
            "in": "query",
            "name": "$select",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An OData $expand clause.",
            "in": "query",
            "name": "$expand",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the job schedule.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/CloudJobSchedule"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "tags": [
          "JobSchedules"
        ],
        "x-ms-examples": {
          "JobSchedule get": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobScheduleId": "jobScheduleId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "200": {
                "body": {
                  "creationTime": "2016-11-18T21:52:22.5431125Z",
                  "eTag": "0x8D40FFD2E848323",
                  "executionInfo": {
                    "endTime": "2016-11-18T21:52:24.8371778Z",
                    "recentJob": {
                      "id": "jobScheduleId:job-1",
                      "url": "https://account.region.batch.azure.com/jobschedules/jobScheduleId:job-1"
                    }
                  },
                  "id": "jobScheduleId",
                  "jobSpecification": {
                    "constraints": {
                      "maxTaskRetryCount": 0,
                      "maxWallClockTime": "P10675199DT2H48M5.4775807S"
                    },
                    "onAllTasksComplete": "noAction",
                    "onTaskFailure": "noAction",
                    "poolInfo": {
                      "poolId": "testPool"
                    },
                    "priority": 0,
                    "usesTaskDependencies": false
                  },
                  "lastModified": "2016-11-18T21:52:24.7661347Z",
                  "previousState": "active",
                  "previousStateTransitionTime": "2016-11-18T21:52:24.0064874Z",
                  "state": "completed",
                  "stateTransitionTime": "2016-11-18T21:52:24.8371778Z",
                  "url": "https://account.region.batch.azure.com/jobschedules/jobScheduleId"
                }
              }
            }
          }
        },
        "x-ms-request-id": "request-id"
      },
      "head": {
        "operationId": "JobSchedule_Exists",
        "parameters": [
          {
            "description": "The ID of the job schedule which you want to check.",
            "in": "path",
            "name": "jobScheduleId",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing headers related to the job schedule, if it exists.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "404": {
            "description": "The job schedule does not exist."
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Checks the specified job schedule exists.",
        "tags": [
          "JobSchedules"
        ],
        "x-ms-request-id": "request-id"
      },
      "patch": {
        "description": "This replaces only the job schedule properties specified in the request. For example, if the schedule property is not specified with this request, then the Batch service will keep the existing schedule. Changes to a job schedule only impact jobs created by the schedule after the update has taken place; currently running jobs are unaffected.",
        "operationId": "JobSchedule_Patch",
        "parameters": [
          {
            "description": "The ID of the job schedule to update.",
            "in": "path",
            "name": "jobScheduleId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The parameters for the request.",
            "in": "body",
            "name": "jobSchedulePatchParameter",
            "required": true,
            "schema": {
              "$ref": "#/definitions/JobSchedulePatchParameter"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Updates the properties of the specified job schedule.",
        "tags": [
          "JobSchedules"
        ],
        "x-ms-examples": {
          "JobSchedule patch": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobScheduleId": "jobScheduleId",
              "jobSchedulePatchParameter": {
                "jobSpecification": {
                  "constraints": {
                    "maxTaskRetryCount": 0,
                    "maxWallClockTime": "P10675199DT2H48M5.4775807S"
                  },
                  "poolInfo": {
                    "poolId": "poolId"
                  },
                  "priority": 0,
                  "usesTaskDependencies": false
                },
                "schedule": {
                  "doNotRunUntil": "2025-01-01T12:30:00Z"
                }
              },
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "200": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      },
      "put": {
        "description": "This fully replaces all the updatable properties of the job schedule. For example, if the schedule property is not specified with this request, then the Batch service will remove the existing schedule. Changes to a job schedule only impact jobs created by the schedule after the update has taken place; currently running jobs are unaffected.",
        "operationId": "JobSchedule_Update",
        "parameters": [
          {
            "description": "The ID of the job schedule to update.",
            "in": "path",
            "name": "jobScheduleId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The parameters for the request.",
            "in": "body",
            "name": "jobScheduleUpdateParameter",
            "required": true,
            "schema": {
              "$ref": "#/definitions/JobScheduleUpdateParameter"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Updates the properties of the specified job schedule.",
        "tags": [
          "JobSchedules"
        ],
        "x-ms-examples": {
          "JobSchedule update": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobScheduleId": "jobScheduleId",
              "jobScheduleUpdateParameter": {
                "jobSpecification": {
                  "constraints": {
                    "maxTaskRetryCount": 0,
                    "maxWallClockTime": "P10675199DT2H48M5.4775807S"
                  },
                  "poolInfo": {
                    "poolId": "poolId"
                  },
                  "priority": 0,
                  "usesTaskDependencies": false
                },
                "schedule": {
                  "doNotRunUntil": "2025-01-01T12:30:00Z"
                }
              },
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "200": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/jobschedules/{jobScheduleId}/disable": {
      "post": {
        "description": "No new jobs will be created until the job schedule is enabled again.",
        "operationId": "JobSchedule_Disable",
        "parameters": [
          {
            "description": "The ID of the job schedule to disable.",
            "in": "path",
            "name": "jobScheduleId",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "204": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Disables a job schedule.",
        "tags": [
          "JobSchedules"
        ],
        "x-ms-examples": {
          "JobSchedule disable": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobScheduleId": "jobScheduleId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "204": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/jobschedules/{jobScheduleId}/enable": {
      "post": {
        "operationId": "JobSchedule_Enable",
        "parameters": [
          {
            "description": "The ID of the job schedule to enable.",
            "in": "path",
            "name": "jobScheduleId",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "204": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Enables a job schedule.",
        "tags": [
          "JobSchedules"
        ],
        "x-ms-examples": {
          "JobSchedule enable": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobScheduleId": "jobScheduleId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "204": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/jobschedules/{jobScheduleId}/jobs": {
      "get": {
        "operationId": "Job_ListFromJobSchedule",
        "parameters": [
          {
            "description": "The ID of the job schedule from which you want to get a list of jobs.",
            "in": "path",
            "name": "jobScheduleId",
            "required": true,
            "type": "string"
          },
          {
            "description": "An OData $filter clause.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An OData $select clause.",
            "in": "query",
            "name": "$select",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An OData $expand clause.",
            "in": "query",
            "name": "$expand",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 1000,
            "description": "The maximum number of items to return in the response. A maximum of 1000 jobs can be returned.",
            "format": "int32",
            "in": "query",
            "maximum": 1000,
            "minimum": 1,
            "name": "maxresults",
            "required": false,
            "type": "integer",
            "x-ms-client-name": "maxResults",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the list of jobs.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/CloudJobListResult"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Lists the jobs that have been created under the specified job schedule.",
        "tags": [
          "Jobs"
        ],
        "x-ms-pageable": {
          "nextLinkName": "odata.nextLink"
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/jobschedules/{jobScheduleId}/terminate": {
      "post": {
        "operationId": "JobSchedule_Terminate",
        "parameters": [
          {
            "description": "The ID of the job schedule to terminates.",
            "in": "path",
            "name": "jobScheduleId",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "202": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Terminates a job schedule.",
        "tags": [
          "JobSchedules"
        ],
        "x-ms-examples": {
          "JobSchedule terminate": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "jobScheduleId": "jobScheduleId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "202": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/lifetimejobstats": {
      "get": {
        "description": "Statistics are aggregated across all jobs that have ever existed in the account, from account creation to the last update time of the statistics.",
        "operationId": "Job_GetAllLifetimeStatistics",
        "parameters": [
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the job statistics for the lifetime of the Batch account.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/JobStatistics"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Gets lifetime summary statistics for all of the jobs in the specified account.",
        "tags": [
          "Jobs"
        ],
        "x-ms-examples": {
          "Job get lifetime statistics": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "200": {
                "body": {
                  "kernelCPUTime": "PT0S",
                  "lastUpdateTime": "2014-08-04T18:30:00.4345729Z",
                  "numFailedTasks": 0,
                  "numSucceededTasks": 0,
                  "numTaskRetries": 0,
                  "readIOGiB": 10,
                  "readIOps": 0,
                  "startTime": "2014-08-01T18:30:00.4345729Z",
                  "url": "https://account.region.batch.core.windows.net/lifetimejobstats",
                  "userCPUTime": "PT0S",
                  "waitTime": "PT0S",
                  "wallClockTime": "PT0S",
                  "writeIOGiB": 5,
                  "writeIOps": 0
                }
              }
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/lifetimepoolstats": {
      "get": {
        "description": "Statistics are aggregated across all pools that have ever existed in the account, from account creation to the last update time of the statistics.",
        "operationId": "Pool_GetAllLifetimeStatistics",
        "parameters": [
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the pool statistics for the lifetime of the Batch account.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/PoolStatistics"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Gets lifetime summary statistics for all of the pools in the specified account.",
        "tags": [
          "Pools"
        ],
        "x-ms-examples": {
          "Pool get lifetime statistics": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "200": {
                "body": {
                  "lastUpdateTime": "2014-08-04T18:30:00.4345729Z",
                  "resourceStats": {
                    "avgCPUPercentage": 40,
                    "avgDiskGiB": 125,
                    "avgMemoryGiB": 2,
                    "diskReadGiB": 10,
                    "diskReadIOps": 0,
                    "diskWriteGiB": 1,
                    "diskWriteIOps": 0,
                    "lastUpdateTime": "2014-08-04T18:30:00.4345729Z",
                    "networkReadGiB": 20,
                    "networkWriteGiB": 25,
                    "peakDiskGiB": 240,
                    "peakMemoryGiB": 4,
                    "startTime": "2014-08-01T18:30:00.4345729Z"
                  },
                  "startTime": "2014-08-01T18:30:00.4345729Z",
                  "url": "https://account.region.batch.core.windows.net/lifetimepoolstats",
                  "usageStats": {
                    "dedicatedCoreTime": "PT0S",
                    "lastUpdateTime": "2014-08-04T18:30:00.4345729Z",
                    "startTime": "2014-08-01T18:30:00.4345729Z"
                  }
                }
              }
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/nodeagentskus": {
      "get": {
        "operationId": "Account_ListNodeAgentSkus",
        "parameters": [
          {
            "description": "An OData $filter clause.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 1000,
            "description": "The maximum number of items to return in the response. A maximum of 1000 results will be returned.",
            "format": "int32",
            "in": "query",
            "maximum": 1000,
            "minimum": 1,
            "name": "maxresults",
            "required": false,
            "type": "integer",
            "x-ms-client-name": "maxResults",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the list of node agent SKUs.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/AccountListNodeAgentSkusResult"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Lists all node agent SKUs supported by the Azure Batch service.",
        "tags": [
          "Accounts"
        ],
        "x-ms-examples": {
          "Account list node agent skus": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "batch.node.centos 7",
                      "osType": "linux",
                      "verifiedImageReferences": [
                        {
                          "offer": "CentOS",
                          "publisher": "OpenLogic",
                          "sku": "7.2",
                          "version": "latest"
                        },
                        {
                          "offer": "CentOS",
                          "publisher": "OpenLogic",
                          "sku": "7.1",
                          "version": "latest"
                        }
                      ]
                    },
                    {
                      "id": "batch.node.debian 8",
                      "osType": "linux",
                      "verifiedImageReferences": [
                        {
                          "offer": "Debian",
                          "publisher": "Credativ",
                          "sku": "8",
                          "version": "latest"
                        }
                      ]
                    },
                    {
                      "id": "batch.node.windows amd64",
                      "osType": "windows",
                      "verifiedImageReferences": [
                        {
                          "offer": "WindowsServer",
                          "publisher": "MicrosoftWindowsServer",
                          "sku": "2012-R2-Datacenter",
                          "version": "latest"
                        },
                        {
                          "offer": "WindowsServer",
                          "publisher": "MicrosoftWindowsServer",
                          "sku": "2012-Datacenter",
                          "version": "latest"
                        }
                      ]
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "odata.nextLink"
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/pools": {
      "get": {
        "operationId": "Pool_List",
        "parameters": [
          {
            "description": "An OData $filter clause.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An OData $select clause.",
            "in": "query",
            "name": "$select",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An OData $expand clause.",
            "in": "query",
            "name": "$expand",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 1000,
            "description": "The maximum number of items to return in the response. A maximum of 1000 pools can be returned.",
            "format": "int32",
            "in": "query",
            "maximum": 1000,
            "minimum": 1,
            "name": "maxresults",
            "required": false,
            "type": "integer",
            "x-ms-client-name": "maxResults",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the list of pools.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/CloudPoolListResult"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Lists all of the pools in the specified account.",
        "tags": [
          "Pools"
        ],
        "x-ms-examples": {
          "Pool list": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "allocationState": "steady",
                      "allocationStateTransitionTime": "2016-11-21T18:27:40.287803Z",
                      "cloudServiceConfiguration": {
                        "currentOSVersion": "*",
                        "osFamily": "4",
                        "targetOSVersion": "*"
                      },
                      "creationTime": "2016-11-21T18:26:39.7108787Z",
                      "currentDedicatedNodes": 3,
                      "currentLowPriorityNodes": 0,
                      "eTag": "0x8D4123BEF87D233",
                      "enableAutoScale": false,
                      "enableInterNodeCommunication": false,
                      "id": "testPool",
                      "lastModified": "2016-11-21T18:26:39.7108787Z",
                      "maxTasksPerNode": 1,
                      "resizeTimeout": "PT15M",
                      "startTask": {
                        "commandLine": "cmd /c echo hello",
                        "maxTaskRetryCount": 0,
                        "userIdentity": {
                          "autoUser": {
                            "elevationLevel": "nonAdmin",
                            "scope": "task"
                          }
                        },
                        "waitForSuccess": false
                      },
                      "state": "active",
                      "stateTransitionTime": "2016-11-21T18:26:39.7108787Z",
                      "targetDedicatedNodes": 3,
                      "targetLowPriorityNodes": 0,
                      "taskSchedulingPolicy": {
                        "nodeFillType": "spread"
                      },
                      "url": "https://accountname.region.batch.azure.com/pools/testPool",
                      "vmSize": "small"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "odata.nextLink"
        },
        "x-ms-request-id": "request-id"
      },
      "post": {
        "description": "When naming pools, avoid including sensitive information such as user names or secret project names. This information may appear in telemetry logs accessible to Microsoft Support engineers.",
        "operationId": "Pool_Add",
        "parameters": [
          {
            "description": "The pool to be added.",
            "in": "body",
            "name": "pool",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PoolAddParameter"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "201": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Adds a pool to the specified account.",
        "tags": [
          "Pools"
        ],
        "x-ms-examples": {
          "Add a CloudServiceConfiguration pool": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "pool": {
                "cloudServiceConfiguration": {
                  "osFamily": "4"
                },
                "enableAutoScale": false,
                "enableInterNodeCommunication": true,
                "id": "poolId",
                "maxTasksPerNode": 3,
                "metadata": [
                  {
                    "name": "myproperty",
                    "value": "myvalue"
                  }
                ],
                "resizeTimeout": "PT15M",
                "targetDedicatedNodes": 5,
                "targetLowPriorityNodes": 0,
                "taskSchedulingPolicy": {
                  "nodeFillType": "spread"
                },
                "vmSize": "small"
              }
            },
            "responses": {
              "201": {
                "ETag": "0x8D45765A6A2DC04",
                "Last-Modified": "Fri, 17 Feb 2017 00:00:00 GMT",
                "request-id": "00000000-0000-0000-0000-000000000000"
              }
            }
          },
          "Add a VirtualMachineConfiguration pool": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "pool": {
                "enableAutoScale": false,
                "enableInterNodeCommunication": true,
                "id": "pool2",
                "maxTasksPerNode": 3,
                "metadata": [
                  {
                    "name": "myproperty",
                    "value": "myvalue"
                  }
                ],
                "resizeTimeout": "PT15M",
                "targetDedicatedNodes": 5,
                "targetLowPriorityNodes": 0,
                "taskSchedulingPolicy": {
                  "nodeFillType": "spread"
                },
                "virtualMachineConfiguration": {
                  "imageReference": {
                    "offer": "UbuntuServer",
                    "publisher": "Canonical",
                    "sku": "16.04.0-LTS"
                  },
                  "nodeAgentSKUId": "batch.node.ubuntu 16.04"
                },
                "vmSize": "standard_a1"
              }
            },
            "responses": {
              "201": {
                "ETag": "0x8D45765A6A2DC04",
                "Last-Modified": "Fri, 17 Feb 2017 00:00:00 GMT",
                "request-id": "00000000-0000-0000-0000-000000000000"
              }
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/pools/{poolId}": {
      "delete": {
        "description": "When you request that a pool be deleted, the following actions occur: the pool state is set to deleting; any ongoing resize operation on the pool are stopped; the Batch service starts resizing the pool to zero nodes; any tasks running on existing nodes are terminated and requeued (as if a resize pool operation had been requested with the default requeue option); finally, the pool is removed from the system. Because running tasks are requeued, the user can rerun these tasks by updating their job to target a different pool. The tasks can then run on the new pool. If you want to override the requeue behavior, then you should call resize pool explicitly to shrink the pool to zero size before deleting the pool. If you call an Update, Patch or Delete API on a pool in the deleting state, it will fail with HTTP status code 409 with error code PoolBeingDeleted.",
        "operationId": "Pool_Delete",
        "parameters": [
          {
            "description": "The ID of the pool to delete.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "202": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Deletes a pool from the specified account.",
        "tags": [
          "Pools"
        ],
        "x-ms-examples": {
          "Pool delete": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "poolId": "poolId"
            },
            "responses": {
              "202": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      },
      "get": {
        "description": "Gets information about the specified pool.",
        "operationId": "Pool_Get",
        "parameters": [
          {
            "description": "The ID of the pool to get.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "description": "An OData $select clause.",
            "in": "query",
            "name": "$select",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An OData $expand clause.",
            "in": "query",
            "name": "$expand",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the pool.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/CloudPool"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "tags": [
          "Pools"
        ],
        "x-ms-examples": {
          "Pool get": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "poolId": "pool"
            },
            "responses": {
              "200": {
                "body": {
                  "allocationState": "steady",
                  "allocationStateTransitionTime": "2016-11-22T18:55:24.8154041Z",
                  "creationTime": "2016-11-22T18:55:24.2632496Z",
                  "currentDedicatedNodes": 0,
                  "currentLowPriorityNodes": 0,
                  "eTag": "0x8D413091E739A56",
                  "enableAutoScale": false,
                  "enableInterNodeCommunication": false,
                  "id": "pool",
                  "lastModified": "2016-11-22T18:55:25.2608598Z",
                  "maxTasksPerNode": 1,
                  "resizeTimeout": "PT15M",
                  "startTask": {
                    "commandLine": "/bin/bash -c 'echo start task'",
                    "maxTaskRetryCount": 0,
                    "userIdentity": {
                      "autoUser": {
                        "elevationLevel": "nonAdmin",
                        "scope": "task"
                      }
                    },
                    "waitForSuccess": false
                  },
                  "state": "active",
                  "stateTransitionTime": "2016-11-22T18:55:24.2632496Z",
                  "targetDedicatedNodes": 0,
                  "targetLowPriorityNodes": 0,
                  "taskSchedulingPolicy": {
                    "nodeFillType": "spread"
                  },
                  "url": "https://account.region.batch.azure.com/pools/pool",
                  "virtualMachineConfiguration": {
                    "imageReference": {
                      "offer": "UbuntuServer",
                      "publisher": "Canonical",
                      "sku": "16.04.0-LTS",
                      "version": "latest"
                    },
                    "nodeAgentSKUId": "batch.node.ubuntu 16.04"
                  },
                  "vmSize": "standard_a1"
                }
              }
            }
          }
        },
        "x-ms-request-id": "request-id"
      },
      "head": {
        "description": "Gets basic properties of a pool.",
        "operationId": "Pool_Exists",
        "parameters": [
          {
            "description": "The ID of the pool to get.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing headers related to the pool, if it exists.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "404": {
            "description": "The pool does not exist."
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "tags": [
          "Pools"
        ],
        "x-ms-request-id": "request-id"
      },
      "patch": {
        "description": "This only replaces the pool properties specified in the request. For example, if the pool has a start task associated with it, and a request does not specify a start task element, then the pool keeps the existing start task.",
        "operationId": "Pool_Patch",
        "parameters": [
          {
            "description": "The ID of the pool to update.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The parameters for the request.",
            "in": "body",
            "name": "poolPatchParameter",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PoolPatchParameter"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Updates the properties of the specified pool.",
        "tags": [
          "Pools"
        ],
        "x-ms-request-id": "request-id"
      }
    },
    "/pools/{poolId}/disableautoscale": {
      "post": {
        "operationId": "Pool_DisableAutoScale",
        "parameters": [
          {
            "description": "The ID of the pool on which to disable automatic scaling.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Disables automatic scaling for a pool.",
        "tags": [
          "Pools"
        ],
        "x-ms-request-id": "request-id"
      }
    },
    "/pools/{poolId}/enableautoscale": {
      "post": {
        "description": "You cannot enable automatic scaling on a pool if a resize operation is in progress on the pool. If automatic scaling of the pool is currently disabled, you must specify a valid autoscale formula as part of the request. If automatic scaling of the pool is already enabled, you may specify a new autoscale formula and/or a new evaluation interval. You cannot call this API for the same pool more than once every 30 seconds.",
        "operationId": "Pool_EnableAutoScale",
        "parameters": [
          {
            "description": "The ID of the pool on which to enable automatic scaling.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The parameters for the request.",
            "in": "body",
            "name": "poolEnableAutoScaleParameter",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PoolEnableAutoScaleParameter"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Enables automatic scaling for a pool.",
        "tags": [
          "Pools"
        ],
        "x-ms-examples": {
          "Pool enable autoscale": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "poolEnableAutoScaleParameter": {
                "autoScaleEvaluationInterval": "PT8M",
                "autoScaleFormula": "$TargetDedicated=0"
              },
              "poolId": "poolId"
            },
            "responses": {
              "200": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/pools/{poolId}/evaluateautoscale": {
      "post": {
        "description": "This API is primarily for validating an autoscale formula, as it simply returns the result without applying the formula to the pool. The pool must have auto scaling enabled in order to evaluate a formula.",
        "operationId": "Pool_EvaluateAutoScale",
        "parameters": [
          {
            "description": "The ID of the pool on which to evaluate the automatic scaling formula.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The parameters for the request.",
            "in": "body",
            "name": "poolEvaluateAutoScaleParameter",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PoolEvaluateAutoScaleParameter"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the results of the autoscale evaluation.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/AutoScaleRun"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Gets the result of evaluating an automatic scaling formula on the pool.",
        "tags": [
          "Pools"
        ],
        "x-ms-examples": {
          "Pool evaluate autoscale": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "poolEvaluateAutoScaleParameter": {
                "autoScaleFormula": "$TargetDedicated=1"
              },
              "poolId": "poolId"
            },
            "responses": {
              "200": {
                "body": {
                  "results": "$TargetDedicated=1;$NodeDeallocationOption=requeue",
                  "timestamp": "2016-11-22T19:39:28.5246331Z"
                }
              }
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/pools/{poolId}/nodes": {
      "get": {
        "operationId": "ComputeNode_List",
        "parameters": [
          {
            "description": "The ID of the pool from which you want to list nodes.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "description": "An OData $filter clause..",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An OData $select clause.",
            "in": "query",
            "name": "$select",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 1000,
            "description": "The maximum number of items to return in the response. A maximum of 1000 nodes can be returned.",
            "format": "int32",
            "in": "query",
            "maximum": 1000,
            "minimum": 1,
            "name": "maxresults",
            "required": false,
            "type": "integer",
            "x-ms-client-name": "maxResults",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the list of nodes.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/ComputeNodeListResult"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Lists the compute nodes in the specified pool.",
        "tags": [
          "ComputeNodes"
        ],
        "x-ms-examples": {
          "Node list": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "poolId": "poolId"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "affinityId": "TVM:tvm-1695681911_1-20161122t193202z",
                      "allocationTime": "2016-11-22T19:32:02.8155319Z",
                      "id": "tvm-1695681911_1-20161122t193202z",
                      "ipAddress": "1.1.1.1",
                      "isDedicated": true,
                      "lastBootTime": "2016-11-22T22:22:24.4634125Z",
                      "runningTasksCount": 0,
                      "schedulingState": "enabled",
                      "startTask": {
                        "commandLine": "cmd /c echo hello",
                        "maxTaskRetryCount": 0,
                        "userIdentity": {
                          "autoUser": {
                            "elevationLevel": "nonAdmin",
                            "scope": "task"
                          }
                        },
                        "waitForSuccess": false
                      },
                      "startTaskInfo": {
                        "endTime": "2016-11-22T22:22:27.567189Z",
                        "exitCode": 0,
                        "retryCount": 0,
                        "startTime": "2016-11-22T22:22:27.2236818Z",
                        "state": "completed"
                      },
                      "state": "idle",
                      "stateTransitionTime": "2016-11-22T22:22:27.2236818Z",
                      "totalTasksRun": 0,
                      "totalTasksSucceeded": 0,
                      "url": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-1695681911_1-20161122t193202z",
                      "vmSize": "small"
                    },
                    {
                      "affinityId": "TVM:tvm-1695681911_2-20161122t193202z",
                      "allocationTime": "2016-11-22T19:32:02.8155319Z",
                      "id": "tvm-1695681911_2-20161122t193202z",
                      "ipAddress": "1.1.1.1",
                      "isDedicated": true,
                      "lastBootTime": "2016-11-22T19:37:28.623369Z",
                      "runningTasksCount": 0,
                      "schedulingState": "enabled",
                      "startTask": {
                        "commandLine": "cmd /c echo hello",
                        "maxTaskRetryCount": 0,
                        "userIdentity": {
                          "autoUser": {
                            "elevationLevel": "nonAdmin",
                            "scope": "task"
                          }
                        },
                        "waitForSuccess": false
                      },
                      "startTaskInfo": {
                        "endTime": "2016-11-22T19:37:31.838028Z",
                        "exitCode": 0,
                        "retryCount": 0,
                        "startTime": "2016-11-22T19:37:31.4285526Z",
                        "state": "completed"
                      },
                      "state": "idle",
                      "stateTransitionTime": "2016-11-22T19:37:31.4285526Z",
                      "totalTasksRun": 0,
                      "totalTasksSucceeded": 0,
                      "url": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-1695681911_2-20161122t193202z",
                      "vmSize": "small"
                    },
                    {
                      "affinityId": "TVM:tvm-1695681911_3-20161122t193202z",
                      "allocationTime": "2016-11-22T19:32:02.8155319Z",
                      "id": "tvm-1695681911_3-20161122t193202z",
                      "ipAddress": "1.1.1.1",
                      "isDedicated": true,
                      "lastBootTime": "2016-11-22T19:36:48.21721Z",
                      "runningTasksCount": 0,
                      "schedulingState": "enabled",
                      "startTask": {
                        "commandLine": "cmd /c echo hello",
                        "maxTaskRetryCount": 0,
                        "userIdentity": {
                          "autoUser": {
                            "elevationLevel": "nonAdmin",
                            "scope": "task"
                          }
                        },
                        "waitForSuccess": false
                      },
                      "startTaskInfo": {
                        "endTime": "2016-11-22T19:36:51.2363447Z",
                        "exitCode": 0,
                        "retryCount": 0,
                        "startTime": "2016-11-22T19:36:51.0013378Z",
                        "state": "completed"
                      },
                      "state": "idle",
                      "stateTransitionTime": "2016-11-22T19:36:51.0013378Z",
                      "totalTasksRun": 0,
                      "totalTasksSucceeded": 0,
                      "url": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-1695681911_3-20161122t193202z",
                      "vmSize": "small"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "odata.nextLink"
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/pools/{poolId}/nodes/{nodeId}": {
      "get": {
        "operationId": "ComputeNode_Get",
        "parameters": [
          {
            "description": "The ID of the pool that contains the compute node.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the compute node that you want to get information about.",
            "in": "path",
            "name": "nodeId",
            "required": true,
            "type": "string"
          },
          {
            "description": "An OData $select clause.",
            "in": "query",
            "name": "$select",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the compute node.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/ComputeNode"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Gets information about the specified compute node.",
        "tags": [
          "ComputeNodes"
        ],
        "x-ms-examples": {
          "Node get": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "nodeId": "tvm-1695681911_2-20161122t193202z",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "poolId": "poolId"
            },
            "responses": {
              "200": {
                "body": {
                  "affinityId": "TVM:tvm-1695681911_2-20161122t193202z",
                  "allocationTime": "2016-11-22T19:32:02.8155319Z",
                  "id": "tvm-1695681911_2-20161122t193202z",
                  "ipAddress": "1.1.1.1",
                  "isDedicated": true,
                  "lastBootTime": "2016-11-22T19:37:28.623369Z",
                  "runningTasksCount": 0,
                  "schedulingState": "enabled",
                  "startTask": {
                    "commandLine": "cmd /c echo hello",
                    "maxTaskRetryCount": 0,
                    "userIdentity": {
                      "autoUser": {
                        "elevationLevel": "nonAdmin",
                        "scope": "task"
                      }
                    },
                    "waitForSuccess": false
                  },
                  "startTaskInfo": {
                    "endTime": "2016-11-22T19:37:31.838028Z",
                    "exitCode": 0,
                    "retryCount": 0,
                    "startTime": "2016-11-22T19:37:31.4285526Z",
                    "state": "completed"
                  },
                  "state": "idle",
                  "stateTransitionTime": "2016-11-22T19:37:31.4285526Z",
                  "totalTasksRun": 0,
                  "totalTasksSucceeded": 0,
                  "url": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-1695681911_2-20161122t193202z",
                  "vmSize": "small"
                }
              }
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/pools/{poolId}/nodes/{nodeId}/disablescheduling": {
      "post": {
        "description": "You can disable task scheduling on a node only if its current scheduling state is enabled.",
        "operationId": "ComputeNode_DisableScheduling",
        "parameters": [
          {
            "description": "The ID of the pool that contains the compute node.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the compute node on which you want to disable task scheduling.",
            "in": "path",
            "name": "nodeId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The parameters for the request.",
            "in": "body",
            "name": "nodeDisableSchedulingParameter",
            "required": false,
            "schema": {
              "$ref": "#/definitions/NodeDisableSchedulingParameter"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Disables task scheduling on the specified compute node.",
        "tags": [
          "ComputeNodes"
        ],
        "x-ms-examples": {
          "Node disable scheduling": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "nodeDisableSchedulingParameter": {
                "nodeDisableSchedulingOption": "terminate"
              },
              "nodeId": "tvm-1695681911_1-20161122t193202z",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "poolId": "poolId"
            },
            "responses": {
              "200": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/pools/{poolId}/nodes/{nodeId}/enablescheduling": {
      "post": {
        "description": "You can enable task scheduling on a node only if its current scheduling state is disabled",
        "operationId": "ComputeNode_EnableScheduling",
        "parameters": [
          {
            "description": "The ID of the pool that contains the compute node.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the compute node on which you want to enable task scheduling.",
            "in": "path",
            "name": "nodeId",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Enables task scheduling on the specified compute node.",
        "tags": [
          "ComputeNodes"
        ],
        "x-ms-examples": {
          "Node enable scheduling": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "nodeId": "tvm-1695681911_1-20161122t193202z",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "poolId": "poolId"
            },
            "responses": {
              "200": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/pools/{poolId}/nodes/{nodeId}/files": {
      "get": {
        "operationId": "File_ListFromComputeNode",
        "parameters": [
          {
            "description": "The ID of the pool that contains the compute node.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the compute node whose files you want to list.",
            "in": "path",
            "name": "nodeId",
            "required": true,
            "type": "string"
          },
          {
            "description": "An OData $filter clause.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "Whether to list children of a directory.",
            "in": "query",
            "name": "recursive",
            "required": false,
            "type": "boolean"
          },
          {
            "default": 1000,
            "description": "The maximum number of items to return in the response. A maximum of 1000 files can be returned.",
            "format": "int32",
            "in": "query",
            "maximum": 1000,
            "minimum": 1,
            "name": "maxresults",
            "required": false,
            "type": "integer",
            "x-ms-client-name": "maxResults",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the list of files.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/NodeFileListResult"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Lists all of the files in task directories on the specified compute node.",
        "tags": [
          "Files"
        ],
        "x-ms-examples": {
          "File list from node": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "nodeId": "tvm-1695681911_1-20161122t193202z",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "poolId": "poolId",
              "recursive": false
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "isDirectory": true,
                      "name": "shared",
                      "url": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-2167304207_2-20140919t215614z/files/shared"
                    },
                    {
                      "isDirectory": false,
                      "name": "startup\\ProcessEnv.cmd",
                      "properties": {
                        "contentLength": 1813,
                        "contentType": "application/octet-stream",
                        "creationTime": "2014-09-19T21:56:17.679195Z",
                        "lastModified": "2014-09-19T21:56:17.679195Z"
                      },
                      "url": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-2167304207_2-20140919t215614z/files/startup\\ProcessEnv.cmd"
                    },
                    {
                      "isDirectory": false,
                      "name": "startup\\stderr.txt",
                      "properties": {
                        "contentLength": 0,
                        "contentType": "application/octet-stream",
                        "creationTime": "2014-09-19T21:56:17.5590855Z",
                        "lastModified": "2014-09-19T21:56:17.5590855Z"
                      },
                      "url": "https://account.region.batch.azure.com/pools/poolId/nodes/tvm-2167304207_2-20140919t215614z/files/startup\\stderr.txt"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "odata.nextLink"
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/pools/{poolId}/nodes/{nodeId}/files/{filePath}": {
      "delete": {
        "operationId": "File_DeleteFromComputeNode",
        "parameters": [
          {
            "description": "The ID of the pool that contains the compute node.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the compute node from which you want to delete the file.",
            "in": "path",
            "name": "nodeId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The path to the file or directory that you want to delete.",
            "in": "path",
            "name": "filePath",
            "required": true,
            "type": "string"
          },
          {
            "description": "Whether to delete children of a directory. If the filePath parameter represents a directory instead of a file, you can set recursive to true to delete the directory and all of the files and subdirectories in it. If recursive is false then the directory must be empty or deletion will fail.",
            "in": "query",
            "name": "recursive",
            "required": false,
            "type": "boolean"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Deletes the specified file from the compute node.",
        "tags": [
          "Files"
        ],
        "x-ms-examples": {
          "File delete from node": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "filePath": "workitems\\jobId\\job-1\\task1\\wd\\testFile.txt",
              "nodeId": "tvm-1695681911_1-20161122t193202z",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "poolId": "poolId",
              "recursive": false
            },
            "responses": {
              "200": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      },
      "get": {
        "description": "Returns the content of the specified compute node file.",
        "operationId": "File_GetFromComputeNode",
        "parameters": [
          {
            "description": "The ID of the pool that contains the compute node.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the compute node that contains the file.",
            "in": "path",
            "name": "nodeId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The path to the compute node file that you want to get the content of.",
            "in": "path",
            "name": "filePath",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The byte range to be retrieved. The default is to retrieve the entire file. The format is bytes=startRange-endRange.",
            "in": "header",
            "name": "ocp-range",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The file content.",
            "headers": {
              "Content-Length": {
                "description": "The length of the file.",
                "format": "int64",
                "type": "integer"
              },
              "Content-Type": {
                "description": "The content type of the file.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "ocp-batch-file-isdirectory": {
                "description": "Whether the object represents a directory.",
                "type": "boolean"
              },
              "ocp-batch-file-mode": {
                "description": "The file mode attribute in octal format.",
                "type": "string"
              },
              "ocp-batch-file-url": {
                "description": "The URL of the file.",
                "type": "string"
              },
              "ocp-creation-time": {
                "description": "The file creation time.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "type": "file"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "tags": [
          "Files"
        ],
        "x-ms-request-id": "request-id"
      },
      "head": {
        "description": "Gets the properties of the specified compute node file.",
        "operationId": "File_GetPropertiesFromComputeNode",
        "parameters": [
          {
            "description": "The ID of the pool that contains the compute node.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the compute node that contains the file.",
            "in": "path",
            "name": "nodeId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The path to the compute node file that you want to get the properties of.",
            "in": "path",
            "name": "filePath",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the file properties.",
            "headers": {
              "Content-Length": {
                "description": "The length of the file.",
                "format": "int64",
                "type": "integer"
              },
              "Content-Type": {
                "description": "The content type of the file.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "ocp-batch-file-isdirectory": {
                "description": "Whether the object represents a directory.",
                "type": "boolean"
              },
              "ocp-batch-file-mode": {
                "description": "The file mode attribute in octal format.",
                "type": "string"
              },
              "ocp-batch-file-url": {
                "description": "The URL of the file.",
                "type": "string"
              },
              "ocp-creation-time": {
                "description": "The file creation time.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "tags": [
          "Files"
        ],
        "x-ms-examples": {
          "File get properties from node": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "filePath": "workitems\\jobId\\job-1\\task1\\wd\\testFile.txt",
              "nodeId": "nodeId",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "poolId": "poolId"
            },
            "responses": {
              "200": {
                "headers": {
                  "Content-Length": "17",
                  "Content-Type": "application/octet-stream",
                  "Last-Modified": "Fri, 17 Feb 2017 00:00:00 GMT",
                  "ocp-batch-file-isdirectory": "false",
                  "ocp-creation-time": "Fri, 17 Feb 2017 00:00:00 GMT"
                }
              }
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/pools/{poolId}/nodes/{nodeId}/rdp": {
      "get": {
        "description": "Before you can access a node by using the RDP file, you must create a user account on the node. This API can only be invoked on pools created with a cloud service configuration. For pools created with a virtual machine configuration, see the GetRemoteLoginSettings API.",
        "operationId": "ComputeNode_GetRemoteDesktop",
        "parameters": [
          {
            "description": "The ID of the pool that contains the compute node.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the compute node for which you want to get the Remote Desktop Protocol file.",
            "in": "path",
            "name": "nodeId",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the RDP information.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "type": "file"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Gets the Remote Desktop Protocol file for the specified compute node.",
        "tags": [
          "ComputeNodes"
        ],
        "x-ms-request-id": "request-id"
      }
    },
    "/pools/{poolId}/nodes/{nodeId}/reboot": {
      "post": {
        "description": "You can restart a node only if it is in an idle or running state.",
        "operationId": "ComputeNode_Reboot",
        "parameters": [
          {
            "description": "The ID of the pool that contains the compute node.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the compute node that you want to restart.",
            "in": "path",
            "name": "nodeId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The parameters for the request.",
            "in": "body",
            "name": "nodeRebootParameter",
            "required": false,
            "schema": {
              "$ref": "#/definitions/NodeRebootParameter"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "202": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Restarts the specified compute node.",
        "tags": [
          "ComputeNodes"
        ],
        "x-ms-examples": {
          "Node reboot": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "nodeId": "tvm-1695681911_1-20161122t193202z",
              "nodeRebootParameter": {
                "nodeRebootOption": "terminate"
              },
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "poolId": "poolId"
            },
            "responses": {
              "202": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/pools/{poolId}/nodes/{nodeId}/reimage": {
      "post": {
        "description": "You can reinstall the operating system on a node only if it is in an idle or running state. This API can be invoked only on pools created with the cloud service configuration property.",
        "operationId": "ComputeNode_Reimage",
        "parameters": [
          {
            "description": "The ID of the pool that contains the compute node.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the compute node that you want to restart.",
            "in": "path",
            "name": "nodeId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The parameters for the request.",
            "in": "body",
            "name": "nodeReimageParameter",
            "required": false,
            "schema": {
              "$ref": "#/definitions/NodeReimageParameter"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "202": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Reinstalls the operating system on the specified compute node.",
        "tags": [
          "ComputeNodes"
        ],
        "x-ms-examples": {
          "Node reimage": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "nodeId": "tvm-1695681911_1-20161122t193202z",
              "nodeReimageParameter": {
                "nodeReimageOption": "terminate"
              },
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "poolId": "poolId"
            },
            "responses": {
              "202": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/pools/{poolId}/nodes/{nodeId}/remoteloginsettings": {
      "get": {
        "description": "Before you can remotely login to a node using the remote login settings, you must create a user account on the node. This API can be invoked only on pools created with the virtual machine configuration property. For pools created with a cloud service configuration, see the GetRemoteDesktop API.",
        "operationId": "ComputeNode_GetRemoteLoginSettings",
        "parameters": [
          {
            "description": "The ID of the pool that contains the compute node.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the compute node for which to obtain the remote login settings.",
            "in": "path",
            "name": "nodeId",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the login settings.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/ComputeNodeGetRemoteLoginSettingsResult"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Gets the settings required for remote login to a compute node.",
        "tags": [
          "ComputeNodes"
        ],
        "x-ms-examples": {
          "Node get remote login settings": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "nodeId": "tvm-1695681911_1-20161121t182739z",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "poolId": "poolId"
            },
            "responses": {
              "200": {
                "body": {
                  "remoteLoginIPAddress": "1.1.1.1",
                  "remoteLoginPort": 50000
                }
              }
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/pools/{poolId}/nodes/{nodeId}/users": {
      "post": {
        "description": "You can add a user account to a node only when it is in the idle or running state.",
        "operationId": "ComputeNode_AddUser",
        "parameters": [
          {
            "description": "The ID of the pool that contains the compute node.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the machine on which you want to create a user account.",
            "in": "path",
            "name": "nodeId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The user account to be created.",
            "in": "body",
            "name": "user",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ComputeNodeUser"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "201": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Adds a user account to the specified compute node.",
        "tags": [
          "ComputeNodes"
        ],
        "x-ms-examples": {
          "Node add user": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "nodeId": "tvm-1695681911_1-20161121t182739z",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "poolId": "poolId",
              "user": {
                "expiryTime": "2017-08-01T00:00:00Z",
                "isAdmin": false,
                "name": "userName",
                "password": "Password"
              }
            },
            "responses": {
              "201": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/pools/{poolId}/nodes/{nodeId}/users/{userName}": {
      "delete": {
        "description": "You can delete a user account to a node only when it is in the idle or running state.",
        "operationId": "ComputeNode_DeleteUser",
        "parameters": [
          {
            "description": "The ID of the pool that contains the compute node.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the machine on which you want to delete a user account.",
            "in": "path",
            "name": "nodeId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the user account to delete.",
            "in": "path",
            "name": "userName",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Deletes a user account from the specified compute node.",
        "tags": [
          "ComputeNodes"
        ],
        "x-ms-examples": {
          "Node delete user": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "nodeId": "tvm-1695681911_1-20161121t182739z",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "poolId": "poolId",
              "userName": "userName"
            },
            "responses": {
              "200": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      },
      "put": {
        "description": "This operation replaces of all the updatable properties of the account. For example, if the expiryTime element is not specified, the current value is replaced with the default value, not left unmodified. You can update a user account on a node only when it is in the idle or running state.",
        "operationId": "ComputeNode_UpdateUser",
        "parameters": [
          {
            "description": "The ID of the pool that contains the compute node.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The ID of the machine on which you want to update a user account.",
            "in": "path",
            "name": "nodeId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the user account to update.",
            "in": "path",
            "name": "userName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The parameters for the request.",
            "in": "body",
            "name": "nodeUpdateUserParameter",
            "required": true,
            "schema": {
              "$ref": "#/definitions/NodeUpdateUserParameter"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Updates the password and expiration time of a user account on the specified compute node.",
        "tags": [
          "ComputeNodes"
        ],
        "x-ms-examples": {
          "Node update user": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "nodeId": "tvm-1695681911_1-20161121t182739z",
              "nodeUpdateUserParameter": {
                "expiryTime": "2016-11-27T00:45:48.7320857Z",
                "password": "12345"
              },
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "poolId": "poolId",
              "userName": "userName"
            },
            "responses": {
              "200": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/pools/{poolId}/removenodes": {
      "post": {
        "description": "This operation can only run when the allocation state of the pool is steady. When this operation runs, the allocation state changes from steady to resizing.",
        "operationId": "Pool_RemoveNodes",
        "parameters": [
          {
            "description": "The ID of the pool from which you want to remove nodes.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The parameters for the request.",
            "in": "body",
            "name": "nodeRemoveParameter",
            "required": true,
            "schema": {
              "$ref": "#/definitions/NodeRemoveParameter"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "202": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Removes compute nodes from the specified pool.",
        "tags": [
          "ComputeNodes"
        ],
        "x-ms-examples": {
          "Pool remove nodes": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "nodeRemoveParameter": {
                "nodeList": [
                  "tvm-1695681911_1-20161122t224741z",
                  "tvm-1695681911_2-20161122t224741z"
                ]
              },
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "poolId": "poolId"
            },
            "responses": {
              "202": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/pools/{poolId}/resize": {
      "post": {
        "description": "You can only resize a pool when its allocation state is steady. If the pool is already resizing, the request fails with status code 409. When you resize a pool, the pool's allocation state changes from steady to resizing. You cannot resize pools which are configured for automatic scaling. If you try to do this, the Batch service returns an error 409. If you resize a pool downwards, the Batch service chooses which nodes to remove. To remove specific nodes, use the pool remove nodes API instead.",
        "operationId": "Pool_Resize",
        "parameters": [
          {
            "description": "The ID of the pool to resize.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The parameters for the request.",
            "in": "body",
            "name": "poolResizeParameter",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PoolResizeParameter"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "202": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Changes the number of compute nodes that are assigned to a pool.",
        "tags": [
          "Pools"
        ],
        "x-ms-examples": {
          "Pool resize": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "poolId": "resizePool",
              "poolResizeParameter": {
                "targetDedicatedNodes": 1,
                "targetLowPriorityNodes": 0
              }
            },
            "responses": {
              "202": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/pools/{poolId}/stopresize": {
      "post": {
        "description": "This does not restore the pool to its previous state before the resize operation: it only stops any further changes being made, and the pool maintains its current state. After stopping, the pool stabilizes at the number of nodes it was at when the stop operation was done. During the stop operation, the pool allocation state changes first to stopping and then to steady. A resize operation need not be an explicit resize pool request; this API can also be used to halt the initial sizing of the pool when it is created.",
        "operationId": "Pool_StopResize",
        "parameters": [
          {
            "description": "The ID of the pool whose resizing you want to stop.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "202": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service. If you call this API on a pool which is not in the resizing state, the request fails with HTTP status code 409.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Stops an ongoing resize operation on the pool.",
        "tags": [
          "Pools"
        ],
        "x-ms-examples": {
          "Pool stop resize": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "poolId": "poolId"
            },
            "responses": {
              "202": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/pools/{poolId}/updateproperties": {
      "post": {
        "description": "This fully replaces all the updatable properties of the pool. For example, if the pool has a start task associated with it and if start task is not specified with this request, then the Batch service will remove the existing start task.",
        "operationId": "Pool_UpdateProperties",
        "parameters": [
          {
            "description": "The ID of the pool to update.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The parameters for the request.",
            "in": "body",
            "name": "poolUpdatePropertiesParameter",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PoolUpdatePropertiesParameter"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "204": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Updates the properties of the specified pool.",
        "tags": [
          "Pools"
        ],
        "x-ms-examples": {
          "Pool update": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT",
              "poolId": "poolId",
              "poolUpdatePropertiesParameter": {
                "applicationPackageReferences": [],
                "certificateReferences": [],
                "metadata": [],
                "startTask": {
                  "commandLine": "/bin/bash -c 'echo start task'"
                }
              }
            },
            "responses": {
              "204": {}
            }
          }
        },
        "x-ms-request-id": "request-id"
      }
    },
    "/pools/{poolId}/upgradeos": {
      "post": {
        "description": "During an upgrade, the Batch service upgrades each compute node in the pool. When a compute node is chosen for upgrade, any tasks running on that node are removed from the node and returned to the queue to be rerun later (or on a different compute node). The node will be unavailable until the upgrade is complete. This operation results in temporarily reduced pool capacity as nodes are taken out of service to be upgraded. Although the Batch service tries to avoid upgrading all compute nodes at the same time, it does not guarantee to do this (particularly on small pools); therefore, the pool may be temporarily unavailable to run tasks. When this operation runs, the pool state changes to upgrading. When all compute nodes have finished upgrading, the pool state returns to active. While the upgrade is in progress, the pool's currentOSVersion reflects the OS version that nodes are upgrading from, and targetOSVersion reflects the OS version that nodes are upgrading to. Once the upgrade is complete, currentOSVersion is updated to reflect the OS version now running on all nodes. This operation can only be invoked on pools created with the cloudServiceConfiguration property.",
        "operationId": "Pool_UpgradeOS",
        "parameters": [
          {
            "description": "The ID of the pool to upgrade.",
            "in": "path",
            "name": "poolId",
            "required": true,
            "type": "string"
          },
          {
            "description": "The parameters for the request.",
            "in": "body",
            "name": "poolUpgradeOSParameter",
            "required": true,
            "schema": {
              "$ref": "#/definitions/PoolUpgradeOSParameter"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service exactly matches the value specified by the client.",
            "in": "header",
            "name": "If-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An ETag value associated with the version of the resource known to the client. The operation will be performed only if the resource's current ETag on the service does not match the value specified by the client.",
            "in": "header",
            "name": "If-None-Match",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Modified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "A timestamp indicating the last modified time of the resource known to the client. The operation will be performed only if the resource on the service has not been modified since the specified time.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "If-Unmodified-Since",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "202": {
            "description": "The request to the Batch service was successful.",
            "headers": {
              "DataServiceId": {
                "description": "The OData ID of the resource to which the request applied.",
                "type": "string"
              },
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Upgrades the operating system of the specified pool.",
        "tags": [
          "Pools"
        ],
        "x-ms-request-id": "request-id"
      }
    },
    "/poolusagemetrics": {
      "get": {
        "description": "If you do not specify a $filter clause including a poolId, the response includes all pools that existed in the account in the time range of the returned aggregation intervals. If you do not specify a $filter clause including a startTime or endTime these filters default to the start and end times of the last aggregation interval currently available; that is, only the last aggregation interval is returned.",
        "operationId": "Pool_ListUsageMetrics",
        "parameters": [
          {
            "description": "The earliest time from which to include metrics. This must be at least two and a half hours before the current time. If not specified this defaults to the start time of the last aggregation interval currently available.",
            "format": "date-time",
            "in": "query",
            "name": "starttime",
            "required": false,
            "type": "string",
            "x-ms-client-name": "startTime",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The latest time from which to include metrics. This must be at least two hours before the current time. If not specified this defaults to the end time of the last aggregation interval currently available.",
            "format": "date-time",
            "in": "query",
            "name": "endtime",
            "required": false,
            "type": "string",
            "x-ms-client-name": "endTime",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "An OData $filter clause. If this is not specified the response includes all pools that existed in the account in the time range of the returned aggregation intervals.",
            "in": "query",
            "name": "$filter",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 1000,
            "description": "The maximum number of items to return in the response. A maximum of 1000 results will be returned.",
            "format": "int32",
            "in": "query",
            "maximum": 1000,
            "minimum": 1,
            "name": "maxresults",
            "required": false,
            "type": "integer",
            "x-ms-client-name": "maxResults",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": 30,
            "description": "The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds.",
            "format": "int32",
            "in": "query",
            "name": "timeout",
            "required": false,
            "type": "integer",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The caller-generated request identity, in the form of a GUID with no decoration such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.",
            "format": "uuid",
            "in": "header",
            "name": "client-request-id",
            "required": false,
            "type": "string",
            "x-ms-client-request-id": true,
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "default": false,
            "description": "Whether the server should return the client-request-id in the response.",
            "in": "header",
            "name": "return-client-request-id",
            "required": false,
            "type": "boolean",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "description": "The time the request was issued. Client libraries typically set this to the current system clock time; set it explicitly if you are calling the REST API directly.",
            "format": "date-time-rfc1123",
            "in": "header",
            "name": "ocp-date",
            "required": false,
            "type": "string",
            "x-ms-parameter-grouping": {
              "postfix": "Options"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "A response containing the list of pool usage details.",
            "headers": {
              "ETag": {
                "description": "The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Modified-Since, If-Unmodified-Since, If-Match or If-None-Match headers.",
                "type": "string"
              },
              "Last-Modified": {
                "description": "The time at which the resource was last modified.",
                "format": "date-time-rfc1123",
                "type": "string"
              },
              "client-request-id": {
                "description": "The client-request-id provided by the client during the request. This will be returned only if the return-client-request-id parameter was set to true.",
                "format": "uuid",
                "type": "string"
              },
              "request-id": {
                "description": "A unique identifier for the request that was made to the Batch service. If a request is consistently failing and you have verified that the request is properly formulated, you may use this value to report the error to Microsoft. In your report, include the value of this request ID, the approximate time that the request was made, the Batch account against which the request was made, and the region that account resides in.",
                "format": "uuid",
                "type": "string"
              }
            },
            "schema": {
              "$ref": "#/definitions/PoolListUsageMetricsResult"
            }
          },
          "default": {
            "description": "The error from the Batch service.",
            "schema": {
              "$ref": "#/definitions/BatchError"
            }
          }
        },
        "summary": "Lists the usage metrics, aggregated by pool across individual time intervals, for the specified account.",
        "tags": [
          "Pools"
        ],
        "x-ms-examples": {
          "Pool list usage metrics": {
            "parameters": {
              "api-version": "2017-06-01.5.1",
              "client-request-id": "00000000-0000-0000-0000-000000000000",
              "ocp-data": "Fri, 17 Feb 2017 00:00:00 GMT"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "dataEgressGiB": 0.00622838735580444,
                      "dataIngressGiB": 0.0692861778661609,
                      "endTime": "2013-04-01T00:30:00Z",
                      "poolId": "p1",
                      "startTime": "2013-04-01T00:00:00Z",
                      "totalCoreHours": 39.384838,
                      "vmSize": "a1"
                    },
                    {
                      "dataEgressGiB": 0.06222838735580444,
                      "dataIngressGiB": 0.6092861778661609,
                      "endTime": "2013-04-01T01:00:00Z",
                      "poolId": "p2",
                      "startTime": "2013-04-01T00:30:00Z",
                      "totalCoreHours": 3039.384838,
                      "vmSize": "a8"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "odata.nextLink"
        },
        "x-ms-request-id": "request-id"
      }
    }
  },
  "definitions": {
    "AccountListNodeAgentSkusResult": {
      "properties": {
        "odata.nextLink": {
          "title": "The URL to get the next set of results.",
          "type": "string"
        },
        "value": {
          "items": {
            "$ref": "#/definitions/NodeAgentSku"
          },
          "title": "The list of supported node agent SKUs.",
          "type": "array"
        }
      },
      "title": "The result of listing the supported node agent SKUs."
    },
    "AffinityInformation": {
      "properties": {
        "affinityId": {
          "description": "You can pass the affinityId of a compute node to indicate that this task needs to run on that compute node. Note that this is just a soft affinity. If the target node is busy or unavailable at the time the task is scheduled, then the task will be scheduled elsewhere.",
          "title": "An opaque string representing the location of a compute node or a task that has run previously.",
          "type": "string"
        }
      },
      "required": [
        "affinityId"
      ],
      "title": "A locality hint that can be used by the Batch service to select a compute node on which to start a task."
    },
    "ApplicationListResult": {
      "properties": {
        "odata.nextLink": {
          "title": "The URL to get the next set of results.",
          "type": "string"
        },
        "value": {
          "items": {
            "$ref": "#/definitions/ApplicationSummary"
          },
          "title": "The list of applications available in the account.",
          "type": "array"
        }
      },
      "title": "The result of listing the applications available in an account."
    },
    "ApplicationPackageReference": {
      "properties": {
        "applicationId": {
          "title": "The ID of the application to deploy.",
          "type": "string"
        },
        "version": {
          "description": "If this is omitted on a pool, and no default version is specified for this application, the request fails with the error code InvalidApplicationPackageReferences and HTTP status code 409. If this is omitted on a task, and no default version is specified for this application, the task fails with a pre-processing error.",
          "title": "The version of the application to deploy. If omitted, the default version is deployed.",
          "type": "string"
        }
      },
      "required": [
        "applicationId"
      ],
      "title": "A reference to an application package to be deployed to compute nodes."
    },
    "ApplicationSummary": {
      "properties": {
        "displayName": {
          "title": "The display name for the application.",
          "type": "string"
        },
        "id": {
          "title": "A string that uniquely identifies the application within the account.",
          "type": "string"
        },
        "versions": {
          "items": {
            "type": "string"
          },
          "title": "The list of available versions of the application.",
          "type": "array"
        }
      },
      "required": [
        "id",
        "displayName",
        "versions"
      ],
      "title": "Contains information about an application in an Azure Batch account."
    },
    "AuthenticationTokenSettings": {
      "properties": {
        "access": {
          "description": "The authentication token grants access to a limited set of Batch service operations. Currently the only supported value for the access property is 'job', which grants access to all operations related to the job which contains the task.",
          "items": {
            "enum": [
              "job"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": false,
              "name": "AccessScope"
            },
            "x-nullable": false
          },
          "title": "The Batch resources to which the token grants access.",
          "type": "array"
        }
      },
      "title": "The settings for an authentication token that the task can use to perform Batch service operations."
    },
    "AutoPoolSpecification": {
      "properties": {
        "autoPoolIdPrefix": {
          "description": "The Batch service assigns each auto pool a unique identifier on creation. To distinguish between pools created for different purposes, you can specify this element to add a prefix to the ID that is assigned. The prefix can be up to 20 characters long.",
          "title": "A prefix to be added to the unique identifier when a pool is automatically created.",
          "type": "string"
        },
        "keepAlive": {
          "description": "If false, the Batch service deletes the pool once its lifetime (as determined by the poolLifetimeOption setting) expires; that is, when the job or job schedule completes. If true, the Batch service does not delete the pool automatically. It is up to the user to delete auto pools created with this option.",
          "title": "Whether to keep an auto pool alive after its lifetime expires.",
          "type": "boolean"
        },
        "pool": {
          "$ref": "#/definitions/PoolSpecification",
          "title": "The pool specification for the auto pool."
        },
        "poolLifetimeOption": {
          "description": "When the pool lifetime is jobSchedule the pool exists for the lifetime of the job schedule. The Batch Service creates the pool when it creates the first job on the schedule. You may apply this option only to job schedules, not to jobs. When the pool lifetime is job the pool exists for the lifetime of the job to which it is dedicated. The Batch service creates the pool when it creates the job. If the 'job' option is applied to a job schedule, the Batch service creates a new auto pool for every job created on the schedule.",
          "enum": [
            "jobSchedule",
            "job"
          ],
          "title": "The minimum lifetime of created auto pools, and how multiple jobs on a schedule are assigned to pools.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "PoolLifetimeOption"
          }
        }
      },
      "required": [
        "poolLifetimeOption"
      ],
      "title": "Specifies characteristics for a temporary 'auto pool'. The Batch service will create this auto pool when the job is submitted."
    },
    "AutoScaleRun": {
      "properties": {
        "error": {
          "$ref": "#/definitions/AutoScaleRunError",
          "title": "Details of the error encountered evaluating the autoscale formula on the pool, if the evaluation was unsuccessful."
        },
        "results": {
          "description": "Each variable value is returned in the form $variable=value, and variables are separated by semicolons.",
          "title": "The final values of all variables used in the evaluation of the autoscale formula.",
          "type": "string"
        },
        "timestamp": {
          "format": "date-time",
          "title": "The time at which the autoscale formula was last evaluated.",
          "type": "string"
        }
      },
      "required": [
        "timestamp"
      ],
      "title": "The results and errors from an execution of a pool autoscale formula."
    },
    "AutoScaleRunError": {
      "properties": {
        "code": {
          "title": "An identifier for the autoscale error. Codes are invariant and are intended to be consumed programmatically.",
          "type": "string"
        },
        "message": {
          "title": "A message describing the autoscale error, intended to be suitable for display in a user interface.",
          "type": "string"
        },
        "values": {
          "items": {
            "$ref": "#/definitions/NameValuePair"
          },
          "title": "A list of additional error details related to the autoscale error.",
          "type": "array"
        }
      },
      "title": "An error that occurred when executing or evaluating a pool autoscale formula."
    },
    "AutoUserSpecification": {
      "properties": {
        "elevationLevel": {
          "$ref": "#/definitions/ElevationLevel",
          "description": "nonAdmin - The auto user is a standard user without elevated access. admin - The auto user is a user with elevated access and operates with full Administrator permissions. The default value is nonAdmin.",
          "title": "The elevation level of the auto user."
        },
        "scope": {
          "description": "Values are:\n\n pool - specifies that the task runs as the common auto user account which is created on every node in a pool.\n task - specifies that the service should create a new user for the task.\n The default value is task.",
          "enum": [
            "task",
            "pool"
          ],
          "title": "The scope for the auto user",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "AutoUserScope"
          }
        }
      },
      "title": "Specifies the parameters for the auto user that runs a task on the Batch service."
    },
    "BatchError": {
      "properties": {
        "code": {
          "title": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically.",
          "type": "string"
        },
        "message": {
          "$ref": "#/definitions/ErrorMessage",
          "title": "A message describing the error, intended to be suitable for display in a user interface."
        },
        "values": {
          "items": {
            "$ref": "#/definitions/BatchErrorDetail"
          },
          "title": "A collection of key-value pairs containing additional details about the error.",
          "type": "array"
        }
      },
      "title": "An error response received from the Azure Batch service."
    },
    "BatchErrorDetail": {
      "properties": {
        "key": {
          "title": "An identifier specifying the meaning of the Value property.",
          "type": "string"
        },
        "value": {
          "title": "The additional information included with the error response.",
          "type": "string"
        }
      },
      "title": "An item of additional information included in an Azure Batch error response."
    },
    "Certificate": {
      "description": "A certificate that can be installed on compute nodes and can be used to authenticate operations on the machine.",
      "properties": {
        "deleteCertificateError": {
          "$ref": "#/definitions/DeleteCertificateError",
          "description": "This property is set only if the certificate is in the DeleteFailed state.",
          "title": "The error that occurred on the last attempt to delete this certificate."
        },
        "previousState": {
          "$ref": "#/definitions/CertificateState",
          "description": "This property is not set if the certificate is in its initial active state.",
          "title": "The previous state of the certificate."
        },
        "previousStateTransitionTime": {
          "description": "This property is not set if the certificate is in its initial Active state.",
          "format": "date-time",
          "title": "The time at which the certificate entered its previous state.",
          "type": "string"
        },
        "publicData": {
          "title": "The public part of the certificate as a base-64 encoded .cer file.",
          "type": "string"
        },
        "state": {
          "$ref": "#/definitions/CertificateState",
          "title": "The current state of the certificate."
        },
        "stateTransitionTime": {
          "format": "date-time",
          "title": "The time at which the certificate entered its current state.",
          "type": "string"
        },
        "thumbprint": {
          "title": "The X.509 thumbprint of the certificate. This is a sequence of up to 40 hex digits.",
          "type": "string"
        },
        "thumbprintAlgorithm": {
          "title": "The algorithm used to derive the thumbprint.",
          "type": "string"
        },
        "url": {
          "title": "The URL of the certificate.",
          "type": "string"
        }
      }
    },
    "CertificateAddParameter": {
      "properties": {
        "certificateFormat": {
          "enum": [
            "pfx",
            "cer"
          ],
          "title": "The format of the certificate data.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "CertificateFormat"
          }
        },
        "data": {
          "title": "The base64-encoded contents of the certificate. The maximum size is 10KB.",
          "type": "string"
        },
        "password": {
          "description": "This is required if the certificate format is pfx. It should be omitted if the certificate format is cer.",
          "title": "The password to access the certificate's private key.",
          "type": "string"
        },
        "thumbprint": {
          "title": "The X.509 thumbprint of the certificate. This is a sequence of up to 40 hex digits (it may include spaces but these are removed).",
          "type": "string"
        },
        "thumbprintAlgorithm": {
          "title": "The algorithm used to derive the thumbprint. This must be sha1.",
          "type": "string"
        }
      },
      "required": [
        "thumbprint",
        "thumbprintAlgorithm",
        "data"
      ],
      "title": "A certificate that can be installed on compute nodes and can be used to authenticate operations on the machine."
    },
    "CertificateListResult": {
      "properties": {
        "odata.nextLink": {
          "title": "The URL to get the next set of results.",
          "type": "string"
        },
        "value": {
          "items": {
            "$ref": "#/definitions/Certificate"
          },
          "title": "The list of certificates.",
          "type": "array"
        }
      },
      "title": "The result of listing the certificates in the account."
    },
    "CertificateReference": {
      "properties": {
        "storeLocation": {
          "description": "The default value is currentUser. This property is applicable only for pools configured with Windows nodes (that is, created with cloudServiceConfiguration, or with virtualMachineConfiguration using a Windows image reference). For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory.",
          "enum": [
            "currentUser",
            "localMachine"
          ],
          "title": "The location of the certificate store on the compute node into which to install the certificate.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "CertificateStoreLocation"
          }
        },
        "storeName": {
          "description": "This property is applicable only for pools configured with Windows nodes (that is, created with cloudServiceConfiguration, or with virtualMachineConfiguration using a Windows image reference). Common store names include: My, Root, CA, Trust, Disallowed, TrustedPeople, TrustedPublisher, AuthRoot, AddressBook, but any custom store name can also be used. The default value is My.",
          "title": "The name of the certificate store on the compute node into which to install the certificate.",
          "type": "string"
        },
        "thumbprint": {
          "title": "The thumbprint of the certificate.",
          "type": "string"
        },
        "thumbprintAlgorithm": {
          "title": "The algorithm with which the thumbprint is associated. This must be sha1.",
          "type": "string"
        },
        "visibility": {
          "description": "Values are:\n\n starttask - The user account under which the start task is run.\n task - The accounts under which job tasks are run.\n remoteuser - The accounts under which users remotely access the node.\n\n You can specify more than one visibility in this collection. The default is all accounts.",
          "items": {
            "enum": [
              "startTask",
              "task",
              "remoteUser"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": false,
              "name": "CertificateVisibility"
            },
            "x-nullable": false
          },
          "title": "Which user accounts on the compute node should have access to the private data of the certificate.",
          "type": "array"
        }
      },
      "required": [
        "thumbprint",
        "thumbprintAlgorithm"
      ],
      "title": "A reference to a certificate to be installed on compute nodes in a pool."
    },
    "CertificateState": {
      "description": "Values are:\n\n active - The certificate is available for use in pools.\n deleting - The user has requested that the certificate be deleted, but the delete operation has not yet completed. You may not reference the certificate when creating or updating pools.\n deletefailed - The user requested that the certificate be deleted, but there are pools that still have references to the certificate, or it is still installed on one or more compute nodes. (The latter can occur if the certificate has been removed from the pool, but the node has not yet restarted. Nodes refresh their certificates only when they restart.) You may use the cancel certificate delete operation to cancel the delete, or the delete certificate operation to retry the delete.",
      "enum": [
        "active",
        "deleting",
        "deleteFailed"
      ],
      "title": "The state of the certificate.",
      "type": "string",
      "x-ms-enum": {
        "modelAsString": false,
        "name": "CertificateState"
      }
    },
    "CloudJob": {
      "properties": {
        "commonEnvironmentSettings": {
          "description": "Individual tasks can override an environment setting specified here by specifying the same setting name with a different value.",
          "items": {
            "$ref": "#/definitions/EnvironmentSetting"
          },
          "title": "The list of common environment variable settings. These environment variables are set for all tasks in the job (including the Job Manager, Job Preparation and Job Release tasks).",
          "type": "array"
        },
        "constraints": {
          "$ref": "#/definitions/JobConstraints",
          "title": "The execution constraints for the job."
        },
        "creationTime": {
          "format": "date-time",
          "title": "The creation time of the job.",
          "type": "string"
        },
        "displayName": {
          "title": "The display name for the job.",
          "type": "string"
        },
        "eTag": {
          "description": "This is an opaque string. You can use it to detect whether the job has changed between requests. In particular, you can be pass the ETag when updating a job to specify that your changes should take effect only if nobody else has modified the job in the meantime.",
          "title": "The ETag of the job.",
          "type": "string"
        },
        "executionInfo": {
          "$ref": "#/definitions/JobExecutionInformation",
          "title": "The execution information for the job."
        },
        "id": {
          "description": "The ID is case-preserving and case-insensitive (that is, you may not have two IDs within an account that differ only by case).",
          "title": "A string that uniquely identifies the job within the account.",
          "type": "string"
        },
        "jobManagerTask": {
          "$ref": "#/definitions/JobManagerTask",
          "title": "Details of a Job Manager task to be launched when the job is started."
        },
        "jobPreparationTask": {
          "$ref": "#/definitions/JobPreparationTask",
          "description": "The Job Preparation task is a special task run on each node before any other task of the job.",
          "title": "The Job Preparation task."
        },
        "jobReleaseTask": {
          "$ref": "#/definitions/JobReleaseTask",
          "description": "The Job Release task is a special task run at the end of the job on each node that has run any other task of the job.",
          "title": "The Job Release task."
        },
        "lastModified": {
          "description": "This is the last time at which the job level data, such as the job state or priority, changed. It does not factor in task-level changes such as adding new tasks or tasks changing state.",
          "format": "date-time",
          "title": "The last modified time of the job.",
          "type": "string"
        },
        "metadata": {
          "description": "The Batch service does not assign any meaning to metadata; it is solely for the use of user code.",
          "items": {
            "$ref": "#/definitions/MetadataItem"
          },
          "title": "A list of name-value pairs associated with the job as metadata.",
          "type": "array"
        },
        "onAllTasksComplete": {
          "$ref": "#/definitions/OnAllTasksComplete",
          "description": "noAction - do nothing. The job remains active unless terminated or disabled by some other means. terminateJob - terminate the job. The job's terminateReason is set to 'AllTasksComplete'. The default is noAction.",
          "title": "The action the Batch service should take when all tasks in the job are in the completed state."
        },
        "onTaskFailure": {
          "$ref": "#/definitions/OnTaskFailure",
          "description": "A task is considered to have failed if has a failureInfo. A failureInfo is set if the task completes with a non-zero exit code after exhausting its retry count, or if there was an error starting the task, for example due to a resource file download error. noAction - do nothing. performExitOptionsJobAction - take the action associated with the task exit condition in the task's exitConditions collection. (This may still result in no action being taken, if that is what the task specifies.) The default is noAction.",
          "title": "The action the Batch service should take when any task in the job fails."
        },
        "poolInfo": {
          "$ref": "#/definitions/PoolInformation",
          "title": "The pool settings associated with the job."
        },
        "previousState": {
          "$ref": "#/definitions/JobState",
          "description": "This property is not set if the job is in its initial Active state.",
          "title": "The previous state of the job."
        },
        "previousStateTransitionTime": {
          "description": "This property is not set if the job is in its initial Active state.",
          "format": "date-time",
          "title": "The time at which the job entered its previous state.",
          "type": "string"
        },
        "priority": {
          "description": "Priority values can range from -1000 to 1000, with -1000 being the lowest priority and 1000 being the highest priority. The default value is 0.",
          "format": "int32",
          "title": "The priority of the job.",
          "type": "integer"
        },
        "state": {
          "$ref": "#/definitions/JobState",
          "title": "The current state of the job."
        },
        "stateTransitionTime": {
          "format": "date-time",
          "title": "The time at which the job entered its current state.",
          "type": "string"
        },
        "stats": {
          "$ref": "#/definitions/JobStatistics",
          "title": "Resource usage statistics for the entire lifetime of the job."
        },
        "url": {
          "title": "The URL of the job.",
          "type": "string"
        },
        "usesTaskDependencies": {
          "title": "Whether tasks in the job can define dependencies on each other. The default is false.",
          "type": "boolean"
        }
      },
      "title": "An Azure Batch job."
    },
    "CloudJobListPreparationAndReleaseTaskStatusResult": {
      "properties": {
        "odata.nextLink": {
          "title": "The URL to get the next set of results.",
          "type": "string"
        },
        "value": {
          "items": {
            "$ref": "#/definitions/JobPreparationAndReleaseTaskExecutionInformation"
          },
          "title": "A list of Job Preparation and Job Release task execution information.",
          "type": "array"
        }
      },
      "title": "The result of listing the status of the Job Preparation and Job Release tasks for a job."
    },
    "CloudJobListResult": {
      "properties": {
        "odata.nextLink": {
          "title": "The URL to get the next set of results.",
          "type": "string"
        },
        "value": {
          "items": {
            "$ref": "#/definitions/CloudJob"
          },
          "title": "The list of jobs.",
          "type": "array"
        }
      },
      "title": "The result of listing the jobs in an account."
    },
    "CloudJobSchedule": {
      "properties": {
        "creationTime": {
          "format": "date-time",
          "title": "The creation time of the job schedule.",
          "type": "string"
        },
        "displayName": {
          "title": "The display name for the schedule.",
          "type": "string"
        },
        "eTag": {
          "description": "This is an opaque string. You can use it to detect whether the job schedule has changed between requests. In particular, you can be pass the ETag with an Update Job Schedule request to specify that your changes should take effect only if nobody else has modified the schedule in the meantime.",
          "title": "The ETag of the job schedule.",
          "type": "string"
        },
        "executionInfo": {
          "$ref": "#/definitions/JobScheduleExecutionInformation",
          "title": "Information about jobs that have been and will be run under this schedule."
        },
        "id": {
          "title": "A string that uniquely identifies the schedule within the account.",
          "type": "string"
        },
        "jobSpecification": {
          "$ref": "#/definitions/JobSpecification",
          "title": "The details of the jobs to be created on this schedule."
        },
        "lastModified": {
          "description": "This is the last time at which the schedule level data, such as the job specification or recurrence information, changed. It does not factor in job-level changes such as new jobs being created or jobs changing state.",
          "format": "date-time",
          "title": "The last modified time of the job schedule.",
          "type": "string"
        },
        "metadata": {
          "description": "The Batch service does not assign any meaning to metadata; it is solely for the use of user code.",
          "items": {
            "$ref": "#/definitions/MetadataItem"
          },
          "title": "A list of name-value pairs associated with the schedule as metadata.",
          "type": "array"
        },
        "previousState": {
          "$ref": "#/definitions/JobScheduleState",
          "description": "This property is not present if the job schedule is in its initial active state.",
          "title": "The previous state of the job schedule."
        },
        "previousStateTransitionTime": {
          "description": "This property is not present if the job schedule is in its initial active state.",
          "format": "date-time",
          "title": "The time at which the job schedule entered its previous state.",
          "type": "string"
        },
        "schedule": {
          "$ref": "#/definitions/Schedule",
          "title": "The schedule according to which jobs will be created."
        },
        "state": {
          "$ref": "#/definitions/JobScheduleState",
          "title": "The current state of the job schedule."
        },
        "stateTransitionTime": {
          "format": "date-time",
          "title": "The time at which the job schedule entered the current state.",
          "type": "string"
        },
        "stats": {
          "$ref": "#/definitions/JobScheduleStatistics",
          "title": "The lifetime resource usage statistics for the job schedule."
        },
        "url": {
          "title": "The URL of the job schedule.",
          "type": "string"
        }
      },
      "title": "A job schedule that allows recurring jobs by specifying when to run jobs and a specification used to create each job."
    },
    "CloudJobScheduleListResult": {
      "properties": {
        "odata.nextLink": {
          "title": "The URL to get the next set of results.",
          "type": "string"
        },
        "value": {
          "items": {
            "$ref": "#/definitions/CloudJobSchedule"
          },
          "title": "The list of job schedules.",
          "type": "array"
        }
      },
      "title": "The result of listing the job schedules in an account."
    },
    "CloudPool": {
      "properties": {
        "allocationState": {
          "description": "Values are:\n\n steady - The pool is not resizing. There are no changes to the number of nodes in the pool in progress. A pool enters this state when it is created and when no operations are being performed on the pool to change the number of dedicated nodes.\n resizing - The pool is resizing; that is, compute nodes are being added to or removed from the pool.\n stopping - The pool was resizing, but the user has requested that the resize be stopped, but the stop request has not yet been completed.",
          "enum": [
            "steady",
            "resizing",
            "stopping"
          ],
          "title": "Whether the pool is resizing.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "AllocationState"
          }
        },
        "allocationStateTransitionTime": {
          "format": "date-time",
          "title": "The time at which the pool entered its current allocation state.",
          "type": "string"
        },
        "applicationLicenses": {
          "description": "The list of application licenses must be a subset of available Batch service application licenses. If a license is requested which is not supported, pool creation will fail.",
          "items": {
            "type": "string"
          },
          "title": "The list of application licenses the Batch service will make available on each compute node in the pool.",
          "type": "array"
        },
        "applicationPackageReferences": {
          "items": {
            "$ref": "#/definitions/ApplicationPackageReference"
          },
          "title": "The list of application packages to be installed on each compute node in the pool.",
          "type": "array"
        },
        "autoScaleEvaluationInterval": {
          "description": "This property is set only if the pool automatically scales, i.e. enableAutoScale is true.",
          "format": "duration",
          "title": "The time interval at which to automatically adjust the pool size according to the autoscale formula.",
          "type": "string"
        },
        "autoScaleFormula": {
          "description": "This property is set only if the pool automatically scales, i.e. enableAutoScale is true.",
          "title": "A formula for the desired number of compute nodes in the pool.",
          "type": "string"
        },
        "autoScaleRun": {
          "$ref": "#/definitions/AutoScaleRun",
          "description": "This property is set only if the pool automatically scales, i.e. enableAutoScale is true.",
          "title": "The results and errors from the last execution of the autoscale formula."
        },
        "certificateReferences": {
          "description": "For Windows compute nodes, the Batch service installs the certificates to the specified certificate store and location. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory.",
          "items": {
            "$ref": "#/definitions/CertificateReference"
          },
          "title": "The list of certificates to be installed on each compute node in the pool.",
          "type": "array"
        },
        "cloudServiceConfiguration": {
          "$ref": "#/definitions/CloudServiceConfiguration",
          "description": "This property and virtualMachineConfiguration are mutually exclusive and one of the properties must be specified. This property cannot be specified if the Batch account was created with its poolAllocationMode property set to 'UserSubscription'.",
          "title": "The cloud service configuration for the pool."
        },
        "creationTime": {
          "format": "date-time",
          "title": "The creation time of the pool.",
          "type": "string"
        },
        "currentDedicatedNodes": {
          "format": "int32",
          "title": "The number of dedicated compute nodes currently in the pool.",
          "type": "integer"
        },
        "currentLowPriorityNodes": {
          "description": "Low-priority compute nodes which have been preempted are included in this count.",
          "format": "int32",
          "title": "The number of low-priority compute nodes currently in the pool.",
          "type": "integer"
        },
        "displayName": {
          "description": "The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024.",
          "title": "The display name for the pool.",
          "type": "string"
        },
        "eTag": {
          "description": "This is an opaque string. You can use it to detect whether the pool has changed between requests. In particular, you can be pass the ETag when updating a pool to specify that your changes should take effect only if nobody else has modified the pool in the meantime.",
          "title": "The ETag of the pool.",
          "type": "string"
        },
        "enableAutoScale": {
          "description": "If false, at least one of targetDedicateNodes and targetLowPriorityNodes must be specified. If true, the autoScaleFormula property is required and the pool automatically resizes according to the formula. The default value is false.",
          "title": "Whether the pool size should automatically adjust over time.",
          "type": "boolean"
        },
        "enableInterNodeCommunication": {
          "description": "This imposes restrictions on which nodes can be assigned to the pool. Specifying this value can reduce the chance of the requested number of nodes to be allocated in the pool.",
          "title": "Whether the pool permits direct communication between nodes.",
          "type": "boolean"
        },
        "id": {
          "description": "The ID can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters. The ID is case-preserving and case-insensitive (that is, you may not have two IDs within an account that differ only by case).",
          "title": "A string that uniquely identifies the pool within the account.",
          "type": "string"
        },
        "lastModified": {
          "description": "This is the last time at which the pool level data, such as the targetDedicatedNodes or enableAutoscale settings, changed. It does not factor in node-level changes such as a compute node changing state.",
          "format": "date-time",
          "title": "The last modified time of the pool.",
          "type": "string"
        },
        "maxTasksPerNode": {
          "format": "int32",
          "title": "The maximum number of tasks that can run concurrently on a single compute node in the pool.",
          "type": "integer"
        },
        "metadata": {
          "items": {
            "$ref": "#/definitions/MetadataItem"
          },
          "title": "A list of name-value pairs associated with the pool as metadata.",
          "type": "array"
        },
        "networkConfiguration": {
          "$ref": "#/definitions/NetworkConfiguration",
          "title": "The network configuration for the pool."
        },
        "resizeErrors": {
          "description": "This property is set only if one or more errors occurred during the last pool resize, and only when the pool allocationState is Steady.",
          "items": {
            "$ref": "#/definitions/ResizeError"
          },
          "title": "A list of errors encountered while performing the last resize on the pool.",
          "type": "array"
        },
        "resizeTimeout": {
          "description": "This is the timeout for the most recent resize operation. (The initial sizing when the pool is created counts as a resize.) The default value is 15 minutes.",
          "format": "duration",
          "title": "The timeout for allocation of compute nodes to the pool.",
          "type": "string"
        },
        "startTask": {
          "$ref": "#/definitions/StartTask",
          "title": "A task specified to run on each compute node as it joins the pool."
        },
        "state": {
          "description": "Values are:\n\n active - The pool is available to run tasks subject to the availability of compute nodes.\n deleting - The user has requested that the pool be deleted, but the delete operation has not yet completed.\n upgrading - The user has requested that the operating system of the pool's nodes be upgraded, but the upgrade operation has not yet completed (that is, some nodes in the pool have not yet been upgraded). While upgrading, the pool may be able to run tasks (with reduced capacity) but this is not guaranteed.",
          "enum": [
            "active",
            "deleting",
            "upgrading"
          ],
          "title": "The current state of the pool.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "PoolState"
          }
        },
        "stateTransitionTime": {
          "format": "date-time",
          "title": "The time at which the pool entered its current state.",
          "type": "string"
        },
        "stats": {
          "$ref": "#/definitions/PoolStatistics",
          "title": "Utilization and resource usage statistics for the entire lifetime of the pool."
        },
        "targetDedicatedNodes": {
          "format": "int32",
          "title": "The desired number of dedicated compute nodes in the pool.",
          "type": "integer"
        },
        "targetLowPriorityNodes": {
          "format": "int32",
          "title": "The desired number of low-priority compute nodes in the pool.",
          "type": "integer"
        },
        "taskSchedulingPolicy": {
          "$ref": "#/definitions/TaskSchedulingPolicy",
          "title": "How tasks are distributed across compute nodes in a pool."
        },
        "url": {
          "title": "The URL of the pool.",
          "type": "string"
        },
        "userAccounts": {
          "items": {
            "$ref": "#/definitions/UserAccount"
          },
          "title": "The list of user accounts to be created on each node in the pool.",
          "type": "array"
        },
        "virtualMachineConfiguration": {
          "$ref": "#/definitions/VirtualMachineConfiguration",
          "description": "This property and cloudServiceConfiguration are mutually exclusive and one of the properties must be specified.",
          "title": "The virtual machine configuration for the pool."
        },
        "vmSize": {
          "description": "For information about available sizes of virtual machines for Cloud Services pools (pools created with cloudServiceConfiguration), see Sizes for Cloud Services (http://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). Batch supports all Cloud Services VM sizes except ExtraSmall, A1V2 and A2V2. For information about available VM sizes for pools using images from the Virtual Machines Marketplace (pools created with virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) or Sizes for Virtual Machines (Windows) (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series).",
          "title": "The size of virtual machines in the pool. All virtual machines in a pool are the same size.",
          "type": "string"
        }
      },
      "title": "A pool in the Azure Batch service."
    },
    "CloudPoolListResult": {
      "properties": {
        "odata.nextLink": {
          "title": "The URL to get the next set of results.",
          "type": "string"
        },
        "value": {
          "items": {
            "$ref": "#/definitions/CloudPool"
          },
          "title": "The list of pools.",
          "type": "array"
        }
      },
      "title": "The result of listing the pools in an account."
    },
    "CloudServiceConfiguration": {
      "properties": {
        "currentOSVersion": {
          "description": "This may differ from targetOSVersion if the pool state is Upgrading. In this case some virtual machines may be on the targetOSVersion and some may be on the currentOSVersion during the upgrade process. Once all virtual machines have upgraded, currentOSVersion is updated to be the same as targetOSVersion.",
          "title": "The Azure Guest OS Version currently installed on the virtual machines in the pool.",
          "type": "string"
        },
        "osFamily": {
          "description": "Possible values are: 2 - OS Family 2, equivalent to Windows Server 2008 R2 SP1. 3 - OS Family 3, equivalent to Windows Server 2012. 4 - OS Family 4, equivalent to Windows Server 2012 R2. 5 - OS Family 5, equivalent to Windows Server 2016. For more information, see Azure Guest OS Releases (https://azure.microsoft.com/documentation/articles/cloud-services-guestos-update-matrix/#releases).",
          "title": "The Azure Guest OS family to be installed on the virtual machines in the pool.",
          "type": "string"
        },
        "targetOSVersion": {
          "description": "The default value is * which specifies the latest operating system version for the specified OS family.",
          "title": "The Azure Guest OS version to be installed on the virtual machines in the pool.",
          "type": "string"
        }
      },
      "required": [
        "osFamily"
      ],
      "title": "The configuration for nodes in a pool based on the Azure Cloud Services platform."
    },
    "CloudTask": {
      "properties": {
        "affinityInfo": {
          "$ref": "#/definitions/AffinityInformation",
          "title": "A locality hint that can be used by the Batch service to select a compute node on which to start the new task."
        },
        "applicationPackageReferences": {
          "description": "Application packages are downloaded and deployed to a shared directory, not the task working directory. Therefore, if a referenced package is already on the compute node, and is up to date, then it is not re-downloaded; the existing copy on the compute node is used. If a referenced application package cannot be installed, for example because the package has been deleted or because download failed, the task fails.",
          "items": {
            "$ref": "#/definitions/ApplicationPackageReference"
          },
          "title": "A list of application packages that the Batch service will deploy to the compute node before running the command line.",
          "type": "array"
        },
        "authenticationTokenSettings": {
          "$ref": "#/definitions/AuthenticationTokenSettings",
          "description": "If this property is set, the Batch service provides the task with an authentication token which can be used to authenticate Batch service operations without requiring an account access key. The token is provided via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations that the task can carry out using the token depend on the settings. For example, a task can request job permissions in order to add other tasks to the job, or check the status of the job or of other tasks under the job.",
          "title": "The settings for an authentication token that the task can use to perform Batch service operations."
        },
        "commandLine": {
          "description": "For multi-instance tasks, the command line is executed as the primary task, after the primary task and all subtasks have finished executing the coordination command line. The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux.",
          "title": "The command line of the task.",
          "type": "string"
        },
        "constraints": {
          "$ref": "#/definitions/TaskConstraints",
          "title": "The execution constraints that apply to this task."
        },
        "creationTime": {
          "format": "date-time",
          "title": "The creation time of the task.",
          "type": "string"
        },
        "dependsOn": {
          "$ref": "#/definitions/TaskDependencies",
          "description": "This task will not be scheduled until all tasks that it depends on have completed successfully. If any of those tasks fail and exhaust their retry counts, this task will never be scheduled.",
          "title": "The tasks that this task depends on."
        },
        "displayName": {
          "description": "The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024.",
          "title": "A display name for the task.",
          "type": "string"
        },
        "eTag": {
          "description": "This is an opaque string. You can use it to detect whether the task has changed between requests. In particular, you can be pass the ETag when updating a task to specify that your changes should take effect only if nobody else has modified the task in the meantime.",
          "title": "The ETag of the task.",
          "type": "string"
        },
        "environmentSettings": {
          "items": {
            "$ref": "#/definitions/EnvironmentSetting"
          },
          "title": "A list of environment variable settings for the task.",
          "type": "array"
        },
        "executionInfo": {
          "$ref": "#/definitions/TaskExecutionInformation",
          "title": "Information about the execution of the task."
        },
        "exitConditions": {
          "$ref": "#/definitions/ExitConditions",
          "description": "How the Batch service should respond when the task completes."
        },
        "id": {
          "description": "The ID can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters.",
          "title": "A string that uniquely identifies the task within the job.",
          "type": "string"
        },
        "lastModified": {
          "format": "date-time",
          "title": "The last modified time of the task.",
          "type": "string"
        },
        "multiInstanceSettings": {
          "$ref": "#/definitions/MultiInstanceSettings",
          "title": "An object that indicates that the task is a multi-instance task, and contains information about how to run the multi-instance task."
        },
        "nodeInfo": {
          "$ref": "#/definitions/ComputeNodeInformation",
          "title": "Information about the compute node on which the task ran."
        },
        "outputFiles": {
          "description": "For multi-instance tasks, the files will only be uploaded from the compute node on which the primary task is executed.",
          "items": {
            "$ref": "#/definitions/OutputFile"
          },
          "title": "A list of files that the Batch service will upload from the compute node after running the command line.",
          "type": "array"
        },
        "previousState": {
          "$ref": "#/definitions/TaskState",
          "description": "This property is not set if the task is in its initial Active state.",
          "title": "The previous state of the task."
        },
        "previousStateTransitionTime": {
          "description": "This property is not set if the task is in its initial Active state.",
          "format": "date-time",
          "title": "The time at which the task entered its previous state.",
          "type": "string"
        },
        "resourceFiles": {
          "description": "For multi-instance tasks, the resource files will only be downloaded to the compute node on which the primary task is executed.",
          "items": {
            "$ref": "#/definitions/ResourceFile"
          },
          "title": "A list of files that the Batch service will download to the compute node before running the command line.",
          "type": "array"
        },
        "state": {
          "$ref": "#/definitions/TaskState",
          "title": "The current state of the task."
        },
        "stateTransitionTime": {
          "format": "date-time",
          "title": "The time at which the task entered its current state.",
          "type": "string"
        },
        "stats": {
          "$ref": "#/definitions/TaskStatistics",
          "title": "Resource usage statistics for the task."
        },
        "url": {
          "title": "The URL of the task.",
          "type": "string"
        },
        "userIdentity": {
          "$ref": "#/definitions/UserIdentity",
          "description": "If omitted, the task runs as a non-administrative user unique to the task.",
          "title": "The user identity under which the task runs."
        }
      },
      "title": "An Azure Batch task."
    },
    "CloudTaskListResult": {
      "properties": {
        "odata.nextLink": {
          "title": "The URL to get the next set of results.",
          "type": "string"
        },
        "value": {
          "items": {
            "$ref": "#/definitions/CloudTask"
          },
          "title": "The list of tasks.",
          "type": "array"
        }
      },
      "title": "The result of listing the tasks in a job."
    },
    "CloudTaskListSubtasksResult": {
      "properties": {
        "value": {
          "items": {
            "$ref": "#/definitions/SubtaskInformation"
          },
          "title": "The list of subtasks.",
          "type": "array"
        }
      },
      "title": "The result of listing the subtasks of a task."
    },
    "ComputeNode": {
      "properties": {
        "affinityId": {
          "description": "Note that this is just a soft affinity. If the target node is busy or unavailable at the time the task is scheduled, then the task will be scheduled elsewhere.",
          "title": "An identifier which can be passed when adding a task to request that the task be scheduled on this node.",
          "type": "string"
        },
        "allocationTime": {
          "format": "date-time",
          "title": "The time at which this compute node was allocated to the pool.",
          "type": "string"
        },
        "certificateReferences": {
          "description": "For Windows compute nodes, the Batch service installs the certificates to the specified certificate store and location. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory.",
          "items": {
            "$ref": "#/definitions/CertificateReference"
          },
          "title": "The list of certificates installed on the compute node.",
          "type": "array"
        },
        "endpointConfiguration": {
          "$ref": "#/definitions/ComputeNodeEndpointConfiguration",
          "title": "The endpoint configuration for the compute node."
        },
        "errors": {
          "items": {
            "$ref": "#/definitions/ComputeNodeError"
          },
          "title": "The list of errors that are currently being encountered by the compute node.",
          "type": "array"
        },
        "id": {
          "description": "Every node that is added to a pool is assigned a unique ID. Whenever a node is removed from a pool, all of its local files are deleted, and the ID is reclaimed and could be reused for new nodes.",
          "title": "The ID of the compute node.",
          "type": "string"
        },
        "ipAddress": {
          "description": "Every node that is added to a pool is assigned a unique IP address. Whenever a node is removed from a pool, all of its local files are deleted, and the IP address is reclaimed and could be reused for new nodes.",
          "title": "The IP address that other compute nodes can use to communicate with this compute node.",
          "type": "string"
        },
        "isDedicated": {
          "title": "Whether this compute node is a dedicated node. If false, the node is a low-priority node.",
          "type": "boolean"
        },
        "lastBootTime": {
          "description": "This property may not be present if the node state is unusable.",
          "format": "date-time",
          "title": "The time at which the compute node was started.",
          "type": "string"
        },
        "recentTasks": {
          "description": "This property is present only if at least one task has run on this node since it was assigned to the pool.",
          "items": {
            "$ref": "#/definitions/TaskInformation"
          },
          "title": "A list of tasks whose state has recently changed.",
          "type": "array"
        },
        "runningTasksCount": {
          "format": "int32",
          "title": "The total number of currently running job tasks on the compute node. This includes Job Preparation, Job Release, and Job Manager tasks, but not the pool start task.",
          "type": "integer"
        },
        "schedulingState": {
          "description": "Values are:\n\n enabled - Tasks can be scheduled on the node.\n disabled - No new tasks will be scheduled on the node. Tasks already running on the node may still run to completion. All nodes start with scheduling enabled.",
          "enum": [
            "enabled",
            "disabled"
          ],
          "title": "Whether the compute node is available for task scheduling.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "SchedulingState"
          }
        },
        "startTask": {
          "$ref": "#/definitions/StartTask",
          "title": "The task specified to run on the compute node as it joins the pool."
        },
        "startTaskInfo": {
          "$ref": "#/definitions/StartTaskInformation",
          "title": "Runtime information about the execution of the start task on the compute node."
        },
        "state": {
          "description": "Values are:\n\n idle - The node is not currently running a task.\n rebooting - The node is rebooting.\n reimaging - The node is reimaging.\n running - The node is running one or more tasks (other than a start task).\n unusable - The node cannot be used for task execution due to errors.\n creating - The Batch service has obtained the underlying virtual machine from Azure Compute, but it has not yet started to join the pool.\n starting - the Batch service is starting on the underlying virtual machine.\n waitingforstarttask - The start task has started running on the compute node, but waitForSuccess is set and the start task has not yet completed.\n starttaskfailed - The start task has failed on the compute node (and exhausted all retries), and waitForSuccess is set. The node is not usable for running tasks.\n unknown - The Batch service has lost contact with the node, and does not know its true state.\n leavingpool - The node is leaving the pool, either because the user explicitly removed it or because the pool is resizing or autoscaling down.\n offline - The node is not currently running a task, and scheduling of new tasks to the node is disabled.\n preempted - The low-priority node has been preempted. Tasks which were running on the node when it was preempted will be rescheduled when another node becomes available.",
          "enum": [
            "idle",
            "rebooting",
            "reimaging",
            "running",
            "unusable",
            "creating",
            "starting",
            "waitingForStartTask",
            "startTaskFailed",
            "unknown",
            "leavingPool",
            "offline",
            "preempted"
          ],
          "title": "The current state of the compute node.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "ComputeNodeState"
          }
        },
        "stateTransitionTime": {
          "format": "date-time",
          "title": "The time at which the compute node entered its current state.",
          "type": "string"
        },
        "totalTasksRun": {
          "format": "int32",
          "title": "The total number of job tasks completed on the compute node. This includes Job Preparation, Job Release and Job Manager tasks, but not the pool start task.",
          "type": "integer"
        },
        "totalTasksSucceeded": {
          "format": "int32",
          "title": "The total number of job tasks which completed successfully (with exitCode 0) on the compute node. This includes Job Preparation, Job Release, and Job Manager tasks, but not the pool start task.",
          "type": "integer"
        },
        "url": {
          "title": "The URL of the compute node.",
          "type": "string"
        },
        "vmSize": {
          "description": "For information about available sizes of virtual machines for Cloud Services pools (pools created with cloudServiceConfiguration), see Sizes for Cloud Services (http://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). Batch supports all Cloud Services VM sizes except ExtraSmall, A1V2 and A2V2. For information about available VM sizes for pools using images from the Virtual Machines Marketplace (pools created with virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) or Sizes for Virtual Machines (Windows) (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series).",
          "title": "The size of the virtual machine hosting the compute node.",
          "type": "string"
        }
      },
      "title": "A compute node in the Batch service."
    },
    "ComputeNodeDeallocationOption": {
      "description": "Values are:\n\n requeue - Terminate running tasks and requeue them. The tasks will run again when the job is enabled. Remove nodes as soon as tasks have been terminated.\n terminate - Terminate running tasks. The tasks will not run again. Remove nodes as soon as tasks have been terminated.\n taskcompletion - Allow currently running tasks to complete. Schedule no new tasks while waiting. Remove nodes when all tasks have completed.\n retaineddata - Allow currently running tasks to complete, then wait for all task data retention periods to expire. Schedule no new tasks while waiting. Remove nodes when all task retention periods have expired.\n\n The default value is requeue.",
      "enum": [
        "requeue",
        "terminate",
        "taskCompletion",
        "retainedData"
      ],
      "title": "Determines what to do with a node and its running task(s) after it has been selected for deallocation.",
      "type": "string",
      "x-ms-enum": {
        "modelAsString": false,
        "name": "ComputeNodeDeallocationOption"
      }
    },
    "ComputeNodeEndpointConfiguration": {
      "properties": {
        "inboundEndpoints": {
          "items": {
            "$ref": "#/definitions/InboundEndpoint"
          },
          "title": "The list of inbound endpoints that are accessible on the compute node.",
          "type": "array"
        }
      },
      "required": [
        "inboundEndpoints"
      ],
      "title": "The endpoint configuration for the compute node."
    },
    "ComputeNodeError": {
      "properties": {
        "code": {
          "title": "An identifier for the compute node error. Codes are invariant and are intended to be consumed programmatically.",
          "type": "string"
        },
        "errorDetails": {
          "items": {
            "$ref": "#/definitions/NameValuePair"
          },
          "title": "The list of additional error details related to the compute node error.",
          "type": "array"
        },
        "message": {
          "title": "A message describing the compute node error, intended to be suitable for display in a user interface.",
          "type": "string"
        }
      },
      "title": "An error encountered by a compute node."
    },
    "ComputeNodeGetRemoteLoginSettingsResult": {
      "properties": {
        "remoteLoginIPAddress": {
          "title": "The IP address used for remote login to the compute node.",
          "type": "string"
        },
        "remoteLoginPort": {
          "format": "int32",
          "title": "The port used for remote login to the compute node.",
          "type": "integer"
        }
      },
      "required": [
        "remoteLoginIPAddress",
        "remoteLoginPort"
      ],
      "title": "The remote login settings for a compute node."
    },
    "ComputeNodeInformation": {
      "properties": {
        "affinityId": {
          "title": "An identifier for the compute node on which the task ran, which can be passed when adding a task to request that the task be scheduled on this compute node.",
          "type": "string"
        },
        "nodeId": {
          "title": "The ID of the node on which the task ran.",
          "type": "string"
        },
        "nodeUrl": {
          "title": "The URL of the node on which the task ran. ",
          "type": "string"
        },
        "poolId": {
          "title": "The ID of the pool on which the task ran.",
          "type": "string"
        },
        "taskRootDirectory": {
          "title": "The root directory of the task on the compute node.",
          "type": "string"
        },
        "taskRootDirectoryUrl": {
          "title": "The URL to the root directory of the task on the compute node.",
          "type": "string"
        }
      },
      "title": "Information about the compute node on which a task ran."
    },
    "ComputeNodeListResult": {
      "properties": {
        "odata.nextLink": {
          "title": "The URL to get the next set of results.",
          "type": "string"
        },
        "value": {
          "items": {
            "$ref": "#/definitions/ComputeNode"
          },
          "title": "The list of compute nodes.",
          "type": "array"
        }
      },
      "title": "The result of listing the compute nodes in a pool."
    },
    "ComputeNodeUser": {
      "properties": {
        "expiryTime": {
          "description": "If omitted, the default is 1 day from the current time. For Linux compute nodes, the expiryTime has a precision up to a day.",
          "format": "date-time",
          "title": "The time at which the account should expire.",
          "type": "string"
        },
        "isAdmin": {
          "description": "The default value is false.",
          "title": "Whether the account should be an administrator on the compute node.",
          "type": "boolean"
        },
        "name": {
          "title": "The user name of the account.",
          "type": "string"
        },
        "password": {
          "description": "The password is required for Windows nodes (those created with 'cloudServiceConfiguration', or created with 'virtualMachineConfiguration' using a Windows image reference). For Linux compute nodes, the password can optionally be specified along with the sshPublicKey property.",
          "title": "The password of the account.",
          "type": "string"
        },
        "sshPublicKey": {
          "description": "The public key should be compatible with OpenSSH encoding and should be base 64 encoded. This property can be specified only for Linux nodes. If this is specified for a Windows node, then the Batch service rejects the request; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request).",
          "title": "The SSH public key that can be used for remote login to the compute node.",
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "title": "A user account for RDP or SSH access on a compute node."
    },
    "DeleteCertificateError": {
      "properties": {
        "code": {
          "title": "An identifier for the certificate deletion error. Codes are invariant and are intended to be consumed programmatically.",
          "type": "string"
        },
        "message": {
          "title": "A message describing the certificate deletion error, intended to be suitable for display in a user interface.",
          "type": "string"
        },
        "values": {
          "description": "This list includes details such as the active pools and nodes referencing this certificate. However, if a large number of resources reference the certificate, the list contains only about the first hundred.",
          "items": {
            "$ref": "#/definitions/NameValuePair"
          },
          "title": "A list of additional error details related to the certificate deletion error.",
          "type": "array"
        }
      },
      "title": "An error encountered by the Batch service when deleting a certificate."
    },
    "ElevationLevel": {
      "description": "Values are:\n\n nonAdmin - The user is a standard user without elevated access.\n admin - The user is a user with elevated access and operates with full Administrator permissions.",
      "enum": [
        "nonAdmin",
        "admin"
      ],
      "title": "The elevation level of the user.",
      "type": "string",
      "x-ms-enum": {
        "modelAsString": false,
        "name": "ElevationLevel"
      }
    },
    "EnvironmentSetting": {
      "properties": {
        "name": {
          "title": "The name of the environment variable.",
          "type": "string"
        },
        "value": {
          "title": "The value of the environment variable.",
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "title": "An environment variable to be set on a task process."
    },
    "ErrorCategory": {
      "enum": [
        "userError",
        "serverError"
      ],
      "title": "The category of the error.",
      "type": "string",
      "x-ms-enum": {
        "modelAsString": false,
        "name": "ErrorCategory"
      }
    },
    "ErrorMessage": {
      "properties": {
        "lang": {
          "title": "The language code of the error message",
          "type": "string"
        },
        "value": {
          "title": "The text of the message.",
          "type": "string"
        }
      },
      "title": "An error message received in an Azure Batch error response."
    },
    "ExitCodeMapping": {
      "properties": {
        "code": {
          "format": "int32",
          "title": "A process exit code.",
          "type": "integer"
        },
        "exitOptions": {
          "$ref": "#/definitions/ExitOptions",
          "title": "How the Batch service should respond if the task exits with this exit code."
        }
      },
      "required": [
        "code",
        "exitOptions"
      ],
      "title": "How the Batch service should respond if a task exits with a particular exit code."
    },
    "ExitCodeRangeMapping": {
      "properties": {
        "end": {
          "format": "int32",
          "title": "The last exit code in the range.",
          "type": "integer"
        },
        "exitOptions": {
          "$ref": "#/definitions/ExitOptions",
          "title": "How the Batch service should respond if the task exits with an exit code in the range start to end (inclusive)."
        },
        "start": {
          "format": "int32",
          "title": "The first exit code in the range.",
          "type": "integer"
        }
      },
      "required": [
        "start",
        "end",
        "exitOptions"
      ],
      "title": "A range of exit codes and how the Batch service should respond to exit codes within that range."
    },
    "ExitConditions": {
      "properties": {
        "default": {
          "$ref": "#/definitions/ExitOptions",
          "description": "This value is used if the task exits with any nonzero exit code not listed in the exitCodes or exitCodeRanges collection, with a pre-processing error if the preProcessingError property is not present, or with a file upload error if the fileUploadError property is not present. If you want non-default behavior on exit code 0, you must list it explicitly using the exitCodes or exitCodeRanges collection.",
          "title": "How the Batch service should respond if the task fails with an exit condition not covered by any of the other properties."
        },
        "exitCodeRanges": {
          "items": {
            "$ref": "#/definitions/ExitCodeRangeMapping"
          },
          "title": "A list of task exit code ranges and how the Batch service should respond to them.",
          "type": "array"
        },
        "exitCodes": {
          "items": {
            "$ref": "#/definitions/ExitCodeMapping"
          },
          "title": "A list of individual task exit codes and how the Batch service should respond to them.",
          "type": "array"
        },
        "fileUploadError": {
          "$ref": "#/definitions/ExitOptions",
          "description": "If the task exited with an exit code that was specified via exitCodes or exitCodeRanges, and then encountered a file upload error, then the action specified by the exit code takes precedence.",
          "title": "How the Batch service should respond if a file upload error occurs."
        },
        "preProcessingError": {
          "$ref": "#/definitions/ExitOptions",
          "title": "How the Batch service should respond if the task fails to start due to an error."
        }
      },
      "title": "Specifies how the Batch service should respond when the task completes."
    },
    "ExitOptions": {
      "properties": {
        "dependencyAction": {
          "description": "Values are:\n\n satisfy - Satisfy the task's dependencies.\n block - Block the task's dependencies.\n\n The default is 'satisfy' for exit code 0, and 'block' for all other exit conditions. If the job's usesTaskDependencies property is set to false, then specifying the dependencyAction property returns an error and the add task request fails with an invalid property value error; if you are calling the REST API directly, the HTTP status code is 400  (Bad Request).",
          "enum": [
            "satisfy",
            "block"
          ],
          "title": "An action that the Batch service performs on tasks that depend on this task.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "DependencyAction"
          }
        },
        "jobAction": {
          "description": "Values are:\n\n none - Take no action.\n disable - Disable the job. This is equivalent to calling the disable job API, with a disableTasks value of requeue.\n terminate - Terminate the job. The terminateReason in the job's executionInfo is set to \"TaskFailed\". The default is none for exit code 0 and terminate for all other exit conditions.\n\n If the job's onTaskFailed property is noAction, then specifying this property returns an error and the add task request fails with an invalid property value error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request).",
          "enum": [
            "none",
            "disable",
            "terminate"
          ],
          "title": "An action to take on the job containing the task, if the task completes with the given exit condition and the job's onTaskFailed property is 'performExitOptionsJobAction'.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "JobAction"
          }
        }
      },
      "title": "Specifies how the Batch service responds to a particular exit condition."
    },
    "FileProperties": {
      "properties": {
        "contentLength": {
          "format": "int64",
          "title": "The length of the file.",
          "type": "integer"
        },
        "contentType": {
          "title": "The content type of the file.",
          "type": "string"
        },
        "creationTime": {
          "description": "The creation time is not returned for files on Linux compute nodes.",
          "format": "date-time",
          "title": "The file creation time.",
          "type": "string"
        },
        "fileMode": {
          "description": "The file mode is returned only for files on Linux compute nodes.",
          "title": "The file mode attribute in octal format.",
          "type": "string"
        },
        "lastModified": {
          "format": "date-time",
          "title": "The time at which the file was last modified.",
          "type": "string"
        }
      },
      "required": [
        "lastModified",
        "contentLength"
      ],
      "title": "The properties of a file on a compute node."
    },
    "ImageReference": {
      "properties": {
        "offer": {
          "description": "For example, UbuntuServer or WindowsServer.",
          "title": "The offer type of the Azure Virtual Machines Marketplace image.",
          "type": "string"
        },
        "publisher": {
          "description": "For example, Canonical or MicrosoftWindowsServer.",
          "title": "The publisher of the Azure Virtual Machines Marketplace image.",
          "type": "string"
        },
        "sku": {
          "description": "For example, 14.04.0-LTS or 2012-R2-Datacenter.",
          "title": "The SKU of the Azure Virtual Machines Marketplace image.",
          "type": "string"
        },
        "version": {
          "description": "A value of 'latest' can be specified to select the latest version of an image. If omitted, the default is 'latest'.",
          "title": "The version of the Azure Virtual Machines Marketplace image.",
          "type": "string"
        }
      },
      "required": [
        "publisher",
        "offer",
        "sku"
      ],
      "title": "A reference to an Azure Virtual Machines Marketplace image. To get the list of all imageReferences verified by Azure Batch, see the 'List supported node agent SKUs' operation."
    },
    "InboundEndpoint": {
      "properties": {
        "backendPort": {
          "format": "int32",
          "title": "The backend port number of the endpoint.",
          "type": "integer"
        },
        "frontendPort": {
          "format": "int32",
          "title": "The public port number of the endpoint.",
          "type": "integer"
        },
        "name": {
          "title": "The name of the endpoint.",
          "type": "string"
        },
        "protocol": {
          "enum": [
            "tcp",
            "udp"
          ],
          "title": "The protocol of the endpoint.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "InboundEndpointProtocol"
          }
        },
        "publicFQDN": {
          "title": "The public fully qualified domain name for the compute node.",
          "type": "string"
        },
        "publicIPAddress": {
          "title": "The public IP address of the compute node.",
          "type": "string"
        }
      },
      "required": [
        "name",
        "protocol",
        "publicIPAddress",
        "publicFQDN",
        "frontendPort",
        "backendPort"
      ],
      "title": "An inbound endpoint on a compute node."
    },
    "InboundNATPool": {
      "properties": {
        "backendPort": {
          "description": "This must be unique within a Batch pool. Acceptable values are between 1 and 65535 except for 22, 3389, 29876 and 29877 as these are reserved. If any reserved values are provided the request fails with HTTP status code 400.",
          "format": "int32",
          "title": "The port number on the compute node.",
          "type": "integer"
        },
        "frontendPortRangeEnd": {
          "description": "Acceptable values range between 1 and 65534 except ports from 50000 to 55000 which are reserved by the Batch service. All ranges within a pool must be distinct and cannot overlap. If any reserved or overlapping values are provided the request fails with HTTP status code 400.",
          "format": "int32",
          "title": "The last port number in the range of external ports that will be used to provide inbound access to the backendPort on individual compute nodes.",
          "type": "integer"
        },
        "frontendPortRangeStart": {
          "description": "Acceptable values range between 1 and 65534 except ports from 50000 to 55000 which are reserved. All ranges within a pool must be distinct and cannot overlap. If any reserved or overlapping values are provided the request fails with HTTP status code 400.",
          "format": "int32",
          "title": "The first port number in the range of external ports that will be used to provide inbound access to the backendPort on individual compute nodes.",
          "type": "integer"
        },
        "name": {
          "description": "The name must be unique within a Batch pool, can contain letters, numbers, underscores, periods, and hyphens. Names must start with a letter or number, must end with a letter, number, or underscore, and cannot exceed 77 characters.  If any invalid values are provided the request fails with HTTP status code 400.",
          "title": "The name of the endpoint.",
          "type": "string"
        },
        "networkSecurityGroupRules": {
          "description": "The maximum number of rules that can be specified across all the endpoints on a Batch pool is 25. If no network security group rules are specified, a default rule will be created to allow inbound access to the specified backendPort. If the maximum number of network security group rules is exceeded the request fails with HTTP status code 400.",
          "items": {
            "$ref": "#/definitions/NetworkSecurityGroupRule"
          },
          "title": "A list of network security group rules that will be applied to the endpoint.",
          "type": "array"
        },
        "protocol": {
          "enum": [
            "tcp",
            "udp"
          ],
          "title": "The protocol of the endpoint.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "InboundEndpointProtocol"
          }
        }
      },
      "required": [
        "name",
        "protocol",
        "backendPort",
        "frontendPortRangeStart",
        "frontendPortRangeEnd"
      ],
      "title": "A inbound NAT pool that can be used to address specific ports on compute nodes in a Batch pool externally."
    },
    "JobAddParameter": {
      "properties": {
        "commonEnvironmentSettings": {
          "description": "Individual tasks can override an environment setting specified here by specifying the same setting name with a different value.",
          "items": {
            "$ref": "#/definitions/EnvironmentSetting"
          },
          "title": "The list of common environment variable settings. These environment variables are set for all tasks in the job (including the Job Manager, Job Preparation and Job Release tasks).",
          "type": "array"
        },
        "constraints": {
          "$ref": "#/definitions/JobConstraints",
          "description": "The execution constraints for the job."
        },
        "displayName": {
          "description": "The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024.",
          "title": "The display name for the job.",
          "type": "string"
        },
        "id": {
          "description": "The ID can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters. The ID is case-preserving and case-insensitive (that is, you may not have two IDs within an account that differ only by case).",
          "title": "A string that uniquely identifies the job within the account.",
          "type": "string"
        },
        "jobManagerTask": {
          "$ref": "#/definitions/JobManagerTask",
          "description": "If the job does not specify a Job Manager task, the user must explicitly add tasks to the job. If the job does specify a Job Manager task, the Batch service creates the Job Manager task when the job is created, and will try to schedule the Job Manager task before scheduling other tasks in the job. The Job Manager task's typical purpose is to control and/or monitor job execution, for example by deciding what additional tasks to run, determining when the work is complete, etc. (However, a Job Manager task is not restricted to these activities - it is a fully-fledged task in the system and perform whatever actions are required for the job.) For example, a Job Manager task might download a file specified as a parameter, analyze the contents of that file and submit additional tasks based on those contents.",
          "title": "Details of a Job Manager task to be launched when the job is started."
        },
        "jobPreparationTask": {
          "$ref": "#/definitions/JobPreparationTask",
          "description": "If a job has a Job Preparation task, the Batch service will run the Job Preparation task on a compute node before starting any tasks of that job on that compute node.",
          "title": "The Job Preparation task."
        },
        "jobReleaseTask": {
          "$ref": "#/definitions/JobReleaseTask",
          "description": "A Job Release task cannot be specified without also specifying a Job Preparation task for the job. The Batch service runs the Job Release task on the compute nodes that have run the Job Preparation task. The primary purpose of the Job Release task is to undo changes to compute nodes made by the Job Preparation task. Example activities include deleting local files, or shutting down services that were started as part of job preparation.",
          "title": "The Job Release task."
        },
        "metadata": {
          "description": "The Batch service does not assign any meaning to metadata; it is solely for the use of user code.",
          "items": {
            "$ref": "#/definitions/MetadataItem"
          },
          "title": "A list of name-value pairs associated with the job as metadata.",
          "type": "array"
        },
        "onAllTasksComplete": {
          "$ref": "#/definitions/OnAllTasksComplete",
          "description": "Note that if a job contains no tasks, then all tasks are considered complete. This option is therefore most commonly used with a Job Manager task; if you want to use automatic job termination without a Job Manager, you should initially set onAllTasksComplete to noAction and update the job properties to set onAllTasksComplete to terminateJob once you have finished adding tasks. Permitted values are: noAction - do nothing. The job remains active unless terminated or disabled by some other means. terminateJob - terminate the job. The job's terminateReason is set to 'AllTasksComplete'. The default is noAction.",
          "title": "The action the Batch service should take when all tasks in the job are in the completed state."
        },
        "onTaskFailure": {
          "$ref": "#/definitions/OnTaskFailure",
          "description": "A task is considered to have failed if has a failureInfo. A failureInfo is set if the task completes with a non-zero exit code after exhausting its retry count, or if there was an error starting the task, for example due to a resource file download error. noAction - do nothing. performExitOptionsJobAction - take the action associated with the task exit condition in the task's exitConditions collection. (This may still result in no action being taken, if that is what the task specifies.) The default is noAction.",
          "title": "The action the Batch service should take when any task in the job fails."
        },
        "poolInfo": {
          "$ref": "#/definitions/PoolInformation",
          "title": "The pool on which the Batch service runs the job's tasks."
        },
        "priority": {
          "description": "Priority values can range from -1000 to 1000, with -1000 being the lowest priority and 1000 being the highest priority. The default value is 0.",
          "format": "int32",
          "title": "The priority of the job.",
          "type": "integer"
        },
        "usesTaskDependencies": {
          "title": "Whether tasks in the job can define dependencies on each other. The default is false.",
          "type": "boolean"
        }
      },
      "required": [
        "id",
        "poolInfo"
      ],
      "title": "An Azure Batch job to add."
    },
    "JobConstraints": {
      "properties": {
        "maxTaskRetryCount": {
          "description": "Note that this value specifically controls the number of retries. The Batch service will try each task once, and may then retry up to this limit. For example, if the maximum retry count is 3, Batch tries a task up to 4 times (one initial try and 3 retries). If the maximum retry count is 0, the Batch service does not retry tasks. If the maximum retry count is -1, the Batch service retries tasks without limit. The default value is 0 (no retries).",
          "format": "int32",
          "title": "The maximum number of times each task may be retried. The Batch service retries a task if its exit code is nonzero.",
          "type": "integer"
        },
        "maxWallClockTime": {
          "description": "If the job does not complete within the time limit, the Batch service terminates it and any tasks that are still running. In this case, the termination reason will be MaxWallClockTimeExpiry. If this property is not specified, there is no time limit on how long the job may run.",
          "format": "duration",
          "title": "The maximum elapsed time that the job may run, measured from the time the job is created.",
          "type": "string"
        }
      },
      "title": "The execution constraints for a job."
    },
    "JobDisableParameter": {
      "properties": {
        "disableTasks": {
          "description": "Values are:\n\n requeue - Terminate running tasks and requeue them. The tasks will run again when the job is enabled.\n terminate - Terminate running tasks. The tasks will not run again.\n wait - Allow currently running tasks to complete.",
          "enum": [
            "requeue",
            "terminate",
            "wait"
          ],
          "title": "What to do with active tasks associated with the job.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "DisableJobOption"
          }
        }
      },
      "required": [
        "disableTasks"
      ],
      "title": "Options when disabling a job."
    },
    "JobExecutionInformation": {
      "properties": {
        "endTime": {
          "description": "This property is set only if the job is in the completed state.",
          "format": "date-time",
          "title": "The completion time of the job.",
          "type": "string"
        },
        "poolId": {
          "description": "This element contains the actual pool where the job is assigned. When you get job details from the service, they also contain a poolInfo element, which contains the pool configuration data from when the job was added or updated. That poolInfo element may also contain a poolId element. If it does, the two IDs are the same. If it does not, it means the job ran on an auto pool, and this property contains the ID of that auto pool.",
          "title": "The ID of the pool to which this job is assigned.",
          "type": "string"
        },
        "schedulingError": {
          "$ref": "#/definitions/JobSchedulingError",
          "description": "This property is not set if there was no error starting the job.",
          "title": "Details of any error encountered by the service in starting the job."
        },
        "startTime": {
          "description": "This is the time at which the job was created.",
          "format": "date-time",
          "title": "The start time of the job.",
          "type": "string"
        },
        "terminateReason": {
          "description": "This property is set only if the job is in the completed state. If the Batch service terminates the job, it sets the reason as follows: JMComplete - the Job Manager task completed, and killJobOnCompletion was set to true. MaxWallClockTimeExpiry - the job reached its maxWallClockTime constraint. TerminateJobSchedule - the job ran as part of a schedule, and the schedule terminated. AllTasksComplete - the job's onAllTasksComplete attribute is set to terminateJob, and all tasks in the job are complete. TaskFailed - the job's onTaskFailure attribute is set to performExitOptionsJobAction, and a task in the job failed with an exit condition that specified a jobAction of terminateJob. Any other string is a user-defined reason specified in a call to the 'Terminate a job' operation.",
          "title": "A string describing the reason the job ended.",
          "type": "string"
        }
      },
      "required": [
        "startTime"
      ],
      "title": "Contains information about the execution of a job in the Azure Batch service."
    },
    "JobManagerTask": {
      "description": "The Job Manager task is automatically started when the job is created. The Batch service tries to schedule the Job Manager task before any other tasks in the job. When shrinking a pool, the Batch service tries to preserve compute nodes where Job Manager tasks are running for as long as possible (that is, nodes running 'normal' tasks are removed before nodes running Job Manager tasks). When a Job Manager task fails and needs to be restarted, the system tries to schedule it at the highest priority. If there are no idle nodes available, the system may terminate one of the running tasks in the pool and return it to the queue in order to make room for the Job Manager task to restart. Note that a Job Manager task in one job does not have priority over tasks in other jobs. Across jobs, only job level priorities are observed. For example, if a Job Manager in a priority 0 job needs to be restarted, it will not displace tasks of a priority 1 job.",
      "properties": {
        "allowLowPriorityNode": {
          "description": "The default value is false.",
          "title": "Whether the Job Manager task may run on a low-priority compute node.",
          "type": "boolean"
        },
        "applicationPackageReferences": {
          "description": "Application packages are downloaded and deployed to a shared directory, not the task working directory. Therefore, if a referenced package is already on the compute node, and is up to date, then it is not re-downloaded; the existing copy on the compute node is used. If a referenced application package cannot be installed, for example because the package has been deleted or because download failed, the task fails.",
          "items": {
            "$ref": "#/definitions/ApplicationPackageReference"
          },
          "title": "A list of application packages that the Batch service will deploy to the compute node before running the command line.",
          "type": "array"
        },
        "authenticationTokenSettings": {
          "$ref": "#/definitions/AuthenticationTokenSettings",
          "description": "If this property is set, the Batch service provides the task with an authentication token which can be used to authenticate Batch service operations without requiring an account access key. The token is provided via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations that the task can carry out using the token depend on the settings. For example, a task can request job permissions in order to add other tasks to the job, or check the status of the job or of other tasks under the job.",
          "title": "The settings for an authentication token that the task can use to perform Batch service operations."
        },
        "commandLine": {
          "description": "The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux.",
          "title": "The command line of the Job Manager task.",
          "type": "string"
        },
        "constraints": {
          "$ref": "#/definitions/TaskConstraints",
          "title": "Constraints that apply to the Job Manager task."
        },
        "displayName": {
          "description": "It need not be unique and can contain any Unicode characters up to a maximum length of 1024.",
          "title": "The display name of the Job Manager task.",
          "type": "string"
        },
        "environmentSettings": {
          "items": {
            "$ref": "#/definitions/EnvironmentSetting"
          },
          "title": "A list of environment variable settings for the Job Manager task.",
          "type": "array"
        },
        "id": {
          "description": "The ID can contain any combination of alphanumeric characters including hyphens and underscores and cannot contain more than 64 characters.",
          "title": "A string that uniquely identifies the Job Manager task within the job.",
          "type": "string"
        },
        "killJobOnCompletion": {
          "description": "If true, when the Job Manager task completes, the Batch service marks the job as complete. If any tasks are still running at this time (other than Job Release), those tasks are terminated. If false, the completion of the Job Manager task does not affect the job status. In this case, you should either use the onAllTasksComplete attribute to terminate the job, or have a client or user terminate the job explicitly. An example of this is if the Job Manager creates a set of tasks but then takes no further role in their execution. The default value is true. If you are using the onAllTasksComplete and onTaskFailure attributes to control job lifetime, and using the Job Manager task only to create the tasks for the job (not to monitor progress), then it is important to set killJobOnCompletion to false.",
          "title": "Whether completion of the Job Manager task signifies completion of the entire job.",
          "type": "boolean"
        },
        "outputFiles": {
          "description": "For multi-instance tasks, the files will only be uploaded from the compute node on which the primary task is executed.",
          "items": {
            "$ref": "#/definitions/OutputFile"
          },
          "title": "A list of files that the Batch service will upload from the compute node after running the command line.",
          "type": "array"
        },
        "resourceFiles": {
          "description": "Files listed under this element are located in the task's working directory.",
          "items": {
            "$ref": "#/definitions/ResourceFile"
          },
          "title": "A list of files that the Batch service will download to the compute node before running the command line.",
          "type": "array"
        },
        "runExclusive": {
          "description": "If true, no other tasks will run on the same compute node for as long as the Job Manager is running. If false, other tasks can run simultaneously with the Job Manager on a compute node. The Job Manager task counts normally against the node's concurrent task limit, so this is only relevant if the node allows multiple concurrent tasks. The default value is true.",
          "title": "Whether the Job Manager task requires exclusive use of the compute node where it runs.",
          "type": "boolean"
        },
        "userIdentity": {
          "$ref": "#/definitions/UserIdentity",
          "description": "If omitted, the task runs as a non-administrative user unique to the task.",
          "title": "The user identity under which the Job Manager task runs."
        }
      },
      "required": [
        "id",
        "commandLine"
      ],
      "title": "Specifies details of a Job Manager task."
    },
    "JobPatchParameter": {
      "properties": {
        "constraints": {
          "$ref": "#/definitions/JobConstraints",
          "description": "If omitted, the existing execution constraints are left unchanged.",
          "title": "The execution constraints for the job."
        },
        "metadata": {
          "description": "If omitted, the existing job metadata is left unchanged.",
          "items": {
            "$ref": "#/definitions/MetadataItem"
          },
          "title": "A list of name-value pairs associated with the job as metadata.",
          "type": "array"
        },
        "onAllTasksComplete": {
          "$ref": "#/definitions/OnAllTasksComplete",
          "description": "If omitted, the completion behavior is left unchanged. You may not change the value from terminateJob to noAction - that is, once you have engaged automatic job termination, you cannot turn it off again. If you try to do this, the request fails with an 'invalid property value' error response; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request).",
          "title": "The action the Batch service should take when all tasks in the job are in the completed state."
        },
        "poolInfo": {
          "$ref": "#/definitions/PoolInformation",
          "description": "You may change the pool for a job only when the job is disabled. The Patch Job call will fail if you include the poolInfo element and the job is not disabled. If you specify an autoPoolSpecification specification in the poolInfo, only the keepAlive property can be updated, and then only if the auto pool has a poolLifetimeOption of job. If omitted, the job continues to run on its current pool.",
          "title": "The pool on which the Batch service runs the job's tasks."
        },
        "priority": {
          "description": "Priority values can range from -1000 to 1000, with -1000 being the lowest priority and 1000 being the highest priority. If omitted, the priority of the job is left unchanged.",
          "format": "int32",
          "title": "The priority of the job.",
          "type": "integer"
        }
      },
      "title": "The set of changes to be made to a job."
    },
    "JobPreparationAndReleaseTaskExecutionInformation": {
      "properties": {
        "jobPreparationTaskExecutionInfo": {
          "$ref": "#/definitions/JobPreparationTaskExecutionInformation",
          "title": "Information about the execution status of the Job Preparation task on this compute node."
        },
        "jobReleaseTaskExecutionInfo": {
          "$ref": "#/definitions/JobReleaseTaskExecutionInformation",
          "description": "This property is set only if the Job Release task has run on the node.",
          "title": "Information about the execution status of the Job Release task on this compute node."
        },
        "nodeId": {
          "title": "The ID of the compute node to which this entry refers.",
          "type": "string"
        },
        "nodeUrl": {
          "title": "The URL of the compute node to which this entry refers.",
          "type": "string"
        },
        "poolId": {
          "title": "The ID of the pool containing the compute node to which this entry refers.",
          "type": "string"
        }
      },
      "title": "The status of the Job Preparation and Job Release tasks on a compute node."
    },
    "JobPreparationTask": {
      "description": "You can use Job Preparation to prepare a compute node to run tasks for the job. Activities commonly performed in Job Preparation include: Downloading common resource files used by all the tasks in the job. The Job Preparation task can download these common resource files to the shared location on the compute node. (AZ_BATCH_NODE_ROOT_DIR\\shared), or starting a local service on the compute node so that all tasks of that job can communicate with it. If the Job Preparation task fails (that is, exhausts its retry count before exiting with exit code 0), Batch will not run tasks of this job on the compute node. The node remains ineligible to run tasks of this job until it is reimaged. The node remains active and can be used for other jobs. The Job Preparation task can run multiple times on the same compute node. Therefore, you should write the Job Preparation task to handle re-execution. If the compute node is rebooted, the Job Preparation task is run again on the node before scheduling any other task of the job, if rerunOnNodeRebootAfterSuccess is true or if the Job Preparation task did not previously complete. If the compute node is reimaged, the Job Preparation task is run again before scheduling any task of the job.",
      "properties": {
        "commandLine": {
          "description": "The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux.",
          "title": "The command line of the Job Preparation task.",
          "type": "string"
        },
        "constraints": {
          "$ref": "#/definitions/TaskConstraints",
          "title": "Constraints that apply to the Job Preparation task."
        },
        "environmentSettings": {
          "items": {
            "$ref": "#/definitions/EnvironmentSetting"
          },
          "title": "A list of environment variable settings for the Job Preparation task.",
          "type": "array"
        },
        "id": {
          "description": "The ID can contain any combination of alphanumeric characters including hyphens and underscores and cannot contain more than 64 characters. If you do not specify this property, the Batch service assigns a default value of 'jobpreparation'. No other task in the job can have the same ID as the Job Preparation task. If you try to submit a task with the same id, the Batch service rejects the request with error code TaskIdSameAsJobPreparationTask; if you are calling the REST API directly, the HTTP status code is 409 (Conflict).",
          "title": "A string that uniquely identifies the Job Preparation task within the job.",
          "type": "string"
        },
        "rerunOnNodeRebootAfterSuccess": {
          "description": "The Job Preparation task is always rerun if a compute node is reimaged, or if the Job Preparation task did not complete (e.g. because the reboot occurred while the task was running). Therefore, you should always write a Job Preparation task to be idempotent and to behave correctly if run multiple times. The default value is true.",
          "title": "Whether the Batch service should rerun the Job Preparation task after a compute node reboots.",
          "type": "boolean"
        },
        "resourceFiles": {
          "description": "Files listed under this element are located in the task's working directory.",
          "items": {
            "$ref": "#/definitions/ResourceFile"
          },
          "title": "A list of files that the Batch service will download to the compute node before running the command line.",
          "type": "array"
        },
        "userIdentity": {
          "$ref": "#/definitions/UserIdentity",
          "description": "If omitted, the task runs as a non-administrative user unique to the task on Windows nodes, or a non-administrative user unique to the pool on Linux nodes.",
          "title": "The user identity under which the Job Preparation task runs."
        },
        "waitForSuccess": {
          "description": "If true and the Job Preparation task fails on a compute node, the Batch service retries the Job Preparation task up to its maximum retry count (as specified in the constraints element). If the task has still not completed successfully after all retries, then the Batch service will not schedule tasks of the job to the compute node. The compute node remains active and eligible to run tasks of other jobs. If false, the Batch service will not wait for the Job Preparation task to complete. In this case, other tasks of the job can start executing on the compute node while the Job Preparation task is still running; and even if the Job Preparation task fails, new tasks will continue to be scheduled on the node. The default value is true.",
          "title": "Whether the Batch service should wait for the Job Preparation task to complete successfully before scheduling any other tasks of the job on the compute node. A Job Preparation task has completed successfully if it exits with exit code 0.",
          "type": "boolean"
        }
      },
      "required": [
        "commandLine"
      ],
      "title": "A Job Preparation task to run before any tasks of the job on any given compute node."
    },
    "JobPreparationTaskExecutionInformation": {
      "properties": {
        "endTime": {
          "description": "This property is set only if the task is in the Completed state.",
          "format": "date-time",
          "title": "The time at which the Job Preparation task completed.",
          "type": "string"
        },
        "exitCode": {
          "description": "This parameter is returned only if the task is in the completed state. The exit code for a process reflects the specific convention implemented by the application developer for that process. If you use the exit code value to make decisions in your code, be sure that you know the exit code convention used by the application process. Note that the exit code may also be generated by the compute node operating system, such as when a process is forcibly terminated.",
          "format": "int32",
          "title": "The exit code of the program specified on the task command line.",
          "type": "integer"
        },
        "failureInfo": {
          "$ref": "#/definitions/TaskFailureInformation",
          "description": "This property is set only if the task is in the completed state and encountered a failure.",
          "title": "Information describing the task failure, if any."
        },
        "lastRetryTime": {
          "description": "This property is set only if the task was retried (i.e. retryCount is nonzero). If present, this is typically the same as startTime, but may be different if the task has been restarted for reasons other than retry; for example, if the compute node was rebooted during a retry, then the startTime is updated but the lastRetryTime is not.",
          "format": "date-time",
          "title": "The most recent time at which a retry of the Job Preparation task started running.",
          "type": "string"
        },
        "result": {
          "$ref": "#/definitions/TaskExecutionResult",
          "description": "If the value is 'failed', then the details of the failure can be found in the failureInfo property.",
          "title": "The result of the task execution."
        },
        "retryCount": {
          "description": "Task application failures (non-zero exit code) are retried, pre-processing errors (the task could not be run) and file upload errors are not retried. The Batch service will retry the task up to the limit specified by the constraints.",
          "format": "int32",
          "title": "The number of times the task has been retried by the Batch service. Task application failures (non-zero exit code) are retried, pre-processing errors (the task could not be run) and file upload errors are not retried. The Batch service will retry the task up to the limit specified by the constraints.",
          "type": "integer"
        },
        "startTime": {
          "description": "If the task has been restarted or retried, this is the most recent time at which the task started running.",
          "format": "date-time",
          "title": "The time at which the task started running.",
          "type": "string"
        },
        "state": {
          "description": "Values are:\n\n running - the task is currently running (including retrying).\n completed - the task has exited with exit code 0, or the task has exhausted its retry limit, or the Batch service was unable to start the task due to task preparation errors (such as resource file download failures).",
          "enum": [
            "running",
            "completed"
          ],
          "title": "The current state of the Job Preparation task on the compute node.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "JobPreparationTaskState"
          }
        },
        "taskRootDirectory": {
          "title": "The root directory of the Job Preparation task on the compute node. You can use this path to retrieve files created by the task, such as log files.",
          "type": "string"
        },
        "taskRootDirectoryUrl": {
          "title": "The URL to the root directory of the Job Preparation task on the compute node.",
          "type": "string"
        }
      },
      "required": [
        "startTime",
        "retryCount",
        "state"
      ],
      "title": "Contains information about the execution of a Job Preparation task on a compute node."
    },
    "JobReleaseTask": {
      "description": "The Job Release task runs when the job ends, because of one of the following: The user calls the Terminate Job API, or the Delete Job API while the job is still active, the job's maximum wall clock time constraint is reached, and the job is still active, or the job's Job Manager task completed, and the job is configured to terminate when the Job Manager completes. The Job Release task runs on each compute node where tasks of the job have run and the Job Preparation task ran and completed. If you reimage a compute node after it has run the Job Preparation task, and the job ends without any further tasks of the job running on that compute node (and hence the Job Preparation task does not re-run), then the Job Release task does not run on that node. If a compute node reboots while the Job Release task is still running, the Job Release task runs again when the compute node starts up. The job is not marked as complete until all Job Release tasks have completed. The Job Release task runs in the background. It does not occupy a scheduling slot; that is, it does not count towards the maxTasksPerNode limit specified on the pool.",
      "properties": {
        "commandLine": {
          "description": "The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux.",
          "title": "The command line of the Job Release task.",
          "type": "string"
        },
        "environmentSettings": {
          "items": {
            "$ref": "#/definitions/EnvironmentSetting"
          },
          "title": "A list of environment variable settings for the Job Release task.",
          "type": "array"
        },
        "id": {
          "description": "The ID can contain any combination of alphanumeric characters including hyphens and underscores and cannot contain more than 64 characters. If you do not specify this property, the Batch service assigns a default value of 'jobrelease'. No other task in the job can have the same ID as the Job Release task. If you try to submit a task with the same id, the Batch service rejects the request with error code TaskIdSameAsJobReleaseTask; if you are calling the REST API directly, the HTTP status code is 409 (Conflict).",
          "title": "A string that uniquely identifies the Job Release task within the job.",
          "type": "string"
        },
        "maxWallClockTime": {
          "format": "duration",
          "title": "The maximum elapsed time that the Job Release task may run on a given compute node, measured from the time the task starts. If the task does not complete within the time limit, the Batch service terminates it. The default value is 15 minutes. You may not specify a timeout longer than 15 minutes. If you do, the Batch service rejects it with an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request).",
          "type": "string"
        },
        "resourceFiles": {
          "description": "Files listed under this element are located in the task's working directory.",
          "items": {
            "$ref": "#/definitions/ResourceFile"
          },
          "title": "A list of files that the Batch service will download to the compute node before running the command line.",
          "type": "array"
        },
        "retentionTime": {
          "description": "The default is infinite, i.e. the task directory will be retained until the compute node is removed or reimaged.",
          "format": "duration",
          "title": "The minimum time to retain the task directory for the Job Release task on the compute node. After this time, the Batch service may delete the task directory and all its contents.",
          "type": "string"
        },
        "userIdentity": {
          "$ref": "#/definitions/UserIdentity",
          "description": "If omitted, the task runs as a non-administrative user unique to the task.",
          "title": "The user identity under which the Job Release task runs."
        }
      },
      "required": [
        "commandLine"
      ],
      "title": "A Job Release task to run on job completion on any compute node where the job has run."
    },
    "JobReleaseTaskExecutionInformation": {
      "properties": {
        "endTime": {
          "description": "This property is set only if the task is in the Completed state.",
          "format": "date-time",
          "title": "The time at which the Job Release task completed.",
          "type": "string"
        },
        "exitCode": {
          "description": "This parameter is returned only if the task is in the completed state. The exit code for a process reflects the specific convention implemented by the application developer for that process. If you use the exit code value to make decisions in your code, be sure that you know the exit code convention used by the application process. Note that the exit code may also be generated by the compute node operating system, such as when a process is forcibly terminated.",
          "format": "int32",
          "title": "The exit code of the program specified on the task command line.",
          "type": "integer"
        },
        "failureInfo": {
          "$ref": "#/definitions/TaskFailureInformation",
          "description": "This property is set only if the task is in the completed state and encountered a failure.",
          "title": "Information describing the task failure, if any."
        },
        "result": {
          "$ref": "#/definitions/TaskExecutionResult",
          "description": "If the value is 'failed', then the details of the failure can be found in the failureInfo property.",
          "title": "The result of the task execution."
        },
        "startTime": {
          "description": "If the task has been restarted or retried, this is the most recent time at which the task started running.",
          "format": "date-time",
          "title": "The time at which the task started running.",
          "type": "string"
        },
        "state": {
          "description": "Values are:\n\n running - the task is currently running (including retrying).\n completed - the task has exited, or the Batch service was unable to start the task due to task preparation errors (such as resource file download failures).",
          "enum": [
            "running",
            "completed"
          ],
          "title": "The current state of the Job Release task on the compute node.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "JobReleaseTaskState"
          }
        },
        "taskRootDirectory": {
          "title": "The root directory of the Job Release task on the compute node. You can use this path to retrieve files created by the task, such as log files.",
          "type": "string"
        },
        "taskRootDirectoryUrl": {
          "title": "The URL to the root directory of the Job Release task on the compute node.",
          "type": "string"
        }
      },
      "required": [
        "startTime",
        "state"
      ],
      "title": "Contains information about the execution of a Job Release task on a compute node."
    },
    "JobScheduleAddParameter": {
      "properties": {
        "displayName": {
          "description": "The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024.",
          "title": "The display name for the schedule.",
          "type": "string"
        },
        "id": {
          "description": "The ID can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters. The ID is case-preserving and case-insensitive (that is, you may not have two IDs within an account that differ only by case).",
          "title": "A string that uniquely identifies the schedule within the account.",
          "type": "string"
        },
        "jobSpecification": {
          "$ref": "#/definitions/JobSpecification",
          "title": "The details of the jobs to be created on this schedule."
        },
        "metadata": {
          "description": "The Batch service does not assign any meaning to metadata; it is solely for the use of user code.",
          "items": {
            "$ref": "#/definitions/MetadataItem"
          },
          "title": "A list of name-value pairs associated with the schedule as metadata.",
          "type": "array"
        },
        "schedule": {
          "$ref": "#/definitions/Schedule",
          "title": "The schedule according to which jobs will be created."
        }
      },
      "required": [
        "id",
        "schedule",
        "jobSpecification"
      ],
      "title": "A job schedule that allows recurring jobs by specifying when to run jobs and a specification used to create each job."
    },
    "JobScheduleExecutionInformation": {
      "properties": {
        "endTime": {
          "description": "This property is set only if the job schedule is in the completed state.",
          "format": "date-time",
          "title": "The time at which the schedule ended.",
          "type": "string"
        },
        "nextRunTime": {
          "description": "This property is meaningful only if the schedule is in the active state when the time comes around. For example, if the schedule is disabled, no job will be created at nextRunTime unless the job is enabled before then.",
          "format": "date-time",
          "title": "The next time at which a job will be created under this schedule.",
          "type": "string"
        },
        "recentJob": {
          "$ref": "#/definitions/RecentJob",
          "description": "This property is present only if the at least one job has run under the schedule.",
          "title": "Information about the most recent job under the job schedule."
        }
      },
      "title": "Contains information about jobs that have been and will be run under a job schedule."
    },
    "JobSchedulePatchParameter": {
      "properties": {
        "jobSpecification": {
          "$ref": "#/definitions/JobSpecification",
          "description": "Updates affect only jobs that are started after the update has taken place. Any currently active job continues with the older specification.",
          "title": "The details of the jobs to be created on this schedule."
        },
        "metadata": {
          "description": "If you do not specify this element, existing metadata is left unchanged.",
          "items": {
            "$ref": "#/definitions/MetadataItem"
          },
          "title": "A list of name-value pairs associated with the job schedule as metadata.",
          "type": "array"
        },
        "schedule": {
          "$ref": "#/definitions/Schedule",
          "description": "If you do not specify this element, the existing schedule is left unchanged.",
          "title": "The schedule according to which jobs will be created."
        }
      },
      "title": "The set of changes to be made to a job schedule."
    },
    "JobScheduleState": {
      "description": "Values are:\n\n active - The job schedule is active and will create jobs as per its schedule.\n disabled - The user has disabled the schedule. The scheduler will not initiate any new jobs will on this schedule, but any existing active job will continue to run.\n terminating - The schedule has no more work to do, or has been explicitly terminated by the user, but the termination operation is still in progress. The scheduler will not initiate any new jobs for this schedule, nor is any existing job active.\n completed - The schedule has terminated, either by reaching its end time or by the user terminating it explicitly.\n deleting - The user has requested that the schedule be deleted, but the delete operation is still in progress. The scheduler will not initiate any new jobs for this schedule, and will delete any existing jobs and tasks under the schedule, including any active job. The schedule will be deleted when all jobs and tasks under the schedule have been deleted.",
      "enum": [
        "active",
        "completed",
        "disabled",
        "terminating",
        "deleting"
      ],
      "title": "The state of the job schedule.",
      "type": "string",
      "x-ms-enum": {
        "modelAsString": false,
        "name": "JobScheduleState"
      }
    },
    "JobScheduleStatistics": {
      "properties": {
        "kernelCPUTime": {
          "format": "duration",
          "title": "The total kernel mode CPU time (summed across all cores and all compute nodes) consumed by all tasks in all jobs created under the schedule.",
          "type": "string"
        },
        "lastUpdateTime": {
          "format": "date-time",
          "title": "The time at which the statistics were last updated. All statistics are limited to the range between startTime and lastUpdateTime.",
          "type": "string"
        },
        "numFailedTasks": {
          "format": "int64",
          "title": "The total number of tasks that failed during the given time range in jobs created under the schedule. A task fails if it exhausts its maximum retry count without returning exit code 0.",
          "type": "integer"
        },
        "numSucceededTasks": {
          "format": "int64",
          "title": "The total number of tasks successfully completed during the given time range in jobs created under the schedule. A task completes successfully if it returns exit code 0.",
          "type": "integer"
        },
        "numTaskRetries": {
          "format": "int64",
          "title": "The total number of retries during the given time range on all tasks in all jobs created under the schedule.",
          "type": "integer"
        },
        "readIOGiB": {
          "format": "double",
          "title": "The total gibibytes read from disk by all tasks in all jobs created under the schedule.",
          "type": "number"
        },
        "readIOps": {
          "format": "int64",
          "title": "The total number of disk read operations made by all tasks in all jobs created under the schedule.",
          "type": "integer"
        },
        "startTime": {
          "format": "date-time",
          "title": "The start time of the time range covered by the statistics.",
          "type": "string"
        },
        "url": {
          "title": "The URL of the statistics.",
          "type": "string"
        },
        "userCPUTime": {
          "format": "duration",
          "title": "The total user mode CPU time (summed across all cores and all compute nodes) consumed by all tasks in all jobs created under the schedule.",
          "type": "string"
        },
        "waitTime": {
          "description": "This value is only reported in the account lifetime statistics; it is not included in the job statistics.",
          "format": "duration",
          "title": "The total wait time of all tasks in all jobs created under the schedule. The wait time for a task is defined as the elapsed time between the creation of the task and the start of task execution. (If the task is retried due to failures, the wait time is the time to the most recent task execution.)",
          "type": "string"
        },
        "wallClockTime": {
          "description": "The wall clock time is the elapsed time from when the task started running on a compute node to when it finished (or to the last time the statistics were updated, if the task had not finished by then). If a task was retried, this includes the wall clock time of all the task retries.",
          "format": "duration",
          "title": "The total wall clock time of all the tasks in all the jobs created under the schedule.",
          "type": "string"
        },
        "writeIOGiB": {
          "format": "double",
          "title": "The total gibibytes written to disk by all tasks in all jobs created under the schedule.",
          "type": "number"
        },
        "writeIOps": {
          "format": "int64",
          "title": "The total number of disk write operations made by all tasks in all jobs created under the schedule.",
          "type": "integer"
        }
      },
      "required": [
        "url",
        "startTime",
        "lastUpdateTime",
        "userCPUTime",
        "kernelCPUTime",
        "wallClockTime",
        "readIOps",
        "writeIOps",
        "readIOGiB",
        "writeIOGiB",
        "numSucceededTasks",
        "numFailedTasks",
        "numTaskRetries",
        "waitTime"
      ],
      "title": "Resource usage statistics for a job schedule."
    },
    "JobScheduleUpdateParameter": {
      "properties": {
        "jobSpecification": {
          "$ref": "#/definitions/JobSpecification",
          "description": "Updates affect only jobs that are started after the update has taken place. Any currently active job continues with the older specification.",
          "title": "Details of the jobs to be created on this schedule."
        },
        "metadata": {
          "description": "If you do not specify this element, it takes the default value of an empty list; in effect, any existing metadata is deleted.",
          "items": {
            "$ref": "#/definitions/MetadataItem"
          },
          "title": "A list of name-value pairs associated with the job schedule as metadata.",
          "type": "array"
        },
        "schedule": {
          "$ref": "#/definitions/Schedule",
          "description": "If you do not specify this element, it is equivalent to passing the default schedule: that is, a single job scheduled to run immediately.",
          "title": "The schedule according to which jobs will be created."
        }
      },
      "required": [
        "schedule",
        "jobSpecification"
      ],
      "title": "The set of changes to be made to a job schedule."
    },
    "JobSchedulingError": {
      "properties": {
        "category": {
          "$ref": "#/definitions/ErrorCategory",
          "title": "The category of the job scheduling error."
        },
        "code": {
          "title": "An identifier for the job scheduling error. Codes are invariant and are intended to be consumed programmatically.",
          "type": "string"
        },
        "details": {
          "items": {
            "$ref": "#/definitions/NameValuePair"
          },
          "title": "A list of additional error details related to the scheduling error.",
          "type": "array"
        },
        "message": {
          "title": "A message describing the job scheduling error, intended to be suitable for display in a user interface.",
          "type": "string"
        }
      },
      "required": [
        "category"
      ],
      "title": "An error encountered by the Batch service when scheduling a job."
    },
    "JobSpecification": {
      "properties": {
        "commonEnvironmentSettings": {
          "description": "Individual tasks can override an environment setting specified here by specifying the same setting name with a different value.",
          "items": {
            "$ref": "#/definitions/EnvironmentSetting"
          },
          "title": "A list of common environment variable settings. These environment variables are set for all tasks in jobs created under this schedule (including the Job Manager, Job Preparation and Job Release tasks).",
          "type": "array"
        },
        "constraints": {
          "$ref": "#/definitions/JobConstraints",
          "title": "The execution constraints for jobs created under this schedule."
        },
        "displayName": {
          "description": "The name need not be unique and can contain any Unicode characters up to a maximum length of 1024.",
          "title": "The display name for jobs created under this schedule.",
          "type": "string"
        },
        "jobManagerTask": {
          "$ref": "#/definitions/JobManagerTask",
          "description": "If the job does not specify a Job Manager task, the user must explicitly add tasks to the job using the Task API. If the job does specify a Job Manager task, the Batch service creates the Job Manager task when the job is created, and will try to schedule the Job Manager task before scheduling other tasks in the job.",
          "title": "The details of a Job Manager task to be launched when a job is started under this schedule."
        },
        "jobPreparationTask": {
          "$ref": "#/definitions/JobPreparationTask",
          "description": "If a job has a Job Preparation task, the Batch service will run the Job Preparation task on a compute node before starting any tasks of that job on that compute node.",
          "title": "The Job Preparation task for jobs created under this schedule."
        },
        "jobReleaseTask": {
          "$ref": "#/definitions/JobReleaseTask",
          "description": "The primary purpose of the Job Release task is to undo changes to compute nodes made by the Job Preparation task. Example activities include deleting local files, or shutting down services that were started as part of job preparation. A Job Release task cannot be specified without also specifying a Job Preparation task for the job. The Batch service runs the Job Release task on the compute nodes that have run the Job Preparation task.",
          "title": "The Job Release task for jobs created under this schedule."
        },
        "metadata": {
          "description": "The Batch service does not assign any meaning to metadata; it is solely for the use of user code.",
          "items": {
            "$ref": "#/definitions/MetadataItem"
          },
          "title": "A list of name-value pairs associated with each job created under this schedule as metadata.",
          "type": "array"
        },
        "onAllTasksComplete": {
          "$ref": "#/definitions/OnAllTasksComplete",
          "description": "Note that if a job contains no tasks, then all tasks are considered complete. This option is therefore most commonly used with a Job Manager task; if you want to use automatic job termination without a Job Manager, you should initially set onAllTasksComplete to noAction and update the job properties to set onAllTasksComplete to terminateJob once you have finished adding tasks. The default is noAction.",
          "title": "The action the Batch service should take when all tasks in a job created under this schedule are in the completed state."
        },
        "onTaskFailure": {
          "$ref": "#/definitions/OnTaskFailure",
          "description": "The default is noAction.",
          "title": "The action the Batch service should take when any task fails in a job created under this schedule. A task is considered to have failed if it have failed if has a failureInfo. A failureInfo is set if the task completes with a non-zero exit code after exhausting its retry count, or if there was an error starting the task, for example due to a resource file download error."
        },
        "poolInfo": {
          "$ref": "#/definitions/PoolInformation",
          "title": "The pool on which the Batch service runs the tasks of jobs created under this schedule."
        },
        "priority": {
          "description": "Priority values can range from -1000 to 1000, with -1000 being the lowest priority and 1000 being the highest priority. The default value is 0. This priority is used as the default for all jobs under the job schedule. You can update a job's priority after it has been created using by using the update job API.",
          "format": "int32",
          "title": "The priority of jobs created under this schedule.",
          "type": "integer"
        },
        "usesTaskDependencies": {
          "title": "Whether tasks in the job can define dependencies on each other. The default is false.",
          "type": "boolean"
        }
      },
      "required": [
        "poolInfo"
      ],
      "title": "Specifies details of the jobs to be created on a schedule."
    },
    "JobState": {
      "description": "Values are:\n\n active - the job is available to have tasks scheduled.\n disabling - a user has requested that the job be disabled, but the disable operation is still in progress (for example, waiting for tasks to terminate).\n disabled - a user has disabled the job. No tasks are running, and no new tasks will be scheduled.\n enabling - a user has requested that the job be enabled, but the enable operation is still in progress.\n terminating - the job is about to complete, either because a Job Manager task has completed or because the user has terminated the job, but the terminate operation is still in progress (for example, because Job Release tasks are running).\n completed - all tasks have terminated, and the system will not accept any more tasks or any further changes to the job.\n deleting - a user has requested that the job be deleted, but the delete operation is still in progress (for example, because the system is still terminating running tasks).",
      "enum": [
        "active",
        "disabling",
        "disabled",
        "enabling",
        "terminating",
        "completed",
        "deleting"
      ],
      "title": "The state of the job.",
      "type": "string",
      "x-ms-enum": {
        "modelAsString": false,
        "name": "JobState"
      }
    },
    "JobStatistics": {
      "properties": {
        "kernelCPUTime": {
          "format": "duration",
          "title": "The total kernel mode CPU time (summed across all cores and all compute nodes) consumed by all tasks in the job.",
          "type": "string"
        },
        "lastUpdateTime": {
          "format": "date-time",
          "title": "The time at which the statistics were last updated. All statistics are limited to the range between startTime and lastUpdateTime.",
          "type": "string"
        },
        "numFailedTasks": {
          "description": "A task fails if it exhausts its maximum retry count without returning exit code 0.",
          "format": "int64",
          "title": "The total number of tasks in the job that failed during the given time range.",
          "type": "integer"
        },
        "numSucceededTasks": {
          "description": "A task completes successfully if it returns exit code 0.",
          "format": "int64",
          "title": "The total number of tasks successfully completed in the job during the given time range.",
          "type": "integer"
        },
        "numTaskRetries": {
          "format": "int64",
          "title": "The total number of retries on all the tasks in the job during the given time range.",
          "type": "integer"
        },
        "readIOGiB": {
          "format": "double",
          "title": "The total amount of data in GiB read from disk by all tasks in the job.",
          "type": "number"
        },
        "readIOps": {
          "format": "int64",
          "title": "The total number of disk read operations made by all tasks in the job.",
          "type": "integer"
        },
        "startTime": {
          "format": "date-time",
          "title": "The start time of the time range covered by the statistics.",
          "type": "string"
        },
        "url": {
          "title": "The URL of the statistics.",
          "type": "string"
        },
        "userCPUTime": {
          "format": "duration",
          "title": "The total user mode CPU time (summed across all cores and all compute nodes) consumed by all tasks in the job.",
          "type": "string"
        },
        "waitTime": {
          "description": "The wait time for a task is defined as the elapsed time between the creation of the task and the start of task execution. (If the task is retried due to failures, the wait time is the time to the most recent task execution.) This value is only reported in the account lifetime statistics; it is not included in the job statistics.",
          "format": "duration",
          "title": "The total wait time of all tasks in the job.",
          "type": "string"
        },
        "wallClockTime": {
          "description": " The wall clock time is the elapsed time from when the task started running on a compute node to when it finished (or to the last time the statistics were updated, if the task had not finished by then). If a task was retried, this includes the wall clock time of all the task retries.",
          "format": "duration",
          "title": "The total wall clock time of all tasks in the job.",
          "type": "string"
        },
        "writeIOGiB": {
          "format": "double",
          "title": "The total amount of data in GiB written to disk by all tasks in the job.",
          "type": "number"
        },
        "writeIOps": {
          "format": "int64",
          "title": "The total number of disk write operations made by all tasks in the job.",
          "type": "integer"
        }
      },
      "required": [
        "url",
        "startTime",
        "lastUpdateTime",
        "userCPUTime",
        "kernelCPUTime",
        "wallClockTime",
        "readIOps",
        "writeIOps",
        "readIOGiB",
        "writeIOGiB",
        "numSucceededTasks",
        "numFailedTasks",
        "numTaskRetries",
        "waitTime"
      ],
      "title": "Resource usage statistics for a job."
    },
    "JobTerminateParameter": {
      "properties": {
        "terminateReason": {
          "title": "The text you want to appear as the job's TerminateReason. The default is 'UserTerminate'.",
          "type": "string"
        }
      },
      "title": "Options when terminating a job."
    },
    "JobUpdateParameter": {
      "properties": {
        "constraints": {
          "$ref": "#/definitions/JobConstraints",
          "description": "If omitted, the constraints are cleared.",
          "title": "The execution constraints for the job."
        },
        "metadata": {
          "description": "If omitted, it takes the default value of an empty list; in effect, any existing metadata is deleted.",
          "items": {
            "$ref": "#/definitions/MetadataItem"
          },
          "title": "A list of name-value pairs associated with the job as metadata.",
          "type": "array"
        },
        "onAllTasksComplete": {
          "$ref": "#/definitions/OnAllTasksComplete",
          "description": "If omitted, the completion behavior is set to noAction. If the current value is terminateJob, this is an error because a job's completion behavior may not be changed from terminateJob to noAction. You may not change the value from terminatejob to noaction - that is, once you have engaged automatic job termination, you cannot turn it off again. If you try to do this, the request fails and Batch returns status code 400 (Bad Request) and an 'invalid property value' error response. If you do not specify this element in a PUT request, it is equivalent to passing noaction. This is an error if the current value is terminatejob.",
          "title": "The action the Batch service should take when all tasks in the job are in the completed state."
        },
        "poolInfo": {
          "$ref": "#/definitions/PoolInformation",
          "description": "You may change the pool for a job only when the job is disabled. The Update Job call will fail if you include the poolInfo element and the job is not disabled. If you specify an autoPoolSpecification specification in the poolInfo, only the keepAlive property can be updated, and then only if the auto pool has a poolLifetimeOption of job.",
          "title": "The pool on which the Batch service runs the job's tasks."
        },
        "priority": {
          "description": "Priority values can range from -1000 to 1000, with -1000 being the lowest priority and 1000 being the highest priority. If omitted, it is set to the default value 0.",
          "format": "int32",
          "title": "The priority of the job.",
          "type": "integer"
        }
      },
      "required": [
        "poolInfo"
      ],
      "title": "The set of changes to be made to a job."
    },
    "LinuxUserConfiguration": {
      "properties": {
        "gid": {
          "description": "The uid and gid properties must be specified together or not at all. If not specified the underlying operating system picks the gid.",
          "format": "int32",
          "title": "The group ID for the user account.",
          "type": "integer"
        },
        "sshPrivateKey": {
          "description": "The private key must not be password protected. The private key is used to automatically configure asymmetric-key based authentication for SSH between nodes in a Linux pool when the pool's enableInterNodeCommunication property is true (it is ignored if enableInterNodeCommunication is false). It does this by placing the key pair into the user's .ssh directory. If not specified, password-less SSH is not configured between nodes (no modification of the user's .ssh directory is done).",
          "title": "The SSH private key for the user account.",
          "type": "string"
        },
        "uid": {
          "description": "The uid and gid properties must be specified together or not at all. If not specified the underlying operating system picks the uid.",
          "format": "int32",
          "title": "The user ID of the user account.",
          "type": "integer"
        }
      },
      "title": "Properties used to create a user account on a Linux node."
    },
    "MetadataItem": {
      "description": "The Batch service does not assign any meaning to this metadata; it is solely for the use of user code.",
      "properties": {
        "name": {
          "title": "The name of the metadata item.",
          "type": "string"
        },
        "value": {
          "title": "The value of the metadata item.",
          "type": "string"
        }
      },
      "required": [
        "name",
        "value"
      ],
      "title": "A name-value pair associated with a Batch service resource."
    },
    "MultiInstanceSettings": {
      "description": "Multi-instance tasks are commonly used to support MPI tasks.",
      "properties": {
        "commonResourceFiles": {
          "description": "The difference between common resource files and task resource files is that common resource files are downloaded for all subtasks including the primary, whereas task resource files are downloaded only for the primary. Also note that these resource files are not downloaded to the task working directory, but instead are downloaded to the task root directory (one directory above the working directory).",
          "items": {
            "$ref": "#/definitions/ResourceFile"
          },
          "title": "A list of files that the Batch service will download before running the coordination command line.",
          "type": "array"
        },
        "coordinationCommandLine": {
          "description": "A typical coordination command line launches a background service and verifies that the service is ready to process inter-node messages.",
          "title": "The command line to run on all the compute nodes to enable them to coordinate when the primary runs the main task command.",
          "type": "string"
        },
        "numberOfInstances": {
          "format": "int32",
          "title": "The number of compute nodes required by the task.",
          "type": "integer"
        }
      },
      "required": [
        "numberOfInstances"
      ],
      "title": "Settings which specify how to run a multi-instance task."
    },
    "NameValuePair": {
      "properties": {
        "name": {
          "title": "The name in the name-value pair.",
          "type": "string"
        },
        "value": {
          "title": "The value in the name-value pair.",
          "type": "string"
        }
      },
      "title": "Represents a name-value pair."
    },
    "NetworkConfiguration": {
      "description": "The network configuration for a pool.",
      "properties": {
        "endpointConfiguration": {
          "$ref": "#/definitions/PoolEndpointConfiguration",
          "description": "Pool endpoint configuration is only supported on pools with the virtualMachineConfiguration property.",
          "title": "The configuration for endpoints on compute nodes in the Batch pool."
        },
        "subnetId": {
          "description": "The virtual network must be in the same region and subscription as the Azure Batch account. The specified subnet should have enough free IP addresses to accommodate the number of nodes in the pool. If the subnet doesn't have enough free IP addresses, the pool will partially allocate compute nodes, and a resize error will occur. The 'MicrosoftAzureBatch' service principal must have the 'Classic Virtual Machine Contributor' Role-Based Access Control (RBAC) role for the specified VNet. The specified subnet must allow communication from the Azure Batch service to be able to schedule tasks on the compute nodes. This can be verified by checking if the specified VNet has any associated Network Security Groups (NSG). If communication to the compute nodes in the specified subnet is denied by an NSG, then the Batch service will set the state of the compute nodes to unusable. For pools created via virtualMachineConfiguration the Batch account must have poolAllocationMode userSubscription in order to use a VNet. If the specified VNet has any associated Network Security Groups (NSG), then a few reserved system ports must be enabled for inbound communication. For pools created with a virtual machine configuration, enable ports 29876 and 29877, as well as port 22 for Linux and port 3389 for Windows. For pools created with a cloud service configuration, enable ports 10100, 20100, and 30100. Also enable outbound connections to Azure Storage on port 443. For more details see: https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration",
          "externalDocs": {
            "description": "Setting up RBAC for Azure Batch VNETs",
            "url": "https://azure.microsoft.com/en-us/documentation/articles/role-based-access-built-in-roles/#classic-virtual-machine-contributor"
          },
          "title": "The ARM resource identifier of the virtual network subnet which the compute nodes of the pool will join. This is of the form /subscriptions/{subscription}/resourceGroups/{group}/providers/{provider}/virtualNetworks/{network}/subnets/{subnet}.",
          "type": "string"
        }
      }
    },
    "NetworkSecurityGroupRule": {
      "properties": {
        "access": {
          "enum": [
            "allow",
            "deny"
          ],
          "title": "The action that should be taken for a specified IP address, subnet range or tag.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "NetworkSecurityGroupRuleAccess"
          }
        },
        "priority": {
          "description": "Priorities within a pool must be unique and are evaluated in order of priority. The lower the number the higher the priority. For example, rules could be specified with order numbers of 150, 250, and 350. The rule with the order number of 150 takes precedence over the rule that has an order of 250. Allowed priorities are 150 to 3500. If any reserved or duplicate values are provided the request fails with HTTP status code 400.",
          "format": "int32",
          "title": "The priority for this rule.",
          "type": "integer"
        },
        "sourceAddressPrefix": {
          "description": "Valid values are a single IP address (i.e. 10.10.10.10), IP subnet (i.e. 192.168.1.0/24), default tag, or * (for all addresses).  If any other values are provided the request fails with HTTP status code 400.",
          "title": "The source address prefix or tag to match for the rule.",
          "type": "string"
        }
      },
      "required": [
        "priority",
        "access",
        "sourceAddressPrefix"
      ],
      "title": "A network security group rule to apply to an inbound endpoint."
    },
    "NodeAgentSku": {
      "description": "The Batch node agent is a program that runs on each node in the pool, and provides the command-and-control interface between the node and the Batch service. There are different implementations of the node agent, known as SKUs, for different operating systems.",
      "properties": {
        "id": {
          "title": "The ID of the node agent SKU.",
          "type": "string"
        },
        "osType": {
          "enum": [
            "linux",
            "windows"
          ],
          "title": "The type of operating system (e.g. Windows or Linux) compatible with the node agent SKU.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "OSType"
          }
        },
        "verifiedImageReferences": {
          "description": "This collection is not exhaustive (the node agent may be compatible with other images).",
          "items": {
            "$ref": "#/definitions/ImageReference"
          },
          "title": "The list of images verified to be compatible with this node agent SKU.",
          "type": "array"
        }
      },
      "title": "A node agent SKU supported by the Batch service."
    },
    "NodeDisableSchedulingParameter": {
      "properties": {
        "nodeDisableSchedulingOption": {
          "description": "Values are:\n\n requeue - Terminate running task processes and requeue the tasks. The tasks may run again on other compute nodes, or when task scheduling is re-enabled on this node. Enter offline state as soon as tasks have been terminated.\n terminate - Terminate running tasks. The tasks will not run again. Enter offline state as soon as tasks have been terminated.\n taskcompletion - Allow currently running tasks to complete. Schedule no new tasks while waiting. Enter offline state when all tasks have completed.\n\n The default value is requeue.",
          "enum": [
            "requeue",
            "terminate",
            "taskCompletion"
          ],
          "title": "What to do with currently running tasks when disabling task scheduling on the compute node.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "DisableComputeNodeSchedulingOption"
          }
        }
      },
      "title": "Options for disabling scheduling on a compute node."
    },
    "NodeFile": {
      "properties": {
        "isDirectory": {
          "title": "Whether the object represents a directory.",
          "type": "boolean"
        },
        "name": {
          "title": "The file path.",
          "type": "string"
        },
        "properties": {
          "$ref": "#/definitions/FileProperties",
          "title": "The file properties."
        },
        "url": {
          "title": "The URL of the file.",
          "type": "string"
        }
      },
      "title": "Information about a file or directory on a compute node."
    },
    "NodeFileListResult": {
      "properties": {
        "odata.nextLink": {
          "title": "The URL to get the next set of results.",
          "type": "string"
        },
        "value": {
          "items": {
            "$ref": "#/definitions/NodeFile"
          },
          "title": "The list of files.",
          "type": "array"
        }
      },
      "title": "The result of listing the files on a compute node, or the files associated with a task on a node."
    },
    "NodeRebootParameter": {
      "properties": {
        "nodeRebootOption": {
          "description": "Values are:\n\n requeue - Terminate running task processes and requeue the tasks. The tasks will run again when a node is available. Restart the node as soon as tasks have been terminated.\n terminate - Terminate running tasks. The tasks will not run again. Restart the node as soon as tasks have been terminated.\n taskcompletion - Allow currently running tasks to complete. Schedule no new tasks while waiting. Restart the node when all tasks have completed.\n retaineddata - Allow currently running tasks to complete, then wait for all task data retention periods to expire. Schedule no new tasks while waiting. Restart the node when all task retention periods have expired.\n\n The default value is requeue.",
          "enum": [
            "requeue",
            "terminate",
            "taskCompletion",
            "retainedData"
          ],
          "title": "When to reboot the compute node and what to do with currently running tasks.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "ComputeNodeRebootOption"
          }
        }
      },
      "title": "Options for rebooting a compute node."
    },
    "NodeReimageParameter": {
      "properties": {
        "nodeReimageOption": {
          "description": "Values are:\n\n requeue - Terminate running task processes and requeue the tasks. The tasks will run again when a node is available. Reimage the node as soon as tasks have been terminated.\n terminate - Terminate running tasks. The tasks will not run again. Reimage the node as soon as tasks have been terminated.\n taskcompletion - Allow currently running tasks to complete. Schedule no new tasks while waiting. Reimage the node when all tasks have completed.\n retaineddata - Allow currently running tasks to complete, then wait for all task data retention periods to expire. Schedule no new tasks while waiting. Reimage the node when all task retention periods have expired.\n\n The default value is requeue.",
          "enum": [
            "requeue",
            "terminate",
            "taskCompletion",
            "retainedData"
          ],
          "title": "When to reimage the compute node and what to do with currently running tasks.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "ComputeNodeReimageOption"
          }
        }
      },
      "title": "Options for reimaging a compute node."
    },
    "NodeRemoveParameter": {
      "properties": {
        "nodeDeallocationOption": {
          "$ref": "#/definitions/ComputeNodeDeallocationOption",
          "description": "The default value is requeue.",
          "title": "Determines what to do with a node and its running task(s) after it has been selected for deallocation."
        },
        "nodeList": {
          "items": {
            "type": "string"
          },
          "maxItems": 100,
          "title": "A list containing the IDs of the compute nodes to be removed from the specified pool.",
          "type": "array"
        },
        "resizeTimeout": {
          "description": "The default value is 15 minutes. The minimum value is 5 minutes. If you specify a value less than 5 minutes, the Batch service returns an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request).",
          "format": "duration",
          "title": "The timeout for removal of compute nodes to the pool.",
          "type": "string"
        }
      },
      "required": [
        "nodeList"
      ],
      "title": "Options for removing compute nodes from a pool."
    },
    "NodeUpdateUserParameter": {
      "properties": {
        "expiryTime": {
          "description": "If omitted, the default is 1 day from the current time. For Linux compute nodes, the expiryTime has a precision up to a day.",
          "format": "date-time",
          "title": "The time at which the account should expire.",
          "type": "string"
        },
        "password": {
          "description": "The password is required for Windows nodes (those created with 'cloudServiceConfiguration', or created with 'virtualMachineConfiguration' using a Windows image reference). For Linux compute nodes, the password can optionally be specified along with the sshPublicKey property. If omitted, any existing password is removed.",
          "title": "The password of the account.",
          "type": "string"
        },
        "sshPublicKey": {
          "description": "The public key should be compatible with OpenSSH encoding and should be base 64 encoded. This property can be specified only for Linux nodes. If this is specified for a Windows node, then the Batch service rejects the request; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request). If omitted, any existing SSH public key is removed.",
          "title": "The SSH public key that can be used for remote login to the compute node.",
          "type": "string"
        }
      },
      "title": "The set of changes to be made to a user account on a node."
    },
    "OSDisk": {
      "properties": {
        "caching": {
          "description": "Values are:\n\n none - The caching mode for the disk is not enabled.\n readOnly - The caching mode for the disk is read only.\n readWrite - The caching mode for the disk is read and write.\n\n The default value for caching is none. For information about the caching options see: https://blogs.msdn.microsoft.com/windowsazurestorage/2012/06/27/exploring-windows-azure-drives-disks-and-images/.",
          "enum": [
            "none",
            "readOnly",
            "readWrite"
          ],
          "title": "The type of caching to enable for the OS disk.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "CachingType"
          }
        },
        "imageUris": {
          "description": "All the VHDs must be identical and must reside in an Azure Storage account within the same subscription and same region as the Batch account. For best performance, it is recommended that each VHD resides in a separate Azure Storage account. Each VHD can serve up to 20 Windows compute nodes or 40 Linux compute nodes. You must supply enough VHD URIs to satisfy the 'targetDedicated' property of the pool. If you do not supply enough VHD URIs, the pool will partially allocate compute nodes, and a resize error will occur.",
          "items": {
            "type": "string"
          },
          "title": "The collection of Virtual Hard Disk (VHD) URIs.",
          "type": "array"
        }
      },
      "required": [
        "imageUris"
      ],
      "title": "A reference to an OS disk image."
    },
    "OnAllTasksComplete": {
      "description": "Values are:\n\n noAction - do nothing. The job remains active unless terminated or disabled by some other means.\n terminateJob - terminate the job. The job's terminateReason is set to 'AllTasksComplete'.",
      "enum": [
        "noAction",
        "terminateJob"
      ],
      "title": "The action the Batch service should take when all tasks in the job are in the completed state.",
      "type": "string",
      "x-ms-enum": {
        "modelAsString": false,
        "name": "OnAllTasksComplete"
      }
    },
    "OnTaskFailure": {
      "description": "A task is considered to have failed if has a failureInfo. A failureInfo is set if the task completes with a non-zero exit code after exhausting its retry count, or if there was an error starting the task, for example due to a resource file download error. Values are:\n\n noAction - do nothing.\n performExitOptionsJobAction - take the action associated with the task exit condition in the task's exitConditions collection. (This may still result in no action being taken, if that is what the task specifies.)\n\n The default is noAction.",
      "enum": [
        "noAction",
        "performExitOptionsJobAction"
      ],
      "title": "The action the Batch service should take when any task in the job fails.",
      "type": "string",
      "x-ms-enum": {
        "modelAsString": false,
        "name": "OnTaskFailure"
      }
    },
    "OutputFile": {
      "properties": {
        "destination": {
          "$ref": "#/definitions/OutputFileDestination",
          "title": "The destination for the output file(s)."
        },
        "filePattern": {
          "description": "Both relative and absolute paths are supported. Relative paths are relative to the task working directory. The following wildcards are supported: * matches 0 or more characters (for example pattern abc* would match abc or abcdef), ** matches any directory, ? matches any single character, [abc] matches one character in the brackets, and [a-c] matches one character in the range. Brackets can include a negation to match any character not specified (for example [!abc] matches any character but a, b, or c). If a file name starts with \".\" it is ignored by default but may be matched by specifying it explicitly (for example *.gif will not match .a.gif, but .*.gif will). A simple example: **\\*.txt matches any file that does not start in '.' and ends with .txt in the task working directory or any subdirectory. If the filename contains a wildcard character it can be escaped using brackets (for example abc[*] would match a file named abc*). Note that both \\ and / are treated as directory separators on Windows, but only / is on Linux. Environment variables (%var% on Windows or $var on Linux) are expanded prior to the pattern being applied.",
          "title": "A pattern indicating which file(s) to upload.",
          "type": "string"
        },
        "uploadOptions": {
          "$ref": "#/definitions/OutputFileUploadOptions",
          "title": "Additional options for the upload operation, including under what conditions to perform the upload."
        }
      },
      "required": [
        "filePattern",
        "destination",
        "uploadOptions"
      ],
      "title": "A specification for uploading files from an Azure Batch node to another location after the Batch service has finished executing the task process."
    },
    "OutputFileBlobContainerDestination": {
      "properties": {
        "containerUrl": {
          "description": "The URL must include a Shared Access Signature (SAS) granting write permissions to the container.",
          "title": "The URL of the container within Azure Blob Storage to which to upload the file(s).",
          "type": "string"
        },
        "path": {
          "description": "If filePattern refers to a specific file (i.e. contains no wildcards), then path is the name of the blob to which to upload that file. If filePattern contains one or more wildcards (and therefore may match multiple files), then path is the name of the blob virtual directory (which is prepended to each blob name) to which to upload the file(s). If omitted, file(s) are uploaded to the root of the container with a blob name matching their file name.",
          "title": "The destination blob or virtual directory within the Azure Storage container.",
          "type": "string"
        }
      },
      "required": [
        "containerUrl"
      ],
      "title": "Specifies a file upload destination within an Azure blob storage container."
    },
    "OutputFileDestination": {
      "properties": {
        "container": {
          "$ref": "#/definitions/OutputFileBlobContainerDestination",
          "title": "A location in Azure blob storage to which files are uploaded."
        }
      },
      "title": "The destination to which a file should be uploaded."
    },
    "OutputFileUploadCondition": {
      "description": "Values are:\n\n taskSuccess - Upload the file(s) only after the task process exits with an exit code of 0.\n taskFailure - Upload the file(s) only after the task process exits with a nonzero exit code.\n taskCompletion - Upload the file(s) after the task process exits, no matter what the exit code was.",
      "enum": [
        "taskSuccess",
        "taskFailure",
        "taskCompletion"
      ],
      "title": "The conditions under which a task output file or set of files should be uploaded.",
      "type": "string",
      "x-ms-enum": {
        "modelAsString": false,
        "name": "OutputFileUploadCondition"
      }
    },
    "OutputFileUploadOptions": {
      "properties": {
        "uploadCondition": {
          "$ref": "#/definitions/OutputFileUploadCondition",
          "description": "The default is taskCompletion.",
          "title": "The conditions under which the task output file or set of files should be uploaded."
        }
      },
      "required": [
        "uploadCondition"
      ],
      "title": "Details about an output file upload operation, including under what conditions to perform the upload."
    },
    "PoolAddParameter": {
      "properties": {
        "applicationLicenses": {
          "description": "The list of application licenses must be a subset of available Batch service application licenses. If a license is requested which is not supported, pool creation will fail.",
          "items": {
            "type": "string"
          },
          "title": "The list of application licenses the Batch service will make available on each compute node in the pool.",
          "type": "array"
        },
        "applicationPackageReferences": {
          "items": {
            "$ref": "#/definitions/ApplicationPackageReference"
          },
          "title": "The list of application packages to be installed on each compute node in the pool.",
          "type": "array"
        },
        "autoScaleEvaluationInterval": {
          "description": "The default value is 15 minutes. The minimum and maximum value are 5 minutes and 168 hours respectively. If you specify a value less than 5 minutes or greater than 168 hours, the Batch service returns an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request).",
          "format": "duration",
          "title": "The time interval at which to automatically adjust the pool size according to the autoscale formula.",
          "type": "string"
        },
        "autoScaleFormula": {
          "description": "This property must not be specified if enableAutoScale is set to false. It is required if enableAutoScale is set to true. The formula is checked for validity before the pool is created. If the formula is not valid, the Batch service rejects the request with detailed error information. For more information about specifying this formula, see 'Automatically scale compute nodes in an Azure Batch pool' (https://azure.microsoft.com/documentation/articles/batch-automatic-scaling/).",
          "title": "A formula for the desired number of compute nodes in the pool.",
          "type": "string"
        },
        "certificateReferences": {
          "description": "For Windows compute nodes, the Batch service installs the certificates to the specified certificate store and location. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory.",
          "items": {
            "$ref": "#/definitions/CertificateReference"
          },
          "title": "The list of certificates to be installed on each compute node in the pool.",
          "type": "array"
        },
        "cloudServiceConfiguration": {
          "$ref": "#/definitions/CloudServiceConfiguration",
          "description": "This property and virtualMachineConfiguration are mutually exclusive and one of the properties must be specified. This property cannot be specified if the Batch account was created with its poolAllocationMode property set to 'UserSubscription'.",
          "title": "The cloud service configuration for the pool."
        },
        "displayName": {
          "description": "The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024.",
          "title": "The display name for the pool.",
          "type": "string"
        },
        "enableAutoScale": {
          "description": "If false, at least one of targetDedicateNodes and targetLowPriorityNodes must be specified. If true, the autoScaleFormula property is required and the pool automatically resizes according to the formula. The default value is false.",
          "title": "Whether the pool size should automatically adjust over time.",
          "type": "boolean"
        },
        "enableInterNodeCommunication": {
          "description": "Enabling inter-node communication limits the maximum size of the pool due to deployment restrictions on the nodes of the pool. This may result in the pool not reaching its desired size. The default value is false.",
          "title": "Whether the pool permits direct communication between nodes.",
          "type": "boolean"
        },
        "id": {
          "description": "The ID can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters. The ID is case-preserving and case-insensitive (that is, you may not have two pool IDs within an account that differ only by case).",
          "title": "A string that uniquely identifies the pool within the account.",
          "type": "string"
        },
        "maxTasksPerNode": {
          "description": "The default value is 1. The maximum value of this setting depends on the size of the compute nodes in the pool (the vmSize setting).",
          "format": "int32",
          "title": "The maximum number of tasks that can run concurrently on a single compute node in the pool.",
          "type": "integer"
        },
        "metadata": {
          "description": "The Batch service does not assign any meaning to metadata; it is solely for the use of user code.",
          "items": {
            "$ref": "#/definitions/MetadataItem"
          },
          "title": "A list of name-value pairs associated with the pool as metadata.",
          "type": "array"
        },
        "networkConfiguration": {
          "$ref": "#/definitions/NetworkConfiguration",
          "title": "The network configuration for the pool."
        },
        "resizeTimeout": {
          "description": "This timeout applies only to manual scaling; it has no effect when enableAutoScale is set to true. The default value is 15 minutes. The minimum value is 5 minutes. If you specify a value less than 5 minutes, the Batch service returns an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request).",
          "format": "duration",
          "title": "The timeout for allocation of compute nodes to the pool.",
          "type": "string"
        },
        "startTask": {
          "$ref": "#/definitions/StartTask",
          "description": "The task runs when the node is added to the pool or when the node is restarted.",
          "title": "A task specified to run on each compute node as it joins the pool."
        },
        "targetDedicatedNodes": {
          "description": "This property must not be specified if enableAutoScale is set to true. If enableAutoScale is set to false, then you must set either targetDedicatedNodes, targetLowPriorityNodes, or both.",
          "format": "int32",
          "title": "The desired number of dedicated compute nodes in the pool.",
          "type": "integer"
        },
        "targetLowPriorityNodes": {
          "description": "This property must not be specified if enableAutoScale is set to true. If enableAutoScale is set to false, then you must set either targetDedicatedNodes, targetLowPriorityNodes, or both.",
          "format": "int32",
          "title": "The desired number of low-priority compute nodes in the pool.",
          "type": "integer"
        },
        "taskSchedulingPolicy": {
          "$ref": "#/definitions/TaskSchedulingPolicy",
          "title": "How tasks are distributed across compute nodes in a pool."
        },
        "userAccounts": {
          "items": {
            "$ref": "#/definitions/UserAccount"
          },
          "title": "The list of user accounts to be created on each node in the pool.",
          "type": "array"
        },
        "virtualMachineConfiguration": {
          "$ref": "#/definitions/VirtualMachineConfiguration",
          "description": "This property and cloudServiceConfiguration are mutually exclusive and one of the properties must be specified.",
          "title": "The virtual machine configuration for the pool."
        },
        "vmSize": {
          "description": "For information about available sizes of virtual machines for Cloud Services pools (pools created with cloudServiceConfiguration), see Sizes for Cloud Services (http://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). Batch supports all Cloud Services VM sizes except ExtraSmall, A1V2 and A2V2. For information about available VM sizes for pools using images from the Virtual Machines Marketplace (pools created with virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) or Sizes for Virtual Machines (Windows) (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series).",
          "title": "The size of virtual machines in the pool. All virtual machines in a pool are the same size.",
          "type": "string"
        }
      },
      "required": [
        "id",
        "vmSize"
      ],
      "title": "A pool in the Azure Batch service to add."
    },
    "PoolEnableAutoScaleParameter": {
      "properties": {
        "autoScaleEvaluationInterval": {
          "description": "The default value is 15 minutes. The minimum and maximum value are 5 minutes and 168 hours respectively. If you specify a value less than 5 minutes or greater than 168 hours, the Batch service rejects the request with an invalid property value error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request). If you specify a new interval, then the existing autoscale evaluation schedule will be stopped and a new autoscale evaluation schedule will be started, with its starting time being the time when this request was issued.",
          "format": "duration",
          "title": "The time interval at which to automatically adjust the pool size according to the autoscale formula.",
          "type": "string"
        },
        "autoScaleFormula": {
          "description": "The formula is checked for validity before it is applied to the pool. If the formula is not valid, the Batch service rejects the request with detailed error information. For more information about specifying this formula, see Automatically scale compute nodes in an Azure Batch pool (https://azure.microsoft.com/en-us/documentation/articles/batch-automatic-scaling).",
          "title": "The formula for the desired number of compute nodes in the pool.",
          "type": "string"
        }
      },
      "title": "Options for enabling automatic scaling on a pool."
    },
    "PoolEndpointConfiguration": {
      "properties": {
        "inboundNATPools": {
          "description": "The maximum number of inbound NAT pools per Batch pool is 5. If the maximum number of inbound NAT pools is exceeded the request fails with HTTP status code 400.",
          "items": {
            "$ref": "#/definitions/InboundNATPool"
          },
          "title": "A list of inbound NAT pools that can be used to address specific ports on an individual compute node externally.",
          "type": "array"
        }
      },
      "required": [
        "inboundNATPools"
      ],
      "title": "The endpoint configuration for a pool."
    },
    "PoolEvaluateAutoScaleParameter": {
      "properties": {
        "autoScaleFormula": {
          "description": "The formula is validated and its results calculated, but it is not applied to the pool. To apply the formula to the pool, 'Enable automatic scaling on a pool'. For more information about specifying this formula, see Automatically scale compute nodes in an Azure Batch pool (https://azure.microsoft.com/en-us/documentation/articles/batch-automatic-scaling).",
          "title": "The formula for the desired number of compute nodes in the pool.",
          "type": "string"
        }
      },
      "required": [
        "autoScaleFormula"
      ],
      "title": "Options for evaluating an automatic scaling formula on a pool."
    },
    "PoolInformation": {
      "properties": {
        "autoPoolSpecification": {
          "$ref": "#/definitions/AutoPoolSpecification",
          "description": "If auto pool creation fails, the Batch service moves the job to a completed state, and the pool creation error is set in the job's scheduling error property. The Batch service manages the lifetime (both creation and, unless keepAlive is specified, deletion) of the auto pool. Any user actions that affect the lifetime of the auto pool while the job is active will result in unexpected behavior. You must specify either the pool ID or the auto pool specification, but not both.",
          "title": "Characteristics for a temporary 'auto pool'. The Batch service will create this auto pool when the job is submitted."
        },
        "poolId": {
          "description": "You must ensure that the pool referenced by this property exists. If the pool does not exist at the time the Batch service tries to schedule a job, no tasks for the job will run until you create a pool with that id. Note that the Batch service will not reject the job request; it will simply not run tasks until the pool exists. You must specify either the pool ID or the auto pool specification, but not both.",
          "title": "The ID of an existing pool. All the tasks of the job will run on the specified pool.",
          "type": "string"
        }
      },
      "title": "Specifies how a job should be assigned to a pool."
    },
    "PoolListUsageMetricsResult": {
      "properties": {
        "odata.nextLink": {
          "title": "The URL to get the next set of results.",
          "type": "string"
        },
        "value": {
          "items": {
            "$ref": "#/definitions/PoolUsageMetrics"
          },
          "title": "The pool usage metrics data.",
          "type": "array"
        }
      },
      "title": "The result of a listing the usage metrics for an account."
    },
    "PoolPatchParameter": {
      "properties": {
        "applicationPackageReferences": {
          "description": "Changes to application package references affect all new compute nodes joining the pool, but do not affect compute nodes that are already in the pool until they are rebooted or reimaged. If this element is present, it replaces any existing application package references. If you specify an empty collection, then all application package references are removed from the pool. If omitted, any existing application package references are left unchanged.",
          "items": {
            "$ref": "#/definitions/ApplicationPackageReference"
          },
          "title": "A list of application packages to be installed on each compute node in the pool.",
          "type": "array"
        },
        "certificateReferences": {
          "description": "If this element is present, it replaces any existing certificate references configured on the pool. If omitted, any existing certificate references are left unchanged. For Windows compute nodes, the Batch service installs the certificates to the specified certificate store and location. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory.",
          "items": {
            "$ref": "#/definitions/CertificateReference"
          },
          "title": "A list of certificates to be installed on each compute node in the pool.",
          "type": "array"
        },
        "metadata": {
          "description": "If this element is present, it replaces any existing metadata configured on the pool. If you specify an empty collection, any metadata is removed from the pool. If omitted, any existing metadata is left unchanged.",
          "items": {
            "$ref": "#/definitions/MetadataItem"
          },
          "title": "A list of name-value pairs associated with the pool as metadata.",
          "type": "array"
        },
        "startTask": {
          "$ref": "#/definitions/StartTask",
          "description": "If this element is present, it overwrites any existing start task. If omitted, any existing start task is left unchanged.",
          "title": "A task to run on each compute node as it joins the pool. The task runs when the node is added to the pool or when the node is restarted."
        }
      },
      "title": "The set of changes to be made to a pool."
    },
    "PoolResizeParameter": {
      "properties": {
        "nodeDeallocationOption": {
          "$ref": "#/definitions/ComputeNodeDeallocationOption",
          "description": "The default value is requeue.",
          "title": "Determines what to do with a node and its running task(s) if the pool size is decreasing."
        },
        "resizeTimeout": {
          "description": "The default value is 15 minutes. The minimum value is 5 minutes. If you specify a value less than 5 minutes, the Batch service returns an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request).",
          "format": "duration",
          "title": "The timeout for allocation of compute nodes to the pool or removal of compute nodes from the pool.",
          "type": "string"
        },
        "targetDedicatedNodes": {
          "format": "int32",
          "title": "The desired number of dedicated compute nodes in the pool.",
          "type": "integer"
        },
        "targetLowPriorityNodes": {
          "format": "int32",
          "title": "The desired number of low-priority compute nodes in the pool.",
          "type": "integer"
        }
      },
      "title": "Options for changing the size of a pool."
    },
    "PoolSpecification": {
      "properties": {
        "applicationLicenses": {
          "description": "The list of application licenses must be a subset of available Batch service application licenses. If a license is requested which is not supported, pool creation will fail.",
          "items": {
            "type": "string"
          },
          "title": "The list of application licenses the Batch service will make available on each compute node in the pool.",
          "type": "array"
        },
        "applicationPackageReferences": {
          "items": {
            "$ref": "#/definitions/ApplicationPackageReference"
          },
          "title": "The list of application packages to be installed on each compute node in the pool.",
          "type": "array"
        },
        "autoScaleEvaluationInterval": {
          "description": "The default value is 15 minutes. The minimum and maximum value are 5 minutes and 168 hours respectively. If you specify a value less than 5 minutes or greater than 168 hours, the Batch service rejects the request with an invalid property value error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request).",
          "format": "duration",
          "title": "The time interval at which to automatically adjust the pool size according to the autoscale formula.",
          "type": "string"
        },
        "autoScaleFormula": {
          "description": "This property must not be specified if enableAutoScale is set to false. It is required if enableAutoScale is set to true. The formula is checked for validity before the pool is created. If the formula is not valid, the Batch service rejects the request with detailed error information.",
          "title": "The formula for the desired number of compute nodes in the pool.",
          "type": "string"
        },
        "certificateReferences": {
          "description": "For Windows compute nodes, the Batch service installs the certificates to the specified certificate store and location. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory.",
          "items": {
            "$ref": "#/definitions/CertificateReference"
          },
          "title": "A list of certificates to be installed on each compute node in the pool.",
          "type": "array"
        },
        "cloudServiceConfiguration": {
          "$ref": "#/definitions/CloudServiceConfiguration",
          "description": "This property must be specified if the pool needs to be created with Azure PaaS VMs. This property and virtualMachineConfiguration are mutually exclusive and one of the properties must be specified. If neither is specified then the Batch service returns an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request). This property cannot be specified if the Batch account was created with its poolAllocationMode property set to 'UserSubscription'.",
          "title": "The cloud service configuration for the pool."
        },
        "displayName": {
          "description": "The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024.",
          "title": "The display name for the pool.",
          "type": "string"
        },
        "enableAutoScale": {
          "description": "If false, at least one of targetDedicateNodes and targetLowPriorityNodes must be specified. If true, the autoScaleFormula element is required. The pool automatically resizes according to the formula. The default value is false.",
          "title": "Whether the pool size should automatically adjust over time.",
          "type": "boolean"
        },
        "enableInterNodeCommunication": {
          "description": "Enabling inter-node communication limits the maximum size of the pool due to deployment restrictions on the nodes of the pool. This may result in the pool not reaching its desired size. The default value is false.",
          "title": "Whether the pool permits direct communication between nodes.",
          "type": "boolean"
        },
        "maxTasksPerNode": {
          "description": "The default value is 1. The maximum value of this setting depends on the size of the compute nodes in the pool (the vmSize setting).",
          "format": "int32",
          "title": "The maximum number of tasks that can run concurrently on a single compute node in the pool.",
          "type": "integer"
        },
        "metadata": {
          "description": "The Batch service does not assign any meaning to metadata; it is solely for the use of user code.",
          "items": {
            "$ref": "#/definitions/MetadataItem"
          },
          "title": "A list of name-value pairs associated with the pool as metadata.",
          "type": "array"
        },
        "networkConfiguration": {
          "$ref": "#/definitions/NetworkConfiguration",
          "title": "The network configuration for the pool."
        },
        "resizeTimeout": {
          "description": "This timeout applies only to manual scaling; it has no effect when enableAutoScale is set to true. The default value is 15 minutes. The minimum value is 5 minutes. If you specify a value less than 5 minutes, the Batch service rejects the request with an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request).",
          "format": "duration",
          "title": "The timeout for allocation of compute nodes to the pool.",
          "type": "string"
        },
        "startTask": {
          "$ref": "#/definitions/StartTask",
          "title": "A task to run on each compute node as it joins the pool. The task runs when the node is added to the pool or when the node is restarted."
        },
        "targetDedicatedNodes": {
          "description": "This property must not be specified if enableAutoScale is set to true. If enableAutoScale is set to false, then you must set either targetDedicatedNodes, targetLowPriorityNodes, or both.",
          "format": "int32",
          "title": "The desired number of dedicated compute nodes in the pool.",
          "type": "integer"
        },
        "targetLowPriorityNodes": {
          "description": "This property must not be specified if enableAutoScale is set to true. If enableAutoScale is set to false, then you must set either targetDedicatedNodes, targetLowPriorityNodes, or both.",
          "format": "int32",
          "title": "The desired number of low-priority compute nodes in the pool.",
          "type": "integer"
        },
        "taskSchedulingPolicy": {
          "$ref": "#/definitions/TaskSchedulingPolicy",
          "title": "How tasks are distributed across compute nodes in a pool."
        },
        "userAccounts": {
          "items": {
            "$ref": "#/definitions/UserAccount"
          },
          "title": "The list of user accounts to be created on each node in the pool.",
          "type": "array"
        },
        "virtualMachineConfiguration": {
          "$ref": "#/definitions/VirtualMachineConfiguration",
          "description": "This property must be specified if the pool needs to be created with Azure IaaS VMs. This property and cloudServiceConfiguration are mutually exclusive and one of the properties must be specified. If neither is specified then the Batch service returns an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request).",
          "title": "The virtual machine configuration for the pool."
        },
        "vmSize": {
          "description": "For information about available sizes of virtual machines for Cloud Services pools (pools created with cloudServiceConfiguration), see Sizes for Cloud Services (http://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). Batch supports all Cloud Services VM sizes except ExtraSmall, A1V2 and A2V2. For information about available VM sizes for pools using images from the Virtual Machines Marketplace (pools created with virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) or Sizes for Virtual Machines (Windows) (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series).",
          "title": "The size of the virtual machines in the pool. All virtual machines in a pool are the same size.",
          "type": "string"
        }
      },
      "required": [
        "vmSize"
      ],
      "title": "Specification for creating a new pool."
    },
    "PoolStatistics": {
      "properties": {
        "lastUpdateTime": {
          "format": "date-time",
          "title": "The time at which the statistics were last updated. All statistics are limited to the range between startTime and lastUpdateTime.",
          "type": "string"
        },
        "resourceStats": {
          "$ref": "#/definitions/ResourceStatistics",
          "title": "Statistics related to resource consumption by compute nodes in the pool."
        },
        "startTime": {
          "format": "date-time",
          "title": "The start time of the time range covered by the statistics.",
          "type": "string"
        },
        "url": {
          "title": "The URL for the statistics.",
          "type": "string"
        },
        "usageStats": {
          "$ref": "#/definitions/UsageStatistics",
          "title": "Statistics related to pool usage, such as the amount of core-time used."
        }
      },
      "required": [
        "url",
        "startTime",
        "lastUpdateTime"
      ],
      "title": "Contains utilization and resource usage statistics for the lifetime of a pool."
    },
    "PoolUpdatePropertiesParameter": {
      "properties": {
        "applicationPackageReferences": {
          "description": "The list replaces any existing application package references on the pool. Changes to application package references affect all new compute nodes joining the pool, but do not affect compute nodes that are already in the pool until they are rebooted or reimaged. If omitted, or if you specify an empty collection, any existing application packages references are removed from the pool.",
          "items": {
            "$ref": "#/definitions/ApplicationPackageReference"
          },
          "title": "A list of application packages to be installed on each compute node in the pool.",
          "type": "array"
        },
        "certificateReferences": {
          "description": "This list replaces any existing certificate references configured on the pool. If you specify an empty collection, any existing certificate references are removed from the pool. For Windows compute nodes, the Batch service installs the certificates to the specified certificate store and location. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory.",
          "items": {
            "$ref": "#/definitions/CertificateReference"
          },
          "title": "A list of certificates to be installed on each compute node in the pool.",
          "type": "array"
        },
        "metadata": {
          "description": "This list replaces any existing metadata configured on the pool. If omitted, or if you specify an empty collection, any existing metadata is removed from the pool.",
          "items": {
            "$ref": "#/definitions/MetadataItem"
          },
          "title": "A list of name-value pairs associated with the pool as metadata.",
          "type": "array"
        },
        "startTask": {
          "$ref": "#/definitions/StartTask",
          "description": "If this element is present, it overwrites any existing start task. If omitted, any existing start task is removed from the pool.",
          "title": "A task to run on each compute node as it joins the pool. The task runs when the node is added to the pool or when the node is restarted."
        }
      },
      "required": [
        "certificateReferences",
        "metadata",
        "applicationPackageReferences"
      ],
      "title": "The set of changes to be made to a pool."
    },
    "PoolUpgradeOSParameter": {
      "properties": {
        "targetOSVersion": {
          "title": "The Azure Guest OS version to be installed on the virtual machines in the pool.",
          "type": "string"
        }
      },
      "required": [
        "targetOSVersion"
      ],
      "title": "Options for upgrading the operating system of compute nodes in a pool."
    },
    "PoolUsageMetrics": {
      "properties": {
        "dataEgressGiB": {
          "format": "double",
          "title": "The cross data center network egress from the pool during this interval, in GiB.",
          "type": "number"
        },
        "dataIngressGiB": {
          "format": "double",
          "title": "The cross data center network ingress to the pool during this interval, in GiB.",
          "type": "number"
        },
        "endTime": {
          "format": "date-time",
          "title": "The end time of the aggregation interval covered by this entry.",
          "type": "string"
        },
        "poolId": {
          "title": "The ID of the pool whose metrics are aggregated in this entry.",
          "type": "string"
        },
        "startTime": {
          "format": "date-time",
          "title": "The start time of the aggregation interval covered by this entry.",
          "type": "string"
        },
        "totalCoreHours": {
          "format": "double",
          "title": "The total core hours used in the pool during this aggregation interval.",
          "type": "number"
        },
        "vmSize": {
          "description": "For information about available sizes of virtual machines for Cloud Services pools (pools created with cloudServiceConfiguration), see Sizes for Cloud Services (http://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). Batch supports all Cloud Services VM sizes except ExtraSmall, STANDARD_A1_V2 and STANDARD_A2_V2. For information about available VM sizes for pools using images from the Virtual Machines Marketplace (pools created with virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) or Sizes for Virtual Machines (Windows) (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series).",
          "title": "The size of virtual machines in the pool. All VMs in a pool are the same size.",
          "type": "string"
        }
      },
      "required": [
        "poolId",
        "startTime",
        "endTime",
        "vmSize",
        "totalCoreHours",
        "dataIngressGiB",
        "dataEgressGiB"
      ],
      "title": "Usage metrics for a pool across an aggregation interval."
    },
    "RecentJob": {
      "properties": {
        "id": {
          "title": "The ID of the job.",
          "type": "string"
        },
        "url": {
          "title": "The URL of the job.",
          "type": "string"
        }
      },
      "title": "Information about the most recent job to run under the job schedule."
    },
    "ResizeError": {
      "properties": {
        "code": {
          "title": "An identifier for the pool resize error. Codes are invariant and are intended to be consumed programmatically.",
          "type": "string"
        },
        "message": {
          "title": "A message describing the pool resize error, intended to be suitable for display in a user interface.",
          "type": "string"
        },
        "values": {
          "items": {
            "$ref": "#/definitions/NameValuePair"
          },
          "title": "A list of additional error details related to the pool resize error.",
          "type": "array"
        }
      },
      "title": "An error that occurred when resizing a pool."
    },
    "ResourceFile": {
      "properties": {
        "blobSource": {
          "description": "This URL must be readable using anonymous access; that is, the Batch service does not present any credentials when downloading the blob. There are two ways to get such a URL for a blob in Azure storage: include a Shared Access Signature (SAS) granting read permissions on the blob, or set the ACL for the blob or its container to allow public access.",
          "title": "The URL of the file within Azure Blob Storage.",
          "type": "string"
        },
        "fileMode": {
          "description": "This property applies only to files being downloaded to Linux compute nodes. It will be ignored if it is specified for a resourceFile which will be downloaded to a Windows node. If this property is not specified for a Linux node, then a default value of 0770 is applied to the file.",
          "title": "The file permission mode attribute in octal format.",
          "type": "string"
        },
        "filePath": {
          "title": "The location on the compute node to which to download the file, relative to the task's working directory.",
          "type": "string"
        }
      },
      "required": [
        "blobSource",
        "filePath"
      ],
      "title": "A file to be downloaded from Azure blob storage to a compute node."
    },
    "ResourceStatistics": {
      "properties": {
        "avgCPUPercentage": {
          "format": "double",
          "title": "The average CPU usage across all nodes in the pool (percentage per node).",
          "type": "number"
        },
        "avgDiskGiB": {
          "format": "double",
          "title": "The average used disk space in GiB across all nodes in the pool.",
          "type": "number"
        },
        "avgMemoryGiB": {
          "format": "double",
          "title": "The average memory usage in GiB across all nodes in the pool.",
          "type": "number"
        },
        "diskReadGiB": {
          "format": "double",
          "title": "The total amount of data in GiB of disk reads across all nodes in the pool.",
          "type": "number"
        },
        "diskReadIOps": {
          "format": "int64",
          "title": "The total number of disk read operations across all nodes in the pool.",
          "type": "integer"
        },
        "diskWriteGiB": {
          "format": "double",
          "title": "The total amount of data in GiB of disk writes across all nodes in the pool.",
          "type": "number"
        },
        "diskWriteIOps": {
          "format": "int64",
          "title": "The total number of disk write operations across all nodes in the pool.",
          "type": "integer"
        },
        "lastUpdateTime": {
          "format": "date-time",
          "title": "The time at which the statistics were last updated. All statistics are limited to the range between startTime and lastUpdateTime.",
          "type": "string"
        },
        "networkReadGiB": {
          "format": "double",
          "title": "The total amount of data in GiB of network reads across all nodes in the pool.",
          "type": "number"
        },
        "networkWriteGiB": {
          "format": "double",
          "title": "The total amount of data in GiB of network writes across all nodes in the pool.",
          "type": "number"
        },
        "peakDiskGiB": {
          "format": "double",
          "title": "The peak used disk space in GiB across all nodes in the pool.",
          "type": "number"
        },
        "peakMemoryGiB": {
          "format": "double",
          "title": "The peak memory usage in GiB across all nodes in the pool.",
          "type": "number"
        },
        "startTime": {
          "format": "date-time",
          "title": "The start time of the time range covered by the statistics.",
          "type": "string"
        }
      },
      "required": [
        "startTime",
        "lastUpdateTime",
        "avgCPUPercentage",
        "avgMemoryGiB",
        "peakMemoryGiB",
        "avgDiskGiB",
        "peakDiskGiB",
        "diskReadIOps",
        "diskWriteIOps",
        "diskReadGiB",
        "diskWriteGiB",
        "networkReadGiB",
        "networkWriteGiB"
      ],
      "title": "Statistics related to resource consumption by compute nodes in a pool."
    },
    "Schedule": {
      "properties": {
        "doNotRunAfter": {
          "description": "If you do not specify a doNotRunAfter time, and you are creating a recurring job schedule, the job schedule will remain active until you explicitly terminate it.",
          "format": "date-time",
          "title": "A time after which no job will be created under this job schedule. The schedule will move to the completed state as soon as this deadline is past and there is no active job under this job schedule.",
          "type": "string"
        },
        "doNotRunUntil": {
          "description": "If you do not specify a doNotRunUntil time, the schedule becomes ready to create jobs immediately.",
          "format": "date-time",
          "title": "The earliest time at which any job may be created under this job schedule.",
          "type": "string"
        },
        "recurrenceInterval": {
          "description": "Because a job schedule can have at most one active job under it at any given time, if it is time to create a new job under a job schedule, but the previous job is still running, the Batch service will not create the new job until the previous job finishes. If the previous job does not finish within the startWindow period of the new recurrenceInterval, then no new job will be scheduled for that interval. For recurring jobs, you should normally specify a jobManagerTask in the jobSpecification. If you do not use jobManagerTask, you will need an external process to monitor when jobs are created, add tasks to the jobs and terminate the jobs ready for the next recurrence. The default is that the schedule does not recur: one job is created, within the startWindow after the doNotRunUntil time, and the schedule is complete as soon as that job finishes. The minimum value is 1 minute. If you specify a lower value, the Batch service rejects the schedule with an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request).",
          "format": "duration",
          "title": "The time interval between the start times of two successive jobs under the job schedule. A job schedule can have at most one active job under it at any given time.",
          "type": "string"
        },
        "startWindow": {
          "description": "If a job is not created within the startWindow interval, then the 'opportunity' is lost; no job will be created until the next recurrence of the schedule. If the schedule is recurring, and the startWindow is longer than the recurrence interval, then this is equivalent to an infinite startWindow, because the job that is 'due' in one recurrenceInterval is not carried forward into the next recurrence interval. The default is infinite. The minimum value is 1 minute. If you specify a lower value, the Batch service rejects the schedule with an error; if you are calling the REST API directly, the HTTP status code is 400 (Bad Request).",
          "format": "duration",
          "title": "The time interval, starting from the time at which the schedule indicates a job should be created, within which a job must be created.",
          "type": "string"
        }
      },
      "title": "The schedule according to which jobs will be created"
    },
    "StartTask": {
      "properties": {
        "commandLine": {
          "description": "The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux.",
          "title": "The command line of the start task.",
          "type": "string"
        },
        "environmentSettings": {
          "items": {
            "$ref": "#/definitions/EnvironmentSetting"
          },
          "title": "A list of environment variable settings for the start task.",
          "type": "array"
        },
        "maxTaskRetryCount": {
          "description": "The Batch service retries a task if its exit code is nonzero. Note that this value specifically controls the number of retries. The Batch service will try the task once, and may then retry up to this limit. For example, if the maximum retry count is 3, Batch tries the task up to 4 times (one initial try and 3 retries). If the maximum retry count is 0, the Batch service does not retry the task. If the maximum retry count is -1, the Batch service retries the task without limit.",
          "format": "int32",
          "title": "The maximum number of times the task may be retried.",
          "type": "integer"
        },
        "resourceFiles": {
          "description": "Files listed under this element are located in the task's working directory.",
          "items": {
            "$ref": "#/definitions/ResourceFile"
          },
          "title": "A list of files that the Batch service will download to the compute node before running the command line.",
          "type": "array"
        },
        "userIdentity": {
          "$ref": "#/definitions/UserIdentity",
          "description": "If omitted, the task runs as a non-administrative user unique to the task.",
          "title": "The user identity under which the start task runs."
        },
        "waitForSuccess": {
          "description": "If true and the start task fails on a compute node, the Batch service retries the start task up to its maximum retry count (maxTaskRetryCount). If the task has still not completed successfully after all retries, then the Batch service marks the compute node unusable, and will not schedule tasks to it. This condition can be detected via the node state and failure info details. If false, the Batch service will not wait for the start task to complete. In this case, other tasks can start executing on the compute node while the start task is still running; and even if the start task fails, new tasks will continue to be scheduled on the node. The default is false.",
          "title": "Whether the Batch service should wait for the start task to complete successfully (that is, to exit with exit code 0) before scheduling any tasks on the compute node.",
          "type": "boolean"
        }
      },
      "required": [
        "commandLine"
      ],
      "title": "A task which is run when a compute node joins a pool in the Azure Batch service, or when the compute node is rebooted or reimaged."
    },
    "StartTaskInformation": {
      "properties": {
        "endTime": {
          "description": "This is the end time of the most recent run of the start task, if that run has completed (even if that run failed and a retry is pending). This element is not present if the start task is currently running.",
          "format": "date-time",
          "title": "The time at which the start task stopped running.",
          "type": "string"
        },
        "exitCode": {
          "description": "This property is set only if the start task is in the completed state. In general, the exit code for a process reflects the specific convention implemented by the application developer for that process. If you use the exit code value to make decisions in your code, be sure that you know the exit code convention used by the application process. However, if the Batch service terminates the start task (due to timeout, or user termination via the API) you may see an operating system-defined exit code.",
          "format": "int32",
          "title": "The exit code of the program specified on the start task command line.",
          "type": "integer"
        },
        "failureInfo": {
          "$ref": "#/definitions/TaskFailureInformation",
          "description": "This property is set only if the task is in the completed state and encountered a failure.",
          "title": "Information describing the task failure, if any."
        },
        "lastRetryTime": {
          "description": "This element is present only if the task was retried (i.e. retryCount is nonzero). If present, this is typically the same as startTime, but may be different if the task has been restarted for reasons other than retry; for example, if the compute node was rebooted during a retry, then the startTime is updated but the lastRetryTime is not.",
          "format": "date-time",
          "title": "The most recent time at which a retry of the task started running.",
          "type": "string"
        },
        "result": {
          "$ref": "#/definitions/TaskExecutionResult",
          "description": "If the value is 'failed', then the details of the failure can be found in the failureInfo property.",
          "title": "The result of the task execution."
        },
        "retryCount": {
          "description": "Task application failures (non-zero exit code) are retried, pre-processing errors (the task could not be run) and file upload errors are not retried. The Batch service will retry the task up to the limit specified by the constraints.",
          "format": "int32",
          "title": "The number of times the task has been retried by the Batch service.",
          "type": "integer"
        },
        "startTime": {
          "description": "This value is reset every time the task is restarted or retried (that is, this is the most recent time at which the start task started running).",
          "format": "date-time",
          "title": "The time at which the start task started running.",
          "type": "string"
        },
        "state": {
          "description": "Values are:\n\n running - The start task is currently running.\n completed - The start task has exited with exit code 0, or the start task has failed and the retry limit has reached, or the start task process did not run due to task preparation errors (such as resource file download failures).",
          "enum": [
            "running",
            "completed"
          ],
          "title": "The state of the start task on the compute node.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "StartTaskState"
          }
        }
      },
      "required": [
        "state",
        "startTime",
        "retryCount"
      ],
      "title": "Information about a start task running on a compute node."
    },
    "SubtaskInformation": {
      "properties": {
        "endTime": {
          "description": "This property is set only if the subtask is in the Completed state.",
          "format": "date-time",
          "title": "The time at which the subtask completed.",
          "type": "string"
        },
        "exitCode": {
          "description": "This property is set only if the subtask is in the completed state. In general, the exit code for a process reflects the specific convention implemented by the application developer for that process. If you use the exit code value to make decisions in your code, be sure that you know the exit code convention used by the application process. However, if the Batch service terminates the subtask (due to timeout, or user termination via the API) you may see an operating system-defined exit code.",
          "format": "int32",
          "title": "The exit code of the program specified on the subtask command line.",
          "type": "integer"
        },
        "failureInfo": {
          "$ref": "#/definitions/TaskFailureInformation",
          "description": "This property is set only if the task is in the completed state and encountered a failure.",
          "title": "Information describing the task failure, if any."
        },
        "id": {
          "format": "int32",
          "title": "The ID of the subtask.",
          "type": "integer"
        },
        "nodeInfo": {
          "$ref": "#/definitions/ComputeNodeInformation",
          "title": "Information about the compute node on which the subtask ran."
        },
        "previousState": {
          "$ref": "#/definitions/SubtaskState",
          "description": "This property is not set if the subtask is in its initial running state.",
          "title": "The previous state of the subtask."
        },
        "previousStateTransitionTime": {
          "description": "This property is not set if the subtask is in its initial running state.",
          "format": "date-time",
          "title": "The time at which the subtask entered its previous state.",
          "type": "string"
        },
        "result": {
          "$ref": "#/definitions/TaskExecutionResult",
          "description": "If the value is 'failed', then the details of the failure can be found in the failureInfo property.",
          "title": "The result of the task execution."
        },
        "startTime": {
          "format": "date-time",
          "title": "The time at which the subtask started running. If the subtask has been restarted or retried, this is the most recent time at which the subtask started running.",
          "type": "string"
        },
        "state": {
          "$ref": "#/definitions/SubtaskState",
          "title": "The current state of the subtask."
        },
        "stateTransitionTime": {
          "format": "date-time",
          "title": "The time at which the subtask entered its current state.",
          "type": "string"
        }
      },
      "title": "Information about an Azure Batch subtask."
    },
    "SubtaskState": {
      "description": "Values are:\n\n preparing - The task has been assigned to a compute node, but is waiting for a required Job Preparation task to complete on the node. If the Job Preparation task succeeds, the task will move to running. If the Job Preparation task fails, the task will be eligible to be assigned to a different node.\n running - The subtask is running on a compute node.\n completed - The subtask is no longer eligible to run, usually because the subtask has finished successfully, or the subtask has finished unsuccessfully and has exhausted its retry limit. A subtask is also marked as completed if an error occurred launching the subtask, or when the task has been terminated.",
      "enum": [
        "preparing",
        "running",
        "completed"
      ],
      "title": "The state of the subtask.",
      "type": "string",
      "x-ms-enum": {
        "modelAsString": false,
        "name": "SubtaskState"
      }
    },
    "TaskAddCollectionParameter": {
      "properties": {
        "value": {
          "description": "The total serialized size of this collection must be less than 4MB. If it is greater than 4MB (for example if each task has 100's of resource files or environment variables), the request will fail with code 'RequestBodyTooLarge' and should be retried again with fewer tasks.",
          "items": {
            "$ref": "#/definitions/TaskAddParameter"
          },
          "maxItems": 100,
          "title": "The collection of tasks to add.",
          "type": "array"
        }
      },
      "required": [
        "value"
      ],
      "title": "A collection of Azure Batch tasks to add."
    },
    "TaskAddCollectionResult": {
      "properties": {
        "value": {
          "items": {
            "$ref": "#/definitions/TaskAddResult"
          },
          "title": "The results of the add task collection operation.",
          "type": "array"
        }
      },
      "title": "The result of adding a collection of tasks to a job."
    },
    "TaskAddParameter": {
      "properties": {
        "affinityInfo": {
          "$ref": "#/definitions/AffinityInformation",
          "title": "A locality hint that can be used by the Batch service to select a compute node on which to start the new task."
        },
        "applicationPackageReferences": {
          "description": "Application packages are downloaded and deployed to a shared directory, not the task working directory. Therefore, if a referenced package is already on the compute node, and is up to date, then it is not re-downloaded; the existing copy on the compute node is used. If a referenced application package cannot be installed, for example because the package has been deleted or because download failed, the task fails.",
          "items": {
            "$ref": "#/definitions/ApplicationPackageReference"
          },
          "title": "A list of application packages that the Batch service will deploy to the compute node before running the command line.",
          "type": "array"
        },
        "authenticationTokenSettings": {
          "$ref": "#/definitions/AuthenticationTokenSettings",
          "description": "If this property is set, the Batch service provides the task with an authentication token which can be used to authenticate Batch service operations without requiring an account access key. The token is provided via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations that the task can carry out using the token depend on the settings. For example, a task can request job permissions in order to add other tasks to the job, or check the status of the job or of other tasks under the job.",
          "title": "The settings for an authentication token that the task can use to perform Batch service operations."
        },
        "commandLine": {
          "description": "For multi-instance tasks, the command line is executed as the primary task, after the primary task and all subtasks have finished executing the coordination command line. The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux.",
          "title": "The command line of the task.",
          "type": "string"
        },
        "constraints": {
          "$ref": "#/definitions/TaskConstraints",
          "description": "If you do not specify constraints, the maxTaskRetryCount is the maxTaskRetryCount specified for the job, and the maxWallClockTime and retentionTime are infinite.",
          "title": "The execution constraints that apply to this task."
        },
        "dependsOn": {
          "$ref": "#/definitions/TaskDependencies",
          "description": "This task will not be scheduled until all tasks that it depends on have completed successfully. If any of those tasks fail and exhaust their retry counts, this task will never be scheduled. If the job does not have usesTaskDependencies set to true, and this element is present, the request fails with error code TaskDependenciesNotSpecifiedOnJob.",
          "title": "The tasks that this task depends on."
        },
        "displayName": {
          "description": "The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024.",
          "title": "A display name for the task.",
          "type": "string"
        },
        "environmentSettings": {
          "items": {
            "$ref": "#/definitions/EnvironmentSetting"
          },
          "title": "A list of environment variable settings for the task.",
          "type": "array"
        },
        "exitConditions": {
          "$ref": "#/definitions/ExitConditions",
          "description": "How the Batch service should respond when the task completes."
        },
        "id": {
          "description": "The ID can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters. The ID is case-preserving and case-insensitive (that is, you may not have two IDs within a job that differ only by case).",
          "title": "A string that uniquely identifies the task within the job.",
          "type": "string"
        },
        "multiInstanceSettings": {
          "$ref": "#/definitions/MultiInstanceSettings",
          "title": "An object that indicates that the task is a multi-instance task, and contains information about how to run the multi-instance task."
        },
        "outputFiles": {
          "description": "For multi-instance tasks, the files will only be uploaded from the compute node on which the primary task is executed.",
          "items": {
            "$ref": "#/definitions/OutputFile"
          },
          "title": "A list of files that the Batch service will upload from the compute node after running the command line.",
          "type": "array"
        },
        "resourceFiles": {
          "description": "For multi-instance tasks, the resource files will only be downloaded to the compute node on which the primary task is executed.",
          "items": {
            "$ref": "#/definitions/ResourceFile"
          },
          "title": "A list of files that the Batch service will download to the compute node before running the command line.",
          "type": "array"
        },
        "userIdentity": {
          "$ref": "#/definitions/UserIdentity",
          "description": "If omitted, the task runs as a non-administrative user unique to the task.",
          "title": "The user identity under which the task runs."
        }
      },
      "required": [
        "id",
        "commandLine"
      ],
      "title": "An Azure Batch task to add."
    },
    "TaskAddResult": {
      "properties": {
        "eTag": {
          "description": "You can use this to detect whether the task has changed between requests. In particular, you can be pass the ETag with an Update Task request to specify that your changes should take effect only if nobody else has modified the job in the meantime.",
          "title": "The ETag of the task, if the task was successfully added.",
          "type": "string"
        },
        "error": {
          "$ref": "#/definitions/BatchError",
          "title": "The error encountered while attempting to add the task."
        },
        "lastModified": {
          "format": "date-time",
          "title": "The last modified time of the task.",
          "type": "string"
        },
        "location": {
          "title": "The URL of the task, if the task was successfully added.",
          "type": "string"
        },
        "status": {
          "description": "Values are:\n\n success - Task was added successfully.\n clienterror - Task failed to add due to a client error and should not be retried without modifying the request as appropriate.\n servererror - Task failed to add due to a server error and can be retried without modification.",
          "enum": [
            "success",
            "clientError",
            "serverError"
          ],
          "title": "The status of the add task request.",
          "type": "string",
          "x-ms-enum": {
            "name": "TaskAddStatus"
          }
        },
        "taskId": {
          "title": "The ID of the task for which this is the result.",
          "type": "string"
        }
      },
      "required": [
        "status",
        "taskId"
      ],
      "title": "Result for a single task added as part of an add task collection operation."
    },
    "TaskConstraints": {
      "properties": {
        "maxTaskRetryCount": {
          "description": "Note that this value specifically controls the number of retries. The Batch service will try the task once, and may then retry up to this limit. For example, if the maximum retry count is 3, Batch tries the task up to 4 times (one initial try and 3 retries). If the maximum retry count is 0, the Batch service does not retry the task. If the maximum retry count is -1, the Batch service retries the task without limit.",
          "format": "int32",
          "title": "The maximum number of times the task may be retried. The Batch service retries a task if its exit code is nonzero.",
          "type": "integer"
        },
        "maxWallClockTime": {
          "description": "If this is not specified, there is no time limit on how long the task may run.",
          "format": "duration",
          "title": "The maximum elapsed time that the task may run, measured from the time the task starts. If the task does not complete within the time limit, the Batch service terminates it.",
          "type": "string"
        },
        "retentionTime": {
          "description": "The default is infinite, i.e. the task directory will be retained until the compute node is removed or reimaged.",
          "format": "duration",
          "title": "The minimum time to retain the task directory on the compute node where it ran, from the time it completes execution. After this time, the Batch service may delete the task directory and all its contents.",
          "type": "string"
        }
      },
      "title": "Execution constraints to apply to a task."
    },
    "TaskCounts": {
      "properties": {
        "active": {
          "format": "int32",
          "title": "The number of tasks in the active state.",
          "type": "integer"
        },
        "completed": {
          "format": "int32",
          "title": "The number of tasks in the completed state.",
          "type": "integer"
        },
        "failed": {
          "format": "int32",
          "title": "The number of tasks which failed. A task fails if its result (found in the executionInfo property) is 'failure'.",
          "type": "integer"
        },
        "running": {
          "format": "int32",
          "title": "The number of tasks in the running or preparing state.",
          "type": "integer"
        },
        "succeeded": {
          "format": "int32",
          "title": "The number of tasks which succeeded. A task succeeds if its result (found in the executionInfo property) is 'success'.",
          "type": "integer"
        },
        "validationStatus": {
          "description": "If the validationStatus is unvalidated, then the Batch service has not been able to check state counts against the task states as reported in the List Tasks API. The validationStatus may be unvalidated if the job contains more than 200,000 tasks.",
          "enum": [
            "validated",
            "unvalidated"
          ],
          "title": "Whether the task counts have been validated.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "TaskCountValidationStatus"
          }
        }
      },
      "required": [
        "active",
        "running",
        "completed",
        "succeeded",
        "failed",
        "validationStatus"
      ],
      "title": "The task counts for a job."
    },
    "TaskDependencies": {
      "properties": {
        "taskIdRanges": {
          "items": {
            "$ref": "#/definitions/TaskIdRange"
          },
          "title": "The list of task ID ranges that this task depends on. All tasks in all ranges must complete successfully before the dependent task can be scheduled.",
          "type": "array"
        },
        "taskIds": {
          "description": "The taskIds collection is limited to 64000 characters total (i.e. the combined length of all task IDs). If the taskIds collection exceeds the maximum length, the Add Task request fails with error code TaskDependencyListTooLong. In this case consider using task ID ranges instead.",
          "items": {
            "type": "string"
          },
          "title": "The list of task IDs that this task depends on. All tasks in this list must complete successfully before the dependent task can be scheduled.",
          "type": "array"
        }
      },
      "title": "Specifies any dependencies of a task. Any task that is explicitly specified or within a dependency range must complete before the dependant task will be scheduled."
    },
    "TaskExecutionInformation": {
      "properties": {
        "endTime": {
          "description": "This property is set only if the task is in the Completed state.",
          "format": "date-time",
          "title": "The time at which the task completed.",
          "type": "string"
        },
        "exitCode": {
          "description": "This property is set only if the task is in the completed state. In general, the exit code for a process reflects the specific convention implemented by the application developer for that process. If you use the exit code value to make decisions in your code, be sure that you know the exit code convention used by the application process. However, if the Batch service terminates the task (due to timeout, or user termination via the API) you may see an operating system-defined exit code.",
          "format": "int32",
          "title": "The exit code of the program specified on the task command line.",
          "type": "integer"
        },
        "failureInfo": {
          "$ref": "#/definitions/TaskFailureInformation",
          "description": "This property is set only if the task is in the completed state and encountered a failure.",
          "title": "Information describing the task failure, if any."
        },
        "lastRequeueTime": {
          "description": "This property is set only if the requeueCount is nonzero.",
          "format": "date-time",
          "title": "The most recent time at which the task has been requeued by the Batch service as the result of a user request.",
          "type": "string"
        },
        "lastRetryTime": {
          "description": "This element is present only if the task was retried (i.e. retryCount is nonzero). If present, this is typically the same as startTime, but may be different if the task has been restarted for reasons other than retry; for example, if the compute node was rebooted during a retry, then the startTime is updated but the lastRetryTime is not.",
          "format": "date-time",
          "title": "The most recent time at which a retry of the task started running.",
          "type": "string"
        },
        "requeueCount": {
          "description": "When the user removes nodes from a pool (by resizing/shrinking the pool) or when the job is being disabled, the user can specify that running tasks on the nodes be requeued for execution. This count tracks how many times the task has been requeued for these reasons.",
          "format": "int32",
          "title": "The number of times the task has been requeued by the Batch service as the result of a user request.",
          "type": "integer"
        },
        "result": {
          "$ref": "#/definitions/TaskExecutionResult",
          "description": "If the value is 'failed', then the details of the failure can be found in the failureInfo property.",
          "title": "The result of the task execution."
        },
        "retryCount": {
          "description": "Task application failures (non-zero exit code) are retried, pre-processing errors (the task could not be run) and file upload errors are not retried. The Batch service will retry the task up to the limit specified by the constraints.",
          "format": "int32",
          "title": "The number of times the task has been retried by the Batch service.",
          "type": "integer"
        },
        "startTime": {
          "description": "'Running' corresponds to the running state, so if the task specifies resource files or application packages, then the start time reflects the time at which the task started downloading or deploying these. If the task has been restarted or retried, this is the most recent time at which the task started running. This property is present only for tasks that are in the running or completed state.",
          "format": "date-time",
          "title": "The time at which the task started running.",
          "type": "string"
        }
      },
      "required": [
        "requeueCount",
        "retryCount"
      ],
      "title": "Information about the execution of a task."
    },
    "TaskExecutionResult": {
      "description": "Values are:\n\n success - The task ran successfully.\n failure - There was an error during processing of the task. The failure may have occurred before the task process was launched, while the task process was executing, or after the task process exited.",
      "enum": [
        "success",
        "failure"
      ],
      "title": "The result of task execution.",
      "type": "string",
      "x-ms-enum": {
        "modelAsString": false,
        "name": "TaskExecutionResult"
      }
    },
    "TaskFailureInformation": {
      "properties": {
        "category": {
          "$ref": "#/definitions/ErrorCategory",
          "title": "The category of the task error."
        },
        "code": {
          "title": "An identifier for the task error. Codes are invariant and are intended to be consumed programmatically.",
          "type": "string"
        },
        "details": {
          "items": {
            "$ref": "#/definitions/NameValuePair"
          },
          "title": "A list of additional details related to the error.",
          "type": "array"
        },
        "message": {
          "title": "A message describing the task error, intended to be suitable for display in a user interface.",
          "type": "string"
        }
      },
      "required": [
        "category"
      ],
      "title": "Information about a task failure."
    },
    "TaskIdRange": {
      "description": "The start and end of the range are inclusive. For example, if a range has start 9 and end 12, then it represents tasks '9', '10', '11' and '12'.",
      "properties": {
        "end": {
          "format": "int32",
          "title": "The last task ID in the range.",
          "type": "integer"
        },
        "start": {
          "format": "int32",
          "title": "The first task ID in the range.",
          "type": "integer"
        }
      },
      "required": [
        "start",
        "end"
      ],
      "title": "A range of task IDs that a task can depend on. All tasks with IDs in the range must complete successfully before the dependent task can be scheduled."
    },
    "TaskInformation": {
      "properties": {
        "executionInfo": {
          "$ref": "#/definitions/TaskExecutionInformation",
          "title": "Information about the execution of the task."
        },
        "jobId": {
          "title": "The ID of the job to which the task belongs.",
          "type": "string"
        },
        "subtaskId": {
          "format": "int32",
          "title": "The ID of the subtask if the task is a multi-instance task.",
          "type": "integer"
        },
        "taskId": {
          "title": "The ID of the task.",
          "type": "string"
        },
        "taskState": {
          "$ref": "#/definitions/TaskState",
          "title": "The current state of the task."
        },
        "taskUrl": {
          "title": "The URL of the task.",
          "type": "string"
        }
      },
      "required": [
        "taskState"
      ],
      "title": "Information about a task running on a compute node."
    },
    "TaskSchedulingPolicy": {
      "properties": {
        "nodeFillType": {
          "enum": [
            "spread",
            "pack"
          ],
          "title": "How tasks are distributed across compute nodes in a pool. Values are:\n\n pack - As many tasks as possible (maxTasksPerNode) should be assigned to each node in the pool before any tasks are assigned to the next node in the pool.\n spread - Tasks should be assigned evenly across all nodes in the pool.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "ComputeNodeFillType"
          }
        }
      },
      "required": [
        "nodeFillType"
      ],
      "title": "Specifies how tasks should be distributed across compute nodes."
    },
    "TaskState": {
      "description": "Values are:\n\n active - The task is queued and able to run, but is not currently assigned to a compute node. A task enters this state when it is created, when it is enabled after being disabled, or when it is awaiting a retry after a failed run.\n preparing - The task has been assigned to a compute node, but is waiting for a required Job Preparation task to complete on the node. If the Job Preparation task succeeds, the task will move to running. If the Job Preparation task fails, the task will return to active and will be eligible to be assigned to a different node.\n running - The task is running on a compute node. This includes task-level preparation such as downloading resource files or deploying application packages specified on the task - it does not necessarily mean that the task command line has started executing.\n completed - The task is no longer eligible to run, usually because the task has finished successfully, or the task has finished unsuccessfully and has exhausted its retry limit. A task is also marked as completed if an error occurred launching the task, or when the task has been terminated.",
      "enum": [
        "active",
        "preparing",
        "running",
        "completed"
      ],
      "title": "The state of the task.",
      "type": "string",
      "x-ms-enum": {
        "modelAsString": false,
        "name": "TaskState"
      }
    },
    "TaskStatistics": {
      "properties": {
        "kernelCPUTime": {
          "format": "duration",
          "title": "The total kernel mode CPU time (summed across all cores and all compute nodes) consumed by the task.",
          "type": "string"
        },
        "lastUpdateTime": {
          "format": "date-time",
          "title": "The time at which the statistics were last updated. All statistics are limited to the range between startTime and lastUpdateTime.",
          "type": "string"
        },
        "readIOGiB": {
          "format": "double",
          "title": "The total gibibytes read from disk by the task.",
          "type": "number"
        },
        "readIOps": {
          "format": "int64",
          "title": "The total number of disk read operations made by the task.",
          "type": "integer"
        },
        "startTime": {
          "format": "date-time",
          "title": "The start time of the time range covered by the statistics.",
          "type": "string"
        },
        "url": {
          "title": "The URL of the statistics.",
          "type": "string"
        },
        "userCPUTime": {
          "format": "duration",
          "title": "The total user mode CPU time (summed across all cores and all compute nodes) consumed by the task.",
          "type": "string"
        },
        "waitTime": {
          "format": "duration",
          "title": "The total wait time of the task. The wait time for a task is defined as the elapsed time between the creation of the task and the start of task execution. (If the task is retried due to failures, the wait time is the time to the most recent task execution.)",
          "type": "string"
        },
        "wallClockTime": {
          "description": "The wall clock time is the elapsed time from when the task started running on a compute node to when it finished (or to the last time the statistics were updated, if the task had not finished by then). If the task was retried, this includes the wall clock time of all the task retries.",
          "format": "duration",
          "title": "The total wall clock time of the task.",
          "type": "string"
        },
        "writeIOGiB": {
          "format": "double",
          "title": "The total gibibytes written to disk by the task.",
          "type": "number"
        },
        "writeIOps": {
          "format": "int64",
          "title": "The total number of disk write operations made by the task.",
          "type": "integer"
        }
      },
      "required": [
        "url",
        "startTime",
        "lastUpdateTime",
        "userCPUTime",
        "kernelCPUTime",
        "wallClockTime",
        "readIOps",
        "writeIOps",
        "readIOGiB",
        "writeIOGiB",
        "waitTime"
      ],
      "title": "Resource usage statistics for a task."
    },
    "TaskUpdateParameter": {
      "properties": {
        "constraints": {
          "$ref": "#/definitions/TaskConstraints",
          "description": "If omitted, the task is given the default constraints. For multi-instance tasks, updating the retention time applies only to the primary task and not subtasks.",
          "title": "Constraints that apply to this task."
        }
      },
      "title": "The set of changes to be made to a task."
    },
    "UsageStatistics": {
      "properties": {
        "dedicatedCoreTime": {
          "format": "duration",
          "title": "The aggregated wall-clock time of the dedicated compute node cores being part of the pool.",
          "type": "string"
        },
        "lastUpdateTime": {
          "format": "date-time",
          "title": "The time at which the statistics were last updated. All statistics are limited to the range between startTime and lastUpdateTime.",
          "type": "string"
        },
        "startTime": {
          "format": "date-time",
          "title": "The start time of the time range covered by the statistics.",
          "type": "string"
        }
      },
      "required": [
        "startTime",
        "lastUpdateTime",
        "dedicatedCoreTime"
      ],
      "title": "Statistics related to pool usage information."
    },
    "UserAccount": {
      "properties": {
        "elevationLevel": {
          "$ref": "#/definitions/ElevationLevel",
          "description": "nonAdmin - The auto user is a standard user without elevated access. admin - The auto user is a user with elevated access and operates with full Administrator permissions. The default value is nonAdmin.",
          "title": "The elevation level of the user account."
        },
        "linuxUserConfiguration": {
          "$ref": "#/definitions/LinuxUserConfiguration",
          "description": "This property is ignored if specified on a Windows pool. If not specified, the user is created with the default options.",
          "title": "The Linux-specific user configuration for the user account."
        },
        "name": {
          "title": "The name of the user account.",
          "type": "string"
        },
        "password": {
          "title": "The password for the user account.",
          "type": "string"
        }
      },
      "required": [
        "name",
        "password"
      ],
      "title": "Properties used to create a user used to execute tasks on an Azure Batch node."
    },
    "UserIdentity": {
      "description": "Specify either the userName or autoUser property, but not both.",
      "properties": {
        "autoUser": {
          "$ref": "#/definitions/AutoUserSpecification",
          "description": "The userName and autoUser properties are mutually exclusive; you must specify one but not both.",
          "title": "The auto user under which the task is run."
        },
        "username": {
          "description": "The userName and autoUser properties are mutually exclusive; you must specify one but not both.",
          "title": "The name of the user identity under which the task is run.",
          "type": "string",
          "x-ms-client-name": "userName"
        }
      },
      "title": "The definition of the user identity under which the task is run."
    },
    "VirtualMachineConfiguration": {
      "properties": {
        "imageReference": {
          "$ref": "#/definitions/ImageReference",
          "description": "This property and osDisk are mutually exclusive and one of the properties must be specified.",
          "title": "A reference to the Azure Virtual Machines Marketplace image to use."
        },
        "nodeAgentSKUId": {
          "description": "The Batch node agent is a program that runs on each node in the pool, and provides the command-and-control interface between the node and the Batch service. There are different implementations of the node agent, known as SKUs, for different operating systems. You must specify a node agent SKU which matches the selected image reference. To get the list of supported node agent SKUs along with their list of verified image references, see the 'List supported node agent SKUs' operation.",
          "title": "The SKU of the Batch node agent to be provisioned on compute nodes in the pool.",
          "type": "string"
        },
        "osDisk": {
          "$ref": "#/definitions/OSDisk",
          "description": "This property can be specified only if the Batch account was created with its poolAllocationMode property set to 'UserSubscription'. This property and imageReference are mutually exclusive and one of the properties must be specified.",
          "title": "A reference to the OS disk image to use."
        },
        "windowsConfiguration": {
          "$ref": "#/definitions/WindowsConfiguration",
          "description": "This property must not be specified if the imageReference or osDisk property specifies a Linux OS image.",
          "title": "Windows operating system settings on the virtual machine."
        }
      },
      "required": [
        "nodeAgentSKUId"
      ],
      "title": "The configuration for compute nodes in a pool based on the Azure Virtual Machines infrastructure."
    },
    "WindowsConfiguration": {
      "properties": {
        "enableAutomaticUpdates": {
          "description": "If omitted, the default value is true.",
          "title": "Whether automatic updates are enabled on the virtual machine.",
          "type": "boolean"
        }
      },
      "title": "Windows operating system settings to apply to the virtual machine."
    }
  }
}