Microsoft.MachineLearningServices workspaces/computes 2020-02-18-preview

Bicep resource definition

The workspaces/computes resource type can be deployed with operations that target:

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.MachineLearningServices/workspaces/computes resource, add the following Bicep to your template.

resource symbolicname 'Microsoft.MachineLearningServices/workspaces/computes@2020-02-18-preview' = {
  name: 'string'
  location: 'string'
  tags: {
    tagName1: 'tagValue1'
    tagName2: 'tagValue2'
  }
  sku: {
    name: 'string'
    tier: 'string'
  }
  parent: resourceSymbolicName
  identity: {
    type: 'SystemAssigned'
  }
  properties: {
    computeLocation: 'string'
    description: 'string'
    resourceId: 'string'
    computeType: 'string'
    // For remaining properties, see Compute objects
  }
}

Compute objects

Set the computeType property to specify the type of object.

For AKS, use:

  computeType: 'AKS'
  properties: {
    agentCount: int
    agentVMSize: 'string'
    aksNetworkingConfiguration: {
      dnsServiceIP: 'string'
      dockerBridgeCidr: 'string'
      serviceCidr: 'string'
      subnetId: 'string'
    }
    clusterFqdn: 'string'
    sslConfiguration: {
      cert: 'string'
      cname: 'string'
      key: 'string'
      status: 'string'
    }
  }

For AmlCompute, use:

  computeType: 'AmlCompute'
  properties: {
    osType: 'string'
    remoteLoginPortPublicAccess: 'string'
    scaleSettings: {
      maxNodeCount: int
      minNodeCount: int
      nodeIdleTimeBeforeScaleDown: 'string'
    }
    subnet: {
      id: 'string'
    }
    userAccountCredentials: {
      adminUserName: 'string'
      adminUserPassword: 'string'
      adminUserSshPublicKey: 'string'
    }
    virtualMachineImage: {
      id: 'string'
    }
    vmPriority: 'string'
    vmSize: 'string'
  }

For ComputeInstance, use:

  computeType: 'ComputeInstance'
  properties: {
    applicationSharingPolicy: 'string'
    computeInstanceAuthorizationType: 'personal'
    personalComputeInstanceSettings: {
      assignedUser: {
        objectId: 'string'
        tenantId: 'string'
      }
    }
    sshSettings: {
      adminPublicKey: 'string'
      sshPublicAccess: 'string'
    }
    subnet: {
      id: 'string'
    }
    vmSize: 'string'
  }

For Databricks, use:

  computeType: 'Databricks'
  properties: {
    databricksAccessToken: 'string'
  }

For DataFactory, use:

  computeType: 'DataFactory'

For DataLakeAnalytics, use:

  computeType: 'DataLakeAnalytics'
  properties: {
    dataLakeStoreAccountName: 'string'
  }

For HDInsight, use:

  computeType: 'HDInsight'
  properties: {
    address: 'string'
    administratorAccount: {
      password: 'string'
      privateKeyData: 'string'
      publicKeyData: 'string'
      username: 'string'
    }
    sshPort: int
  }

For VirtualMachine, use:

  computeType: 'VirtualMachine'
  properties: {
    address: 'string'
    administratorAccount: {
      password: 'string'
      privateKeyData: 'string'
      publicKeyData: 'string'
      username: 'string'
    }
    sshPort: int
    virtualMachineSize: 'string'
  }

Property values

workspaces/computes

Name Description Value
name The resource name

See how to set names and types for child resources in Bicep.
string (required)

Character limit: 3-24 for compute instance
3-32 for AML compute
2-16 for other compute types

Valid characters:
Alphanumerics and hyphens.
location Specifies the location of the resource. string
tags Contains resource tags defined as key/value pairs. Dictionary of tag names and values. See Tags in templates
sku The sku of the workspace. Sku
parent In Bicep, you can specify the parent resource for a child resource. You only need to add this property when the child resource is declared outside of the parent resource.

For more information, see Child resource outside parent resource.
Symbolic name for resource of type: workspaces
identity The identity of the resource. Identity
properties Compute properties Compute

Identity

Name Description Value
type The identity type. 'SystemAssigned'

Compute

