From df3b36329b93691ef97ef3ab1b1993274806f179 Mon Sep 17 00:00:00 2001 From: SDK Automation Date: Mon, 31 Aug 2020 09:40:34 +0000 Subject: [PATCH] Generated from 4871aaa64a343d77a450b61a4dc43b2d9f1e34bb Merge branch 'master' of github.com:Azure/azure-rest-api-specs --- schemas/2018-05-01/Microsoft.BatchAI.json | 3194 +++++++++++++++++--- schemas/common/autogeneratedResources.json | 9 + 2 files changed, 2707 insertions(+), 496 deletions(-) diff --git a/schemas/2018-05-01/Microsoft.BatchAI.json b/schemas/2018-05-01/Microsoft.BatchAI.json index b141df4900..0c9e8419af 100644 --- a/schemas/2018-05-01/Microsoft.BatchAI.json +++ b/schemas/2018-05-01/Microsoft.BatchAI.json @@ -4,6 +4,213 @@ "title": "Microsoft.BatchAI", "description": "Microsoft BatchAI Resource Types", "resourceDefinitions": { + "clusters": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2018-05-01" + ] + }, + "location": { + "type": "string", + "description": "The region in which to create the cluster." + }, + "name": { + "oneOf": [ + { + "type": "string", + "pattern": "^[-\\w_]+$", + "minLength": 1, + "maxLength": 64 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "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." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/ClusterBasePropertiesModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of a Cluster." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The user specified tags associated with the Cluster." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.BatchAI/clusters" + ] + } + }, + "required": [ + "apiVersion", + "location", + "name", + "properties", + "type" + ], + "description": "Microsoft.BatchAI/clusters" + }, + "fileServers": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2018-05-01" + ] + }, + "location": { + "type": "string", + "description": "The region in which to create the File Server." + }, + "name": { + "oneOf": [ + { + "type": "string", + "pattern": "^[-\\w_]+$", + "minLength": 1, + "maxLength": 64 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "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." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/FileServerBasePropertiesModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of a file server." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The user specified tags associated with the File Server." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.BatchAI/fileServers" + ] + } + }, + "required": [ + "apiVersion", + "location", + "name", + "properties", + "type" + ], + "description": "Microsoft.BatchAI/fileServers" + }, + "jobs": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "enum": [ + "2018-05-01" + ] + }, + "location": { + "type": "string", + "description": "The region in which to create the job." + }, + "name": { + "oneOf": [ + { + "type": "string", + "pattern": "^[-\\w_]+$", + "minLength": 1, + "maxLength": 64 + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "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." + }, + "properties": { + "oneOf": [ + { + "$ref": "#/definitions/JobBasePropertiesModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The properties of a Batch AI job." + }, + "tags": { + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "properties": {} + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The user specified tags associated with the job." + }, + "type": { + "type": "string", + "enum": [ + "Microsoft.BatchAI/jobs" + ] + } + }, + "required": [ + "apiVersion", + "location", + "name", + "properties", + "type" + ], + "description": "Microsoft.BatchAI/jobs" + }, "workspaces": { "type": "object", "properties": { @@ -308,6 +515,40 @@ ], "description": "Azure Application Insights information for performance counters reporting." }, + "AppInsightsReferenceModel": { + "type": "object", + "properties": { + "component": { + "oneOf": [ + { + "$ref": "#/definitions/ResourceId" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet." + }, + "instrumentationKey": { + "type": "string" + }, + "instrumentationKeySecretReference": { + "oneOf": [ + { + "$ref": "#/definitions/KeyVaultSecretReferenceModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes a reference to Key Vault Secret." + } + }, + "required": [ + "component" + ], + "description": "Specifies Azure Application Insights information for performance counters reporting." + }, "AutoScaleSettings": { "type": "object", "properties": { @@ -352,6 +593,47 @@ ], "description": "Auto-scale settings for the cluster. The system automatically scales the cluster up and down (within minimumNodeCount and maximumNodeCount) based on the number of queued and running jobs assigned to the cluster." }, + "AutoScaleSettingsModel": { + "type": "object", + "properties": { + "initialNodeCount": { + "oneOf": [ + { + "type": "integer", + "default": "0" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "maximumNodeCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "minimumNodeCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + } + }, + "required": [ + "maximumNodeCount", + "minimumNodeCount" + ], + "description": "The system automatically scales the cluster up and down (within minimumNodeCount and maximumNodeCount) based on the pending and running jobs on the cluster." + }, "AzureBlobFileSystemReference": { "type": "object", "properties": { @@ -391,6 +673,42 @@ ], "description": "Azure Blob Storage Container mounting configuration." }, + "AzureBlobFileSystemReferenceModel": { + "type": "object", + "properties": { + "accountName": { + "type": "string" + }, + "containerName": { + "type": "string" + }, + "credentials": { + "oneOf": [ + { + "$ref": "#/definitions/AzureStorageCredentialsInfoModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Credentials to access Azure File Share." + }, + "mountOptions": { + "type": "string" + }, + "relativeMountPath": { + "type": "string", + "description": "Note that all cluster level blob file systems will be mounted under $AZ_BATCHAI_MOUNT_ROOT location and all job level blob file systems will be mounted under $AZ_BATCHAI_JOB_MOUNT_ROOT." + } + }, + "required": [ + "accountName", + "containerName", + "credentials", + "relativeMountPath" + ], + "description": "Provides required information, for the service to be able to mount Azure Blob Storage container on the cluster nodes." + }, "AzureFileShareReference": { "type": "object", "properties": { @@ -436,6 +754,49 @@ ], "description": "Azure File Share mounting configuration." }, + "AzureFileShareReferenceModel": { + "type": "object", + "properties": { + "accountName": { + "type": "string" + }, + "azureFileUrl": { + "type": "string" + }, + "credentials": { + "oneOf": [ + { + "$ref": "#/definitions/AzureStorageCredentialsInfoModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Credentials to access Azure File Share." + }, + "directoryMode": { + "type": "string", + "default": "0777", + "description": "Default value is 0777. Valid only if OS is linux." + }, + "fileMode": { + "type": "string", + "default": "0777", + "description": "Default value is 0777. Valid only if OS is linux." + }, + "relativeMountPath": { + "type": "string", + "description": "Note that all cluster level file shares will be mounted under $AZ_BATCHAI_MOUNT_ROOT location and all job level file shares will be mounted under $AZ_BATCHAI_JOB_MOUNT_ROOT." + } + }, + "required": [ + "accountName", + "azureFileUrl", + "credentials", + "relativeMountPath" + ], + "description": "Details of the Azure File Share to mount on the cluster." + }, "AzureStorageCredentialsInfo": { "type": "object", "properties": { @@ -457,6 +818,27 @@ }, "description": "Azure storage account credentials." }, + "AzureStorageCredentialsInfoModel": { + "type": "object", + "properties": { + "accountKey": { + "type": "string", + "description": "One of accountKey or accountKeySecretReference must be specified." + }, + "accountKeySecretReference": { + "oneOf": [ + { + "$ref": "#/definitions/KeyVaultSecretReferenceModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes a reference to Key Vault Secret." + } + }, + "description": "Credentials to access Azure File Share." + }, "Caffe2Settings": { "type": "object", "properties": { @@ -478,6 +860,24 @@ ], "description": "Caffe2 job settings." }, + "Caffe2SettingsModel": { + "type": "object", + "properties": { + "commandLineArgs": { + "type": "string" + }, + "pythonInterpreterPath": { + "type": "string" + }, + "pythonScriptFilePath": { + "type": "string" + } + }, + "required": [ + "pythonScriptFilePath" + ], + "description": "Specifies the settings for Caffe2 job." + }, "CaffeSettings": { "type": "object", "properties": { @@ -511,6 +911,38 @@ }, "description": "Caffe job settings." }, + "CaffeSettingsModel": { + "type": "object", + "properties": { + "commandLineArgs": { + "type": "string" + }, + "configFilePath": { + "type": "string", + "description": "This property cannot be specified if pythonScriptFilePath is specified." + }, + "processCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The default value for this property is equal to nodeCount property" + }, + "pythonInterpreterPath": { + "type": "string", + "description": "This property can be specified only if the pythonScriptFilePath is specified." + }, + "pythonScriptFilePath": { + "type": "string", + "description": "This property cannot be specified if configFilePath is specified." + } + }, + "description": "Specifies the settings for Caffe job." + }, "ChainerSettings": { "type": "object", "properties": { @@ -543,6 +975,35 @@ ], "description": "Chainer job settings." }, + "ChainerSettingsModel": { + "type": "object", + "properties": { + "commandLineArgs": { + "type": "string" + }, + "processCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The default value for this property is equal to nodeCount property" + }, + "pythonInterpreterPath": { + "type": "string" + }, + "pythonScriptFilePath": { + "type": "string" + } + }, + "required": [ + "pythonScriptFilePath" + ], + "description": "Specifies the settings for Chainer job." + }, "ClusterBaseProperties": { "type": "object", "properties": { @@ -627,298 +1088,224 @@ ], "description": "The properties of a Cluster." }, - "CNTKsettings": { + "ClusterBasePropertiesModel": { "type": "object", "properties": { - "commandLineArgs": { - "type": "string", - "description": "Command line arguments that need to be passed to the python script or cntk executable." - }, - "configFilePath": { - "type": "string", - "description": "Specifies the path of the BrainScript config file. This property can be specified only if the languageType is 'BrainScript'." - }, - "languageType": { - "type": "string", - "description": "The language to use for launching CNTK (aka Microsoft Cognitive Toolkit) job. Valid values are 'BrainScript' or 'Python'." - }, - "processCount": { + "nodeSetup": { "oneOf": [ { - "type": "integer" + "$ref": "#/definitions/NodeSetupModel" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Number of processes to launch for the job execution. The default value for this property is equal to nodeCount property" - }, - "pythonInterpreterPath": { - "type": "string", - "description": "The path to the Python interpreter. This property can be specified only if the languageType is 'Python'." + "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." }, - "pythonScriptFilePath": { - "type": "string", - "description": "Python script to execute. This property can be specified only if the languageType is 'Python'." - } - }, - "description": "CNTK (aka Microsoft Cognitive Toolkit) job settings." - }, - "ContainerSettings": { - "type": "object", - "properties": { - "imageSourceRegistry": { + "scaleSettings": { "oneOf": [ { - "$ref": "#/definitions/ImageSourceRegistry" + "$ref": "#/definitions/ScaleSettingsModel" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Information about docker image for the job." - }, - "shmSize": { - "type": "string", - "description": "Size of /dev/shm. Please refer to docker documentation for supported argument formats." - } - }, - "required": [ - "imageSourceRegistry" - ], - "description": "Docker container settings." - }, - "CustomMpiSettings": { - "type": "object", - "properties": { - "commandLine": { - "type": "string", - "description": "The command line to be executed by mpi runtime on each compute node." + "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." }, - "processCount": { - "oneOf": [ - { - "type": "integer" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Number of processes to launch for the job execution. The default value for this property is equal to nodeCount property" - } - }, - "required": [ - "commandLine" - ], - "description": "Custom MPI job settings." - }, - "CustomToolkitSettings": { - "type": "object", - "properties": { - "commandLine": { - "type": "string", - "description": "The command line to execute on the master node." - } - }, - "description": "Custom tool kit job settings." - }, - "DataDisks": { - "type": "object", - "properties": { - "cachingType": { + "subnet": { "oneOf": [ { - "type": "string", - "enum": [ - "none", - "readonly", - "readwrite" - ] + "$ref": "#/definitions/ResourceId" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Caching type for the disks. Available values are none (default), readonly, readwrite. Caching type can be set only for VM sizes supporting premium storage." + "description": "Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet." }, - "diskCount": { + "userAccountSettings": { "oneOf": [ { - "type": "integer" + "$ref": "#/definitions/UserAccountSettingsModel" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Number of data disks attached to the File Server. If multiple disks attached, they will be configured in RAID level 0." + "description": "Settings for user account that gets created on each on the nodes of a cluster." }, - "diskSizeInGB": { + "virtualMachineConfiguration": { "oneOf": [ { - "type": "integer" + "$ref": "#/definitions/VirtualMachineConfigurationModel" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Disk size in GB for the blank data disks." + "description": "Settings for OS image." }, - "storageAccountType": { + "vmPriority": { "oneOf": [ { "type": "string", "enum": [ - "Standard_LRS", - "Premium_LRS" + "dedicated", + "lowpriority" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Type of storage account to be used on the disk. Possible values are: Standard_LRS or Premium_LRS. Premium storage account type can only be used with VM sizes supporting premium storage." + "description": "Default is dedicated." + }, + "vmSize": { + "type": "string", + "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)." } }, "required": [ - "diskCount", - "diskSizeInGB", - "storageAccountType" - ], - "description": "Data disks settings." - }, - "EnvironmentVariable": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The name of the environment variable." - }, - "value": { - "type": "string", - "description": "The value of the environment variable." - } - }, - "required": [ - "name", - "value" + "userAccountSettings", + "vmSize" ], - "description": "An environment variable definition." + "description": "The properties of a Cluster." }, - "EnvironmentVariableWithSecretValue": { + "ClusterBasePropertiesModelModel": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "The name of the environment variable to store the secret value." + "nodeSetup": { + "oneOf": [ + { + "$ref": "#/definitions/NodeSetupModelModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "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." }, - "value": { - "type": "string", - "description": "The value of the environment variable. This value will never be reported back by Batch AI." + "scaleSettings": { + "oneOf": [ + { + "$ref": "#/definitions/ScaleSettingsModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "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." }, - "valueSecretReference": { + "subnet": { "oneOf": [ { - "$ref": "#/definitions/KeyVaultSecretReference" + "$ref": "#/definitions/ResourceId" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Key Vault Secret reference." - } - }, - "required": [ - "name" - ], - "description": "An environment variable with secret value definition." - }, - "FileServerBaseProperties": { - "type": "object", - "properties": { - "dataDisks": { + "description": "Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet." + }, + "userAccountSettings": { "oneOf": [ { - "$ref": "#/definitions/DataDisks" + "$ref": "#/definitions/UserAccountSettingsModel" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Data disks settings." + "description": "Settings for user account that gets created on each on the nodes of a cluster." }, - "sshConfiguration": { + "virtualMachineConfiguration": { "oneOf": [ { - "$ref": "#/definitions/SshConfiguration" + "$ref": "#/definitions/VirtualMachineConfigurationModelModel" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "SSH configuration." + "description": "Settings for OS image." }, - "subnet": { + "vmPriority": { "oneOf": [ { - "$ref": "#/definitions/ResourceId" + "type": "string", + "enum": [ + "dedicated", + "lowpriority" + ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet." + "description": "Default is dedicated." }, "vmSize": { "type": "string", - "description": "The size of the virtual machine for the File Server. For information about available VM sizes from the Virtual Machines Marketplace, see Sizes for Virtual Machines (Linux)." + "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)." } }, "required": [ - "dataDisks", - "sshConfiguration", + "userAccountSettings", "vmSize" ], - "description": "The properties of a file server." + "description": "The properties of a Cluster." }, - "FileServerReference": { + "CNTKsettings": { "type": "object", "properties": { - "fileServer": { + "commandLineArgs": { + "type": "string", + "description": "Command line arguments that need to be passed to the python script or cntk executable." + }, + "configFilePath": { + "type": "string", + "description": "Specifies the path of the BrainScript config file. This property can be specified only if the languageType is 'BrainScript'." + }, + "languageType": { + "type": "string", + "description": "The language to use for launching CNTK (aka Microsoft Cognitive Toolkit) job. Valid values are 'BrainScript' or 'Python'." + }, + "processCount": { "oneOf": [ { - "$ref": "#/definitions/ResourceId" + "type": "integer" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet." - }, - "mountOptions": { - "type": "string", - "description": "Mount options to be passed to mount command." + "description": "Number of processes to launch for the job execution. The default value for this property is equal to nodeCount property" }, - "relativeMountPath": { + "pythonInterpreterPath": { "type": "string", - "description": "The relative path on the compute node where the File Server will be mounted. Note that all cluster level file servers will be mounted under $AZ_BATCHAI_MOUNT_ROOT location and all job level file servers will be mounted under $AZ_BATCHAI_JOB_MOUNT_ROOT." + "description": "The path to the Python interpreter. This property can be specified only if the languageType is 'Python'." }, - "sourceDirectory": { + "pythonScriptFilePath": { "type": "string", - "description": "File Server directory that needs to be mounted. If this property is not specified, the entire File Server will be mounted." + "description": "Python script to execute. This property can be specified only if the languageType is 'Python'." } }, - "required": [ - "fileServer", - "relativeMountPath" - ], - "description": "File Server mounting configuration." + "description": "CNTK (aka Microsoft Cognitive Toolkit) job settings." }, - "HorovodSettings": { + "CNTKsettingsModel": { "type": "object", "properties": { "commandLineArgs": { + "type": "string" + }, + "configFilePath": { "type": "string", - "description": "Command line arguments that need to be passed to the python script." + "description": "This property can be specified only if the languageType is 'BrainScript'." + }, + "languageType": { + "type": "string", + "description": "Valid values are 'BrainScript' or 'Python'." }, "processCount": { "oneOf": [ @@ -929,255 +1316,1832 @@ "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Number of processes to launch for the job execution. The default value for this property is equal to nodeCount property" + "description": "The default value for this property is equal to nodeCount property" }, "pythonInterpreterPath": { "type": "string", - "description": "The path to the Python interpreter." + "description": "This property can be specified only if the languageType is 'Python'." }, "pythonScriptFilePath": { "type": "string", - "description": "The python script to execute." + "description": "This property can be specified only if the languageType is 'Python'." } }, - "required": [ - "pythonScriptFilePath" - ], - "description": "Specifies the settings for Horovod job." + "description": "Specifies the settings for CNTK (aka Microsoft Cognitive Toolkit) job." }, - "ImageReference": { + "ContainerSettings": { "type": "object", "properties": { - "offer": { - "type": "string", - "description": "Offer of the image." - }, - "publisher": { - "type": "string", - "description": "Publisher of the image." - }, - "sku": { - "type": "string", - "description": "SKU of the image." - }, - "version": { - "type": "string", - "description": "Version of the image." + "imageSourceRegistry": { + "oneOf": [ + { + "$ref": "#/definitions/ImageSourceRegistry" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Information about docker image for the job." }, - "virtualMachineImageId": { + "shmSize": { "type": "string", - "description": "The ARM resource identifier of the virtual machine image for the compute nodes. This is of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}. The virtual machine image must be in the same region and subscription as the cluster. For information about the firewall settings for the Batch node agent to communicate with the Batch service see https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. Note, you need to provide publisher, offer and sku of the base OS image of which the custom image has been derived from." + "description": "Size of /dev/shm. Please refer to docker documentation for supported argument formats." } }, "required": [ - "offer", - "publisher", - "sku" + "imageSourceRegistry" ], - "description": "The OS image reference." + "description": "Docker container settings." }, - "ImageSourceRegistry": { + "ContainerSettingsModel": { "type": "object", "properties": { - "credentials": { + "imageSourceRegistry": { "oneOf": [ { - "$ref": "#/definitions/PrivateRegistryCredentials" + "$ref": "#/definitions/ImageSourceRegistryModel" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Credentials to access a container image in a private repository." - }, - "image": { - "type": "string", - "description": "The name of the image in the image repository." - }, - "serverUrl": { - "type": "string", - "description": "URL for image repository." + "description": "Details of the container image such as name, URL and credentials." } }, "required": [ - "image" + "imageSourceRegistry" ], - "description": "Information about docker image for the job." + "description": "Settings for the container to be downloaded." }, - "InputDirectory": { + "CustomMpiSettings": { "type": "object", "properties": { - "id": { + "commandLine": { "type": "string", - "description": "The ID for the input directory. The job can use AZ_BATCHAI_INPUT_ environment variable to find the directory path, where is the value of id attribute." + "description": "The command line to be executed by mpi runtime on each compute node." }, - "path": { - "type": "string", - "description": "The path to the input directory." + "processCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of processes to launch for the job execution. The default value for this property is equal to nodeCount property" } }, "required": [ - "id", - "path" + "commandLine" ], - "description": "Input directory for the job." + "description": "Custom MPI job settings." }, - "JobBaseProperties": { + "CustomToolkitSettings": { "type": "object", "properties": { - "caffe2Settings": { + "commandLine": { + "type": "string", + "description": "The command line to execute on the master node." + } + }, + "description": "Custom tool kit job settings." + }, + "CustomToolkitSettingsModel": { + "type": "object", + "properties": { + "commandLine": { + "type": "string" + } + }, + "description": "Specifies the settings for a custom tool kit job." + }, + "DataDisks": { + "type": "object", + "properties": { + "cachingType": { "oneOf": [ { - "$ref": "#/definitions/Caffe2Settings" + "type": "string", + "enum": [ + "none", + "readonly", + "readwrite" + ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Caffe2 job settings." + "description": "Caching type for the disks. Available values are none (default), readonly, readwrite. Caching type can be set only for VM sizes supporting premium storage." }, - "caffeSettings": { + "diskCount": { "oneOf": [ { - "$ref": "#/definitions/CaffeSettings" + "type": "integer" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Caffe job settings." + "description": "Number of data disks attached to the File Server. If multiple disks attached, they will be configured in RAID level 0." }, - "chainerSettings": { + "diskSizeInGB": { "oneOf": [ { - "$ref": "#/definitions/ChainerSettings" + "type": "integer" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Chainer job settings." + "description": "Disk size in GB for the blank data disks." + }, + "storageAccountType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Standard_LRS", + "Premium_LRS" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Type of storage account to be used on the disk. Possible values are: Standard_LRS or Premium_LRS. Premium storage account type can only be used with VM sizes supporting premium storage." + } + }, + "required": [ + "diskCount", + "diskSizeInGB", + "storageAccountType" + ], + "description": "Data disks settings." + }, + "DataDisksModel": { + "type": "object", + "properties": { + "diskCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "diskSizeInGB": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "storageAccountType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Standard_LRS", + "Premium_LRS" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + } + }, + "required": [ + "diskCount", + "diskSizeInGB", + "storageAccountType" + ], + "description": "Settings for the data disk which would be created for the File Server." + }, + "DataDisksModelModel": { + "type": "object", + "properties": { + "cachingType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "none", + "readonly", + "readwrite" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "diskCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "diskSizeInGB": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "storageAccountType": { + "oneOf": [ + { + "type": "string", + "enum": [ + "Standard_LRS", + "Premium_LRS" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + } + }, + "required": [ + "diskCount", + "diskSizeInGB", + "storageAccountType" + ], + "description": "Settings for the data disk which would be created for the File Server." + }, + "EnvironmentSetting": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "name" + ], + "description": "A collection of environment variables to set." + }, + "EnvironmentVariable": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the environment variable." + }, + "value": { + "type": "string", + "description": "The value of the environment variable." + } + }, + "required": [ + "name", + "value" + ], + "description": "An environment variable definition." + }, + "EnvironmentVariableModel": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "name", + "value" + ], + "description": "A collection of environment variables to set." + }, + "EnvironmentVariableWithSecretValue": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the environment variable to store the secret value." + }, + "value": { + "type": "string", + "description": "The value of the environment variable. This value will never be reported back by Batch AI." + }, + "valueSecretReference": { + "oneOf": [ + { + "$ref": "#/definitions/KeyVaultSecretReference" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Key Vault Secret reference." + } + }, + "required": [ + "name" + ], + "description": "An environment variable with secret value definition." + }, + "EnvironmentVariableWithSecretValueModel": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "valueSecretReference": { + "oneOf": [ + { + "$ref": "#/definitions/KeyVaultSecretReferenceModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Describes a reference to Key Vault Secret." + } + }, + "required": [ + "name" + ], + "description": "A collection of environment variables with secret values to set." + }, + "FileServerBaseProperties": { + "type": "object", + "properties": { + "dataDisks": { + "oneOf": [ + { + "$ref": "#/definitions/DataDisks" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Data disks settings." + }, + "sshConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/SshConfiguration" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "SSH configuration." + }, + "subnet": { + "oneOf": [ + { + "$ref": "#/definitions/ResourceId" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet." + }, + "vmSize": { + "type": "string", + "description": "The size of the virtual machine for the File Server. For information about available VM sizes from the Virtual Machines Marketplace, see Sizes for Virtual Machines (Linux)." + } + }, + "required": [ + "dataDisks", + "sshConfiguration", + "vmSize" + ], + "description": "The properties of a file server." + }, + "FileServerBasePropertiesModel": { + "type": "object", + "properties": { + "dataDisks": { + "oneOf": [ + { + "$ref": "#/definitions/DataDisksModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Settings for the data disk which would be created for the File Server." + }, + "sshConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/SshConfigurationModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "SSH configuration settings for the VM" + }, + "subnet": { + "oneOf": [ + { + "$ref": "#/definitions/ResourceId" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet." + }, + "vmSize": { + "type": "string", + "description": "For information about available VM sizes for fileservers from the Virtual Machines Marketplace, see Sizes for Virtual Machines (Linux)." + } + }, + "required": [ + "dataDisks", + "sshConfiguration", + "vmSize" + ], + "description": "The properties of a file server." + }, + "FileServerBasePropertiesModelModel": { + "type": "object", + "properties": { + "dataDisks": { + "oneOf": [ + { + "$ref": "#/definitions/DataDisksModelModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Settings for the data disk which would be created for the File Server." + }, + "sshConfiguration": { + "oneOf": [ + { + "$ref": "#/definitions/SshConfigurationModelModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "SSH configuration settings for the VM" + }, + "subnet": { + "oneOf": [ + { + "$ref": "#/definitions/ResourceId" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet." + }, + "vmSize": { + "type": "string", + "description": "For information about available VM sizes for fileservers from the Virtual Machines Marketplace, see Sizes for Virtual Machines (Linux)." + } + }, + "required": [ + "dataDisks", + "sshConfiguration", + "vmSize" + ], + "description": "The properties of a file server." + }, + "FileServerReference": { + "type": "object", + "properties": { + "fileServer": { + "oneOf": [ + { + "$ref": "#/definitions/ResourceId" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet." + }, + "mountOptions": { + "type": "string", + "description": "Mount options to be passed to mount command." + }, + "relativeMountPath": { + "type": "string", + "description": "The relative path on the compute node where the File Server will be mounted. Note that all cluster level file servers will be mounted under $AZ_BATCHAI_MOUNT_ROOT location and all job level file servers will be mounted under $AZ_BATCHAI_JOB_MOUNT_ROOT." + }, + "sourceDirectory": { + "type": "string", + "description": "File Server directory that needs to be mounted. If this property is not specified, the entire File Server will be mounted." + } + }, + "required": [ + "fileServer", + "relativeMountPath" + ], + "description": "File Server mounting configuration." + }, + "FileServerReferenceModel": { + "type": "object", + "properties": { + "fileServer": { + "oneOf": [ + { + "$ref": "#/definitions/ResourceId" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet." + }, + "mountOptions": { + "type": "string" + }, + "relativeMountPath": { + "type": "string", + "description": "Note that all cluster level file servers will be mounted under $AZ_BATCHAI_MOUNT_ROOT location and job level file servers will be mounted under $AZ_BATCHAI_JOB_MOUNT_ROOT." + }, + "sourceDirectory": { + "type": "string", + "description": "If this property is not specified, the entire File Server will be mounted." + } + }, + "required": [ + "fileServer", + "relativeMountPath" + ], + "description": "Provides required information, for the service to be able to mount Azure FileShare on the cluster nodes." + }, + "HorovodSettings": { + "type": "object", + "properties": { + "commandLineArgs": { + "type": "string", + "description": "Command line arguments that need to be passed to the python script." + }, + "processCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of processes to launch for the job execution. The default value for this property is equal to nodeCount property" + }, + "pythonInterpreterPath": { + "type": "string", + "description": "The path to the Python interpreter." + }, + "pythonScriptFilePath": { + "type": "string", + "description": "The python script to execute." + } + }, + "required": [ + "pythonScriptFilePath" + ], + "description": "Specifies the settings for Horovod job." + }, + "ImageReference": { + "type": "object", + "properties": { + "offer": { + "type": "string", + "description": "Offer of the image." + }, + "publisher": { + "type": "string", + "description": "Publisher of the image." + }, + "sku": { + "type": "string", + "description": "SKU of the image." + }, + "version": { + "type": "string", + "description": "Version of the image." + }, + "virtualMachineImageId": { + "type": "string", + "description": "The ARM resource identifier of the virtual machine image for the compute nodes. This is of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/images/{imageName}. The virtual machine image must be in the same region and subscription as the cluster. For information about the firewall settings for the Batch node agent to communicate with the Batch service see https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. Note, you need to provide publisher, offer and sku of the base OS image of which the custom image has been derived from." + } + }, + "required": [ + "offer", + "publisher", + "sku" + ], + "description": "The OS image reference." + }, + "ImageReferenceModel": { + "type": "object", + "properties": { + "offer": { + "type": "string" + }, + "publisher": { + "type": "string" + }, + "sku": { + "type": "string" + }, + "version": { + "type": "string" + } + }, + "required": [ + "offer", + "publisher", + "sku" + ], + "description": "The image reference." + }, + "ImageReferenceModelModel": { + "type": "object", + "properties": { + "offer": { + "type": "string" + }, + "publisher": { + "type": "string" + }, + "sku": { + "type": "string" + }, + "version": { + "type": "string" + }, + "virtualMachineImageId": { + "type": "string", + "description": "The virtual machine image must be in the same region and subscription as the cluster. For information about the firewall settings for the Batch node agent to communicate with the Batch service see https://docs.microsoft.com/en-us/azure/batch/batch-api-basics#virtual-network-vnet-and-firewall-configuration. Note, you need to provide publisher, offer and sku of the base OS image of which the custom image has been derived from." + } + }, + "required": [ + "offer", + "publisher", + "sku" + ], + "description": "The image reference." + }, + "ImageSourceRegistry": { + "type": "object", + "properties": { + "credentials": { + "oneOf": [ + { + "$ref": "#/definitions/PrivateRegistryCredentials" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Credentials to access a container image in a private repository." + }, + "image": { + "type": "string", + "description": "The name of the image in the image repository." + }, + "serverUrl": { + "type": "string", + "description": "URL for image repository." + } + }, + "required": [ + "image" + ], + "description": "Information about docker image for the job." + }, + "ImageSourceRegistryModel": { + "type": "object", + "properties": { + "credentials": { + "oneOf": [ + { + "$ref": "#/definitions/PrivateRegistryCredentialsModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Credentials to access a container image in a private repository." + }, + "image": { + "type": "string" + }, + "serverUrl": { + "type": "string" + } + }, + "required": [ + "image" + ], + "description": "Details of the container image such as name, URL and credentials." + }, + "InputDirectory": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID for the input directory. The job can use AZ_BATCHAI_INPUT_ environment variable to find the directory path, where is the value of id attribute." + }, + "path": { + "type": "string", + "description": "The path to the input directory." + } + }, + "required": [ + "id", + "path" + ], + "description": "Input directory for the job." + }, + "InputDirectoryModel": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The path of the input directory will be available as a value of an environment variable with AZ_BATCHAI_INPUT_ name, where is the value of id attribute." + }, + "path": { + "type": "string" + } + }, + "required": [ + "id", + "path" + ], + "description": "Input directory for the job." + }, + "JobBaseProperties": { + "type": "object", + "properties": { + "caffe2Settings": { + "oneOf": [ + { + "$ref": "#/definitions/Caffe2Settings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Caffe2 job settings." + }, + "caffeSettings": { + "oneOf": [ + { + "$ref": "#/definitions/CaffeSettings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Caffe job settings." + }, + "chainerSettings": { + "oneOf": [ + { + "$ref": "#/definitions/ChainerSettings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Chainer job settings." + }, + "cluster": { + "oneOf": [ + { + "$ref": "#/definitions/ResourceId" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet." + }, + "cntkSettings": { + "oneOf": [ + { + "$ref": "#/definitions/CNTKsettings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "CNTK (aka Microsoft Cognitive Toolkit) job settings." + }, + "constraints": { + "oneOf": [ + { + "$ref": "#/definitions/JobBasePropertiesConstraints" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Constraints associated with the Job." + }, + "containerSettings": { + "oneOf": [ + { + "$ref": "#/definitions/ContainerSettings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Docker container settings." + }, + "customMpiSettings": { + "oneOf": [ + { + "$ref": "#/definitions/CustomMpiSettings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Custom MPI job settings." + }, + "customToolkitSettings": { + "oneOf": [ + { + "$ref": "#/definitions/CustomToolkitSettings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Custom tool kit job settings." + }, + "environmentVariables": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/EnvironmentVariable" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "A list of user defined environment variables which will be setup for the job." + }, + "horovodSettings": { + "oneOf": [ + { + "$ref": "#/definitions/HorovodSettings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Specifies the settings for Horovod job." + }, + "inputDirectories": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/InputDirectory" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "A list of input directories for the job." + }, + "jobPreparation": { + "oneOf": [ + { + "$ref": "#/definitions/JobPreparation" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Job preparation settings." + }, + "mountVolumes": { + "oneOf": [ + { + "$ref": "#/definitions/MountVolumes" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Details of volumes to mount on the cluster." + }, + "nodeCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Number of compute nodes to run the job on. The job will be gang scheduled on that many compute nodes." + }, + "outputDirectories": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/OutputDirectory" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "A list of output directories for the job." + }, + "pyTorchSettings": { + "oneOf": [ + { + "$ref": "#/definitions/PyTorchSettings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "pyTorch job settings." + }, + "schedulingPriority": { + "oneOf": [ + { + "type": "string", + "enum": [ + "low", + "normal", + "high" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Scheduling priority associated with the job. Possible values: low, normal, high." + }, + "secrets": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/EnvironmentVariableWithSecretValue" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "A list of user defined environment variables with secret values which will be setup for the job. Server will never report values of these variables back." + }, + "stdOutErrPathPrefix": { + "type": "string", + "description": "The path where the Batch AI service will store stdout, stderror and execution log of the job." + }, + "tensorFlowSettings": { + "oneOf": [ + { + "$ref": "#/definitions/TensorFlowSettings" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "TensorFlow job settings." + } + }, + "required": [ + "cluster", + "nodeCount", + "stdOutErrPathPrefix" + ], + "description": "The properties of a Batch AI Job." + }, + "JobBasePropertiesConstraints": { + "type": "object", + "properties": { + "maxWallClockTime": { + "type": "string", + "default": "7.00:00:00", + "format": "duration", + "description": "Max time the job can run. Default value: 1 week." + } + }, + "description": "Constraints associated with the Job." + }, + "JobBasePropertiesConstraintsModel": { + "type": "object", + "properties": { + "maxWallClockTime": { + "type": "string", + "default": "7.00:00:00", + "format": "duration", + "description": "Default Value = 1 week." + } + }, + "description": "Constraints associated with the Job." + }, + "JobBasePropertiesModel": { + "type": "object", + "properties": { + "caffe2Settings": { + "oneOf": [ + { + "$ref": "#/definitions/Caffe2SettingsModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Specifies the settings for Caffe2 job." + }, + "caffeSettings": { + "oneOf": [ + { + "$ref": "#/definitions/CaffeSettingsModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Specifies the settings for Caffe job." + }, + "chainerSettings": { + "oneOf": [ + { + "$ref": "#/definitions/ChainerSettingsModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Specifies the settings for Chainer job." + }, + "cluster": { + "oneOf": [ + { + "$ref": "#/definitions/ResourceId" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet." + }, + "cntkSettings": { + "oneOf": [ + { + "$ref": "#/definitions/CNTKsettingsModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Specifies the settings for CNTK (aka Microsoft Cognitive Toolkit) job." + }, + "constraints": { + "oneOf": [ + { + "$ref": "#/definitions/JobBasePropertiesConstraintsModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Constraints associated with the Job." + }, + "containerSettings": { + "oneOf": [ + { + "$ref": "#/definitions/ContainerSettingsModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Settings for the container to be downloaded." + }, + "customToolkitSettings": { + "oneOf": [ + { + "$ref": "#/definitions/CustomToolkitSettingsModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Specifies the settings for a custom tool kit job." + }, + "environmentVariables": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/EnvironmentSetting" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "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" + }, + "experimentName": { + "type": "string", + "description": "Describe the experiment information of the job" + }, + "inputDirectories": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/InputDirectoryModel" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "jobPreparation": { + "oneOf": [ + { + "$ref": "#/definitions/JobPreparationModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Specifies the settings for job preparation." + }, + "nodeCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The job will be gang scheduled on that many compute nodes" + }, + "outputDirectories": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/OutputDirectoryModel" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "priority": { + "oneOf": [ + { + "type": "integer", + "default": "0" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "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." + }, + "stdOutErrPathPrefix": { + "type": "string", + "description": "The path where the Batch AI service will upload stdout and stderror of the job." + }, + "tensorFlowSettings": { + "oneOf": [ + { + "$ref": "#/definitions/TensorFlowSettingsModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Specifies the settings for TensorFlow job." + } + }, + "required": [ + "cluster", + "nodeCount", + "stdOutErrPathPrefix" + ], + "description": "The properties of a Batch AI job." + }, + "JobBasePropertiesModelModel": { + "type": "object", + "properties": { + "caffe2Settings": { + "oneOf": [ + { + "$ref": "#/definitions/Caffe2SettingsModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Specifies the settings for Caffe2 job." + }, + "caffeSettings": { + "oneOf": [ + { + "$ref": "#/definitions/CaffeSettingsModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Specifies the settings for Caffe job." + }, + "chainerSettings": { + "oneOf": [ + { + "$ref": "#/definitions/ChainerSettingsModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Specifies the settings for Chainer job." }, "cluster": { "oneOf": [ { - "$ref": "#/definitions/ResourceId" + "$ref": "#/definitions/ResourceId" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet." + }, + "cntkSettings": { + "oneOf": [ + { + "$ref": "#/definitions/CNTKsettingsModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Specifies the settings for CNTK (aka Microsoft Cognitive Toolkit) job." + }, + "constraints": { + "oneOf": [ + { + "$ref": "#/definitions/JobBasePropertiesConstraintsModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Constraints associated with the Job." + }, + "containerSettings": { + "oneOf": [ + { + "$ref": "#/definitions/ContainerSettingsModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Settings for the container to be downloaded." + }, + "customToolkitSettings": { + "oneOf": [ + { + "$ref": "#/definitions/CustomToolkitSettingsModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Specifies the settings for a custom tool kit job." + }, + "environmentVariables": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/EnvironmentVariableModel" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Batch AI will setup these additional environment variables for the job." + }, + "experimentName": { + "type": "string", + "description": "Describe the experiment information of the job" + }, + "inputDirectories": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/InputDirectoryModel" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "jobPreparation": { + "oneOf": [ + { + "$ref": "#/definitions/JobPreparationModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Specifies the settings for job preparation." + }, + "mountVolumes": { + "oneOf": [ + { + "$ref": "#/definitions/MountVolumesModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Details of volumes to mount on the cluster." + }, + "nodeCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The job will be gang scheduled on that many compute nodes" + }, + "outputDirectories": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/OutputDirectoryModel" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "priority": { + "oneOf": [ + { + "type": "integer", + "default": "0" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "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." + }, + "pyTorchSettings": { + "oneOf": [ + { + "$ref": "#/definitions/PyTorchSettingsModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Specifies the settings for pyTorch job." + }, + "secrets": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/EnvironmentVariableWithSecretValueModel" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Batch AI will setup these additional environment variables for the job. Server will never report values of these variables back." + }, + "stdOutErrPathPrefix": { + "type": "string", + "description": "The path where the Batch AI service will upload stdout and stderror of the job." + }, + "tensorFlowSettings": { + "oneOf": [ + { + "$ref": "#/definitions/TensorFlowSettingsModelModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Specifies the settings for TensorFlow job." + } + }, + "required": [ + "cluster", + "nodeCount", + "stdOutErrPathPrefix" + ], + "description": "The properties of a Batch AI job." + }, + "JobPreparation": { + "type": "object", + "properties": { + "commandLine": { + "type": "string", + "description": "The command line to execute. 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." + } + }, + "required": [ + "commandLine" + ], + "description": "Job preparation settings." + }, + "JobPreparationModel": { + "type": "object", + "properties": { + "commandLine": { + "type": "string", + "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." + } + }, + "required": [ + "commandLine" + ], + "description": "Specifies the settings for job preparation." + }, + "KeyVaultSecretReference": { + "type": "object", + "properties": { + "secretUrl": { + "type": "string", + "description": "The URL referencing a secret in the Key Vault." + }, + "sourceVault": { + "oneOf": [ + { + "$ref": "#/definitions/ResourceId" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet." + } + }, + "required": [ + "secretUrl", + "sourceVault" + ], + "description": "Key Vault Secret reference." + }, + "KeyVaultSecretReferenceModel": { + "type": "object", + "properties": { + "secretUrl": { + "type": "string" + }, + "sourceVault": { + "oneOf": [ + { + "$ref": "#/definitions/ResourceId" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet." + } + }, + "required": [ + "secretUrl", + "sourceVault" + ], + "description": "Describes a reference to Key Vault Secret." + }, + "ManualScaleSettings": { + "type": "object", + "properties": { + "nodeDeallocationOption": { + "oneOf": [ + { + "type": "string", + "enum": [ + "requeue", + "terminate", + "waitforjobcompletion", + "unknown" + ] + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "An action to be performed when the cluster size is decreasing. The default value is requeue." + }, + "targetNodeCount": { + "oneOf": [ + { + "type": "integer", + "default": "0" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The desired number of compute nodes in the Cluster. Default is 0." + } + }, + "required": [ + "targetNodeCount" + ], + "description": "Manual scale settings for the cluster." + }, + "ManualScaleSettingsModel": { + "type": "object", + "properties": { + "nodeDeallocationOption": { + "oneOf": [ + { + "type": "string", + "enum": [ + "requeue", + "terminate", + "waitforjobcompletion", + "unknown" + ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet." + "description": "The default value is requeue." }, - "cntkSettings": { + "targetNodeCount": { "oneOf": [ { - "$ref": "#/definitions/CNTKsettings" + "type": "integer", + "default": "0" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "CNTK (aka Microsoft Cognitive Toolkit) job settings." - }, - "constraints": { + "description": "Default is 0. If autoScaleSettings are not specified, then the Cluster starts with this target." + } + }, + "required": [ + "targetNodeCount" + ], + "description": "Manual scale settings for the cluster." + }, + "MountVolumes": { + "type": "object", + "properties": { + "azureBlobFileSystems": { "oneOf": [ { - "$ref": "#/definitions/JobBasePropertiesConstraints" + "type": "array", + "items": { + "$ref": "#/definitions/AzureBlobFileSystemReference" + } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Constraints associated with the Job." + "description": "A collection of Azure Blob Containers that are to be mounted to the cluster nodes." }, - "containerSettings": { + "azureFileShares": { "oneOf": [ { - "$ref": "#/definitions/ContainerSettings" + "type": "array", + "items": { + "$ref": "#/definitions/AzureFileShareReference" + } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Docker container settings." + "description": "A collection of Azure File Shares that are to be mounted to the cluster nodes." }, - "customMpiSettings": { + "fileServers": { "oneOf": [ { - "$ref": "#/definitions/CustomMpiSettings" + "type": "array", + "items": { + "$ref": "#/definitions/FileServerReference" + } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Custom MPI job settings." + "description": "A collection of Batch AI File Servers that are to be mounted to the cluster nodes." }, - "customToolkitSettings": { + "unmanagedFileSystems": { "oneOf": [ { - "$ref": "#/definitions/CustomToolkitSettings" + "type": "array", + "items": { + "$ref": "#/definitions/UnmanagedFileSystemReference" + } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Custom tool kit job settings." - }, - "environmentVariables": { + "description": "A collection of unmanaged file systems that are to be mounted to the cluster nodes." + } + }, + "description": "Details of volumes to mount on the cluster." + }, + "MountVolumesModel": { + "type": "object", + "properties": { + "azureBlobFileSystems": { "oneOf": [ { "type": "array", "items": { - "$ref": "#/definitions/EnvironmentVariable" + "$ref": "#/definitions/AzureBlobFileSystemReferenceModel" } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "A list of user defined environment variables which will be setup for the job." + "description": "References to Azure Blob FUSE that are to be mounted to the cluster nodes." }, - "horovodSettings": { + "azureFileShares": { "oneOf": [ { - "$ref": "#/definitions/HorovodSettings" + "type": "array", + "items": { + "$ref": "#/definitions/AzureFileShareReferenceModel" + } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Specifies the settings for Horovod job." + "description": "References to Azure File Shares that are to be mounted to the cluster nodes." }, - "inputDirectories": { + "fileServers": { "oneOf": [ { "type": "array", "items": { - "$ref": "#/definitions/InputDirectory" + "$ref": "#/definitions/FileServerReferenceModel" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] + }, + "unmanagedFileSystems": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/UnmanagedFileSystemReferenceModel" } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } + ] + } + }, + "description": "Details of volumes to mount on the cluster." + }, + "NodeSetup": { + "type": "object", + "properties": { + "mountVolumes": { + "oneOf": [ + { + "$ref": "#/definitions/MountVolumes" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } ], - "description": "A list of input directories for the job." + "description": "Details of volumes to mount on the cluster." }, - "jobPreparation": { + "performanceCountersSettings": { "oneOf": [ { - "$ref": "#/definitions/JobPreparation" + "$ref": "#/definitions/PerformanceCountersSettings" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Job preparation settings." + "description": "Performance counters reporting settings." + }, + "setupTask": { + "oneOf": [ + { + "$ref": "#/definitions/SetupTask" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Specifies a setup task which can be used to customize the compute nodes of the cluster." + } + }, + "description": "Node setup settings." + }, + "NodeSetupModel": { + "type": "object", + "properties": { + "mountVolumes": { + "oneOf": [ + { + "$ref": "#/definitions/MountVolumesModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Details of volumes to mount on the cluster." }, + "setupTask": { + "oneOf": [ + { + "$ref": "#/definitions/SetupTaskModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Specifies a setup task which can be used to customize the compute nodes of the cluster." + } + }, + "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." + }, + "NodeSetupModelModel": { + "type": "object", + "properties": { "mountVolumes": { "oneOf": [ { - "$ref": "#/definitions/MountVolumes" + "$ref": "#/definitions/MountVolumesModel" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" @@ -1185,477 +3149,549 @@ ], "description": "Details of volumes to mount on the cluster." }, - "nodeCount": { + "performanceCountersSettings": { "oneOf": [ { - "type": "integer" + "$ref": "#/definitions/PerformanceCountersSettingsModel" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Number of compute nodes to run the job on. The job will be gang scheduled on that many compute nodes." + "description": "Performance counters reporting settings." }, - "outputDirectories": { + "setupTask": { "oneOf": [ { - "type": "array", - "items": { - "$ref": "#/definitions/OutputDirectory" - } + "$ref": "#/definitions/SetupTaskModelModel" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "A list of output directories for the job." + "description": "Specifies a setup task which can be used to customize the compute nodes of the cluster." + } + }, + "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." + }, + "OutputDirectory": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID of the output directory. The job can use AZ_BATCHAI_OUTPUT_ environment variable to find the directory path, where is the value of id attribute." }, - "pyTorchSettings": { + "pathPrefix": { + "type": "string", + "description": "The prefix path where the output directory will be created. Note, this is an absolute path to prefix. E.g. $AZ_BATCHAI_MOUNT_ROOT/MyNFS/MyLogs. The full path to the output directory by combining pathPrefix, jobOutputDirectoryPathSegment (reported by get job) and pathSuffix." + }, + "pathSuffix": { + "type": "string", + "description": "The suffix path where the output directory will be created. E.g. models. You can find the full path to the output directory by combining pathPrefix, jobOutputDirectoryPathSegment (reported by get job) and pathSuffix." + } + }, + "required": [ + "id", + "pathPrefix" + ], + "description": "Output directory for the job." + }, + "OutputDirectoryModel": { + "type": "object", + "properties": { + "createNew": { "oneOf": [ { - "$ref": "#/definitions/PyTorchSettings" + "type": "boolean", + "default": true }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "pyTorch job settings." + "description": "Default is true. If false, then the directory is not created and can be any directory path that the user specifies." }, - "schedulingPriority": { + "id": { + "type": "string", + "description": "The path of the output directory will be available as a value of an environment variable with AZ_BATCHAI_OUTPUT_ name, where is the value of id attribute." + }, + "pathPrefix": { + "type": "string", + "description": "NOTE: This is an absolute path to prefix. E.g. $AZ_BATCHAI_MOUNT_ROOT/MyNFS/MyLogs. You can find the full path to the output directory by combining pathPrefix, jobOutputDirectoryPathSegment (reported by get job) and pathSuffix." + }, + "pathSuffix": { + "type": "string", + "description": "The suffix path where the output directory will be created. E.g. models. You can find the full path to the output directory by combining pathPrefix, jobOutputDirectoryPathSegment (reported by get job) and pathSuffix." + }, + "type": { "oneOf": [ { "type": "string", "enum": [ - "low", - "normal", - "high" + "model", + "logs", + "summary", + "custom" ] }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Scheduling priority associated with the job. Possible values: low, normal, high." - }, - "secrets": { + "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'." + } + }, + "required": [ + "id", + "pathPrefix" + ], + "description": "Output directory for the job." + }, + "PerformanceCountersSettings": { + "type": "object", + "properties": { + "appInsightsReference": { "oneOf": [ { - "type": "array", - "items": { - "$ref": "#/definitions/EnvironmentVariableWithSecretValue" - } + "$ref": "#/definitions/AppInsightsReference" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "A list of user defined environment variables with secret values which will be setup for the job. Server will never report values of these variables back." - }, - "stdOutErrPathPrefix": { - "type": "string", - "description": "The path where the Batch AI service will store stdout, stderror and execution log of the job." - }, - "tensorFlowSettings": { + "description": "Azure Application Insights information for performance counters reporting." + } + }, + "required": [ + "appInsightsReference" + ], + "description": "Performance counters reporting settings." + }, + "PerformanceCountersSettingsModel": { + "type": "object", + "properties": { + "appInsightsReference": { "oneOf": [ { - "$ref": "#/definitions/TensorFlowSettings" + "$ref": "#/definitions/AppInsightsReferenceModel" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "TensorFlow job settings." + "description": "Specifies Azure Application Insights information for performance counters reporting." } }, "required": [ - "cluster", - "nodeCount", - "stdOutErrPathPrefix" + "appInsightsReference" ], - "description": "The properties of a Batch AI Job." + "description": "Performance counters reporting settings." }, - "JobBasePropertiesConstraints": { + "PrivateRegistryCredentials": { "type": "object", "properties": { - "maxWallClockTime": { + "password": { "type": "string", - "default": "7.00:00:00", - "format": "duration", - "description": "Max time the job can run. Default value: 1 week." - } - }, - "description": "Constraints associated with the Job." - }, - "JobPreparation": { - "type": "object", - "properties": { - "commandLine": { + "description": "User password to login to the docker repository. One of password or passwordSecretReference must be specified." + }, + "passwordSecretReference": { + "oneOf": [ + { + "$ref": "#/definitions/KeyVaultSecretReference" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Key Vault Secret reference." + }, + "username": { "type": "string", - "description": "The command line to execute. 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." + "description": "User name to login to the repository." } }, "required": [ - "commandLine" + "username" ], - "description": "Job preparation settings." + "description": "Credentials to access a container image in a private repository." }, - "KeyVaultSecretReference": { + "PrivateRegistryCredentialsModel": { "type": "object", "properties": { - "secretUrl": { + "password": { "type": "string", - "description": "The URL referencing a secret in the Key Vault." + "description": "One of password or passwordSecretReference must be specified." }, - "sourceVault": { + "passwordSecretReference": { "oneOf": [ { - "$ref": "#/definitions/ResourceId" + "$ref": "#/definitions/KeyVaultSecretReferenceModel" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet." + "description": "Describes a reference to Key Vault Secret." + }, + "username": { + "type": "string" } }, "required": [ - "secretUrl", - "sourceVault" + "username" ], - "description": "Key Vault Secret reference." + "description": "Credentials to access a container image in a private repository." }, - "ManualScaleSettings": { + "PyTorchSettings": { "type": "object", "properties": { - "nodeDeallocationOption": { + "commandLineArgs": { + "type": "string", + "description": "Command line arguments that need to be passed to the python script." + }, + "communicationBackend": { + "type": "string", + "description": "Type of the communication backend for distributed jobs. Valid values are 'TCP', 'Gloo' or 'MPI'. Not required for non-distributed jobs." + }, + "processCount": { "oneOf": [ { - "type": "string", - "enum": [ - "requeue", - "terminate", - "waitforjobcompletion" - ] + "type": "integer" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "An action to be performed when the cluster size is decreasing. The default value is requeue." + "description": "Number of processes to launch for the job execution. The default value for this property is equal to nodeCount property" }, - "targetNodeCount": { + "pythonInterpreterPath": { + "type": "string", + "description": "The path to the Python interpreter." + }, + "pythonScriptFilePath": { + "type": "string", + "description": "The python script to execute." + } + }, + "required": [ + "pythonScriptFilePath" + ], + "description": "pyTorch job settings." + }, + "PyTorchSettingsModel": { + "type": "object", + "properties": { + "commandLineArgs": { + "type": "string" + }, + "communicationBackend": { + "type": "string", + "description": "Valid values are 'TCP', 'Gloo' or 'MPI'. Not required for non-distributed jobs." + }, + "processCount": { "oneOf": [ { - "type": "integer", - "default": "0" + "type": "integer" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "The desired number of compute nodes in the Cluster. Default is 0." + "description": "The default value for this property is equal to nodeCount property." + }, + "pythonInterpreterPath": { + "type": "string" + }, + "pythonScriptFilePath": { + "type": "string" } }, "required": [ - "targetNodeCount" + "pythonScriptFilePath" ], - "description": "Manual scale settings for the cluster." + "description": "Specifies the settings for pyTorch job." }, - "MountVolumes": { + "ResourceId": { "type": "object", "properties": { - "azureBlobFileSystems": { + "id": { + "type": "string", + "description": "The ID of the resource" + } + }, + "required": [ + "id" + ], + "description": "Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet." + }, + "ScaleSettings": { + "type": "object", + "properties": { + "autoScale": { "oneOf": [ { - "type": "array", - "items": { - "$ref": "#/definitions/AzureBlobFileSystemReference" - } + "$ref": "#/definitions/AutoScaleSettings" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "A collection of Azure Blob Containers that are to be mounted to the cluster nodes." + "description": "Auto-scale settings for the cluster. The system automatically scales the cluster up and down (within minimumNodeCount and maximumNodeCount) based on the number of queued and running jobs assigned to the cluster." }, - "azureFileShares": { + "manual": { "oneOf": [ { - "type": "array", - "items": { - "$ref": "#/definitions/AzureFileShareReference" - } + "$ref": "#/definitions/ManualScaleSettings" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "A collection of Azure File Shares that are to be mounted to the cluster nodes." - }, - "fileServers": { + "description": "Manual scale settings for the cluster." + } + }, + "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." + }, + "ScaleSettingsModel": { + "type": "object", + "properties": { + "autoScale": { "oneOf": [ { - "type": "array", - "items": { - "$ref": "#/definitions/FileServerReference" - } + "$ref": "#/definitions/AutoScaleSettingsModel" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "A collection of Batch AI File Servers that are to be mounted to the cluster nodes." + "description": "The system automatically scales the cluster up and down (within minimumNodeCount and maximumNodeCount) based on the pending and running jobs on the cluster." }, - "unmanagedFileSystems": { + "manual": { "oneOf": [ { - "type": "array", - "items": { - "$ref": "#/definitions/UnmanagedFileSystemReference" - } + "$ref": "#/definitions/ManualScaleSettingsModel" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "A collection of unmanaged file systems that are to be mounted to the cluster nodes." + "description": "Manual scale settings for the cluster." } }, - "description": "Details of volumes to mount on the cluster." + "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." }, - "NodeSetup": { + "SetupTask": { "type": "object", "properties": { - "mountVolumes": { - "oneOf": [ - { - "$ref": "#/definitions/MountVolumes" - }, - { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Details of volumes to mount on the cluster." + "commandLine": { + "type": "string", + "description": "The command line to be executed on each cluster's node after it being allocated or rebooted. The command is executed in a bash subshell as a root." }, - "performanceCountersSettings": { + "environmentVariables": { "oneOf": [ { - "$ref": "#/definitions/PerformanceCountersSettings" + "type": "array", + "items": { + "$ref": "#/definitions/EnvironmentVariable" + } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Performance counters reporting settings." + "description": "A collection of user defined environment variables to be set for setup task." }, - "setupTask": { + "secrets": { "oneOf": [ { - "$ref": "#/definitions/SetupTask" + "type": "array", + "items": { + "$ref": "#/definitions/EnvironmentVariableWithSecretValue" + } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Specifies a setup task which can be used to customize the compute nodes of the cluster." - } - }, - "description": "Node setup settings." - }, - "OutputDirectory": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The ID of the output directory. The job can use AZ_BATCHAI_OUTPUT_ environment variable to find the directory path, where is the value of id attribute." - }, - "pathPrefix": { - "type": "string", - "description": "The prefix path where the output directory will be created. Note, this is an absolute path to prefix. E.g. $AZ_BATCHAI_MOUNT_ROOT/MyNFS/MyLogs. The full path to the output directory by combining pathPrefix, jobOutputDirectoryPathSegment (reported by get job) and pathSuffix." + "description": "A collection of user defined environment variables with secret values to be set for the setup task. Server will never report values of these variables back." }, - "pathSuffix": { + "stdOutErrPathPrefix": { "type": "string", - "description": "The suffix path where the output directory will be created. E.g. models. You can find the full path to the output directory by combining pathPrefix, jobOutputDirectoryPathSegment (reported by get job) and pathSuffix." + "description": "The prefix of a path where the Batch AI service will upload the stdout, stderr and execution log of the setup task." } }, "required": [ - "id", - "pathPrefix" + "commandLine", + "stdOutErrPathPrefix" ], - "description": "Output directory for the job." + "description": "Specifies a setup task which can be used to customize the compute nodes of the cluster." }, - "PerformanceCountersSettings": { + "SetupTaskModel": { "type": "object", "properties": { - "appInsightsReference": { + "commandLine": { + "type": "string" + }, + "environmentVariables": { "oneOf": [ { - "$ref": "#/definitions/AppInsightsReference" + "type": "array", + "items": { + "$ref": "#/definitions/EnvironmentSetting" + } }, { - "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" - } - ], - "description": "Azure Application Insights information for performance counters reporting." - } - }, - "required": [ - "appInsightsReference" - ], - "description": "Performance counters reporting settings." - }, - "PrivateRegistryCredentials": { - "type": "object", - "properties": { - "password": { - "type": "string", - "description": "User password to login to the docker repository. One of password or passwordSecretReference must be specified." + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] }, - "passwordSecretReference": { + "runElevated": { "oneOf": [ { - "$ref": "#/definitions/KeyVaultSecretReference" + "type": "boolean", + "default": false }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } - ], - "description": "Key Vault Secret reference." + ] }, - "username": { + "stdOutErrPathPrefix": { "type": "string", - "description": "User name to login to the repository." + "description": "The prefix of a path where the Batch AI service will upload the stdout and stderr of the setup task." } }, "required": [ - "username" + "commandLine", + "stdOutErrPathPrefix" ], - "description": "Credentials to access a container image in a private repository." + "description": "Specifies a setup task which can be used to customize the compute nodes of the cluster." }, - "PyTorchSettings": { + "SetupTaskModelModel": { "type": "object", "properties": { - "commandLineArgs": { - "type": "string", - "description": "Command line arguments that need to be passed to the python script." + "commandLine": { + "type": "string" }, - "communicationBackend": { - "type": "string", - "description": "Type of the communication backend for distributed jobs. Valid values are 'TCP', 'Gloo' or 'MPI'. Not required for non-distributed jobs." + "environmentVariables": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/EnvironmentVariableModel" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ] }, - "processCount": { + "runElevated": { "oneOf": [ { - "type": "integer" + "type": "boolean", + "default": false }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Number of processes to launch for the job execution. The default value for this property is equal to nodeCount property" + "description": "Note. Non-elevated tasks are run under an account added into sudoer list and can perform sudo when required." }, - "pythonInterpreterPath": { - "type": "string", - "description": "The path to the Python interpreter." + "secrets": { + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/definitions/EnvironmentVariableWithSecretValueModel" + } + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "Server will never report values of these variables back." }, - "pythonScriptFilePath": { - "type": "string", - "description": "The python script to execute." - } - }, - "required": [ - "pythonScriptFilePath" - ], - "description": "pyTorch job settings." - }, - "ResourceId": { - "type": "object", - "properties": { - "id": { + "stdOutErrPathPrefix": { "type": "string", - "description": "The ID of the resource" + "description": "The prefix of a path where the Batch AI service will upload the stdout and stderr of the setup task." } }, "required": [ - "id" + "commandLine", + "stdOutErrPathPrefix" ], - "description": "Represents a resource ID. For example, for a subnet, it is the resource URL for the subnet." + "description": "Specifies a setup task which can be used to customize the compute nodes of the cluster." }, - "ScaleSettings": { + "SshConfiguration": { "type": "object", "properties": { - "autoScale": { + "publicIPsToAllow": { "oneOf": [ { - "$ref": "#/definitions/AutoScaleSettings" + "type": "array", + "items": { + "type": "string" + } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Auto-scale settings for the cluster. The system automatically scales the cluster up and down (within minimumNodeCount and maximumNodeCount) based on the number of queued and running jobs assigned to the cluster." + "description": "List of source IP ranges to allow SSH connection from. The default value is '*' (all source IPs are allowed). Maximum number of IP ranges that can be specified is 400." }, - "manual": { + "userAccountSettings": { "oneOf": [ { - "$ref": "#/definitions/ManualScaleSettings" + "$ref": "#/definitions/UserAccountSettings" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "Manual scale settings for the cluster." + "description": "Settings for user account that gets created on each on the nodes of a cluster." } }, - "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." + "required": [ + "userAccountSettings" + ], + "description": "SSH configuration." }, - "SetupTask": { + "SshConfigurationModel": { "type": "object", "properties": { - "commandLine": { - "type": "string", - "description": "The command line to be executed on each cluster's node after it being allocated or rebooted. The command is executed in a bash subshell as a root." - }, - "environmentVariables": { + "publicIPsToAllow": { "oneOf": [ { "type": "array", "items": { - "$ref": "#/definitions/EnvironmentVariable" + "type": "string" } }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "A collection of user defined environment variables to be set for setup task." + "description": "Default value is '*' can be used to match all source IPs. Maximum number of publicIPs that can be specified are 400." }, - "secrets": { + "userAccountSettings": { "oneOf": [ { - "type": "array", - "items": { - "$ref": "#/definitions/EnvironmentVariableWithSecretValue" - } + "$ref": "#/definitions/UserAccountSettingsModel" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "A collection of user defined environment variables with secret values to be set for the setup task. Server will never report values of these variables back." - }, - "stdOutErrPathPrefix": { - "type": "string", - "description": "The prefix of a path where the Batch AI service will upload the stdout, stderr and execution log of the setup task." + "description": "Settings for user account that gets created on each on the nodes of a cluster." } }, "required": [ - "commandLine", - "stdOutErrPathPrefix" + "userAccountSettings" ], - "description": "Specifies a setup task which can be used to customize the compute nodes of the cluster." + "description": "SSH configuration settings for the VM" }, - "SshConfiguration": { + "SshConfigurationModelModel": { "type": "object", "properties": { "publicIPsToAllow": { @@ -1670,12 +3706,12 @@ "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" } ], - "description": "List of source IP ranges to allow SSH connection from. The default value is '*' (all source IPs are allowed). Maximum number of IP ranges that can be specified is 400." + "description": "Default value is '*' can be used to match all source IPs. Maximum number of IP ranges that can be specified are 400." }, "userAccountSettings": { "oneOf": [ { - "$ref": "#/definitions/UserAccountSettings" + "$ref": "#/definitions/UserAccountSettingsModel" }, { "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" @@ -1687,7 +3723,7 @@ "required": [ "userAccountSettings" ], - "description": "SSH configuration." + "description": "SSH configuration settings for the VM" }, "TensorFlowSettings": { "type": "object", @@ -1740,6 +3776,103 @@ ], "description": "TensorFlow job settings." }, + "TensorFlowSettingsModel": { + "type": "object", + "properties": { + "masterCommandLineArgs": { + "type": "string" + }, + "parameterServerCommandLineArgs": { + "type": "string", + "description": "This property is optional for single machine training." + }, + "parameterServerCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "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." + }, + "pythonInterpreterPath": { + "type": "string" + }, + "pythonScriptFilePath": { + "type": "string" + }, + "workerCommandLineArgs": { + "type": "string", + "description": "This property is optional for single machine training." + }, + "workerCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "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" + } + }, + "required": [ + "masterCommandLineArgs", + "pythonScriptFilePath" + ], + "description": "Specifies the settings for TensorFlow job." + }, + "TensorFlowSettingsModelModel": { + "type": "object", + "properties": { + "masterCommandLineArgs": { + "type": "string" + }, + "parameterServerCommandLineArgs": { + "type": "string", + "description": "This property is optional for single machine training." + }, + "parameterServerCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "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." + }, + "pythonInterpreterPath": { + "type": "string" + }, + "pythonScriptFilePath": { + "type": "string" + }, + "workerCommandLineArgs": { + "type": "string", + "description": "This property is optional for single machine training." + }, + "workerCount": { + "oneOf": [ + { + "type": "integer" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "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" + } + }, + "required": [ + "pythonScriptFilePath" + ], + "description": "Specifies the settings for TensorFlow job." + }, "UnmanagedFileSystemReference": { "type": "object", "properties": { @@ -1758,6 +3891,23 @@ ], "description": "Unmanaged file system mounting configuration." }, + "UnmanagedFileSystemReferenceModel": { + "type": "object", + "properties": { + "mountCommand": { + "type": "string" + }, + "relativeMountPath": { + "type": "string", + "description": "Note that all cluster level unmanaged file system will be mounted under $AZ_BATCHAI_MOUNT_ROOT location and job level unmanaged file system will be mounted under $AZ_BATCHAI_JOB_MOUNT_ROOT." + } + }, + "required": [ + "mountCommand", + "relativeMountPath" + ], + "description": "Details of the file system to mount on the compute cluster nodes." + }, "UserAccountSettings": { "type": "object", "properties": { @@ -1779,6 +3929,24 @@ ], "description": "Settings for user account that gets created on each on the nodes of a cluster." }, + "UserAccountSettingsModel": { + "type": "object", + "properties": { + "adminUserName": { + "type": "string" + }, + "adminUserPassword": { + "type": "string" + }, + "adminUserSshPublicKey": { + "type": "string" + } + }, + "required": [ + "adminUserName" + ], + "description": "Settings for user account that gets created on each on the nodes of a cluster." + }, "VirtualMachineConfiguration": { "type": "object", "properties": { @@ -1796,6 +3964,40 @@ }, "description": "VM configuration." }, + "VirtualMachineConfigurationModel": { + "type": "object", + "properties": { + "imageReference": { + "oneOf": [ + { + "$ref": "#/definitions/ImageReferenceModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The image reference." + } + }, + "description": "Settings for OS image." + }, + "VirtualMachineConfigurationModelModel": { + "type": "object", + "properties": { + "imageReference": { + "oneOf": [ + { + "$ref": "#/definitions/ImageReferenceModelModel" + }, + { + "$ref": "https://schema.management.azure.com/schemas/common/definitions.json#/definitions/expression" + } + ], + "description": "The image reference." + } + }, + "description": "Settings for OS image." + }, "workspaces_clusters_childResource": { "type": "object", "properties": { diff --git a/schemas/common/autogeneratedResources.json b/schemas/common/autogeneratedResources.json index b24fabf5fe..0c4909d543 100644 --- a/schemas/common/autogeneratedResources.json +++ b/schemas/common/autogeneratedResources.json @@ -1210,6 +1210,15 @@ { "$ref": "https://schema.management.azure.com/schemas/2018-03-01/Microsoft.BatchAI.json#/resourceDefinitions/jobs" }, + { + "$ref": "https://schema.management.azure.com/schemas/2018-05-01/Microsoft.BatchAI.json#/resourceDefinitions/clusters" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2018-05-01/Microsoft.BatchAI.json#/resourceDefinitions/fileServers" + }, + { + "$ref": "https://schema.management.azure.com/schemas/2018-05-01/Microsoft.BatchAI.json#/resourceDefinitions/jobs" + }, { "$ref": "https://schema.management.azure.com/schemas/2018-05-01/Microsoft.BatchAI.json#/resourceDefinitions/workspaces" },