Microsoft.MachineLearningServices workspaces/datastores 2021-03-01-preview

Bicep resource definition

The workspaces/datastores 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/datastores resource, add the following Bicep to your template.

resource symbolicname 'Microsoft.MachineLearningServices/workspaces/datastores@2021-03-01-preview' = {
  name: 'string'
  parent: resourceSymbolicName
  properties: {
    contents: {
      contentsType: 'string'
      // For remaining properties, see DatastoreContents objects
    }
    description: 'string'
    isDefault: bool
    linkedInfo: {
      linkedId: 'string'
      linkedResourceName: 'string'
      origin: 'Synapse'
    }
    properties: {
    tags: {
      {customized property}: 'string'
    }
    {customized property}: 'string'
  }
}

DatastoreContents objects

Set the contentsType property to specify the type of object.

For AzureBlob, use:

  contentsType: 'AzureBlob'
  accountName: 'string'
  containerName: 'string'
  credentials: {
    credentialsType: 'string'
    // For remaining properties, see DatastoreCredentials objects
  }
  endpoint: 'string'
  protocol: 'string'

For AzureDataLakeGen1, use:

  contentsType: 'AzureDataLakeGen1'
  credentials: {
    credentialsType: 'string'
    // For remaining properties, see DatastoreCredentials objects
  }
  storeName: 'string'

For AzureDataLakeGen2, use:

  contentsType: 'AzureDataLakeGen2'
  accountName: 'string'
  containerName: 'string'
  credentials: {
    credentialsType: 'string'
    // For remaining properties, see DatastoreCredentials objects
  }
  endpoint: 'string'
  protocol: 'string'

For AzureFile, use:

  contentsType: 'AzureFile'
  accountName: 'string'
  containerName: 'string'
  credentials: {
    credentialsType: 'string'
    // For remaining properties, see DatastoreCredentials objects
  }
  endpoint: 'string'
  protocol: 'string'

For AzurePostgreSql, use:

  contentsType: 'AzurePostgreSql'
  credentials: {
    credentialsType: 'string'
    // For remaining properties, see DatastoreCredentials objects
  }
  databaseName: 'string'
  enableSSL: bool
  endpoint: 'string'
  portNumber: int
  serverName: 'string'

For AzureSqlDatabase, use:

  contentsType: 'AzureSqlDatabase'
  credentials: {
    credentialsType: 'string'
    // For remaining properties, see DatastoreCredentials objects
  }
  databaseName: 'string'
  endpoint: 'string'
  portNumber: int
  serverName: 'string'

For GlusterFs, use:

  contentsType: 'GlusterFs'
  serverAddress: 'string'
  volumeName: 'string'

DatastoreCredentials objects

Set the credentialsType property to specify the type of object.

For AccountKey, use:

  credentialsType: 'AccountKey'
  secrets: {
    key: 'string'
    secretsType: 'string'
  }

For Certificate, use:

  credentialsType: 'Certificate'
  authorityUrl: 'string'
  clientId: 'string'
  resourceUri: 'string'
  secrets: {
    certificate: 'string'
    secretsType: 'string'
  }
  tenantId: 'string'
  thumbprint: 'string'

For None, use:

  credentialsType: 'None'
  secrets: {
    secretsType: 'string'
  }

For Sas, use:

  credentialsType: 'Sas'
  secrets: {
    sasToken: 'string'
    secretsType: 'string'
  }

For ServicePrincipal, use:

  credentialsType: 'ServicePrincipal'
  authorityUrl: 'string'
  clientId: 'string'
  resourceUri: 'string'
  secrets: {
    clientSecret: 'string'
    secretsType: 'string'
  }
  tenantId: 'string'

For SqlAdmin, use:

  credentialsType: 'SqlAdmin'
  secrets: {
    password: 'string'
    secretsType: 'string'
  }
  userId: 'string'

Property values

workspaces/datastores

Name Description Value
name The resource name

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

Character limit: Maximum 255 characters for datastore name

Valid characters:
Datastore name consists only of lowercase letters, digits, and underscores.
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
properties [Required] Additional attributes of the entity. DatastoreProperties (required)

DatastoreProperties

Name Description Value
contents [Required] Reference to the datastore storage contents. DatastoreContents (required)
description The asset description text. string
isDefault Whether this datastore is the default for the workspace. bool
linkedInfo Information about the datastore origin, if linked. LinkedInfo
properties The asset property dictionary. DatastoreProperties
tags Tag dictionary. Tags can be added, removed, and updated. object
{customized property} string

DatastoreContents

Name Description Value
contentsType Set the object type AzureBlob
AzureDataLakeGen1
AzureDataLakeGen2
AzureFile
AzurePostgreSql
AzureSqlDatabase
GlusterFs (required)

AzureBlobContents

Name Description Value
contentsType [Required] Storage type backing the datastore. 'AzureBlob' (required)
accountName [Required] Storage account name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
containerName [Required] Storage account container name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
credentials [Required] Account credentials. DatastoreCredentials (required)
endpoint [Required] Azure cloud endpoint for the storage account. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
protocol [Required] Protocol used to communicate with the storage account. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

DatastoreCredentials

Name Description Value
credentialsType Set the object type AccountKey
Certificate
None
Sas
ServicePrincipal
SqlAdmin (required)

AccountKeyDatastoreCredentials

Name Description Value
credentialsType [Required] Credential type used to authentication with storage. 'AccountKey' (required)
secrets Storage account secrets. AccountKeyDatastoreSecrets

AccountKeyDatastoreSecrets

Name Description Value
key Storage account key. string
secretsType [Required] Credential type used to authentication with storage. 'AccountKey'
'Certificate'
'None'
'Sas'
'ServicePrincipal'
'SqlAdmin' (required)

CertificateDatastoreCredentials

Name Description Value
credentialsType [Required] Credential type used to authentication with storage. 'Certificate' (required)
authorityUrl Authority URL used for authentication. string
clientId [Required] Service principal client ID. string (required)

Constraints:
Min length = 36
Max length = 36
Pattern = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
resourceUri Resource the service principal has access to. string
secrets Service principal secrets. CertificateDatastoreSecrets
tenantId [Required] ID of the tenant to which the service principal belongs. string (required)

Constraints:
Min length = 36
Max length = 36
Pattern = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
thumbprint [Required] Thumbprint of the certificate used for authentication. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

CertificateDatastoreSecrets

Name Description Value
certificate Service principal certificate. string
secretsType [Required] Credential type used to authentication with storage. 'AccountKey'
'Certificate'
'None'
'Sas'
'ServicePrincipal'
'SqlAdmin' (required)

NoneDatastoreCredentials

Name Description Value
credentialsType [Required] Credential type used to authentication with storage. 'None' (required)
secrets Empty/none datastore secret. NoneDatastoreSecrets

NoneDatastoreSecrets

Name Description Value
secretsType [Required] Credential type used to authentication with storage. 'AccountKey'
'Certificate'
'None'
'Sas'
'ServicePrincipal'
'SqlAdmin' (required)

SasDatastoreCredentials

Name Description Value
credentialsType [Required] Credential type used to authentication with storage. 'Sas' (required)
secrets Storage container secrets. SasDatastoreSecrets

SasDatastoreSecrets

Name Description Value
sasToken Storage container SAS token. string
secretsType [Required] Credential type used to authentication with storage. 'AccountKey'
'Certificate'
'None'
'Sas'
'ServicePrincipal'
'SqlAdmin' (required)

ServicePrincipalDatastoreCredentials

Name Description Value
credentialsType [Required] Credential type used to authentication with storage. 'ServicePrincipal' (required)
authorityUrl Authority URL used for authentication. string
clientId [Required] Service principal client ID. string (required)

Constraints:
Min length = 36
Max length = 36
Pattern = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
resourceUri Resource the service principal has access to. string
secrets Service principal secrets. ServicePrincipalDatastoreSecrets
tenantId [Required] ID of the tenant to which the service principal belongs. string (required)

Constraints:
Min length = 36
Max length = 36
Pattern = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$

ServicePrincipalDatastoreSecrets

Name Description Value
clientSecret Service principal secret. string
secretsType [Required] Credential type used to authentication with storage. 'AccountKey'
'Certificate'
'None'
'Sas'
'ServicePrincipal'
'SqlAdmin' (required)

SqlAdminDatastoreCredentials

Name Description Value
credentialsType [Required] Credential type used to authentication with storage. 'SqlAdmin' (required)
secrets SQL database secrets. SqlAdminDatastoreSecrets
userId [Required] SQL database user name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

SqlAdminDatastoreSecrets

Name Description Value
password SQL database password. string
secretsType [Required] Credential type used to authentication with storage. 'AccountKey'
'Certificate'
'None'
'Sas'
'ServicePrincipal'
'SqlAdmin' (required)

AzureDataLakeGen1Contents

Name Description Value
contentsType [Required] Storage type backing the datastore. 'AzureDataLakeGen1' (required)
credentials [Required] Account credentials. DatastoreCredentials (required)
storeName [Required] Azure Data Lake store name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

AzureDataLakeGen2Contents

Name Description Value
contentsType [Required] Storage type backing the datastore. 'AzureDataLakeGen2' (required)
accountName [Required] Storage account name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
containerName [Required] Storage account container name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
credentials [Required] Account credentials. DatastoreCredentials (required)
endpoint [Required] Azure cloud endpoint for the storage account. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
protocol [Required] Protocol used to communicate with the storage account. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

AzureFileContents

Name Description Value
contentsType [Required] Storage type backing the datastore. 'AzureFile' (required)
accountName [Required] Storage account name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
containerName [Required] Storage account container name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
credentials [Required] Account credentials. DatastoreCredentials (required)
endpoint [Required] Azure cloud endpoint for the storage account. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
protocol [Required] Protocol used to communicate with the storage account. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

AzurePostgreSqlContents

Name Description Value
contentsType [Required] Storage type backing the datastore. 'AzurePostgreSql' (required)
credentials [Required] Account credentials. DatastoreCredentials (required)
databaseName [Required] Azure SQL database name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
enableSSL Whether the Azure PostgreSQL server requires SSL. bool
endpoint [Required] Azure cloud endpoint for the database. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
portNumber [Required] Azure SQL server port. int (required)
serverName [Required] Azure SQL server name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

AzureSqlDatabaseContents

Name Description Value
contentsType [Required] Storage type backing the datastore. 'AzureSqlDatabase' (required)
credentials [Required] Account credentials. DatastoreCredentials (required)
databaseName [Required] Azure SQL database name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
endpoint [Required] Azure cloud endpoint for the database. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
portNumber [Required] Azure SQL server port. int (required)
serverName [Required] Azure SQL server name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

GlusterFsContents

Name Description Value
contentsType [Required] Storage type backing the datastore. 'GlusterFs' (required)
serverAddress [Required] GlusterFS server address (can be the IP address or server name). string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
volumeName [Required] GlusterFS volume name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

LinkedInfo

Name Description Value
linkedId Linked service ID. string
linkedResourceName Linked service resource name. string
origin Type of the linked service. 'Synapse'

Quickstart templates

The following quickstart templates deploy this resource type.

Template Description
Create AML workspace with multiple Datasets & Datastores

Deploy to Azure
This template creates Azure Machine Learning workspace with multiple datasets & datastores.
Create an Azure ADLS Datastore

Deploy to Azure
This template creates a ADLS datastore in Azure Machine Learning workspace.
Create an Azure ADLS Gen2 Datastore

Deploy to Azure
This template creates a ADLS Gen2 datastore in Azure Machine Learning workspace.
Create a Blob Storage Datastore

Deploy to Azure
This template creates a blob storage datastore in Azure Machine Learning workspace.
Create a Databricks File System Datastore

Deploy to Azure
This template creates a Databricks File System datastore in Azure Machine Learning workspace.
Create a File Share Datastore

Deploy to Azure
This template creates a file share datastore in Azure Machine Learning workspace.
Create an Azure MySQL Datastore

Deploy to Azure
This template creates a MySQL datastore in Azure Machine Learning workspace.
Create an Azure PostgreSQL Datastore

Deploy to Azure
This template creates a PostgreSQL datastore in Azure Machine Learning workspace.
Create an Azure SQL Datastore

Deploy to Azure
This template creates a SQL datastore in Azure Machine Learning workspace.

ARM template resource definition

The workspaces/datastores 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/datastores resource, add the following JSON to your template.

{
  "type": "Microsoft.MachineLearningServices/workspaces/datastores",
  "apiVersion": "2021-03-01-preview",
  "name": "string",
  "properties": {
    "contents": {
      "contentsType": "string"
      // For remaining properties, see DatastoreContents objects
    },
    "description": "string",
    "isDefault": "bool",
    "linkedInfo": {
      "linkedId": "string",
      "linkedResourceName": "string",
      "origin": "Synapse"
    },
    "properties": {
    "tags": {
      "{customized property}": "string"
    },
    "{customized property}": "string"
  }
}

DatastoreContents objects

Set the contentsType property to specify the type of object.

For AzureBlob, use:

  "contentsType": "AzureBlob",
  "accountName": "string",
  "containerName": "string",
  "credentials": {
    "credentialsType": "string"
    // For remaining properties, see DatastoreCredentials objects
  },
  "endpoint": "string",
  "protocol": "string"

For AzureDataLakeGen1, use:

  "contentsType": "AzureDataLakeGen1",
  "credentials": {
    "credentialsType": "string"
    // For remaining properties, see DatastoreCredentials objects
  },
  "storeName": "string"

For AzureDataLakeGen2, use:

  "contentsType": "AzureDataLakeGen2",
  "accountName": "string",
  "containerName": "string",
  "credentials": {
    "credentialsType": "string"
    // For remaining properties, see DatastoreCredentials objects
  },
  "endpoint": "string",
  "protocol": "string"

For AzureFile, use:

  "contentsType": "AzureFile",
  "accountName": "string",
  "containerName": "string",
  "credentials": {
    "credentialsType": "string"
    // For remaining properties, see DatastoreCredentials objects
  },
  "endpoint": "string",
  "protocol": "string"

For AzurePostgreSql, use:

  "contentsType": "AzurePostgreSql",
  "credentials": {
    "credentialsType": "string"
    // For remaining properties, see DatastoreCredentials objects
  },
  "databaseName": "string",
  "enableSSL": "bool",
  "endpoint": "string",
  "portNumber": "int",
  "serverName": "string"

For AzureSqlDatabase, use:

  "contentsType": "AzureSqlDatabase",
  "credentials": {
    "credentialsType": "string"
    // For remaining properties, see DatastoreCredentials objects
  },
  "databaseName": "string",
  "endpoint": "string",
  "portNumber": "int",
  "serverName": "string"

For GlusterFs, use:

  "contentsType": "GlusterFs",
  "serverAddress": "string",
  "volumeName": "string"

DatastoreCredentials objects

Set the credentialsType property to specify the type of object.

For AccountKey, use:

  "credentialsType": "AccountKey",
  "secrets": {
    "key": "string",
    "secretsType": "string"
  }

For Certificate, use:

  "credentialsType": "Certificate",
  "authorityUrl": "string",
  "clientId": "string",
  "resourceUri": "string",
  "secrets": {
    "certificate": "string",
    "secretsType": "string"
  },
  "tenantId": "string",
  "thumbprint": "string"

For None, use:

  "credentialsType": "None",
  "secrets": {
    "secretsType": "string"
  }

For Sas, use:

  "credentialsType": "Sas",
  "secrets": {
    "sasToken": "string",
    "secretsType": "string"
  }

For ServicePrincipal, use:

  "credentialsType": "ServicePrincipal",
  "authorityUrl": "string",
  "clientId": "string",
  "resourceUri": "string",
  "secrets": {
    "clientSecret": "string",
    "secretsType": "string"
  },
  "tenantId": "string"

For SqlAdmin, use:

  "credentialsType": "SqlAdmin",
  "secrets": {
    "password": "string",
    "secretsType": "string"
  },
  "userId": "string"

Property values

workspaces/datastores

Name Description Value
type The resource type 'Microsoft.MachineLearningServices/workspaces/datastores'
apiVersion The resource api version '2021-03-01-preview'
name The resource name

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

Character limit: Maximum 255 characters for datastore name

Valid characters:
Datastore name consists only of lowercase letters, digits, and underscores.
properties [Required] Additional attributes of the entity. DatastoreProperties (required)

DatastoreProperties

Name Description Value
contents [Required] Reference to the datastore storage contents. DatastoreContents (required)
description The asset description text. string
isDefault Whether this datastore is the default for the workspace. bool
linkedInfo Information about the datastore origin, if linked. LinkedInfo
properties The asset property dictionary. DatastoreProperties
tags Tag dictionary. Tags can be added, removed, and updated. object
{customized property} string

DatastoreContents

Name Description Value
contentsType Set the object type AzureBlob
AzureDataLakeGen1
AzureDataLakeGen2
AzureFile
AzurePostgreSql
AzureSqlDatabase
GlusterFs (required)

AzureBlobContents

Name Description Value
contentsType [Required] Storage type backing the datastore. 'AzureBlob' (required)
accountName [Required] Storage account name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
containerName [Required] Storage account container name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
credentials [Required] Account credentials. DatastoreCredentials (required)
endpoint [Required] Azure cloud endpoint for the storage account. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
protocol [Required] Protocol used to communicate with the storage account. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

DatastoreCredentials

Name Description Value
credentialsType Set the object type AccountKey
Certificate
None
Sas
ServicePrincipal
SqlAdmin (required)

AccountKeyDatastoreCredentials

Name Description Value
credentialsType [Required] Credential type used to authentication with storage. 'AccountKey' (required)
secrets Storage account secrets. AccountKeyDatastoreSecrets

AccountKeyDatastoreSecrets

Name Description Value
key Storage account key. string
secretsType [Required] Credential type used to authentication with storage. 'AccountKey'
'Certificate'
'None'
'Sas'
'ServicePrincipal'
'SqlAdmin' (required)

CertificateDatastoreCredentials

Name Description Value
credentialsType [Required] Credential type used to authentication with storage. 'Certificate' (required)
authorityUrl Authority URL used for authentication. string
clientId [Required] Service principal client ID. string (required)

Constraints:
Min length = 36
Max length = 36
Pattern = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
resourceUri Resource the service principal has access to. string
secrets Service principal secrets. CertificateDatastoreSecrets
tenantId [Required] ID of the tenant to which the service principal belongs. string (required)

Constraints:
Min length = 36
Max length = 36
Pattern = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
thumbprint [Required] Thumbprint of the certificate used for authentication. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

CertificateDatastoreSecrets

Name Description Value
certificate Service principal certificate. string
secretsType [Required] Credential type used to authentication with storage. 'AccountKey'
'Certificate'
'None'
'Sas'
'ServicePrincipal'
'SqlAdmin' (required)

NoneDatastoreCredentials

Name Description Value
credentialsType [Required] Credential type used to authentication with storage. 'None' (required)
secrets Empty/none datastore secret. NoneDatastoreSecrets

NoneDatastoreSecrets

Name Description Value
secretsType [Required] Credential type used to authentication with storage. 'AccountKey'
'Certificate'
'None'
'Sas'
'ServicePrincipal'
'SqlAdmin' (required)

SasDatastoreCredentials

Name Description Value
credentialsType [Required] Credential type used to authentication with storage. 'Sas' (required)
secrets Storage container secrets. SasDatastoreSecrets

SasDatastoreSecrets

Name Description Value
sasToken Storage container SAS token. string
secretsType [Required] Credential type used to authentication with storage. 'AccountKey'
'Certificate'
'None'
'Sas'
'ServicePrincipal'
'SqlAdmin' (required)

ServicePrincipalDatastoreCredentials

Name Description Value
credentialsType [Required] Credential type used to authentication with storage. 'ServicePrincipal' (required)
authorityUrl Authority URL used for authentication. string
clientId [Required] Service principal client ID. string (required)

Constraints:
Min length = 36
Max length = 36
Pattern = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
resourceUri Resource the service principal has access to. string
secrets Service principal secrets. ServicePrincipalDatastoreSecrets
tenantId [Required] ID of the tenant to which the service principal belongs. string (required)

Constraints:
Min length = 36
Max length = 36
Pattern = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$

ServicePrincipalDatastoreSecrets

Name Description Value
clientSecret Service principal secret. string
secretsType [Required] Credential type used to authentication with storage. 'AccountKey'
'Certificate'
'None'
'Sas'
'ServicePrincipal'
'SqlAdmin' (required)

SqlAdminDatastoreCredentials

Name Description Value
credentialsType [Required] Credential type used to authentication with storage. 'SqlAdmin' (required)
secrets SQL database secrets. SqlAdminDatastoreSecrets
userId [Required] SQL database user name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

SqlAdminDatastoreSecrets

Name Description Value
password SQL database password. string
secretsType [Required] Credential type used to authentication with storage. 'AccountKey'
'Certificate'
'None'
'Sas'
'ServicePrincipal'
'SqlAdmin' (required)

AzureDataLakeGen1Contents

Name Description Value
contentsType [Required] Storage type backing the datastore. 'AzureDataLakeGen1' (required)
credentials [Required] Account credentials. DatastoreCredentials (required)
storeName [Required] Azure Data Lake store name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

AzureDataLakeGen2Contents

Name Description Value
contentsType [Required] Storage type backing the datastore. 'AzureDataLakeGen2' (required)
accountName [Required] Storage account name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
containerName [Required] Storage account container name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
credentials [Required] Account credentials. DatastoreCredentials (required)
endpoint [Required] Azure cloud endpoint for the storage account. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
protocol [Required] Protocol used to communicate with the storage account. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

AzureFileContents

Name Description Value
contentsType [Required] Storage type backing the datastore. 'AzureFile' (required)
accountName [Required] Storage account name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
containerName [Required] Storage account container name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
credentials [Required] Account credentials. DatastoreCredentials (required)
endpoint [Required] Azure cloud endpoint for the storage account. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
protocol [Required] Protocol used to communicate with the storage account. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

AzurePostgreSqlContents

Name Description Value
contentsType [Required] Storage type backing the datastore. 'AzurePostgreSql' (required)
credentials [Required] Account credentials. DatastoreCredentials (required)
databaseName [Required] Azure SQL database name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
enableSSL Whether the Azure PostgreSQL server requires SSL. bool
endpoint [Required] Azure cloud endpoint for the database. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
portNumber [Required] Azure SQL server port. int (required)
serverName [Required] Azure SQL server name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

AzureSqlDatabaseContents

Name Description Value
contentsType [Required] Storage type backing the datastore. 'AzureSqlDatabase' (required)
credentials [Required] Account credentials. DatastoreCredentials (required)
databaseName [Required] Azure SQL database name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
endpoint [Required] Azure cloud endpoint for the database. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
portNumber [Required] Azure SQL server port. int (required)
serverName [Required] Azure SQL server name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

GlusterFsContents

Name Description Value
contentsType [Required] Storage type backing the datastore. 'GlusterFs' (required)
serverAddress [Required] GlusterFS server address (can be the IP address or server name). string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
volumeName [Required] GlusterFS volume name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

LinkedInfo

Name Description Value
linkedId Linked service ID. string
linkedResourceName Linked service resource name. string
origin Type of the linked service. 'Synapse'

Quickstart templates

The following quickstart templates deploy this resource type.

Template Description
Create AML workspace with multiple Datasets & Datastores

Deploy to Azure
This template creates Azure Machine Learning workspace with multiple datasets & datastores.
Create an Azure ADLS Datastore

Deploy to Azure
This template creates a ADLS datastore in Azure Machine Learning workspace.
Create an Azure ADLS Gen2 Datastore

Deploy to Azure
This template creates a ADLS Gen2 datastore in Azure Machine Learning workspace.
Create a Blob Storage Datastore

Deploy to Azure
This template creates a blob storage datastore in Azure Machine Learning workspace.
Create a Databricks File System Datastore

Deploy to Azure
This template creates a Databricks File System datastore in Azure Machine Learning workspace.
Create a File Share Datastore

Deploy to Azure
This template creates a file share datastore in Azure Machine Learning workspace.
Create an Azure MySQL Datastore

Deploy to Azure
This template creates a MySQL datastore in Azure Machine Learning workspace.
Create an Azure PostgreSQL Datastore

Deploy to Azure
This template creates a PostgreSQL datastore in Azure Machine Learning workspace.
Create an Azure SQL Datastore

Deploy to Azure
This template creates a SQL datastore in Azure Machine Learning workspace.

Terraform (AzAPI provider) resource definition

The workspaces/datastores 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/datastores resource, add the following Terraform to your template.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.MachineLearningServices/workspaces/datastores@2021-03-01-preview"
  name = "string"
  parent_id = "string"
  body = jsonencode({
    properties = {
      contents = {
        contentsType = "string"
        // For remaining properties, see DatastoreContents objects
      }
      description = "string"
      isDefault = bool
      linkedInfo = {
        linkedId = "string"
        linkedResourceName = "string"
        origin = "Synapse"
      }
      properties = {
      tags = {
        {customized property} = "string"
      }
      {customized property} = "string"
    }
  })
}

DatastoreContents objects

Set the contentsType property to specify the type of object.

For AzureBlob, use:

  contentsType = "AzureBlob"
  accountName = "string"
  containerName = "string"
  credentials = {
    credentialsType = "string"
    // For remaining properties, see DatastoreCredentials objects
  }
  endpoint = "string"
  protocol = "string"

For AzureDataLakeGen1, use:

  contentsType = "AzureDataLakeGen1"
  credentials = {
    credentialsType = "string"
    // For remaining properties, see DatastoreCredentials objects
  }
  storeName = "string"

For AzureDataLakeGen2, use:

  contentsType = "AzureDataLakeGen2"
  accountName = "string"
  containerName = "string"
  credentials = {
    credentialsType = "string"
    // For remaining properties, see DatastoreCredentials objects
  }
  endpoint = "string"
  protocol = "string"

For AzureFile, use:

  contentsType = "AzureFile"
  accountName = "string"
  containerName = "string"
  credentials = {
    credentialsType = "string"
    // For remaining properties, see DatastoreCredentials objects
  }
  endpoint = "string"
  protocol = "string"

For AzurePostgreSql, use:

  contentsType = "AzurePostgreSql"
  credentials = {
    credentialsType = "string"
    // For remaining properties, see DatastoreCredentials objects
  }
  databaseName = "string"
  enableSSL = bool
  endpoint = "string"
  portNumber = int
  serverName = "string"

For AzureSqlDatabase, use:

  contentsType = "AzureSqlDatabase"
  credentials = {
    credentialsType = "string"
    // For remaining properties, see DatastoreCredentials objects
  }
  databaseName = "string"
  endpoint = "string"
  portNumber = int
  serverName = "string"

For GlusterFs, use:

  contentsType = "GlusterFs"
  serverAddress = "string"
  volumeName = "string"

DatastoreCredentials objects

Set the credentialsType property to specify the type of object.

For AccountKey, use:

  credentialsType = "AccountKey"
  secrets = {
    key = "string"
    secretsType = "string"
  }

For Certificate, use:

  credentialsType = "Certificate"
  authorityUrl = "string"
  clientId = "string"
  resourceUri = "string"
  secrets = {
    certificate = "string"
    secretsType = "string"
  }
  tenantId = "string"
  thumbprint = "string"

For None, use:

  credentialsType = "None"
  secrets = {
    secretsType = "string"
  }

For Sas, use:

  credentialsType = "Sas"
  secrets = {
    sasToken = "string"
    secretsType = "string"
  }

For ServicePrincipal, use:

  credentialsType = "ServicePrincipal"
  authorityUrl = "string"
  clientId = "string"
  resourceUri = "string"
  secrets = {
    clientSecret = "string"
    secretsType = "string"
  }
  tenantId = "string"

For SqlAdmin, use:

  credentialsType = "SqlAdmin"
  secrets = {
    password = "string"
    secretsType = "string"
  }
  userId = "string"

Property values

workspaces/datastores

Name Description Value
type The resource type "Microsoft.MachineLearningServices/workspaces/datastores@2021-03-01-preview"
name The resource name string (required)

Character limit: Maximum 255 characters for datastore name

Valid characters:
Datastore name consists only of lowercase letters, digits, and underscores.
parent_id The ID of the resource that is the parent for this resource. ID for resource of type: workspaces
properties [Required] Additional attributes of the entity. DatastoreProperties (required)

DatastoreProperties

Name Description Value
contents [Required] Reference to the datastore storage contents. DatastoreContents (required)
description The asset description text. string
isDefault Whether this datastore is the default for the workspace. bool
linkedInfo Information about the datastore origin, if linked. LinkedInfo
properties The asset property dictionary. DatastoreProperties
tags Tag dictionary. Tags can be added, removed, and updated. object
{customized property} string

DatastoreContents

Name Description Value
contentsType Set the object type AzureBlob
AzureDataLakeGen1
AzureDataLakeGen2
AzureFile
AzurePostgreSql
AzureSqlDatabase
GlusterFs (required)

AzureBlobContents

Name Description Value
contentsType [Required] Storage type backing the datastore. "AzureBlob" (required)
accountName [Required] Storage account name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
containerName [Required] Storage account container name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
credentials [Required] Account credentials. DatastoreCredentials (required)
endpoint [Required] Azure cloud endpoint for the storage account. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
protocol [Required] Protocol used to communicate with the storage account. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

DatastoreCredentials

Name Description Value
credentialsType Set the object type AccountKey
Certificate
None
Sas
ServicePrincipal
SqlAdmin (required)

AccountKeyDatastoreCredentials

Name Description Value
credentialsType [Required] Credential type used to authentication with storage. "AccountKey" (required)
secrets Storage account secrets. AccountKeyDatastoreSecrets

AccountKeyDatastoreSecrets

Name Description Value
key Storage account key. string
secretsType [Required] Credential type used to authentication with storage. "AccountKey"
"Certificate"
"None"
"Sas"
"ServicePrincipal"
"SqlAdmin" (required)

CertificateDatastoreCredentials

Name Description Value
credentialsType [Required] Credential type used to authentication with storage. "Certificate" (required)
authorityUrl Authority URL used for authentication. string
clientId [Required] Service principal client ID. string (required)

Constraints:
Min length = 36
Max length = 36
Pattern = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
resourceUri Resource the service principal has access to. string
secrets Service principal secrets. CertificateDatastoreSecrets
tenantId [Required] ID of the tenant to which the service principal belongs. string (required)

Constraints:
Min length = 36
Max length = 36
Pattern = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
thumbprint [Required] Thumbprint of the certificate used for authentication. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

CertificateDatastoreSecrets

Name Description Value
certificate Service principal certificate. string
secretsType [Required] Credential type used to authentication with storage. "AccountKey"
"Certificate"
"None"
"Sas"
"ServicePrincipal"
"SqlAdmin" (required)

NoneDatastoreCredentials

Name Description Value
credentialsType [Required] Credential type used to authentication with storage. "None" (required)
secrets Empty/none datastore secret. NoneDatastoreSecrets

NoneDatastoreSecrets

Name Description Value
secretsType [Required] Credential type used to authentication with storage. "AccountKey"
"Certificate"
"None"
"Sas"
"ServicePrincipal"
"SqlAdmin" (required)

SasDatastoreCredentials

Name Description Value
credentialsType [Required] Credential type used to authentication with storage. "Sas" (required)
secrets Storage container secrets. SasDatastoreSecrets

SasDatastoreSecrets

Name Description Value
sasToken Storage container SAS token. string
secretsType [Required] Credential type used to authentication with storage. "AccountKey"
"Certificate"
"None"
"Sas"
"ServicePrincipal"
"SqlAdmin" (required)

ServicePrincipalDatastoreCredentials

Name Description Value
credentialsType [Required] Credential type used to authentication with storage. "ServicePrincipal" (required)
authorityUrl Authority URL used for authentication. string
clientId [Required] Service principal client ID. string (required)

Constraints:
Min length = 36
Max length = 36
Pattern = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
resourceUri Resource the service principal has access to. string
secrets Service principal secrets. ServicePrincipalDatastoreSecrets
tenantId [Required] ID of the tenant to which the service principal belongs. string (required)

Constraints:
Min length = 36
Max length = 36
Pattern = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$

ServicePrincipalDatastoreSecrets

Name Description Value
clientSecret Service principal secret. string
secretsType [Required] Credential type used to authentication with storage. "AccountKey"
"Certificate"
"None"
"Sas"
"ServicePrincipal"
"SqlAdmin" (required)

SqlAdminDatastoreCredentials

Name Description Value
credentialsType [Required] Credential type used to authentication with storage. "SqlAdmin" (required)
secrets SQL database secrets. SqlAdminDatastoreSecrets
userId [Required] SQL database user name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

SqlAdminDatastoreSecrets

Name Description Value
password SQL database password. string
secretsType [Required] Credential type used to authentication with storage. "AccountKey"
"Certificate"
"None"
"Sas"
"ServicePrincipal"
"SqlAdmin" (required)

AzureDataLakeGen1Contents

Name Description Value
contentsType [Required] Storage type backing the datastore. "AzureDataLakeGen1" (required)
credentials [Required] Account credentials. DatastoreCredentials (required)
storeName [Required] Azure Data Lake store name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

AzureDataLakeGen2Contents

Name Description Value
contentsType [Required] Storage type backing the datastore. "AzureDataLakeGen2" (required)
accountName [Required] Storage account name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
containerName [Required] Storage account container name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
credentials [Required] Account credentials. DatastoreCredentials (required)
endpoint [Required] Azure cloud endpoint for the storage account. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
protocol [Required] Protocol used to communicate with the storage account. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

AzureFileContents

Name Description Value
contentsType [Required] Storage type backing the datastore. "AzureFile" (required)
accountName [Required] Storage account name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
containerName [Required] Storage account container name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
credentials [Required] Account credentials. DatastoreCredentials (required)
endpoint [Required] Azure cloud endpoint for the storage account. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
protocol [Required] Protocol used to communicate with the storage account. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

AzurePostgreSqlContents

Name Description Value
contentsType [Required] Storage type backing the datastore. "AzurePostgreSql" (required)
credentials [Required] Account credentials. DatastoreCredentials (required)
databaseName [Required] Azure SQL database name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
enableSSL Whether the Azure PostgreSQL server requires SSL. bool
endpoint [Required] Azure cloud endpoint for the database. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
portNumber [Required] Azure SQL server port. int (required)
serverName [Required] Azure SQL server name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

AzureSqlDatabaseContents

Name Description Value
contentsType [Required] Storage type backing the datastore. "AzureSqlDatabase" (required)
credentials [Required] Account credentials. DatastoreCredentials (required)
databaseName [Required] Azure SQL database name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
endpoint [Required] Azure cloud endpoint for the database. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
portNumber [Required] Azure SQL server port. int (required)
serverName [Required] Azure SQL server name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

GlusterFsContents

Name Description Value
contentsType [Required] Storage type backing the datastore. "GlusterFs" (required)
serverAddress [Required] GlusterFS server address (can be the IP address or server name). string (required)

Constraints:
Pattern = [a-zA-Z0-9_]
volumeName [Required] GlusterFS volume name. string (required)

Constraints:
Pattern = [a-zA-Z0-9_]

LinkedInfo

Name Description Value
linkedId Linked service ID. string
linkedResourceName Linked service resource name. string
origin Type of the linked service. "Synapse"