Name Description Value
computeLocation Location for the underlying compute string
description The description of the Machine Learning compute. string
resourceId ARM resource id of the underlying compute string
computeType Set the object type AKS
AmlCompute
ComputeInstance
Databricks
DataFactory
DataLakeAnalytics
HDInsight
VirtualMachine (required)

AKS

Name Description Value
computeType The type of compute 'AKS' (required)
properties AKS properties AKSProperties

AKSProperties

Name Description Value
agentCount Number of agents int

Constraints:
Min value = 1
agentVMSize Agent virtual machine size string
aksNetworkingConfiguration AKS networking configuration for vnet AksNetworkingConfiguration
clusterFqdn Cluster full qualified domain name string
sslConfiguration SSL configuration SslConfiguration

AksNetworkingConfiguration

Name Description Value
dnsServiceIP An IP address assigned to the Kubernetes DNS service. It must be within the Kubernetes service address range specified in serviceCidr. string

Constraints:
Pattern = ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
dockerBridgeCidr A CIDR notation IP range assigned to the Docker bridge network. It must not overlap with any Subnet IP ranges or the Kubernetes service address range. string

Constraints:
Pattern = ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
serviceCidr A CIDR notation IP range from which to assign service cluster IPs. It must not overlap with any Subnet IP ranges. string

Constraints:
Pattern = ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
subnetId Virtual network subnet resource ID the compute nodes belong to string

SslConfiguration

Name Description Value
cert Cert data string
cname CNAME of the cert string
key Key data string
status Enable or disable ssl for scoring 'Disabled'
'Enabled'

AmlCompute

Name Description Value
computeType The type of compute 'AmlCompute' (required)
properties AML Compute properties AmlComputeProperties

AmlComputeProperties

Name Description Value
osType OS Type. 'Linux'
'Windows'
remoteLoginPortPublicAccess State of the public SSH port. Possible values are: Disabled - Indicates that the public ssh port is closed on all nodes of the cluster. Enabled - Indicates that the public ssh port is open on all nodes of the cluster. NotSpecified - Indicates that the public ssh port is closed on all nodes of the cluster if VNet is defined, else is open all public nodes. It can be default only during cluster creation time, after creation it will be either enabled or disabled. 'Disabled'
'Enabled'
'NotSpecified'
scaleSettings Scale settings for AML Compute ScaleSettings
subnet Virtual network subnet resource ID the compute nodes belong to. ResourceId
userAccountCredentials Credentials for an administrator user account that will be created on each compute node. UserAccountCredentials
virtualMachineImage 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/galleries/{gallery name}/images/{image definition name}/versions/{version id}. The virtual machine image must be in the same region and subscription as the cluster. ResourceId
vmPriority Virtual Machine priority 'Dedicated'
'LowPriority'
vmSize Virtual Machine Size string

ScaleSettings

Name Description Value
maxNodeCount Max number of nodes to use int (required)
minNodeCount Min number of nodes to use int
nodeIdleTimeBeforeScaleDown Node Idle Time before scaling down amlCompute string

ResourceId

Name Description Value
id The ID of the resource string (required)

UserAccountCredentials

Name Description Value
adminUserName Name of the administrator user account which can be used to SSH to nodes. string (required)
adminUserPassword Password of the administrator user account. string
adminUserSshPublicKey SSH public key of the administrator user account. This property is only supported on Linux based clusters. string

ComputeInstance

Name Description Value
computeType The type of compute 'ComputeInstance' (required)
properties Compute Instance properties ComputeInstanceProperties

ComputeInstanceProperties

Name Description Value
applicationSharingPolicy Policy for sharing applications on this compute instance among users of parent workspace. If Personal, only the creator can access applications on this compute instance. When Shared, any workspace user can access applications on this instance depending on his/her assigned role. 'Personal'
'Shared'
computeInstanceAuthorizationType The Compute Instance Authorization type. Available values are personal (default). 'personal'
personalComputeInstanceSettings Settings for a personal compute instance. PersonalComputeInstanceSettings
sshSettings Specifies policy and settings for SSH access. ComputeInstanceSshSettings
subnet Virtual network subnet resource ID the compute nodes belong to. ResourceId
vmSize Virtual Machine Size string

PersonalComputeInstanceSettings

Name Description Value
assignedUser A user explicitly assigned to a personal compute instance. AssignedUser

AssignedUser

