{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "management.azure.com",
  "info": {
    "description": "The Azure BatchAI Management API.",
    "title": "BatchAI",
    "version": "2017-09-01-preview",
    "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": "BatchAIManagementClient"
    },
    "x-origin": [
      {
        "format": "swagger",
        "url": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/batchai/resource-manager/Microsoft.BatchAI/preview/2017-09-01-preview/BatchAI.json",
        "version": "2.0"
      }
    ],
    "x-preferred": false,
    "x-providerName": "azure.com",
    "x-serviceName": "batchai-BatchAI",
    "x-tags": [
      "Azure",
      "Microsoft"
    ]
  },
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "securityDefinitions": {
    "azure_auth": {
      "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
      "description": "Azure Active Directory OAuth2 Flow",
      "flow": "implicit",
      "scopes": {
        "user_impersonation": "impersonate your user account"
      },
      "type": "oauth2"
    }
  },
  "security": [
    {
      "azure_auth": [
        "user_impersonation"
      ]
    }
  ],
  "parameters": {
    "ApiVersionParameter": {
      "description": "Specifies the version of API used for this request.",
      "in": "query",
      "name": "api-version",
      "required": true,
      "type": "string"
    },
    "ClusterNameParameter": {
      "description": "The name of the cluster within the specified resource group. Cluster names can only contain a combination of alphanumeric characters along with dash (-) and underscore (_). The name must be from 1 through 64 characters long.",
      "in": "path",
      "maxLength": 64,
      "minLength": 1,
      "name": "clusterName",
      "pattern": "^[-\\w\\._]+$",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "DownloadLinkExpiryParameter": {
      "default": 60,
      "description": "The number of minutes after which the download link will expire.",
      "format": "int32",
      "in": "query",
      "maximum": 600,
      "minimum": 5,
      "name": "linkexpiryinminutes",
      "required": false,
      "type": "integer",
      "x-ms-parameter-grouping": {
        "postfix": "Options"
      },
      "x-ms-parameter-location": "method"
    },
    "FileServerNameParameter": {
      "description": "The name of the file server within the specified resource group. File server names can only contain a combination of alphanumeric characters along with dash (-) and underscore (_). The name must be from 1 through 64 characters long.",
      "in": "path",
      "maxLength": 64,
      "minLength": 1,
      "name": "fileServerName",
      "pattern": "^[-\\w\\._]+$",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "FilterParameter": {
      "description": "An OData $filter clause. Used to filter results that are returned in the GET response.",
      "in": "query",
      "name": "$filter",
      "required": false,
      "type": "string",
      "x-ms-parameter-grouping": {
        "postfix": "Options"
      },
      "x-ms-parameter-location": "method"
    },
    "JobNameParameter": {
      "description": "The name of the job within the specified resource group. Job names can only contain a combination of alphanumeric characters along with dash (-) and underscore (_). The name must be from 1 through 64 characters long.",
      "in": "path",
      "maxLength": 64,
      "minLength": 1,
      "name": "jobName",
      "pattern": "^[-\\w\\._]+$",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "MaxResultsParameter": {
      "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"
      },
      "x-ms-parameter-location": "method"
    },
    "OutputDirectoryIdParameter": {
      "description": "Id of the job output directory. This is the OutputDirectory-->id parameter that is given by the user during Create Job.",
      "in": "query",
      "name": "outputdirectoryid",
      "required": true,
      "type": "string",
      "x-ms-parameter-grouping": {
        "postfix": "Options"
      },
      "x-ms-parameter-location": "method"
    },
    "ResourceGroupNameParameter": {
      "description": "Name of the resource group to which the resource belongs.",
      "in": "path",
      "name": "resourceGroupName",
      "pattern": "^[-\\w\\._]+$",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "SelectParameter": {
      "description": "An OData $select clause. Used to select the properties to be returned in the GET response.",
      "in": "query",
      "name": "$select",
      "required": false,
      "type": "string",
      "x-ms-parameter-grouping": {
        "postfix": "Options"
      },
      "x-ms-parameter-location": "method"
    },
    "SubscriptionIdParameter": {
      "description": "The subscriptionID for the Azure user.",
      "in": "path",
      "name": "subscriptionId",
      "required": true,
      "type": "string"
    }
  },
  "paths": {
    "/providers/Microsoft.BatchAI/operations": {
      "get": {
        "description": "Lists available operations for the Microsoft.BatchAI provider.",
        "operationId": "Operations_List",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK. The request has succeeded.",
            "schema": {
              "$ref": "#/definitions/OperationListResult"
            }
          }
        },
        "tags": [
          "Operations"
        ],
        "x-ms-examples": {
          "List of available operations for Batch AI Resource Provider": {
            "parameters": {
              "api-version": "2017-09-01-preview"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "display": {
                        "description": "Lists Batch AI clusters or gets the properties of a Batch AI cluster",
                        "operation": "List or get Batch AI clusters",
                        "provider": "Microsoft Batch AI",
                        "resource": "Batch AI Clusters"
                      },
                      "name": "Microsoft.BatchAI/clusters/read",
                      "origin": "user,system"
                    },
                    {
                      "display": {
                        "description": "Creates a new Batch AI cluster or updates an existing Batch AI cluster",
                        "operation": "Create or update Batch AI cluster",
                        "provider": "Microsoft Batch AI",
                        "resource": "Batch AI Clusters"
                      },
                      "name": "Microsoft.BatchAI/clusters/write",
                      "origin": "user,system"
                    },
                    {
                      "display": {
                        "description": "Deletes a Batch AI cluster",
                        "operation": "Delete Batch AI cluster",
                        "provider": "Microsoft Batch AI",
                        "resource": "Batch AI Clusters"
                      },
                      "name": "Microsoft.BatchAI/clusters/delete",
                      "origin": "user,system"
                    },
                    {
                      "display": {
                        "description": "Lists remote-login information for a Batch AI cluster",
                        "operation": "List Batch AI cluster remote-login information",
                        "provider": "Microsoft Batch AI",
                        "resource": "Batch AI Clusters"
                      },
                      "name": "Microsoft.BatchAI/clusters/listRemoteLoginInformation",
                      "origin": "user,system"
                    },
                    {
                      "display": {
                        "description": "Lists Batch AI jobs or gets the properties of a Batch AI job",
                        "operation": "List or get Batch AI jobs",
                        "provider": "Microsoft Batch AI",
                        "resource": "Batch AI Jobs"
                      },
                      "name": "Microsoft.BatchAI/jobs/read",
                      "origin": "user,system"
                    },
                    {
                      "display": {
                        "description": "Creates a new Batch AI job or updates an existing Batch AI job",
                        "operation": "Create or update Batch AI job",
                        "provider": "Microsoft Batch AI",
                        "resource": "Batch AI Jobs"
                      },
                      "name": "Microsoft.BatchAI/jobs/write",
                      "origin": "user,system"
                    },
                    {
                      "display": {
                        "description": "Deletes a Batch AI job",
                        "operation": "Delete Batch AI job",
                        "provider": "Microsoft Batch AI",
                        "resource": "Batch AI Jobs"
                      },
                      "name": "Microsoft.BatchAI/jobs/delete",
                      "origin": "user,system"
                    },
                    {
                      "display": {
                        "description": "Terminates a Batch AI job",
                        "operation": "Terminate Batch AI job",
                        "provider": "Microsoft Batch AI",
                        "resource": "Batch AI Jobs"
                      },
                      "name": "Microsoft.BatchAI/jobs/terminate/action",
                      "origin": "user,system"
                    },
                    {
                      "display": {
                        "description": "Lists remote-login information for a Batch AI job",
                        "operation": "List Batch AI job remote-login information",
                        "provider": "Microsoft Batch AI",
                        "resource": "Batch AI Jobs"
                      },
                      "name": "Microsoft.BatchAI/jobs/listRemoteLoginInformation",
                      "origin": "user,system"
                    },
                    {
                      "display": {
                        "description": "Lists Batch AI fileservers or gets the properties of a Batch AI fileserver",
                        "operation": "List or get Batch AI fileservers",
                        "provider": "Microsoft Batch AI",
                        "resource": "Batch AI Fileservers"
                      },
                      "name": "Microsoft.BatchAI/fileservers/read",
                      "origin": "user,system"
                    },
                    {
                      "display": {
                        "description": "Creates a new Batch AI fileserver or updates an existing Batch AI fileserver",
                        "operation": "Create or update Batch AI fileserver",
                        "provider": "Microsoft Batch AI",
                        "resource": "Batch AI Fileservers"
                      },
                      "name": "Microsoft.BatchAI/fileservers/write",
                      "origin": "user,system"
                    },
                    {
                      "display": {
                        "description": "Deletes a Batch AI fileserver",
                        "operation": "Delete Batch AI filserver",
                        "provider": "Microsoft Batch AI",
                        "resource": "Batch AI Fileservers"
                      },
                      "name": "Microsoft.BatchAI/fileservers/delete",
                      "origin": "user,system"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.BatchAI/clusters": {
      "get": {
        "description": "Gets information about the Clusters associated with the subscription.",
        "operationId": "Clusters_List",
        "parameters": [
          {
            "$ref": "#/parameters/FilterParameter"
          },
          {
            "$ref": "#/parameters/SelectParameter"
          },
          {
            "$ref": "#/parameters/MaxResultsParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful. The response contains a list of Cluster entities associated with the subscription.",
            "schema": {
              "$ref": "#/definitions/ClusterListResult"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Cluster"
        ],
        "x-ms-examples": {
          "List clusters": {
            "parameters": {
              "api-version": "2017-09-01-preview",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/clusters/demo_cluster",
                      "location": "eastus",
                      "name": "demo_cluster",
                      "properties": {
                        "allocationState": "resizing",
                        "allocationStateTransitionTime": "2017-09-27T22:28:08.998Z",
                        "creationTime": "2017-09-27T22:28:07.645Z",
                        "currentNodeCount": 0,
                        "nodeSetup": {
                          "mountVolumes": {
                            "azureFileShares": [
                              {
                                "accountName": "storage_account_name",
                                "azureFileUrl": "https://storage_account_name.file.core.windows.net/azure_file_share_name",
                                "credentials": {},
                                "directoryMode": "0777",
                                "fileMode": "0777",
                                "relativeMountPath": "azfiles"
                              }
                            ]
                          }
                        },
                        "nodeStateCounts": {
                          "idleNodeCount": 0,
                          "leavingNodeCount": 0,
                          "preparingNodeCount": 0,
                          "runningNodeCount": 0,
                          "unusableNodeCount": 0
                        },
                        "provisioningState": "succeeded",
                        "provisioningStateTransitionTime": "2017-09-27T22:28:08.327Z",
                        "scaleSettings": {
                          "manual": {
                            "nodeDeallocationOption": "requeue",
                            "targetNodeCount": 1
                          }
                        },
                        "userAccountSettings": {
                          "adminUserName": "admin_user_name"
                        },
                        "virtualMachineConfiguration": {
                          "imageReference": {
                            "offer": "UbuntuServer",
                            "publisher": "Canonical",
                            "sku": "16.04-LTS",
                            "version": "latest"
                          }
                        },
                        "vmPriority": "dedicated",
                        "vmSize": "STANDARD_NC6"
                      },
                      "type": "Microsoft.BatchAI/Clusters"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.BatchAI/fileServers": {
      "get": {
        "description": "To list all the file servers available under the given subscription (and across all resource groups within that subscription)",
        "operationId": "FileServers_List",
        "parameters": [
          {
            "$ref": "#/parameters/FilterParameter"
          },
          {
            "$ref": "#/parameters/SelectParameter"
          },
          {
            "$ref": "#/parameters/MaxResultsParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful. The response contains a formatted list of clusters and their properties.",
            "schema": {
              "$ref": "#/definitions/FileServerListResult"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "FileServer"
        ],
        "x-ms-examples": {
          "List file servers": {
            "parameters": {
              "api-version": "2017-09-01-preview",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/fileservers/fileservercedd134b",
                      "location": "eastus",
                      "name": "fileservercedd134b",
                      "properties": {
                        "creationTime": "2017-09-27T21:45:28.159Z",
                        "dataDisks": {
                          "cachingType": "none",
                          "diskCount": 2,
                          "diskSizeInGB": 10,
                          "storageAccountType": "Standard_LRS"
                        },
                        "mountSettings": {
                          "fileServerInternalIP": "10.0.0.4",
                          "fileServerPublicIP": "13.90.141.66",
                          "fileServerType": "nfs",
                          "mountPoint": "/mnt/data"
                        },
                        "provisioningState": "succeeded",
                        "provisioningStateTransitionTime": "2017-09-27T21:49:25.416Z",
                        "sshConfiguration": {
                          "userAccountSettings": {
                            "adminUserName": "admin_user_name"
                          }
                        },
                        "subnet": {
                          "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.Network/virtualNetworks/7feb1976-8c31-4f1f-bea2-86cb1839a7bavnet/subnets/Subnet-1"
                        },
                        "vmSize": "STANDARD_NC6"
                      },
                      "type": "Microsoft.BatchAI/FileServers"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.BatchAI/jobs": {
      "get": {
        "description": "Gets information about the jobs associated with the subscription.",
        "operationId": "Jobs_List",
        "parameters": [
          {
            "$ref": "#/parameters/FilterParameter"
          },
          {
            "$ref": "#/parameters/SelectParameter"
          },
          {
            "$ref": "#/parameters/MaxResultsParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful. The response contains a list of Batch AI job entities associated with the subscription.",
            "schema": {
              "$ref": "#/definitions/JobListResult"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Job"
        ],
        "x-ms-examples": {
          "List jobs": {
            "parameters": {
              "api-version": "2017-09-01-preview",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/jobs/job",
                      "name": "job",
                      "properties": {
                        "cluster": {
                          "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/clusters/demo_cluster"
                        },
                        "constraints": {
                          "maxWallClockTime": "P7D"
                        },
                        "containerSettings": {
                          "imageSourceRegistry": {
                            "image": "ubuntu"
                          }
                        },
                        "creationTime": "2017-09-27T23:36:52.611Z",
                        "customToolkitSettings": {
                          "commandLine": "echo hi | tee $AZ_BATCHAI_OUTPUT_OUTPUTS/hi.txt"
                        },
                        "executionInfo": {
                          "startTime": "2017-09-27T23:36:54.115Z"
                        },
                        "executionState": "running",
                        "executionStateTransitionTime": "2017-09-27T23:36:56.395Z",
                        "inputDirectories": [
                          {
                            "id": "INPUT",
                            "path": "$AZ_BATCHAI_MOUNT_ROOT/azfiles/input"
                          }
                        ],
                        "nodeCount": 1,
                        "outputDirectories": [
                          {
                            "createNew": true,
                            "id": "OUTPUTS",
                            "pathPrefix": "$AZ_BATCHAI_MOUNT_ROOT/azfiles/",
                            "pathSuffix": "files",
                            "type": "custom"
                          }
                        ],
                        "priority": 0,
                        "provisioningState": "succeeded",
                        "provisioningStateTransitionTime": "2017-09-27T23:36:53.701Z",
                        "stdOutErrPathPrefix": "$AZ_BATCHAI_MOUNT_ROOT/azfiles",
                        "toolType": "custom"
                      },
                      "type": "Microsoft.BatchAI/Jobs"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BatchAI/clusters": {
      "get": {
        "description": "Gets information about the Clusters associated within the specified resource group.",
        "operationId": "Clusters_ListByResourceGroup",
        "parameters": [
          {
            "$ref": "#/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/FilterParameter"
          },
          {
            "$ref": "#/parameters/SelectParameter"
          },
          {
            "$ref": "#/parameters/MaxResultsParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful. The response contains a list of Cluster entities associated with the resource group.",
            "schema": {
              "$ref": "#/definitions/ClusterListResult"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Cluster"
        ],
        "x-ms-examples": {
          "List clusters": {
            "parameters": {
              "api-version": "2017-09-01-preview",
              "resourceGroupName": "demo_resource_group",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/clusters/demo_cluster",
                      "location": "eastus",
                      "name": "demo_cluster",
                      "properties": {
                        "allocationState": "resizing",
                        "allocationStateTransitionTime": "2017-09-27T22:28:08.998Z",
                        "creationTime": "2017-09-27T22:28:07.645Z",
                        "currentNodeCount": 0,
                        "nodeSetup": {
                          "mountVolumes": {
                            "azureFileShares": [
                              {
                                "accountName": "storage_account_name",
                                "azureFileUrl": "https://storage_account_name.file.core.windows.net/azure_file_share_name",
                                "credentials": {},
                                "directoryMode": "0777",
                                "fileMode": "0777",
                                "relativeMountPath": "azfiles"
                              }
                            ]
                          }
                        },
                        "nodeStateCounts": {
                          "idleNodeCount": 0,
                          "leavingNodeCount": 0,
                          "preparingNodeCount": 0,
                          "runningNodeCount": 0,
                          "unusableNodeCount": 0
                        },
                        "provisioningState": "succeeded",
                        "provisioningStateTransitionTime": "2017-09-27T22:28:08.327Z",
                        "scaleSettings": {
                          "manual": {
                            "nodeDeallocationOption": "requeue",
                            "targetNodeCount": 1
                          }
                        },
                        "userAccountSettings": {
                          "adminUserName": "admin_user_name"
                        },
                        "virtualMachineConfiguration": {
                          "imageReference": {
                            "offer": "UbuntuServer",
                            "publisher": "Canonical",
                            "sku": "16.04-LTS",
                            "version": "latest"
                          }
                        },
                        "vmPriority": "dedicated",
                        "vmSize": "STANDARD_NC6"
                      },
                      "type": "Microsoft.BatchAI/Clusters"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BatchAI/clusters/{clusterName}": {
      "delete": {
        "description": "Deletes a Cluster.",
        "operationId": "Clusters_Delete",
        "parameters": [
          {
            "$ref": "#/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/ClusterNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful."
          },
          "202": {
            "description": "The operation will be completed asynchronously."
          },
          "204": {
            "description": "No content."
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Cluster"
        ],
        "x-ms-examples": {
          "Delete cluster": {
            "parameters": {
              "api-version": "2017-09-01-preview",
              "clusterName": "demo_cluster",
              "resourceGroupName": "demo_resource_group",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {},
              "202": {
                "headers": {
                  "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.BatchAI/locations/eastus/operationresults/7e69f371-db62-4183-bba0-5ee577d43bd7?api-version=2017-09-01-preview",
                  "Retry-After": 15
                }
              },
              "204": {}
            }
          }
        },
        "x-ms-long-running-operation": true
      },
      "get": {
        "description": "Gets information about the specified Cluster.",
        "operationId": "Clusters_Get",
        "parameters": [
          {
            "$ref": "#/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/ClusterNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful. The response contains information about the cluster.",
            "schema": {
              "$ref": "#/definitions/Cluster"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Cluster"
        ],
        "x-ms-examples": {
          "Get cluster": {
            "parameters": {
              "api-version": "2017-09-01-preview",
              "clusterName": "demo_cluster",
              "resourceGroupName": "demo_resource_group",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/clusters/demo_cluster",
                  "location": "eastus",
                  "name": "demo_cluster",
                  "properties": {
                    "allocationState": "resizing",
                    "allocationStateTransitionTime": "2017-09-27T21:50:04.521Z",
                    "creationTime": "2017-09-27T21:50:02.377Z",
                    "currentNodeCount": 0,
                    "nodeSetup": {
                      "mountVolumes": {
                        "azureFileShares": [
                          {
                            "accountName": "storage_account_name",
                            "azureFileUrl": "https://storage_account_name.file.core.windows.net/azure_file_share_name",
                            "credentials": {},
                            "directoryMode": "0777",
                            "fileMode": "0777",
                            "relativeMountPath": "azfiles"
                          }
                        ],
                        "fileServers": [
                          {
                            "fileServer": {
                              "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/fileservers/fileservercedd134b"
                            },
                            "mountOptions": "rw",
                            "relativeMountPath": "nfs"
                          }
                        ]
                      }
                    },
                    "nodeStateCounts": {
                      "idleNodeCount": 0,
                      "leavingNodeCount": 0,
                      "preparingNodeCount": 0,
                      "runningNodeCount": 0,
                      "unusableNodeCount": 0
                    },
                    "provisioningState": "succeeded",
                    "provisioningStateTransitionTime": "2017-09-27T21:50:03.828Z",
                    "scaleSettings": {
                      "manual": {
                        "nodeDeallocationOption": "requeue",
                        "targetNodeCount": 1
                      }
                    },
                    "subnet": {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.Network/virtualNetworks/7feb1976-8c31-4f1f-bea2-86cb1839a7bavnet/subnets/Subnet-1"
                    },
                    "userAccountSettings": {
                      "adminUserName": "admin_user_name"
                    },
                    "virtualMachineConfiguration": {
                      "imageReference": {
                        "offer": "UbuntuServer",
                        "publisher": "Canonical",
                        "sku": "16.04-LTS",
                        "version": "latest"
                      }
                    },
                    "vmPriority": "dedicated",
                    "vmSize": "STANDARD_NC6"
                  },
                  "type": "Microsoft.BatchAI/Clusters"
                }
              }
            }
          }
        }
      },
      "patch": {
        "description": "Update the properties of a given cluster.",
        "operationId": "Clusters_Update",
        "parameters": [
          {
            "$ref": "#/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/ClusterNameParameter"
          },
          {
            "description": "Additional parameters for cluster update.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ClusterUpdateParameters"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful. The response contains the Cluster entity.",
            "schema": {
              "$ref": "#/definitions/Cluster"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Cluster"
        ],
        "x-ms-examples": {
          "Patch cluster": {
            "parameters": {
              "api-version": "2017-09-01-preview",
              "clusterName": "demo_cluster",
              "parameters": {
                "properties": {
                  "scaleSettings": {
                    "autoScale": {
                      "maximumNodeCount": 10,
                      "minimumNodeCount": 0
                    }
                  }
                }
              },
              "resourceGroupName": "demo_resource_group",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/clusters/demo_cluster",
                  "location": "eastus",
                  "name": "demo_cluster",
                  "properties": {
                    "allocationState": "steady",
                    "allocationStateTransitionTime": "2017-09-27T21:43:57.664Z",
                    "creationTime": "2017-09-27T21:43:55.215Z",
                    "currentNodeCount": 0,
                    "nodeSetup": {
                      "mountVolumes": {
                        "azureFileShares": [
                          {
                            "accountName": "storage_account_name",
                            "azureFileUrl": "https://storage_account_name.file.core.windows.net/azure_file_share_name",
                            "credentials": {},
                            "directoryMode": "0777",
                            "fileMode": "0777",
                            "relativeMountPath": "azfiles"
                          }
                        ]
                      }
                    },
                    "nodeStateCounts": {
                      "idleNodeCount": 0,
                      "leavingNodeCount": 0,
                      "preparingNodeCount": 0,
                      "runningNodeCount": 0,
                      "unusableNodeCount": 0
                    },
                    "provisioningState": "succeeded",
                    "provisioningStateTransitionTime": "2017-09-27T21:43:56.238Z",
                    "scaleSettings": {
                      "autoScale": {
                        "initialNodeCount": 0,
                        "maximumNodeCount": 10,
                        "minimumNodeCount": 0
                      }
                    },
                    "userAccountSettings": {
                      "adminUserName": "admin_user_name"
                    },
                    "virtualMachineConfiguration": {
                      "imageReference": {
                        "offer": "UbuntuServer",
                        "publisher": "Canonical",
                        "sku": "16.04-LTS",
                        "version": "latest"
                      }
                    },
                    "vmPriority": "dedicated",
                    "vmSize": "STANDARD_NC6"
                  },
                  "type": "Microsoft.BatchAI/Clusters"
                }
              }
            }
          }
        }
      },
      "put": {
        "description": "Adds a cluster. A cluster is a collection of compute nodes. Multiple jobs can be run on the same cluster.",
        "operationId": "Clusters_Create",
        "parameters": [
          {
            "$ref": "#/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/ClusterNameParameter"
          },
          {
            "description": "The parameters to provide for cluster creation.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ClusterCreateParameters"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful. The response contains the cluster entity.",
            "schema": {
              "$ref": "#/definitions/Cluster"
            }
          },
          "202": {
            "description": "The operation will be completed asynchronously."
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Cluster"
        ],
        "x-ms-examples": {
          "Create or update cluster": {
            "parameters": {
              "api-version": "2017-09-01-preview",
              "clusterName": "demo_cluster",
              "parameters": {
                "location": "eastus",
                "properties": {
                  "nodeSetup": {
                    "mountVolumes": {
                      "azureFileShares": [
                        {
                          "accountName": "storage_account_name",
                          "azureFileUrl": "https://storage_account_name.file.core.windows.net/azure_file_share_name",
                          "credentials": {
                            "accountKey": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000=="
                          },
                          "directoryMode": "0777",
                          "fileMode": "0777",
                          "relativeMountPath": "azfiles"
                        }
                      ],
                      "fileServers": [
                        {
                          "fileServer": {
                            "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/fileservers/fileservercedd134b"
                          },
                          "mountOptions": "rw",
                          "relativeMountPath": "nfs"
                        }
                      ]
                    }
                  },
                  "scaleSettings": {
                    "manual": {
                      "nodeDeallocationOption": "requeue",
                      "targetNodeCount": 1
                    }
                  },
                  "userAccountSettings": {
                    "adminUserName": "admin_user_name",
                    "adminUserPassword": "admin_user_password",
                    "adminUserSshPublicKey": "ssh-rsa AAAAB3NzaC1yc..."
                  },
                  "vmPriority": "dedicated",
                  "vmSize": "STANDARD_NC6"
                }
              },
              "resourceGroupName": "demo_resource_group",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/clusters/demo_cluster",
                  "location": "eastus",
                  "name": "demo_cluster",
                  "properties": {
                    "allocationState": "resizing",
                    "allocationStateTransitionTime": "2017-09-27T21:50:04.521Z",
                    "creationTime": "2017-09-27T21:50:02.377Z",
                    "currentNodeCount": 0,
                    "nodeSetup": {
                      "mountVolumes": {
                        "azureFileShares": [
                          {
                            "accountName": "storage_account_name",
                            "azureFileUrl": "https://storage_account_name.file.core.windows.net/azure_file_share_name",
                            "credentials": {},
                            "directoryMode": "0777",
                            "fileMode": "0777",
                            "relativeMountPath": "azfiles"
                          }
                        ],
                        "fileServers": [
                          {
                            "fileServer": {
                              "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/fileservers/fileservercedd134b"
                            },
                            "mountOptions": "rw",
                            "relativeMountPath": "nfs"
                          }
                        ]
                      }
                    },
                    "nodeStateCounts": {
                      "idleNodeCount": 0,
                      "leavingNodeCount": 0,
                      "preparingNodeCount": 0,
                      "runningNodeCount": 0,
                      "unusableNodeCount": 0
                    },
                    "provisioningState": "succeeded",
                    "provisioningStateTransitionTime": "2017-09-27T21:50:03.828Z",
                    "scaleSettings": {
                      "manual": {
                        "nodeDeallocationOption": "requeue",
                        "targetNodeCount": 1
                      }
                    },
                    "subnet": {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.Network/virtualNetworks/7feb1976-8c31-4f1f-bea2-86cb1839a7bavnet/subnets/Subnet-1"
                    },
                    "userAccountSettings": {
                      "adminUserName": "admin_user_name"
                    },
                    "virtualMachineConfiguration": {
                      "imageReference": {
                        "offer": "UbuntuServer",
                        "publisher": "Canonical",
                        "sku": "16.04-LTS",
                        "version": "latest"
                      }
                    },
                    "vmPriority": "dedicated",
                    "vmSize": "STANDARD_NC6"
                  },
                  "type": "Microsoft.BatchAI/Clusters"
                }
              },
              "202": {
                "headers": {
                  "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.BatchAI/locations/eastus/operationresults/7e69f371-db62-4183-bba0-5ee577d43bd7?api-version=2017-09-01-preview",
                  "Retry-After": 15
                }
              }
            }
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BatchAI/clusters/{clusterName}/listRemoteLoginInformation": {
      "post": {
        "description": "Get the IP address, port of all the compute nodes in the cluster.",
        "operationId": "Clusters_ListRemoteLoginInformation",
        "parameters": [
          {
            "$ref": "#/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/ClusterNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful. The response contains the list of IP addresses.",
            "schema": {
              "$ref": "#/definitions/RemoteLoginInformationListResult"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Cluster"
        ],
        "x-ms-examples": {
          "Get a cluster's remote-login-information": {
            "parameters": {
              "api-version": "2017-09-01-preview",
              "clusterName": "demo_cluster",
              "resourceGroupName": "demo_resource_group",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "ipAddress": "13.84.190.124",
                      "nodeId": "tvm-3601533753_1-20170719t162906z",
                      "port": 50000
                    },
                    {
                      "ipAddress": "13.84.190.124",
                      "nodeId": "tvm-3601533753_2-20170719t162906z",
                      "port": 50001
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BatchAI/fileServers": {
      "get": {
        "description": "Gets a formatted list of file servers and their properties associated within the specified resource group.",
        "operationId": "FileServers_ListByResourceGroup",
        "parameters": [
          {
            "$ref": "#/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/FilterParameter"
          },
          {
            "$ref": "#/parameters/SelectParameter"
          },
          {
            "$ref": "#/parameters/MaxResultsParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful. The response contains a list of formatted file servers and their properties associated with the resource group.",
            "schema": {
              "$ref": "#/definitions/FileServerListResult"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "FileServer"
        ],
        "x-ms-examples": {
          "List file servers": {
            "parameters": {
              "api-version": "2017-09-01-preview",
              "resourceGroupName": "demo_resource_group",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/fileservers/fileservercedd134b",
                      "location": "eastus",
                      "name": "fileservercedd134b",
                      "properties": {
                        "creationTime": "2017-09-27T21:45:28.159Z",
                        "dataDisks": {
                          "cachingType": "none",
                          "diskCount": 2,
                          "diskSizeInGB": 10,
                          "storageAccountType": "Standard_LRS"
                        },
                        "mountSettings": {
                          "fileServerInternalIP": "10.0.0.4",
                          "fileServerPublicIP": "13.90.141.66",
                          "fileServerType": "nfs",
                          "mountPoint": "/mnt/data"
                        },
                        "provisioningState": "succeeded",
                        "provisioningStateTransitionTime": "2017-09-27T21:49:25.416Z",
                        "sshConfiguration": {
                          "userAccountSettings": {
                            "adminUserName": "admin_user_name"
                          }
                        },
                        "subnet": {
                          "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.Network/virtualNetworks/7feb1976-8c31-4f1f-bea2-86cb1839a7bavnet/subnets/Subnet-1"
                        },
                        "vmSize": "STANDARD_NC6"
                      },
                      "type": "Microsoft.BatchAI/FileServers"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BatchAI/fileServers/{fileServerName}": {
      "delete": {
        "description": "Delete a file Server.",
        "operationId": "FileServers_Delete",
        "parameters": [
          {
            "$ref": "#/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/FileServerNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful."
          },
          "202": {
            "description": "The operation will be completed asynchronously."
          },
          "204": {
            "description": "No content."
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "FileServer"
        ],
        "x-ms-examples": {
          "Delete file server": {
            "parameters": {
              "api-version": "2017-09-01-preview",
              "fileServerName": "demo_nfs",
              "resourceGroupName": "demo_resource_group",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {},
              "202": {
                "headers": {
                  "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.BatchAI/locations/eastus/operationresults/7e69f371-db62-4183-bba0-5ee577d43bd7?api-version=2017-09-01-preview",
                  "Retry-After": 15
                }
              },
              "204": {}
            }
          }
        },
        "x-ms-long-running-operation": true
      },
      "get": {
        "description": "Gets information about the specified Cluster.",
        "operationId": "FileServers_Get",
        "parameters": [
          {
            "$ref": "#/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/FileServerNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful. The response contains information about the FileServer.",
            "schema": {
              "$ref": "#/definitions/FileServer"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "FileServer"
        ],
        "x-ms-examples": {
          "Get file server": {
            "parameters": {
              "api-version": "2017-09-01-preview",
              "fileServerName": "demo_nfs",
              "resourceGroupName": "demo_resource_group",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/fileservers/fileservercedd134b",
                  "location": "eastus",
                  "name": "fileservercedd134b",
                  "properties": {
                    "creationTime": "2017-09-27T21:45:28.159Z",
                    "dataDisks": {
                      "cachingType": "none",
                      "diskCount": 2,
                      "diskSizeInGB": 10,
                      "storageAccountType": "Standard_LRS"
                    },
                    "mountSettings": {
                      "fileServerInternalIP": "10.0.0.4",
                      "fileServerPublicIP": "13.90.141.66",
                      "fileServerType": "nfs",
                      "mountPoint": "/mnt/data"
                    },
                    "provisioningState": "succeeded",
                    "provisioningStateTransitionTime": "2017-09-27T21:49:25.416Z",
                    "sshConfiguration": {
                      "userAccountSettings": {
                        "adminUserName": "admin_user_name"
                      }
                    },
                    "subnet": {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.Network/virtualNetworks/7feb1976-8c31-4f1f-bea2-86cb1839a7bavnet/subnets/Subnet-1"
                    },
                    "vmSize": "STANDARD_NC6"
                  },
                  "type": "Microsoft.BatchAI/FileServers"
                }
              }
            }
          }
        }
      },
      "put": {
        "description": "Creates a file server.",
        "operationId": "FileServers_Create",
        "parameters": [
          {
            "$ref": "#/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/FileServerNameParameter"
          },
          {
            "description": "The parameters to provide for file server creation.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/FileServerCreateParameters"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful. The response contains the file server entity.",
            "schema": {
              "$ref": "#/definitions/FileServer"
            }
          },
          "202": {
            "description": "The operation will be completed asynchronously."
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "FileServer"
        ],
        "x-ms-examples": {
          "Create or update file server": {
            "parameters": {
              "api-version": "2017-09-01-preview",
              "fileServerName": "demo_nfs",
              "parameters": {
                "location": "eastus",
                "properties": {
                  "dataDisks": {
                    "diskCount": 2,
                    "diskSizeInGB": 10,
                    "storageAccountType": "Standard_LRS"
                  },
                  "sshConfiguration": {
                    "userAccountSettings": {
                      "adminUserName": "admin_user_name",
                      "adminUserPassword": "admin_user_password"
                    }
                  },
                  "vmSize": "STANDARD_NC6"
                }
              },
              "resourceGroupName": "demo_resource_group",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/fileservers/fileservercedd134b",
                  "location": "eastus",
                  "name": "demo_nfs",
                  "properties": {
                    "creationTime": "2017-09-27T21:45:28.159Z",
                    "dataDisks": {
                      "cachingType": "none",
                      "diskCount": 2,
                      "diskSizeInGB": 10,
                      "storageAccountType": "Standard_LRS"
                    },
                    "mountSettings": {
                      "fileServerInternalIP": "10.0.0.4",
                      "fileServerPublicIP": "13.90.141.66",
                      "fileServerType": "nfs",
                      "mountPoint": "/mnt/data"
                    },
                    "provisioningState": "succeeded",
                    "provisioningStateTransitionTime": "2017-09-27T21:49:25.416Z",
                    "sshConfiguration": {
                      "userAccountSettings": {
                        "adminUserName": "admin_user_name"
                      }
                    },
                    "subnet": {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.Network/virtualNetworks/7feb1976-8c31-4f1f-bea2-86cb1839a7bavnet/subnets/Subnet-1"
                    },
                    "vmSize": "STANDARD_NC6"
                  },
                  "type": "Microsoft.BatchAI/FileServers"
                }
              },
              "202": {
                "headers": {
                  "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.BatchAI/locations/eastus/operationresults/7e69f371-db62-4183-bba0-5ee577d43bd7?api-version=2017-09-01-preview",
                  "Retry-After": 15
                }
              }
            }
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BatchAI/jobs": {
      "get": {
        "description": "Gets information about the Batch AI jobs associated within the specified resource group.",
        "operationId": "Jobs_ListByResourceGroup",
        "parameters": [
          {
            "$ref": "#/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/FilterParameter"
          },
          {
            "$ref": "#/parameters/SelectParameter"
          },
          {
            "$ref": "#/parameters/MaxResultsParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful. The response contains a list of Job entities associated with the resource group.",
            "schema": {
              "$ref": "#/definitions/JobListResult"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Job"
        ],
        "x-ms-examples": {
          "List jobs": {
            "parameters": {
              "api-version": "2017-09-01-preview",
              "resourceGroupName": "demo_resource_group",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/jobs/job",
                      "name": "job",
                      "properties": {
                        "cluster": {
                          "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/clusters/demo_cluster"
                        },
                        "constraints": {
                          "maxWallClockTime": "P7D"
                        },
                        "containerSettings": {
                          "imageSourceRegistry": {
                            "image": "ubuntu"
                          }
                        },
                        "creationTime": "2017-09-27T23:36:52.611Z",
                        "customToolkitSettings": {
                          "commandLine": "echo hi | tee $AZ_BATCHAI_OUTPUT_OUTPUTS/hi.txt"
                        },
                        "executionInfo": {
                          "startTime": "2017-09-27T23:36:54.115Z"
                        },
                        "executionState": "running",
                        "executionStateTransitionTime": "2017-09-27T23:36:56.395Z",
                        "inputDirectories": [
                          {
                            "id": "INPUT",
                            "path": "$AZ_BATCHAI_MOUNT_ROOT/azfiles/input"
                          }
                        ],
                        "nodeCount": 1,
                        "outputDirectories": [
                          {
                            "createNew": true,
                            "id": "OUTPUTS",
                            "pathPrefix": "$AZ_BATCHAI_MOUNT_ROOT/azfiles/",
                            "pathSuffix": "files",
                            "type": "custom"
                          }
                        ],
                        "priority": 0,
                        "provisioningState": "succeeded",
                        "provisioningStateTransitionTime": "2017-09-27T23:36:53.701Z",
                        "stdOutErrPathPrefix": "$AZ_BATCHAI_MOUNT_ROOT/azfiles",
                        "toolType": "custom"
                      },
                      "type": "Microsoft.BatchAI/Jobs"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BatchAI/jobs/{jobName}": {
      "delete": {
        "description": "Deletes the specified Batch AI job.",
        "operationId": "Jobs_Delete",
        "parameters": [
          {
            "$ref": "#/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/JobNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful."
          },
          "202": {
            "description": "The operation will be completed asynchronously."
          },
          "204": {
            "description": "No content."
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Job"
        ],
        "x-ms-examples": {
          "Delete job": {
            "parameters": {
              "api-version": "2017-09-01-preview",
              "jobName": "demo_job",
              "resourceGroupName": "demo_resource_group",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {},
              "202": {
                "headers": {
                  "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.BatchAI/locations/eastus/operationresults/7e69f371-db62-4183-bba0-5ee577d43bd7?api-version=2017-09-01-preview",
                  "Retry-After": 15
                }
              },
              "204": {}
            }
          }
        },
        "x-ms-long-running-operation": true
      },
      "get": {
        "description": "Gets information about the specified Batch AI job.",
        "operationId": "Jobs_Get",
        "parameters": [
          {
            "$ref": "#/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/JobNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful. The response contains the Batch AI job entity.",
            "schema": {
              "$ref": "#/definitions/Job"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Job"
        ],
        "x-ms-examples": {
          "Get job": {
            "parameters": {
              "api-version": "2017-09-01-preview",
              "jobName": "demo_job",
              "resourceGroupName": "demo_resource_group",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/jobs/job",
                  "name": "job",
                  "properties": {
                    "cluster": {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/clusters/demo_cluster"
                    },
                    "constraints": {
                      "maxWallClockTime": "P7D"
                    },
                    "containerSettings": {
                      "imageSourceRegistry": {
                        "image": "ubuntu"
                      }
                    },
                    "creationTime": "2017-09-27T23:36:52.611Z",
                    "customToolkitSettings": {
                      "commandLine": "echo hi | tee $AZ_BATCHAI_OUTPUT_OUTPUTS/hi.txt"
                    },
                    "executionInfo": {
                      "startTime": "2017-09-27T23:36:54.115Z"
                    },
                    "executionState": "running",
                    "executionStateTransitionTime": "2017-09-27T23:36:56.395Z",
                    "inputDirectories": [
                      {
                        "id": "INPUT",
                        "path": "$AZ_BATCHAI_MOUNT_ROOT/azfiles/input"
                      }
                    ],
                    "nodeCount": 1,
                    "outputDirectories": [
                      {
                        "createNew": true,
                        "id": "OUTPUTS",
                        "pathPrefix": "$AZ_BATCHAI_MOUNT_ROOT/azfiles/",
                        "pathSuffix": "files",
                        "type": "custom"
                      }
                    ],
                    "priority": 0,
                    "provisioningState": "succeeded",
                    "provisioningStateTransitionTime": "2017-09-27T23:36:53.701Z",
                    "stdOutErrPathPrefix": "$AZ_BATCHAI_MOUNT_ROOT/azfiles",
                    "toolType": "custom"
                  },
                  "type": "Microsoft.BatchAI/Jobs"
                }
              }
            }
          }
        }
      },
      "put": {
        "description": "Adds a Job that gets executed on a cluster.",
        "operationId": "Jobs_Create",
        "parameters": [
          {
            "$ref": "#/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/JobNameParameter"
          },
          {
            "description": "The parameters to provide for job creation.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/JobCreateParameters"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful. The response contains the job entity.",
            "schema": {
              "$ref": "#/definitions/Job"
            }
          },
          "202": {
            "description": "The operation will be completed asynchronously."
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Job"
        ],
        "x-ms-examples": {
          "Create or update job": {
            "parameters": {
              "api-version": "2017-09-01-preview",
              "jobName": "demo_job",
              "parameters": {
                "location": "eastus",
                "properties": {
                  "cluster": {
                    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/clusters/demo_cluster"
                  },
                  "containerSettings": {
                    "imageSourceRegistry": {
                      "image": "ubuntu"
                    }
                  },
                  "customToolkitSettings": {
                    "commandLine": "echo hi | tee $AZ_BATCHAI_OUTPUT_OUTPUTS/hi.txt"
                  },
                  "inputDirectories": [
                    {
                      "id": "INPUT",
                      "path": "$AZ_BATCHAI_MOUNT_ROOT/azfiles/input"
                    }
                  ],
                  "nodeCount": 1,
                  "outputDirectories": [
                    {
                      "createNew": true,
                      "id": "OUTPUTS",
                      "pathPrefix": "$AZ_BATCHAI_MOUNT_ROOT/azfiles/",
                      "pathSuffix": "files",
                      "type": "custom"
                    }
                  ],
                  "priority": 0,
                  "stdOutErrPathPrefix": "$AZ_BATCHAI_MOUNT_ROOT/azfiles"
                }
              },
              "resourceGroupName": "demo_resource_group",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/jobs/demo_job",
                  "name": "demo_job",
                  "properties": {
                    "cluster": {
                      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.BatchAI/clusters/demo_cluster"
                    },
                    "constraints": {
                      "maxWallClockTime": "P7D"
                    },
                    "containerSettings": {
                      "imageSourceRegistry": {
                        "image": "ubuntu"
                      }
                    },
                    "creationTime": "2017-09-27T23:36:52.611Z",
                    "customToolkitSettings": {
                      "commandLine": "echo hi | tee $AZ_BATCHAI_OUTPUT_OUTPUTS/hi.txt"
                    },
                    "executionInfo": {
                      "startTime": "2017-09-27T23:36:54.115Z"
                    },
                    "executionState": "running",
                    "executionStateTransitionTime": "2017-09-27T23:36:56.395Z",
                    "inputDirectories": [
                      {
                        "id": "INPUT",
                        "path": "$AZ_BATCHAI_MOUNT_ROOT/azfiles/input"
                      }
                    ],
                    "nodeCount": 1,
                    "outputDirectories": [
                      {
                        "createNew": true,
                        "id": "OUTPUTS",
                        "pathPrefix": "$AZ_BATCHAI_MOUNT_ROOT/azfiles/",
                        "pathSuffix": "files",
                        "type": "custom"
                      }
                    ],
                    "priority": 0,
                    "provisioningState": "succeeded",
                    "provisioningStateTransitionTime": "2017-09-27T23:36:53.701Z",
                    "stdOutErrPathPrefix": "$AZ_BATCHAI_MOUNT_ROOT/azfiles",
                    "toolType": "custom"
                  },
                  "type": "Microsoft.BatchAI/Job"
                }
              },
              "202": {
                "headers": {
                  "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.BatchAI/locations/eastus/operationresults/7e69f371-db62-4183-bba0-5ee577d43bd7?api-version=2017-09-01-preview",
                  "Retry-After": 15
                }
              }
            }
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BatchAI/jobs/{jobName}/listOutputFiles": {
      "post": {
        "description": "List all files inside the given output directory (Only if the output directory is on Azure File Share or Azure Storage container).",
        "operationId": "Jobs_ListOutputFiles",
        "parameters": [
          {
            "$ref": "#/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/JobNameParameter"
          },
          {
            "$ref": "#/parameters/OutputDirectoryIdParameter"
          },
          {
            "$ref": "#/parameters/DownloadLinkExpiryParameter"
          },
          {
            "$ref": "#/parameters/MaxResultsParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful. The response contains the list of job files.",
            "schema": {
              "$ref": "#/definitions/FileListResult"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Job"
        ],
        "x-ms-examples": {
          "List a job's files": {
            "parameters": {
              "api-version": "2017-09-01-preview",
              "jobName": "demo_job",
              "outputdirectoryid": "stdouterr",
              "resourceGroupName": "demo_resource_group",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "downloadUrl": "https://storage_account_name.file.core.windows.net/share/00000000-0000-0000-0000-000000000000/test_mgmt_batchai_jobs_test_job_preparation_hoste0e613b6/jobs/job/host_prep_stderr.txt?sv=2016-05-31&sr=f&sig=CNPJmjDQT9Anld9%2FdnQ52ZBpfOff2el8r4el6J%2BnpJE%3D&se=2017-09-28T01%3A22%3A35Z&sp=rl",
                      "name": "stderr-job_prep.txt",
                      "properties": {
                        "contentLength": 0,
                        "lastModified": "2017-09-28T00:22:19Z"
                      }
                    },
                    {
                      "downloadUrl": "https://storage_account_name.file.core.windows.net/share/00000000-0000-0000-0000-000000000000/test_mgmt_batchai_jobs_test_job_preparation_hoste0e613b6/jobs/job/host_prep_stdout.txt?sv=2016-05-31&sr=f&sig=yK%2F5acWSTdcmBZGGL9%2F3IqeZ7N%2B1sRXfwB%2FaCkoRS%2Bc%3D&se=2017-09-28T01%3A22%3A35Z&sp=rl",
                      "name": "stdout-job_prep.txt",
                      "properties": {
                        "contentLength": 720,
                        "lastModified": "2017-09-28T00:22:19Z"
                      }
                    },
                    {
                      "downloadUrl": "https://storage_account_name.file.core.windows.net/share/00000000-0000-0000-0000-000000000000/test_mgmt_batchai_jobs_test_job_preparation_hoste0e613b6/jobs/job/stderr.txt?sv=2016-05-31&sr=f&sig=TdvHhdQjvWWA0Z7aPb0oZpPgGbBPOyDarNXWHFnRS3c%3D&se=2017-09-28T01%3A22%3A35Z&sp=rl",
                      "name": "stderr.txt",
                      "properties": {
                        "contentLength": 0,
                        "lastModified": "2017-09-28T00:22:19Z"
                      }
                    },
                    {
                      "downloadUrl": "https://storage_account_name.file.core.windows.net/share/00000000-0000-0000-0000-000000000000/test_mgmt_batchai_jobs_test_job_preparation_hoste0e613b6/jobs/job/stdout.txt?sv=2016-05-31&sr=f&sig=nyydEjNnYpQfovknJc%2B5G%2F05g0IV4acWKlfkM35lh00%3D&se=2017-09-28T01%3A22%3A35Z&sp=rl",
                      "name": "stdout.txt",
                      "properties": {
                        "contentLength": 32,
                        "lastModified": "2017-09-28T00:22:19Z"
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BatchAI/jobs/{jobName}/listRemoteLoginInformation": {
      "post": {
        "description": "Gets the IP address and port information of all the compute nodes which are used for job execution.",
        "operationId": "Jobs_ListRemoteLoginInformation",
        "parameters": [
          {
            "$ref": "#/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/JobNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful. The response contains compute node remote login information.",
            "schema": {
              "$ref": "#/definitions/RemoteLoginInformationListResult"
            }
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Job"
        ],
        "x-ms-examples": {
          "Get a job's remote-login-information ": {
            "parameters": {
              "api-version": "2017-09-01-preview",
              "jobName": "demo_job",
              "resourceGroupName": "demo_resource_group",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "ipAddress": "13.84.190.124",
                      "nodeId": "tvm-3601533753_1-20170719t162906z",
                      "port": 50000
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BatchAI/jobs/{jobName}/terminate": {
      "post": {
        "description": "Terminates a job.",
        "operationId": "Jobs_Terminate",
        "parameters": [
          {
            "$ref": "#/parameters/ResourceGroupNameParameter"
          },
          {
            "$ref": "#/parameters/JobNameParameter"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful."
          },
          "202": {
            "description": "The operation will be completed asynchronously."
          },
          "default": {
            "description": "Error response describing why the operation failed.",
            "schema": {
              "$ref": "#/definitions/CloudError"
            }
          }
        },
        "tags": [
          "Job"
        ],
        "x-ms-examples": {
          "Terminate job": {
            "parameters": {
              "api-version": "2017-09-01-preview",
              "jobName": "demo_job",
              "resourceGroupName": "demo_resource_group",
              "subscriptionId": "00000000-0000-0000-0000-000000000000"
            },
            "responses": {
              "200": {},
              "202": {
                "headers": {
                  "Location": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.BatchAI/locations/eastus/operationresults/7e69f371-db62-4183-bba0-5ee577d43bd7?api-version=2017-09-01-preview",
                  "Retry-After": 15
                }
              }
            }
          }
        },
        "x-ms-long-running-operation": true
      }
    }
  },
  "definitions": {
    "AutoScaleSettings": {
      "description": "The system automatically scales the cluster up and down (within minimumNodeCount and maximumNodeCount) based on the pending and running jobs on the cluster.",
      "properties": {
        "initialNodeCount": {
          "default": 0,
          "format": "int32",
          "title": "Specifies the number of compute nodes to allocate on cluster creation. Note that this value is used only during cluster creation.",
          "type": "integer"
        },
        "maximumNodeCount": {
          "format": "int32",
          "title": "Specifies the maximum number of compute nodes the cluster can have.",
          "type": "integer"
        },
        "minimumNodeCount": {
          "format": "int32",
          "title": "Specifies the minimum number of compute nodes the cluster can have.",
          "type": "integer"
        }
      },
      "required": [
        "minimumNodeCount",
        "maximumNodeCount"
      ]
    },
    "AzureBlobFileSystemReference": {
      "description": "Provides required information, for the service to be able to mount Azure Blob Storage container on the cluster nodes.",
      "properties": {
        "accountName": {
          "title": "Name of the Azure Blob Storage account.",
          "type": "string"
        },
        "containerName": {
          "title": "Name of the Azure Blob Storage container to mount on the cluster.",
          "type": "string"
        },
        "credentials": {
          "$ref": "#/definitions/AzureStorageCredentialsInfo",
          "title": "Information of the Azure Blob Storage account credentials."
        },
        "mountOptions": {
          "title": "Specifies the various mount options that can be used to configure Blob file system.",
          "type": "string"
        },
        "relativeMountPath": {
          "description": "Note that all blob file systems will be mounted under $AZ_BATCHAI_MOUNT_ROOT location.",
          "title": "Specifies the relative path on the compute node where the Azure Blob file system will be mounted.",
          "type": "string"
        }
      },
      "required": [
        "accountName",
        "containerName",
        "credentials",
        "relativeMountPath"
      ]
    },
    "AzureFileShareReference": {
      "description": "Details of the Azure File Share to mount on the cluster.",
      "properties": {
        "accountName": {
          "title": "Name of the storage account.",
          "type": "string"
        },
        "azureFileUrl": {
          "title": "URL to access the Azure File.",
          "type": "string"
        },
        "credentials": {
          "$ref": "#/definitions/AzureStorageCredentialsInfo",
          "title": "Information of the Azure File credentials."
        },
        "directoryMode": {
          "default": "0777",
          "description": "Default value is 0777. Valid only if OS is linux.",
          "title": "Specifies the directory Mode.",
          "type": "string"
        },
        "fileMode": {
          "default": "0777",
          "description": "Default value is 0777. Valid only if OS is linux.",
          "title": "Specifies the file mode.",
          "type": "string"
        },
        "relativeMountPath": {
          "description": "Note that all file shares will be mounted under $AZ_BATCHAI_MOUNT_ROOT location.",
          "title": "Specifies the relative path on the compute node where the Azure file share will be mounted.",
          "type": "string"
        }
      },
      "required": [
        "accountName",
        "azureFileUrl",
        "credentials",
        "relativeMountPath"
      ]
    },
    "AzureStorageCredentialsInfo": {
      "description": "Credentials to access Azure File Share.",
      "properties": {
        "accountKey": {
          "description": "One of accountKey or accountKeySecretReference must be specified.",
          "title": "Storage account key.",
          "type": "string"
        },
        "accountKeySecretReference": {
          "$ref": "#/definitions/KeyVaultSecretReference",
          "description": "Users can store their secrets in Azure KeyVault and pass it to the Batch AI Service to integrate with KeyVault. One of accountKey or accountKeySecretReference must be specified.",
          "title": "Specifies the location of the storage account key, which is a Key Vault Secret."
        }
      }
    },
    "BatchAIError": {
      "description": "An error response from the Batch AI service.",
      "properties": {
        "code": {
          "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically.",
          "type": "string"
        },
        "details": {
          "description": "A list of additional details about the error.",
          "items": {
            "$ref": "#/definitions/NameValuePair"
          },
          "type": "array"
        },
        "message": {
          "description": "A message describing the error, intended to be suitable for display in a user interface.",
          "type": "string"
        }
      }
    },
    "CNTKsettings": {
      "description": "Specifies the settings for CNTK (aka Microsoft Cognitive Toolkit) job.",
      "properties": {
        "commandLineArgs": {
          "title": "Command line arguments that needs to be passed to the python script or CNTK.exe.",
          "type": "string"
        },
        "configFilePath": {
          "description": "This property can be specified only if the languageType is 'BrainScript'.",
          "title": "Specifies the path of the config file.",
          "type": "string"
        },
        "languageType": {
          "description": "Valid values are 'BrainScript' or 'Python'.",
          "title": "Specifies the language type to use for launching CNTK (aka Microsoft Cognitive Toolkit) job.",
          "type": "string"
        },
        "processCount": {
          "description": "The default value for this property is equal to nodeCount property",
          "format": "int32",
          "title": "Number of processes parameter that is passed to MPI runtime.",
          "type": "integer"
        },
        "pythonInterpreterPath": {
          "description": "This property can be specified only if the languageType is 'Python'.",
          "title": "The path to python interpreter.",
          "type": "string"
        },
        "pythonScriptFilePath": {
          "description": "This property can be specified only if the languageType is 'Python'.",
          "title": "The path and file name of the python script to execute the job.",
          "type": "string"
        }
      }
    },
    "Caffe2Settings": {
      "description": "Specifies the settings for Caffe2 job.",
      "properties": {
        "commandLineArgs": {
          "title": "Command line arguments that needs to be passed to the python script",
          "type": "string"
        },
        "pythonInterpreterPath": {
          "title": "The path to python interpreter.",
          "type": "string"
        },
        "pythonScriptFilePath": {
          "title": "The path and file name of the python script to execute the job.",
          "type": "string"
        }
      },
      "required": [
        "pythonScriptFilePath"
      ]
    },
    "CaffeSettings": {
      "description": "Specifies the settings for Caffe job.",
      "properties": {
        "commandLineArgs": {
          "title": "Command line arguments that needs to be passed to the Caffe job.",
          "type": "string"
        },
        "configFilePath": {
          "description": "This property cannot be specified if pythonScriptFilePath is specified.",
          "title": "Specifies the path of the config file.",
          "type": "string"
        },
        "processCount": {
          "description": "The default value for this property is equal to nodeCount property",
          "format": "int32",
          "title": "Number of processes parameter that is passed to MPI runtime.",
          "type": "integer"
        },
        "pythonInterpreterPath": {
          "description": "This property can be specified only if the pythonScriptFilePath is specified.",
          "title": "The path to python interpreter.",
          "type": "string"
        },
        "pythonScriptFilePath": {
          "description": "This property cannot be specified if configFilePath is specified.",
          "title": "The path and file name of the python script to execute the job.",
          "type": "string"
        }
      }
    },
    "ChainerSettings": {
      "description": "Specifies the settings for Chainer job.",
      "properties": {
        "commandLineArgs": {
          "title": "Command line arguments that needs to be passed to the python script",
          "type": "string"
        },
        "processCount": {
          "description": "The default value for this property is equal to nodeCount property",
          "format": "int32",
          "title": "Number of processes parameter that is passed to MPI runtime.",
          "type": "integer"
        },
        "pythonInterpreterPath": {
          "title": "The path to python interpreter.",
          "type": "string"
        },
        "pythonScriptFilePath": {
          "title": "The path and file name of the python script to execute the job.",
          "type": "string"
        }
      },
      "required": [
        "pythonScriptFilePath"
      ]
    },
    "CloudError": {
      "description": "An error response from the Batch AI service.",
      "properties": {
        "error": {
          "$ref": "#/definitions/CloudErrorBody",
          "description": "An error response from the Batch AI service."
        }
      },
      "x-ms-external": true
    },
    "CloudErrorBody": {
      "description": "An error response from the Batch AI service.",
      "properties": {
        "code": {
          "description": "An identifier for the error. Codes are invariant and are intended to be consumed programmatically.",
          "type": "string"
        },
        "details": {
          "description": "A list of additional details about the error.",
          "items": {
            "$ref": "#/definitions/CloudErrorBody"
          },
          "type": "array"
        },
        "message": {
          "description": "A message describing the error, intended to be suitable for display in a user interface.",
          "type": "string"
        },
        "target": {
          "description": "The target of the particular error. For example, the name of the property in error.",
          "type": "string"
        }
      },
      "x-ms-external": true
    },
    "Cluster": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Contains information about a Cluster.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/ClusterProperties",
          "description": "The properties associated with the Cluster.",
          "x-ms-client-flatten": true
        }
      }
    },
    "ClusterBaseProperties": {
      "description": "The properties of a Cluster.",
      "properties": {
        "nodeSetup": {
          "$ref": "#/definitions/NodeSetup",
          "title": "Setup to be done on all compute nodes in the cluster."
        },
        "scaleSettings": {
          "$ref": "#/definitions/ScaleSettings",
          "title": "Desired scale for the cluster."
        },
        "subnet": {
          "$ref": "#/definitions/ResourceId",
          "title": "Specifies the identifier of the subnet. "
        },
        "userAccountSettings": {
          "$ref": "#/definitions/UserAccountSettings",
          "title": "Settings for user account that will be created on all compute nodes of the cluster."
        },
        "virtualMachineConfiguration": {
          "$ref": "#/definitions/VirtualMachineConfiguration",
          "title": "Settings for OS image and mounted data volumes."
        },
        "vmPriority": {
          "default": "dedicated",
          "description": "Default is dedicated.",
          "enum": [
            "dedicated",
            "lowpriority"
          ],
          "title": "dedicated or lowpriority.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "VmPriority"
          }
        },
        "vmSize": {
          "description": "All virtual machines in a cluster are the same size. For information about available VM sizes for clusters using images from the Virtual Machines Marketplace (see Sizes for Virtual Machines (Linux) or Sizes for Virtual Machines (Windows). Batch AI service 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 cluster.",
          "type": "string"
        }
      },
      "required": [
        "vmSize",
        "userAccountSettings"
      ]
    },
    "ClusterCreateParameters": {
      "description": "Parameters supplied to the Create operation.",
      "properties": {
        "location": {
          "description": "The region in which to create the cluster.",
          "type": "string"
        },
        "properties": {
          "$ref": "#/definitions/ClusterBaseProperties",
          "description": "The properties of the Cluster.",
          "x-ms-client-flatten": true
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The user specified tags associated with the Cluster.",
          "type": "object"
        }
      },
      "required": [
        "location"
      ]
    },
    "ClusterListResult": {
      "description": "Values returned by the List Clusters operation.",
      "properties": {
        "nextLink": {
          "description": "The continuation token.",
          "type": "string"
        },
        "value": {
          "description": "The collection of returned Clusters.",
          "items": {
            "$ref": "#/definitions/Cluster"
          },
          "type": "array"
        }
      }
    },
    "ClusterProperties": {
      "description": "Job specific properties.",
      "properties": {
        "allocationState": {
          "description": "Possible values are: steady and resizing. steady state indicates that the cluster is not resizing. There are no changes to the number of compute nodes in the cluster in progress. A cluster enters this state when it is created and when no operations are being performed on the cluster to change the number of compute nodes. resizing state indicates that the cluster is resizing; that is, compute nodes are being added to or removed from the cluster.",
          "enum": [
            "steady",
            "resizing"
          ],
          "readOnly": true,
          "title": "Indicates whether the cluster is resizing.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "AllocationState"
          }
        },
        "allocationStateTransitionTime": {
          "format": "date-time",
          "readOnly": true,
          "title": "The time at which the cluster entered its current allocation state.",
          "type": "string"
        },
        "creationTime": {
          "format": "date-time",
          "readOnly": true,
          "title": "The creation time of the cluster.",
          "type": "string"
        },
        "currentNodeCount": {
          "format": "int32",
          "readOnly": true,
          "title": "The number of compute nodes currently assigned to the cluster.",
          "type": "integer"
        },
        "errors": {
          "description": "This element contains all the errors encountered by various compute nodes during node setup.",
          "items": {
            "$ref": "#/definitions/BatchAIError"
          },
          "title": "Contains details of various errors on the cluster including resize and node setup task",
          "type": "array"
        },
        "nodeSetup": {
          "$ref": "#/definitions/NodeSetup",
          "title": "Setup to be done on all compute nodes in the Cluster."
        },
        "nodeStateCounts": {
          "$ref": "#/definitions/NodeStateCounts",
          "readOnly": true,
          "title": "Counts of various node states on the cluster."
        },
        "provisioningState": {
          "description": "Possible value are: creating - Specifies that the cluster is being created. succeeded - Specifies that the cluster has been created successfully. failed - Specifies that the cluster creation has failed. deleting - Specifies that the cluster is being deleted.",
          "enum": [
            "creating",
            "succeeded",
            "failed",
            "deleting"
          ],
          "readOnly": true,
          "title": "Specifies the provisioning state of the cluster.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "ProvisioningState"
          },
          "x-nullable": false
        },
        "provisioningStateTransitionTime": {
          "format": "date-time",
          "readOnly": true,
          "title": "The provisioning state transition time of the cluster.",
          "type": "string"
        },
        "scaleSettings": {
          "$ref": "#/definitions/ScaleSettings",
          "title": "Desired scale for the Cluster."
        },
        "subnet": {
          "$ref": "#/definitions/ResourceId",
          "title": "Specifies the identifier of the subnet."
        },
        "userAccountSettings": {
          "$ref": "#/definitions/UserAccountSettings",
          "title": "Settings for user account of compute nodes."
        },
        "virtualMachineConfiguration": {
          "$ref": "#/definitions/VirtualMachineConfiguration",
          "title": "Settings for OS image and mounted data volumes."
        },
        "vmPriority": {
          "default": "dedicated",
          "description": "The default value is dedicated. The node can get preempted while the task is running if lowpriority is chosen. This is best suited if the workload is checkpointing and can be restarted.",
          "enum": [
            "dedicated",
            "lowpriority"
          ],
          "title": "dedicated or lowpriority.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "VmPriority"
          }
        },
        "vmSize": {
          "description": "All virtual machines in a cluster are the same size. For information about available VM sizes for clusters using images from the Virtual Machines Marketplace (see Sizes for Virtual Machines (Linux) or Sizes for Virtual Machines (Windows). Batch AI service 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 cluster.",
          "type": "string"
        }
      }
    },
    "ClusterUpdateParameters": {
      "description": "Parameters supplied to the Update operation.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/ClusterUpdateProperties",
          "description": "The properties of the Cluster.",
          "x-ms-client-flatten": true
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The user specified tags associated with the Cluster.",
          "type": "object"
        }
      }
    },
    "ClusterUpdateProperties": {
      "description": "The properties of a Cluster that need to be updated.",
      "properties": {
        "scaleSettings": {
          "$ref": "#/definitions/ScaleSettings",
          "title": "Desired scale for the cluster"
        }
      }
    },
    "ContainerSettings": {
      "description": "Settings for the container to be downloaded.",
      "properties": {
        "imageSourceRegistry": {
          "$ref": "#/definitions/ImageSourceRegistry",
          "title": "Registry to download the container from."
        }
      },
      "required": [
        "imageSourceRegistry"
      ]
    },
    "CustomToolkitSettings": {
      "description": "Specifies the settings for a custom tool kit job.",
      "properties": {
        "commandLine": {
          "title": "The command line to execute the custom toolkit Job.",
          "type": "string"
        }
      }
    },
    "DataDisks": {
      "description": "Settings for the data disk which would be created for the File Server.",
      "properties": {
        "cachingType": {
          "default": "none",
          "enum": [
            "none",
            "readonly",
            "readwrite"
          ],
          "readOnly": true,
          "title": "None, ReadOnly, ReadWrite. Default value is None. This property is not patchable.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "CachingType"
          }
        },
        "diskCount": {
          "format": "int32",
          "readOnly": false,
          "title": "Number of data disks to be attached to the VM. RAID level 0 will be applied in the case of multiple disks.",
          "type": "integer"
        },
        "diskSizeInGB": {
          "format": "int32",
          "readOnly": false,
          "title": "Initial disk size in GB for blank data disks, and the new desired size for resizing existing data disks.",
          "type": "integer"
        },
        "storageAccountType": {
          "enum": [
            "Standard_LRS",
            "Premium_LRS"
          ],
          "readOnly": false,
          "title": "Specifies the type of storage account to be used on the disk. Possible values are: Standard_LRS or Premium_LRS.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "StorageAccountType"
          }
        }
      },
      "required": [
        "diskSizeInGB",
        "diskCount",
        "storageAccountType"
      ]
    },
    "DeallocationOption": {
      "default": "requeue",
      "description": "Possible values are: requeue - Terminate running jobs and requeue them. The jobs will run again. Remove compute nodes as soon as jobs have been terminated. terminate - Terminate running jobs. The jobs will not run again. Remove compute nodes as soon as jobs have been terminated. jobcompletion - Allow currently running jobs to complete. Schedule no new jobs while waiting. Remove compute nodes when all jobs have completed. The default value is requeue.",
      "enum": [
        "requeue",
        "terminate",
        "waitforjobcompletion",
        "unknown"
      ],
      "title": "Specifies when compute nodes may be removed from the cluster, if the cluster size is decreasing.",
      "type": "string",
      "x-ms-enum": {
        "modelAsString": false,
        "name": "DeallocationOption"
      }
    },
    "EnvironmentSetting": {
      "description": "A collection of environment variables to set.",
      "properties": {
        "name": {
          "title": "The name of the environment variable.",
          "type": "string"
        },
        "value": {
          "title": "The value of the environment variable.",
          "type": "string"
        }
      },
      "required": [
        "name"
      ]
    },
    "File": {
      "description": "Properties of the file.",
      "properties": {
        "downloadUrl": {
          "description": "This will be returned only if the model has been archived. During job run, this won't be returned and customers can use SSH tunneling to download. Users can use Get Remote Login Information API to get the IP address and port information of all the compute nodes running the job.",
          "title": "file download url, example: https://mystg.blob.core.windows.net/mycontainer/myModel_1.dnn",
          "type": "string"
        },
        "name": {
          "description": "file name",
          "type": "string"
        },
        "properties": {
          "$ref": "#/definitions/FileProperties",
          "description": "The properties associated with the file.",
          "x-ms-client-flatten": true
        }
      },
      "required": [
        "name",
        "downloadUrl"
      ]
    },
    "FileListResult": {
      "description": "Values returned by the List operation.",
      "properties": {
        "nextLink": {
          "description": "The continuation token.",
          "type": "string"
        },
        "value": {
          "description": "The collection of returned job files.",
          "items": {
            "$ref": "#/definitions/File"
          },
          "readOnly": true,
          "type": "array"
        }
      }
    },
    "FileProperties": {
      "description": "File specific properties.",
      "properties": {
        "contentLength": {
          "description": "The file size.",
          "format": "int64",
          "title": "The file size.",
          "type": "integer"
        },
        "lastModified": {
          "description": "The time at which the file was last modified.",
          "format": "date-time",
          "title": "The time at which the file was last modified.",
          "type": "string"
        }
      }
    },
    "FileServer": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Contains information about the File Server.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/FileServerProperties",
          "description": "The properties associated with the File Server.",
          "x-ms-client-flatten": true
        }
      }
    },
    "FileServerBaseProperties": {
      "description": "The properties of a file server.",
      "properties": {
        "dataDisks": {
          "$ref": "#/definitions/DataDisks",
          "title": "Settings for the data disk which would be created for the file server."
        },
        "sshConfiguration": {
          "$ref": "#/definitions/SshConfiguration",
          "title": "SSH settings for the file server."
        },
        "subnet": {
          "$ref": "#/definitions/ResourceId",
          "title": "Specifies the identifier of the subnet."
        },
        "vmSize": {
          "description": "For information about available VM sizes for fileservers from the Virtual Machines Marketplace, see Sizes for Virtual Machines (Linux).",
          "title": "The size of the virtual machine of the file server.",
          "type": "string"
        }
      },
      "required": [
        "vmSize",
        "sshConfiguration",
        "dataDisks"
      ]
    },
    "FileServerCreateParameters": {
      "description": "Parameters supplied to the Create operation.",
      "properties": {
        "location": {
          "description": "The region in which to create the File Server.",
          "type": "string"
        },
        "properties": {
          "$ref": "#/definitions/FileServerBaseProperties",
          "description": "The properties of the File Server.",
          "x-ms-client-flatten": true
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The user specified tags associated with the File Server.",
          "type": "object"
        }
      },
      "required": [
        "location"
      ]
    },
    "FileServerListResult": {
      "description": "Values returned by the List operation.",
      "properties": {
        "nextLink": {
          "description": "The continuation token.",
          "type": "string"
        },
        "value": {
          "description": "The collection of File Servers.",
          "items": {
            "$ref": "#/definitions/FileServer"
          },
          "type": "array"
        }
      }
    },
    "FileServerProperties": {
      "description": "File server specific properties.",
      "properties": {
        "creationTime": {
          "format": "date-time",
          "readOnly": true,
          "title": "Time when the FileServer was created.",
          "type": "string"
        },
        "dataDisks": {
          "$ref": "#/definitions/DataDisks",
          "title": "Settings for the data disk which would be created for the File Server."
        },
        "mountSettings": {
          "$ref": "#/definitions/MountSettings",
          "readOnly": true,
          "title": "Details of the File Server."
        },
        "provisioningState": {
          "description": "Possible values: creating - The File Server is getting created. updating - The File Server creation has been accepted and it is getting updated. deleting - The user has requested that the File Server be deleted, and it is in the process of being deleted. failed - The File Server creation has failed with the specified errorCode. Details about the error code are specified in the message field. succeeded - The File Server creation has succeeded.",
          "enum": [
            "creating",
            "updating",
            "deleting",
            "succeeded",
            "failed"
          ],
          "readOnly": true,
          "title": "Specifies the provisioning state of the File Server.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "FileServerProvisioningState"
          },
          "x-nullable": false
        },
        "provisioningStateTransitionTime": {
          "format": "date-time",
          "readOnly": true,
          "title": "Time when the status was changed.",
          "type": "string"
        },
        "sshConfiguration": {
          "$ref": "#/definitions/SshConfiguration",
          "title": "SSH settings for the File Server."
        },
        "subnet": {
          "$ref": "#/definitions/ResourceId",
          "title": "Specifies the identifier of the subnet."
        },
        "vmSize": {
          "description": "For information about available VM sizes for File Server from the Virtual Machines Marketplace, see Sizes for Virtual Machines (Linux).",
          "title": "The size of the virtual machine of the File Server.",
          "type": "string"
        }
      }
    },
    "FileServerReference": {
      "description": "Provides required information, for the service to be able to mount Azure FileShare on the cluster nodes.",
      "properties": {
        "fileServer": {
          "$ref": "#/definitions/ResourceId",
          "title": "Reference to the file server resource."
        },
        "mountOptions": {
          "title": "Specifies the mount options for File Server.",
          "type": "string"
        },
        "relativeMountPath": {
          "description": "Note that all file shares will be mounted under $AZ_BATCHAI_MOUNT_ROOT location.",
          "title": "Specifies the relative path on the compute node where the File Server will be mounted.",
          "type": "string"
        },
        "sourceDirectory": {
          "description": "If this property is not specified, the entire File Server will be mounted.",
          "title": "Specifies the source directory in File Server that needs to be mounted.",
          "type": "string"
        }
      },
      "required": [
        "fileServer",
        "relativeMountPath"
      ]
    },
    "ImageReference": {
      "description": "The image reference.",
      "properties": {
        "offer": {
          "title": "Offer of the image.",
          "type": "string"
        },
        "publisher": {
          "title": "Publisher of the image.",
          "type": "string"
        },
        "sku": {
          "title": "SKU of the image.",
          "type": "string"
        },
        "version": {
          "title": "Version of the image",
          "type": "string"
        }
      },
      "required": [
        "publisher",
        "offer",
        "sku"
      ]
    },
    "ImageSourceRegistry": {
      "description": "Details of the container image such as name, URL and credentials.",
      "properties": {
        "credentials": {
          "$ref": "#/definitions/PrivateRegistryCredentials",
          "title": "Information to access the private Docker repository."
        },
        "image": {
          "title": "The name of the image in image repository.",
          "type": "string"
        },
        "serverUrl": {
          "title": "URL for image repository.",
          "type": "string"
        }
      },
      "required": [
        "image"
      ]
    },
    "InputDirectory": {
      "description": "Input directory for the job.",
      "properties": {
        "id": {
          "description": "It will be available for the job as an environment variable under AZ_BATCHAI_INPUT_id. The service will also provide the following  environment variable: AZ_BATCHAI_PREV_OUTPUT_Name. The value of the variable will be populated if the job is being retried after a previous failure, otherwise it will be set to nothing.",
          "title": "The id for the input directory.",
          "type": "string"
        },
        "path": {
          "title": "The path to the input directory.",
          "type": "string"
        }
      },
      "required": [
        "id",
        "path"
      ]
    },
    "Job": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Contains information about the job.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/JobProperties",
          "description": "The properties associated with the job.",
          "x-ms-client-flatten": true
        }
      }
    },
    "JobBaseProperties": {
      "description": "The properties of a Batch AI job.",
      "properties": {
        "caffe2Settings": {
          "$ref": "#/definitions/Caffe2Settings",
          "title": "Specifies the settings for Caffe2 job."
        },
        "caffeSettings": {
          "$ref": "#/definitions/CaffeSettings",
          "title": "Specifies the settings for Caffe job."
        },
        "chainerSettings": {
          "$ref": "#/definitions/ChainerSettings",
          "title": "Specifies the settings for Chainer job."
        },
        "cluster": {
          "$ref": "#/definitions/ResourceId",
          "title": "Specifies the Id of the cluster on which this job will run."
        },
        "cntkSettings": {
          "$ref": "#/definitions/CNTKsettings",
          "title": "Specifies the settings for CNTK (aka Microsoft Cognitive Toolkit) job."
        },
        "constraints": {
          "description": "Constraints associated with the Job.",
          "properties": {
            "maxWallClockTime": {
              "default": "7.00:00:00",
              "description": "Default Value = 1 week.",
              "format": "duration",
              "title": "Max time the job can run.",
              "type": "string"
            }
          }
        },
        "containerSettings": {
          "$ref": "#/definitions/ContainerSettings",
          "description": "If the container was downloaded as part of cluster setup then the same container image will be used. If not provided, the job will run on the VM.",
          "title": "If provided the job will run in the specified container."
        },
        "customToolkitSettings": {
          "$ref": "#/definitions/CustomToolkitSettings",
          "title": "Specifies the settings for custom tool kit job."
        },
        "environmentVariables": {
          "description": "Batch AI service sets the following environment variables for all jobs: AZ_BATCHAI_INPUT_id, AZ_BATCHAI_OUTPUT_id, AZ_BATCHAI_NUM_GPUS_PER_NODE. For distributed TensorFlow jobs, following additional environment variables are set by the Batch AI Service: AZ_BATCHAI_PS_HOSTS, AZ_BATCHAI_WORKER_HOSTS",
          "items": {
            "$ref": "#/definitions/EnvironmentSetting"
          },
          "title": "Additional environment variables to set on the job.",
          "type": "array"
        },
        "experimentName": {
          "description": "Describe the experiment information of the job",
          "type": "string"
        },
        "inputDirectories": {
          "items": {
            "$ref": "#/definitions/InputDirectory"
          },
          "title": "Specifies the list of input directories for the Job.",
          "type": "array"
        },
        "jobPreparation": {
          "$ref": "#/definitions/JobPreparation",
          "description": "The specified actions will run on all the nodes that are part of the job",
          "title": "Specifies the command line to be executed before tool kit is launched."
        },
        "nodeCount": {
          "description": "The job will be gang scheduled on that many compute nodes",
          "format": "int32",
          "title": "Number of compute nodes to run the job on.",
          "type": "integer"
        },
        "outputDirectories": {
          "items": {
            "$ref": "#/definitions/OutputDirectory"
          },
          "title": "Specifies the list of output directories where the models will be created. .",
          "type": "array"
        },
        "priority": {
          "default": 0,
          "description": "Priority associated with the job. 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": "Priority associated with the job.",
          "type": "integer"
        },
        "stdOutErrPathPrefix": {
          "description": "The path where the Batch AI service will upload stdout and stderror of the job.",
          "type": "string"
        },
        "tensorFlowSettings": {
          "$ref": "#/definitions/TensorFlowSettings",
          "title": "Specifies the settings for Tensor Flow job."
        }
      },
      "required": [
        "cluster",
        "nodeCount",
        "stdOutErrPathPrefix"
      ]
    },
    "JobCreateParameters": {
      "description": "Parameters supplied to the Create operation.",
      "properties": {
        "location": {
          "description": "The region in which to create the job.",
          "type": "string"
        },
        "properties": {
          "$ref": "#/definitions/JobBaseProperties",
          "description": "The properties of the Job.",
          "x-ms-client-flatten": true
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The user specified tags associated with the job.",
          "type": "object"
        }
      },
      "required": [
        "location"
      ]
    },
    "JobListResult": {
      "description": "Values returned by the List operation.",
      "properties": {
        "nextLink": {
          "description": "The continuation token.",
          "type": "string"
        },
        "value": {
          "description": "The collection of jobs.",
          "items": {
            "$ref": "#/definitions/Job"
          },
          "type": "array"
        }
      }
    },
    "JobPreparation": {
      "description": "Specifies the settings for job preparation.",
      "properties": {
        "commandLine": {
          "description": "If containerSettings is specified on the job, this commandLine will be executed in the same container as job. Otherwise it will be executed on the node.",
          "title": "The command line to execute.",
          "type": "string"
        }
      },
      "required": [
        "commandLine"
      ]
    },
    "JobProperties": {
      "description": "Job specific properties.",
      "properties": {
        "caffeSettings": {
          "$ref": "#/definitions/CaffeSettings",
          "title": "Specifies the settings for Caffe job."
        },
        "chainerSettings": {
          "$ref": "#/definitions/ChainerSettings",
          "title": "Specifies the settings for Chainer job."
        },
        "cluster": {
          "$ref": "#/definitions/ResourceId",
          "title": "Specifies the Id of the cluster on which this job will run."
        },
        "cntkSettings": {
          "$ref": "#/definitions/CNTKsettings",
          "title": "Specifies the settings for CNTK (aka Microsoft Cognitive Toolkit) job."
        },
        "constraints": {
          "description": "Constraints associated with the Job.",
          "properties": {
            "maxWallClockTime": {
              "default": "7.00:00:00",
              "description": "Default Value = 1 week.",
              "format": "duration",
              "title": "Max time the job can run.",
              "type": "string"
            }
          }
        },
        "containerSettings": {
          "$ref": "#/definitions/ContainerSettings",
          "description": "If the container was downloaded as part of cluster setup then the same container image will be used. If not provided, the job will run on the VM.",
          "title": "If provided the job will run in the specified container."
        },
        "creationTime": {
          "description": "The creation time of the job.",
          "format": "date-time",
          "readOnly": true,
          "title": "The job creation time.",
          "type": "string"
        },
        "customToolkitSettings": {
          "$ref": "#/definitions/CustomToolkitSettings",
          "title": "Specifies the settings for custom tool kit job."
        },
        "environmentVariables": {
          "description": "Batch AI services sets the following environment variables for all jobs: AZ_BATCHAI_INPUT_id, AZ_BATCHAI_OUTPUT_id, AZ_BATCHAI_NUM_GPUS_PER_NODE, For distributed TensorFlow jobs, following additional environment variables are set by the Batch AI Service: AZ_BATCHAI_PS_HOSTS, AZ_BATCHAI_WORKER_HOSTS.",
          "items": {
            "$ref": "#/definitions/EnvironmentSetting"
          },
          "title": "Additional environment variables to be passed to the job.",
          "type": "array"
        },
        "executionInfo": {
          "description": "Contains information about the execution of a job in the Azure Batch service.",
          "properties": {
            "endTime": {
              "description": "This property is only returned if the job is in completed state.",
              "format": "date-time",
              "title": "The time at which the job completed.",
              "type": "string"
            },
            "errors": {
              "items": {
                "$ref": "#/definitions/BatchAIError"
              },
              "title": "Contains details of various errors encountered by the service during job execution",
              "type": "array"
            },
            "exitCode": {
              "description": "This property is only returned if the job is in completed state.",
              "format": "int32",
              "title": "The exit code of the job.",
              "type": "integer"
            },
            "startTime": {
              "description": "'Running' corresponds to the running state. If the job has been restarted or retried, this is the most recent time at which the job started running. This property is present only for job that are in the running or completed state.",
              "format": "date-time",
              "title": "The time at which the job started running.",
              "type": "string"
            }
          },
          "required": [
            "startTime"
          ]
        },
        "executionState": {
          "description": "The current state of the job. Possible values are: queued - The job is queued and able to run. A job enters this state when it is created, or when it is awaiting a retry after a failed run. running - The job is running on a compute cluster. This includes job-level preparation such as downloading resource files or set up container specified on the job - it does not necessarily mean that the job command line has started executing. terminating - The job is terminated by the user, the terminate operation is in progress. succeeded - The job has completed running successfully and exited with exit code 0. failed - The job has finished unsuccessfully (failed with a non-zero exit code) and has exhausted its retry limit. A job is also marked as failed if an error occurred launching the job.",
          "enum": [
            "queued",
            "running",
            "terminating",
            "succeeded",
            "failed"
          ],
          "title": "The current state of the job.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "ExecutionState"
          }
        },
        "executionStateTransitionTime": {
          "description": "The time at which the job entered its current execution state.",
          "format": "date-time",
          "readOnly": true,
          "title": "The time at which the job entered its current execution state.",
          "type": "string"
        },
        "experimentName": {
          "description": "Describe the experiment information of the job",
          "type": "string"
        },
        "inputDirectories": {
          "items": {
            "$ref": "#/definitions/InputDirectory"
          },
          "title": "Specifies the list of input directories for the Job.",
          "type": "array"
        },
        "jobPreparation": {
          "$ref": "#/definitions/JobPreparation",
          "description": "The specified actions will run on all the nodes that are part of the job",
          "title": "Specifies the actions to be performed before tool kit is launched."
        },
        "nodeCount": {
          "description": "The job will be gang scheduled on that many compute nodes",
          "format": "int32",
          "title": "Number of compute nodes to run the job on.",
          "type": "integer"
        },
        "outputDirectories": {
          "items": {
            "$ref": "#/definitions/OutputDirectory"
          },
          "title": "Specifies the list of output directories where the models will be created. .",
          "type": "array"
        },
        "priority": {
          "default": 0,
          "description": "Priority associated with the job. 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": "Priority associated with the job.",
          "type": "integer"
        },
        "provisioningState": {
          "description": "The provisioned state of the Batch AI job",
          "enum": [
            "creating",
            "deleting",
            "succeeded",
            "failed"
          ],
          "readOnly": true,
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "ProvisioningState"
          },
          "x-nullable": false
        },
        "provisioningStateTransitionTime": {
          "description": "The time at which the job entered its current provisioning state.",
          "format": "date-time",
          "readOnly": true,
          "title": "The time at which the job entered its current provisioning state.",
          "type": "string"
        },
        "stdOutErrPathPrefix": {
          "description": "The path where the Batch AI service will upload stdout and stderror of the job.",
          "type": "string"
        },
        "tensorFlowSettings": {
          "$ref": "#/definitions/TensorFlowSettings",
          "title": "Specifies the settings for Tensor Flow job."
        },
        "toolType": {
          "$ref": "#/definitions/ToolType",
          "description": "Possible values are: cntk, tensorflow, caffe, caffe2, chainer, custom.",
          "title": "The toolkit type of this job."
        }
      }
    },
    "KeyVaultKeyReference": {
      "description": "Describes a reference to Key Vault Key.",
      "properties": {
        "keyUrl": {
          "title": "The URL referencing a key in a Key Vault.",
          "type": "string"
        },
        "sourceVault": {
          "$ref": "#/definitions/ResourceId",
          "title": "Fully qualified resource Id for the Key Vault."
        }
      },
      "required": [
        "sourceVault",
        "keyUrl"
      ]
    },
    "KeyVaultSecretReference": {
      "description": "Describes a reference to Key Vault Secret.",
      "properties": {
        "secretUrl": {
          "title": "The URL referencing a secret in a Key Vault.",
          "type": "string"
        },
        "sourceVault": {
          "$ref": "#/definitions/ResourceId",
          "title": "Fully qualified resource Id for the Key Vault."
        }
      },
      "required": [
        "sourceVault",
        "secretUrl"
      ]
    },
    "LocalDataVolume": {
      "description": "Represents mapping of host directories to directories in the container.",
      "properties": {
        "hostPath": {
          "title": "The path on the host that is to be mounted as a directory in the container.",
          "type": "string"
        },
        "localPath": {
          "title": "The container local path where the host directory is mounted.",
          "type": "string"
        }
      },
      "required": [
        "hostPath",
        "localPath"
      ]
    },
    "ManualScaleSettings": {
      "description": "Manual scale settings for the cluster.",
      "properties": {
        "nodeDeallocationOption": {
          "$ref": "#/definitions/DeallocationOption",
          "default": "requeue",
          "description": "The default value is requeue.",
          "title": "Determines what to do with the job(s) running on compute node if the Cluster size is decreasing."
        },
        "targetNodeCount": {
          "default": 0,
          "description": "Default is 0. If autoScaleSettings are not specified, then the Cluster starts with this target.",
          "format": "int32",
          "title": "The desired number of compute nodes in the Cluster.",
          "type": "integer"
        }
      },
      "required": [
        "targetNodeCount"
      ]
    },
    "MountSettings": {
      "description": "Details of the File Server.",
      "properties": {
        "fileServerInternalIP": {
          "title": "Internal subnet IP which can be used to access the file Server from within the subnet.",
          "type": "string"
        },
        "fileServerPublicIP": {
          "title": "Public IP of the File Server VM.",
          "type": "string"
        },
        "fileServerType": {
          "enum": [
            "nfs",
            "glusterfs"
          ],
          "title": "Type of the fileserver e.g. nfs, glusterfs etc.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "FileServerType"
          }
        },
        "mountPoint": {
          "title": "Path where the NFS is mounted on the Server.",
          "type": "string"
        }
      }
    },
    "MountVolumes": {
      "description": "Details of volumes to mount on the cluster.",
      "properties": {
        "azureBlobFileSystems": {
          "description": "References to Azure Blob FUSE that are to be mounted to the cluster nodes.",
          "items": {
            "$ref": "#/definitions/AzureBlobFileSystemReference"
          },
          "title": "Azure Blob FileSystem setup configuration.",
          "type": "array"
        },
        "azureFileShares": {
          "description": "References to Azure File Shares that are to be mounted to the cluster nodes.",
          "items": {
            "$ref": "#/definitions/AzureFileShareReference"
          },
          "title": "Azure File Share setup configuration.",
          "type": "array"
        },
        "fileServers": {
          "items": {
            "$ref": "#/definitions/FileServerReference"
          },
          "title": "References to a list of file servers that are mounted to the cluster node.",
          "type": "array"
        },
        "unmanagedFileSystems": {
          "items": {
            "$ref": "#/definitions/UnmanagedFileSystemReference"
          },
          "title": "References to a list of file servers that are mounted to the cluster node.",
          "type": "array"
        }
      }
    },
    "NameValuePair": {
      "description": "Represents a name-value pair.",
      "properties": {
        "name": {
          "title": "The name in the name-value pair.",
          "type": "string"
        },
        "value": {
          "title": "The value in the name-value pair.",
          "type": "string"
        }
      }
    },
    "NodeSetup": {
      "description": "Use this to prepare the VM. NOTE: The volumes specified in mountVolumes are mounted first and then the setupTask is run. Therefore the setup task can use local mountPaths in its execution.",
      "properties": {
        "mountVolumes": {
          "$ref": "#/definitions/MountVolumes",
          "title": "Information on shared volumes to be used by jobs."
        },
        "setupTask": {
          "$ref": "#/definitions/SetupTask",
          "title": "Specifies a setup task which can be used to customize the compute nodes of the cluster. The NodeSetup task runs every time a VM is rebooted. For that reason the task code needs to be idempotent. Generally it is used to either download static data that is required for all jobs that run on the cluster VMs or to download/install software."
        }
      }
    },
    "NodeStateCounts": {
      "description": "Counts of various compute node states on the cluster.",
      "properties": {
        "idleNodeCount": {
          "format": "int32",
          "title": "Number of compute nodes in idle state.",
          "type": "integer"
        },
        "leavingNodeCount": {
          "format": "int32",
          "title": "Number of compute nodes which are leaving the cluster.",
          "type": "integer"
        },
        "preparingNodeCount": {
          "format": "int32",
          "title": "Number of compute nodes which are being prepared.",
          "type": "integer"
        },
        "runningNodeCount": {
          "format": "int32",
          "title": "Number of compute nodes which are running jobs.",
          "type": "integer"
        },
        "unusableNodeCount": {
          "format": "int32",
          "title": "Number of compute nodes which are unusable.",
          "type": "integer"
        }
      },
      "required": [
        "idleNodeCount",
        "runningNodeCount",
        "preparingNodeCount",
        "unusableNodeCount",
        "leavingNodeCount"
      ]
    },
    "Operation": {
      "description": "Details of a REST API operation",
      "properties": {
        "display": {
          "description": "The object that describes the operation.",
          "properties": {
            "description": {
              "title": "The friendly name of the operation",
              "type": "string"
            },
            "operation": {
              "description": "For example: read, write, delete, or listKeys/action",
              "title": "The operation type.",
              "type": "string"
            },
            "provider": {
              "title": "Friendly name of the resource provider.",
              "type": "string"
            },
            "resource": {
              "title": "The resource type on which the operation is performed.",
              "type": "string"
            }
          }
        },
        "name": {
          "description": "This is of the format {provider}/{resource}/{operation}",
          "title": "The operation name.",
          "type": "string"
        },
        "origin": {
          "title": "The intended executor of the operation.",
          "type": "string"
        },
        "properties": {
          "title": "Properties of the operation.",
          "type": "object",
          "x-ms-client-flatten": true
        }
      },
      "title": "A REST API operation",
      "type": "object"
    },
    "OperationListResult": {
      "description": "Contains the list of all operations supported by BatchAI resource provider",
      "properties": {
        "nextLink": {
          "title": "The URL to get the next set of operation list results if there are any.",
          "type": "string"
        },
        "value": {
          "items": {
            "$ref": "#/definitions/Operation"
          },
          "title": "The list of operations supported by the resource provider.",
          "type": "array"
        }
      },
      "title": "Result of the request to list REST API operations. It contains a list of operations and a URL nextLink to get the next set of results."
    },
    "OutputDirectory": {
      "description": "Output directory for the job.",
      "properties": {
        "createNew": {
          "default": true,
          "description": "Default is true. If false, then the directory is not created and can be any directory path that the user specifies.",
          "title": "True to create new directory.",
          "type": "boolean"
        },
        "id": {
          "description": "It will be available for the job as an environment variable under AZ_BATCHAI_OUTPUT_id.",
          "title": "The name for the output directory.",
          "type": "string"
        },
        "pathPrefix": {
          "description": "NOTE: This is an absolute path to prefix. E.g. $AZ_BATCHAI_MOUNT_ROOT/MyNFS/MyLogs.",
          "title": "The prefix path where the output directory will be created.",
          "type": "string"
        },
        "pathSuffix": {
          "description": "The suffix path where the output directory will be created.",
          "title": "The suffix path where the output directory will be created.",
          "type": "string"
        },
        "type": {
          "default": "custom",
          "description": "Default value is Custom. The possible values are Model, Logs, Summary, and Custom. Users can use multiple enums for a single directory. Eg. outPutType='Model,Logs, Summary'",
          "enum": [
            "model",
            "logs",
            "summary",
            "custom"
          ],
          "title": "An enumeration, which specifies the type of job output directory.",
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "OutputType"
          }
        }
      },
      "required": [
        "id",
        "pathPrefix"
      ]
    },
    "PrivateRegistryCredentials": {
      "description": "Credentials to access a container image in a private repository.",
      "properties": {
        "password": {
          "description": "One of password or passwordSecretReference must be specified.",
          "title": "Password to login.",
          "type": "string"
        },
        "passwordSecretReference": {
          "$ref": "#/definitions/KeyVaultSecretReference",
          "description": "Users can store their secrets in Azure KeyVault and pass it to the Batch AI Service to integrate with KeyVault. One of password or passwordSecretReference must be specified.",
          "title": "Specifies the location of the password, which is a Key Vault Secret."
        },
        "username": {
          "title": "User name to login.",
          "type": "string"
        }
      },
      "required": [
        "username"
      ]
    },
    "RemoteLoginInformation": {
      "description": "Contains remote login details to SSH/RDP to a compute node in cluster.",
      "properties": {
        "ipAddress": {
          "description": "ip address",
          "type": "string"
        },
        "nodeId": {
          "description": "Id of the compute node",
          "type": "string"
        },
        "port": {
          "format": "int32",
          "title": "port number",
          "type": "number"
        }
      },
      "required": [
        "nodeId",
        "ipAddress",
        "port"
      ]
    },
    "RemoteLoginInformationListResult": {
      "description": "Values returned by the List operation.",
      "properties": {
        "nextLink": {
          "description": "The continuation token.",
          "type": "string"
        },
        "value": {
          "description": "The collection of returned remote login details.",
          "items": {
            "$ref": "#/definitions/RemoteLoginInformation"
          },
          "type": "array"
        }
      }
    },
    "Resource": {
      "description": "A definition of an Azure resource.",
      "properties": {
        "id": {
          "description": "The ID of the resource",
          "readOnly": true,
          "type": "string"
        },
        "location": {
          "description": "The location of the resource",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "description": "The name of the resource",
          "readOnly": true,
          "type": "string"
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The tags of the resource",
          "readOnly": true,
          "type": "object"
        },
        "type": {
          "description": "The type of the resource",
          "readOnly": true,
          "type": "string"
        }
      },
      "x-ms-azure-resource": true
    },
    "ResourceId": {
      "description": "Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet.",
      "properties": {
        "id": {
          "description": "The ID of the resource",
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "x-ms-azure-resource": true
    },
    "ScaleSettings": {
      "description": "At least one of manual or autoScale settings must be specified. Only one of manual or autoScale settings can be specified. If autoScale settings are specified, the system automatically scales the cluster up and down (within the supplied limits) based on the pending jobs on the cluster.",
      "properties": {
        "autoScale": {
          "$ref": "#/definitions/AutoScaleSettings",
          "title": "The scale for the cluster by autoscale settings"
        },
        "manual": {
          "$ref": "#/definitions/ManualScaleSettings",
          "title": "The scale for the cluster by manual settings"
        }
      }
    },
    "SetupTask": {
      "description": "Specifies a setup task which can be used to customize the compute nodes of the cluster.",
      "properties": {
        "commandLine": {
          "title": "Command Line to start Setup process.",
          "type": "string"
        },
        "environmentVariables": {
          "items": {
            "$ref": "#/definitions/EnvironmentSetting"
          },
          "title": "Collection of environment settings.",
          "type": "array"
        },
        "runElevated": {
          "default": false,
          "title": "Specifies whether to run the setup task in elevated mode. The default value is false.",
          "type": "boolean"
        },
        "stdOutErrPathPrefix": {
          "description": "The path where the Batch AI service will upload the stdout and stderror of setup task.",
          "type": "string"
        }
      },
      "required": [
        "commandLine",
        "stdOutErrPathPrefix"
      ]
    },
    "SshConfiguration": {
      "description": "SSH configuration settings for the VM",
      "properties": {
        "publicIPsToAllow": {
          "description": "Default value is '*' can be used to match all source IPs. Maximum number of publicIPs that can be specified are 400.",
          "items": {
            "type": "string"
          },
          "title": "List of source IP ranges to allow SSH connection to VM.",
          "type": "array"
        },
        "userAccountSettings": {
          "$ref": "#/definitions/UserAccountSettings",
          "title": "Settings for user account of VMs."
        }
      },
      "required": [
        "userAccountSettings"
      ]
    },
    "TensorFlowSettings": {
      "description": "Specifies the settings for TensorFlow job.",
      "properties": {
        "masterCommandLineArgs": {
          "title": "Specifies the command line arguments for the master task.",
          "type": "string"
        },
        "parameterServerCommandLineArgs": {
          "description": "This property is optional for single machine training.",
          "title": "Specifies the command line arguments for the parameter server task.",
          "type": "string"
        },
        "parameterServerCount": {
          "description": "If specified, the value must be less than or equal to nodeCount. If not specified, the default value is equal to 1 for distributed TensorFlow training (This property is not applicable for single machine training). This property can be specified only for distributed TensorFlow training.",
          "format": "int32",
          "title": "The number of parameter server tasks.",
          "type": "integer"
        },
        "pythonInterpreterPath": {
          "title": "The path to python interpreter.",
          "type": "string"
        },
        "pythonScriptFilePath": {
          "title": "The path and file name of the python script to execute the job.",
          "type": "string"
        },
        "workerCommandLineArgs": {
          "description": "This property is optional for single machine training.",
          "title": "Specifies the command line arguments for the worker task.",
          "type": "string"
        },
        "workerCount": {
          "description": "If specified, the value must be less than or equal to (nodeCount * numberOfGPUs per VM). If not specified, the default value is equal to nodeCount. This property can be specified only for distributed TensorFlow training",
          "format": "int32",
          "title": "The number of worker tasks.",
          "type": "integer"
        }
      },
      "required": [
        "pythonScriptFilePath",
        "masterCommandLineArgs"
      ]
    },
    "ToolType": {
      "description": "The toolkit type of this job.",
      "enum": [
        "cntk",
        "tensorflow",
        "caffe",
        "caffe2",
        "chainer",
        "custom"
      ],
      "type": "string",
      "x-ms-enum": {
        "modelAsString": true,
        "name": "ToolType"
      }
    },
    "UnmanagedFileSystemReference": {
      "description": "Details of the file system to mount on the compute cluster nodes.",
      "properties": {
        "mountCommand": {
          "title": "Command used to mount the unmanaged file system.",
          "type": "string"
        },
        "relativeMountPath": {
          "description": "Note that all file shares will be mounted under $AZ_BATCHAI_MOUNT_ROOT location.",
          "title": "Specifies the relative path on the compute cluster node where the file system will be mounted.",
          "type": "string"
        }
      },
      "required": [
        "mountCommand",
        "relativeMountPath"
      ]
    },
    "UserAccountSettings": {
      "description": "Settings for user account that gets created on each on the nodes of a cluster.",
      "properties": {
        "adminUserName": {
          "title": "Specifies the name of the administrator account.",
          "type": "string"
        },
        "adminUserPassword": {
          "title": "Admin user Password (linux only). This does not get returned in a GET response body.",
          "type": "string"
        },
        "adminUserSshPublicKey": {
          "title": "SSH public keys used to authenticate with linux based VMs. This does not get returned in a GET response body.",
          "type": "string"
        }
      },
      "required": [
        "adminUserName"
      ]
    },
    "VirtualMachineConfiguration": {
      "description": "Settings for OS image.",
      "properties": {
        "imageReference": {
          "$ref": "#/definitions/ImageReference",
          "title": "Reference to OS image."
        }
      }
    }
  }
}