Name Description Value
objectId User’s AAD Object Id. string (required)
tenantId User’s AAD Tenant Id. string (required)

ComputeInstanceSshSettings

Name Description Value
adminPublicKey Specifies the SSH rsa public key file as a string. Use "ssh-keygen -t rsa -b 2048" to generate your SSH key pairs. string
sshPublicAccess State of the public SSH port. Possible values are: Disabled - Indicates that the public ssh port is closed on this instance. Enabled - Indicates that the public ssh port is open and accessible according to the VNet/subnet policy if applicable. 'Disabled'
'Enabled'

Databricks

Name Description Value
computeType The type of compute 'Databricks' (required)
properties DatabricksProperties

DatabricksProperties

Name Description Value
databricksAccessToken Databricks access token string

DataFactory

Name Description Value
computeType The type of compute 'DataFactory' (required)

DataLakeAnalytics

Name Description Value
computeType The type of compute 'DataLakeAnalytics' (required)
properties DataLakeAnalyticsProperties

DataLakeAnalyticsProperties

Name Description Value
dataLakeStoreAccountName DataLake Store Account Name string

HDInsight

Name Description Value
computeType The type of compute 'HDInsight' (required)
properties HDInsightProperties

HDInsightProperties

Name Description Value
address Public IP address of the master node of the cluster. string
administratorAccount Admin credentials for master node of the cluster VirtualMachineSshCredentials
sshPort Port open for ssh connections on the master node of the cluster. int

VirtualMachineSshCredentials

Name Description Value
password Password of admin account string
privateKeyData Private key data string
publicKeyData Public key data string
username Username of admin account string

VirtualMachine

Name Description Value
computeType The type of compute 'VirtualMachine' (required)
properties VirtualMachineProperties

VirtualMachineProperties

Name Description Value
address Public IP address of the virtual machine. string
administratorAccount Admin credentials for virtual machine VirtualMachineSshCredentials
sshPort Port open for ssh connections. int
virtualMachineSize Virtual Machine size string

Sku

Name Description Value
name Name of the sku string
tier Tier of the sku like Basic or Enterprise string

Quickstart templates

The following quickstart templates deploy this resource type.

Template Description
Create a Machine Learning Service ADLA Compute

Deploy to Azure
This template creates a Machine Learning Service ADLA Compute.
Create a Machine Learning Service Aks Compute

Deploy to Azure
This template creates a Machine Learning Service Aks Compute.
Create a Machine Learning Service DSVM Compute

Deploy to Azure
This template creates a Machine Learning Service DSVM Compute.
Create a Machine Learning Service HDInsight cluster

Deploy to Azure
This template creates a Machine Learning Service HDInsight cluster
Create an Azure Machine Learning aks compute

Deploy to Azure
This template creates an Azure Machine Learning aks compute.
Create an Azure Machine Learning compute cluster

Deploy to Azure
This template creates an Azure Machine Learning compute cluster.
Create an Azure Machine Learning compute instance

Deploy to Azure
This template creates an Azure Machine Learning compute instance on behalf of another user with a sample inline setup script
Create a LinkedService in Azure Machine Learning workspace

Deploy to Azure
This template creates a LinkedService in an existing Azure Machine Learning workspace.
Create an AKS compute target with a Private IP address

Deploy to Azure
This template creates an AKS compute target in given Azure Machine Learning service workspace with a private IP address.

ARM template resource definition

The workspaces/computes resource type can be deployed with operations that target:

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.MachineLearningServices/workspaces/computes resource, add the following JSON to your template.

{
  "type": "Microsoft.MachineLearningServices/workspaces/computes",
  "apiVersion": "2020-02-18-preview",
  "name": "string",
  "location": "string",
  "tags": {
    "tagName1": "tagValue1",
    "tagName2": "tagValue2"
  },
  "sku": {
    "name": "string",
    "tier": "string"
  },
  "identity": {
    "type": "SystemAssigned"
  },
  "properties": {
    "computeLocation": "string",
    "description": "string",
    "resourceId": "string",
    "computeType": "string"
    // For remaining properties, see Compute objects
  }
}

Compute objects

Set the computeType property to specify the type of object.

For AKS, use:

  "computeType": "AKS",
  "properties": {
    "agentCount": "int",
    "agentVMSize": "string",
    "aksNetworkingConfiguration": {
      "dnsServiceIP": "string",
      "dockerBridgeCidr": "string",
      "serviceCidr": "string",
      "subnetId": "string"
    },
    "clusterFqdn": "string",
    "sslConfiguration": {
      "cert": "string",
      "cname": "string",
      "key": "string",
      "status": "string"
    }
  }

For AmlCompute, use:

  "computeType": "AmlCompute",
  "properties": {
    "osType": "string",
    "remoteLoginPortPublicAccess": "string",
    "scaleSettings": {
      "maxNodeCount": "int",
      "minNodeCount": "int",
      "nodeIdleTimeBeforeScaleDown": "string"
    },
    "subnet": {
      "id": "string"
    },
    "userAccountCredentials": {
      "adminUserName": "string",
      "adminUserPassword": "string",
      "adminUserSshPublicKey": "string"
    },
    "virtualMachineImage": {
      "id": "string"
    },
    "vmPriority": "string",
    "vmSize": "string"
  }

For ComputeInstance, use:

  "computeType": "ComputeInstance",
  "properties": {
    "applicationSharingPolicy": "string",
    "computeInstanceAuthorizationType": "personal",
    "personalComputeInstanceSettings": {
      "assignedUser": {
        "objectId": "string",
        "tenantId": "string"
      }
    },
    "sshSettings": {
      "adminPublicKey": "string",
      "sshPublicAccess": "string"
    },
    "subnet": {
      "id": "string"
    },
    "vmSize": "string"
  }

For Databricks, use:

  "computeType": "Databricks",
  "properties": {
    "databricksAccessToken": "string"
  }

For DataFactory, use:

  "computeType": "DataFactory"

For DataLakeAnalytics, use:

  "computeType": "DataLakeAnalytics",
  "properties": {
    "dataLakeStoreAccountName": "string"
  }

For HDInsight, use:

  "computeType": "HDInsight",
  "properties": {
    "address": "string",
    "administratorAccount": {
      "password": "string",
      "privateKeyData": "string",
      "publicKeyData": "string",
      "username": "string"
    },
    "sshPort": "int"
  }

For VirtualMachine, use:

  "computeType": "VirtualMachine",
  "properties": {
    "address": "string",
    "administratorAccount": {
      "password": "string",
      "privateKeyData": "string",
      "publicKeyData": "string",
      "username": "string"
    },
    "sshPort": "int",
    "virtualMachineSize": "string"
  }

Property values

workspaces/computes

Name Description Value
type The resource type 'Microsoft.MachineLearningServices/workspaces/computes'
apiVersion The resource api version '2020-02-18-preview'
name The resource name

See how to set names and types for child resources in JSON ARM templates.
string (required)

Character limit: 3-24 for compute instance
3-32 for AML compute
2-16 for other compute types

Valid characters:
Alphanumerics and hyphens.
location Specifies the location of the resource. string
tags Contains resource tags defined as key/value pairs. Dictionary of tag names and values. See Tags in templates
sku The sku of the workspace. Sku
identity The identity of the resource. Identity
properties Compute properties Compute

Identity

Name Description Value
type The identity type. 'SystemAssigned'

Compute

Name Description Value
computeLocation Location for the underlying compute string
description The description of the Machine Learning compute. string
resourceId ARM resource id of the underlying compute string
computeType Set the object type AKS
AmlCompute
ComputeInstance
Databricks
DataFactory
DataLakeAnalytics
HDInsight
VirtualMachine (required)

AKS

Name Description Value
computeType The type of compute 'AKS' (required)
properties AKS properties AKSProperties

AKSProperties

Name Description Value
agentCount Number of agents int

Constraints:
Min value = 1
agentVMSize Agent virtual machine size string
aksNetworkingConfiguration AKS networking configuration for vnet AksNetworkingConfiguration
clusterFqdn Cluster full qualified domain name string
sslConfiguration SSL configuration SslConfiguration

AksNetworkingConfiguration

Name Description Value
dnsServiceIP An IP address assigned to the Kubernetes DNS service. It must be within the Kubernetes service address range specified in serviceCidr. string

Constraints:
Pattern = ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
dockerBridgeCidr A CIDR notation IP range assigned to the Docker bridge network. It must not overlap with any Subnet IP ranges or the Kubernetes service address range. string

Constraints:
Pattern = ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
serviceCidr A CIDR notation IP range from which to assign service cluster IPs. It must not overlap with any Subnet IP ranges. string

Constraints:
Pattern = ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
subnetId Virtual network subnet resource ID the compute nodes belong to string

SslConfiguration

Name Description Value
cert Cert data string
cname CNAME of the cert string
key Key data string
status Enable or disable ssl for scoring 'Disabled'
'Enabled'

AmlCompute

Name Description Value
computeType The type of compute 'AmlCompute' (required)
properties AML Compute properties AmlComputeProperties

AmlComputeProperties

Name Description Value
osType OS Type. 'Linux'
'Windows'
remoteLoginPortPublicAccess State of the public SSH port. Possible values are: Disabled - Indicates that the public ssh port is closed on all nodes of the cluster. Enabled - Indicates that the public ssh port is open on all nodes of the cluster. NotSpecified - Indicates that the public ssh port is closed on all nodes of the cluster if VNet is defined, else is open all public nodes. It can be default only during cluster creation time, after creation it will be either enabled or disabled. 'Disabled'
'Enabled'
'NotSpecified'
scaleSettings Scale settings for AML Compute ScaleSettings
subnet Virtual network subnet resource ID the compute nodes belong to. ResourceId
userAccountCredentials Credentials for an administrator user account that will be created on each compute node. UserAccountCredentials
virtualMachineImage 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/galleries/{gallery name}/images/{image definition name}/versions/{version id}. The virtual machine image must be in the same region and subscription as the cluster. ResourceId
vmPriority Virtual Machine priority 'Dedicated'
'LowPriority'
vmSize Virtual Machine Size string

ScaleSettings

Name Description Value
maxNodeCount Max number of nodes to use int (required)
minNodeCount Min number of nodes to use int
nodeIdleTimeBeforeScaleDown Node Idle Time before scaling down amlCompute string

ResourceId

Name Description Value
id The ID of the resource string (required)

UserAccountCredentials

Name Description Value
adminUserName Name of the administrator user account which can be used to SSH to nodes. string (required)
adminUserPassword Password of the administrator user account. string
adminUserSshPublicKey SSH public key of the administrator user account. This property is only supported on Linux based clusters. string

ComputeInstance

Name Description Value
computeType The type of compute 'ComputeInstance' (required)
properties Compute Instance properties ComputeInstanceProperties

ComputeInstanceProperties

Name Description Value
applicationSharingPolicy Policy for sharing applications on this compute instance among users of parent workspace. If Personal, only the creator can access applications on this compute instance. When Shared, any workspace user can access applications on this instance depending on his/her assigned role. 'Personal'
'Shared'
computeInstanceAuthorizationType The Compute Instance Authorization type. Available values are personal (default). 'personal'
personalComputeInstanceSettings Settings for a personal compute instance. PersonalComputeInstanceSettings
sshSettings Specifies policy and settings for SSH access. ComputeInstanceSshSettings
subnet Virtual network subnet resource ID the compute nodes belong to. ResourceId
vmSize Virtual Machine Size string

PersonalComputeInstanceSettings

Name Description Value
assignedUser A user explicitly assigned to a personal compute instance. AssignedUser

AssignedUser

Name Description Value
objectId User’s AAD Object Id. string (required)
tenantId User’s AAD Tenant Id. string (required)

ComputeInstanceSshSettings

Name Description Value
adminPublicKey Specifies the SSH rsa public key file as a string. Use "ssh-keygen -t rsa -b 2048" to generate your SSH key pairs. string
sshPublicAccess State of the public SSH port. Possible values are: Disabled - Indicates that the public ssh port is closed on this instance. Enabled - Indicates that the public ssh port is open and accessible according to the VNet/subnet policy if applicable. 'Disabled'
'Enabled'

Databricks

Name Description Value
computeType The type of compute 'Databricks' (required)
properties DatabricksProperties

DatabricksProperties

Name Description Value
databricksAccessToken Databricks access token string

DataFactory

Name Description Value
computeType The type of compute 'DataFactory' (required)

DataLakeAnalytics

Name Description Value
computeType The type of compute 'DataLakeAnalytics' (required)
properties DataLakeAnalyticsProperties

DataLakeAnalyticsProperties

Name Description Value
dataLakeStoreAccountName DataLake Store Account Name string

HDInsight

Name Description Value
computeType The type of compute 'HDInsight' (required)
properties HDInsightProperties

HDInsightProperties

Name Description Value
address Public IP address of the master node of the cluster. string
administratorAccount Admin credentials for master node of the cluster VirtualMachineSshCredentials
sshPort Port open for ssh connections on the master node of the cluster. int

VirtualMachineSshCredentials

Name Description Value
password Password of admin account string
privateKeyData Private key data string
publicKeyData Public key data string
username Username of admin account string

VirtualMachine

Name Description Value
computeType The type of compute 'VirtualMachine' (required)
properties VirtualMachineProperties

VirtualMachineProperties

Name Description Value
address Public IP address of the virtual machine. string
administratorAccount Admin credentials for virtual machine VirtualMachineSshCredentials
sshPort Port open for ssh connections. int
virtualMachineSize Virtual Machine size string

Sku

Name Description Value
name Name of the sku string
tier Tier of the sku like Basic or Enterprise string

Quickstart templates

The following quickstart templates deploy this resource type.

Template Description
Create a Machine Learning Service ADLA Compute

Deploy to Azure
This template creates a Machine Learning Service ADLA Compute.
Create a Machine Learning Service Aks Compute

Deploy to Azure
This template creates a Machine Learning Service Aks Compute.
Create a Machine Learning Service DSVM Compute

Deploy to Azure
This template creates a Machine Learning Service DSVM Compute.
Create a Machine Learning Service HDInsight cluster

Deploy to Azure
This template creates a Machine Learning Service HDInsight cluster
Create an Azure Machine Learning aks compute

Deploy to Azure
This template creates an Azure Machine Learning aks compute.
Create an Azure Machine Learning compute cluster

Deploy to Azure
This template creates an Azure Machine Learning compute cluster.
Create an Azure Machine Learning compute instance

Deploy to Azure
This template creates an Azure Machine Learning compute instance on behalf of another user with a sample inline setup script
Create a LinkedService in Azure Machine Learning workspace

Deploy to Azure
This template creates a LinkedService in an existing Azure Machine Learning workspace.
Create an AKS compute target with a Private IP address

Deploy to Azure
This template creates an AKS compute target in given Azure Machine Learning service workspace with a private IP address.

Terraform (AzAPI provider) resource definition

The workspaces/computes resource type can be deployed with operations that target:

  • Resource groups

For a list of changed properties in each API version, see change log.

Resource format

To create a Microsoft.MachineLearningServices/workspaces/computes resource, add the following Terraform to your template.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.MachineLearningServices/workspaces/computes@2020-02-18-preview"
  name = "string"
  location = "string"
  parent_id = "string"
  tags = {
    tagName1 = "tagValue1"
    tagName2 = "tagValue2"
  }
  identity {
    type = "SystemAssigned"
  }
  body = jsonencode({
    properties = {
      computeLocation = "string"
      description = "string"
      resourceId = "string"
      computeType = "string"
      // For remaining properties, see Compute objects
    }
    sku = {
      name = "string"
      tier = "string"
    }
  })
}

Compute objects

Set the computeType property to specify the type of object.

For AKS, use:

  computeType = "AKS"
  properties = {
    agentCount = int
    agentVMSize = "string"
    aksNetworkingConfiguration = {
      dnsServiceIP = "string"
      dockerBridgeCidr = "string"
      serviceCidr = "string"
      subnetId = "string"
    }
    clusterFqdn = "string"
    sslConfiguration = {
      cert = "string"
      cname = "string"
      key = "string"
      status = "string"
    }
  }

For AmlCompute, use:

  computeType = "AmlCompute"
  properties = {
    osType = "string"
    remoteLoginPortPublicAccess = "string"
    scaleSettings = {
      maxNodeCount = int
      minNodeCount = int
      nodeIdleTimeBeforeScaleDown = "string"
    }
    subnet = {
      id = "string"
    }
    userAccountCredentials = {
      adminUserName = "string"
      adminUserPassword = "string"
      adminUserSshPublicKey = "string"
    }
    virtualMachineImage = {
      id = "string"
    }
    vmPriority = "string"
    vmSize = "string"
  }

For ComputeInstance, use:

  computeType = "ComputeInstance"
  properties = {
    applicationSharingPolicy = "string"
    computeInstanceAuthorizationType = "personal"
    personalComputeInstanceSettings = {
      assignedUser = {
        objectId = "string"
        tenantId = "string"
      }
    }
    sshSettings = {
      adminPublicKey = "string"
      sshPublicAccess = "string"
    }
    subnet = {
      id = "string"
    }
    vmSize = "string"
  }

For Databricks, use:

  computeType = "Databricks"
  properties = {
    databricksAccessToken = "string"
  }

For DataFactory, use:

  computeType = "DataFactory"

For DataLakeAnalytics, use:

  computeType = "DataLakeAnalytics"
  properties = {
    dataLakeStoreAccountName = "string"
  }

For HDInsight, use:

  computeType = "HDInsight"
  properties = {
    address = "string"
    administratorAccount = {
      password = "string"
      privateKeyData = "string"
      publicKeyData = "string"
      username = "string"
    }
    sshPort = int
  }

For VirtualMachine, use:

  computeType = "VirtualMachine"
  properties = {
    address = "string"
    administratorAccount = {
      password = "string"
      privateKeyData = "string"
      publicKeyData = "string"
      username = "string"
    }
    sshPort = int
    virtualMachineSize = "string"
  }

Property values

workspaces/computes

Name Description Value
type The resource type "Microsoft.MachineLearningServices/workspaces/computes@2020-02-18-preview"
name The resource name string (required)

Character limit: 3-24 for compute instance
3-32 for AML compute
2-16 for other compute types

Valid characters:
Alphanumerics and hyphens.
location Specifies the location of the resource. string
parent_id The ID of the resource that is the parent for this resource. ID for resource of type: workspaces
tags Contains resource tags defined as key/value pairs. Dictionary of tag names and values.
sku The sku of the workspace. Sku
identity The identity of the resource. Identity
properties Compute properties Compute

Identity

Name Description Value
type The identity type. "SystemAssigned"

Compute

Name Description Value
computeLocation Location for the underlying compute string
description The description of the Machine Learning compute. string
resourceId ARM resource id of the underlying compute string
computeType Set the object type AKS
AmlCompute
ComputeInstance
Databricks
DataFactory
DataLakeAnalytics
HDInsight
VirtualMachine (required)

AKS

Name Description Value
computeType The type of compute "AKS" (required)
properties AKS properties AKSProperties

AKSProperties

Name Description Value
agentCount Number of agents int

Constraints:
Min value = 1
agentVMSize Agent virtual machine size string
aksNetworkingConfiguration AKS networking configuration for vnet AksNetworkingConfiguration
clusterFqdn Cluster full qualified domain name string
sslConfiguration SSL configuration SslConfiguration

AksNetworkingConfiguration

Name Description Value
dnsServiceIP An IP address assigned to the Kubernetes DNS service. It must be within the Kubernetes service address range specified in serviceCidr. string

Constraints:
Pattern = ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
dockerBridgeCidr A CIDR notation IP range assigned to the Docker bridge network. It must not overlap with any Subnet IP ranges or the Kubernetes service address range. string

Constraints:
Pattern = ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
serviceCidr A CIDR notation IP range from which to assign service cluster IPs. It must not overlap with any Subnet IP ranges. string

Constraints:
Pattern = ^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$
subnetId Virtual network subnet resource ID the compute nodes belong to string

SslConfiguration

Name Description Value
cert Cert data string
cname CNAME of the cert string
key Key data string
status Enable or disable ssl for scoring "Disabled"
"Enabled"

AmlCompute

Name Description Value
computeType The type of compute "AmlCompute" (required)
properties AML Compute properties AmlComputeProperties

AmlComputeProperties

Name Description Value
osType OS Type. "Linux"
"Windows"
remoteLoginPortPublicAccess State of the public SSH port. Possible values are: Disabled - Indicates that the public ssh port is closed on all nodes of the cluster. Enabled - Indicates that the public ssh port is open on all nodes of the cluster. NotSpecified - Indicates that the public ssh port is closed on all nodes of the cluster if VNet is defined, else is open all public nodes. It can be default only during cluster creation time, after creation it will be either enabled or disabled. "Disabled"
"Enabled"
"NotSpecified"
scaleSettings Scale settings for AML Compute ScaleSettings
subnet Virtual network subnet resource ID the compute nodes belong to. ResourceId
userAccountCredentials Credentials for an administrator user account that will be created on each compute node. UserAccountCredentials
virtualMachineImage 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/galleries/{gallery name}/images/{image definition name}/versions/{version id}. The virtual machine image must be in the same region and subscription as the cluster. ResourceId
vmPriority Virtual Machine priority "Dedicated"
"LowPriority"
vmSize Virtual Machine Size string

ScaleSettings

Name Description Value
maxNodeCount Max number of nodes to use int (required)
minNodeCount Min number of nodes to use int
nodeIdleTimeBeforeScaleDown Node Idle Time before scaling down amlCompute string

ResourceId

Name Description Value
id The ID of the resource string (required)

UserAccountCredentials

Name Description Value
adminUserName Name of the administrator user account which can be used to SSH to nodes. string (required)
adminUserPassword Password of the administrator user account. string
adminUserSshPublicKey SSH public key of the administrator user account. This property is only supported on Linux based clusters. string

ComputeInstance

Name Description Value
computeType The type of compute "ComputeInstance" (required)
properties Compute Instance properties ComputeInstanceProperties

ComputeInstanceProperties

Name Description Value
applicationSharingPolicy Policy for sharing applications on this compute instance among users of parent workspace. If Personal, only the creator can access applications on this compute instance. When Shared, any workspace user can access applications on this instance depending on his/her assigned role. "Personal"
"Shared"
computeInstanceAuthorizationType The Compute Instance Authorization type. Available values are personal (default). "personal"
personalComputeInstanceSettings Settings for a personal compute instance. PersonalComputeInstanceSettings
sshSettings Specifies policy and settings for SSH access. ComputeInstanceSshSettings
subnet Virtual network subnet resource ID the compute nodes belong to. ResourceId
vmSize Virtual Machine Size string

PersonalComputeInstanceSettings

Name Description Value
assignedUser A user explicitly assigned to a personal compute instance. AssignedUser

AssignedUser

Name Description Value
objectId User’s AAD Object Id. string (required)
tenantId User’s AAD Tenant Id. string (required)

ComputeInstanceSshSettings

Name Description Value
adminPublicKey Specifies the SSH rsa public key file as a string. Use "ssh-keygen -t rsa -b 2048" to generate your SSH key pairs. string
sshPublicAccess State of the public SSH port. Possible values are: Disabled - Indicates that the public ssh port is closed on this instance. Enabled - Indicates that the public ssh port is open and accessible according to the VNet/subnet policy if applicable. "Disabled"
"Enabled"

Databricks

Name Description Value
computeType The type of compute "Databricks" (required)
properties DatabricksProperties

DatabricksProperties

Name Description Value
databricksAccessToken Databricks access token string

DataFactory

Name Description Value
computeType The type of compute "DataFactory" (required)

DataLakeAnalytics

Name Description Value
computeType The type of compute "DataLakeAnalytics" (required)
properties DataLakeAnalyticsProperties

DataLakeAnalyticsProperties

Name Description Value
dataLakeStoreAccountName DataLake Store Account Name string

HDInsight

Name Description Value
computeType The type of compute "HDInsight" (required)
properties HDInsightProperties

HDInsightProperties

Name Description Value
address Public IP address of the master node of the cluster. string
administratorAccount Admin credentials for master node of the cluster VirtualMachineSshCredentials
sshPort Port open for ssh connections on the master node of the cluster. int

VirtualMachineSshCredentials

Name Description Value
password Password of admin account string
privateKeyData Private key data string
publicKeyData Public key data string
username Username of admin account string

VirtualMachine

Name Description Value
computeType The type of compute "VirtualMachine" (required)
properties VirtualMachineProperties

VirtualMachineProperties

Name Description Value
address Public IP address of the virtual machine. string
administratorAccount Admin credentials for virtual machine VirtualMachineSshCredentials
sshPort Port open for ssh connections. int
virtualMachineSize Virtual Machine size string

Sku

Name Description Value
name Name of the sku string
tier Tier of the sku like Basic or Enterprise string