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' = {
  parent: resourceSymbolicName
  name: 'string'
  properties: {
    contents: {
      contentsType: 'string'
      // For remaining properties, see DatastoreContents objects
    }
    description: 'string'
    isDefault: bool
    linkedInfo: {
      linkedId: 'string'
      linkedResourceName: 'string'
      origin: 'string'
    }
    properties: {
      {customized property}: 'string'
    }
    tags: {
      {customized property}: '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:

{
  authorityUrl: 'string'
  clientId: 'string'
  credentialsType: 'Certificate'
  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:

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

For SqlAdmin, use:

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

DatastoreContents objects

Set the contentsType property to specify the type of object.

For AzureBlob, use:

{
  accountName: 'string'
  containerName: 'string'
  contentsType: 'AzureBlob'
  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:

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

For AzureFile, use:

{
  accountName: 'string'
  containerName: 'string'
  contentsType: 'AzureFile'
  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'
}

Property values

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)

AzureBlobContents

Name Description Value
accountName [Required] Storage account name. string

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

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

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

Constraints:
Pattern = [a-zA-Z0-9_] (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

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

AzureDataLakeGen2Contents

Name Description Value
accountName [Required] Storage account name. string

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

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

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

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

AzureFileContents

Name Description Value
accountName [Required] Storage account name. string

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

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

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

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

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

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

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

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

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

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

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

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

CertificateDatastoreCredentials

Name Description Value
authorityUrl Authority URL used for authentication. string
clientId [Required] Service principal client ID. string

Constraints:
Min length = 36
Max length = 36
Pattern = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$ (required)
credentialsType [Required] Credential type used to authentication with storage. 'Certificate' (required)
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

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

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

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)

DatastoreContents

Name Description Value
contentsType Set to 'AzureBlob' for type AzureBlobContents. Set to 'AzureDataLakeGen1' for type AzureDataLakeGen1Contents. Set to 'AzureDataLakeGen2' for type AzureDataLakeGen2Contents. Set to 'AzureFile' for type AzureFileContents. Set to 'AzurePostgreSql' for type AzurePostgreSqlContents. Set to 'AzureSqlDatabase' for type AzureSqlDatabaseContents. Set to 'GlusterFs' for type GlusterFsContents. 'AzureBlob'
'AzureDataLakeGen1'
'AzureDataLakeGen2'
'AzureFile'
'AzurePostgreSql'
'AzureSqlDatabase'
'GlusterFs' (required)

DatastoreCredentials

Name Description Value
credentialsType Set to 'AccountKey' for type AccountKeyDatastoreCredentials. Set to 'Certificate' for type CertificateDatastoreCredentials. Set to 'None' for type NoneDatastoreCredentials. Set to 'Sas' for type SasDatastoreCredentials. Set to 'ServicePrincipal' for type ServicePrincipalDatastoreCredentials. Set to 'SqlAdmin' for type SqlAdminDatastoreCredentials. 'AccountKey'
'Certificate'
'None'
'Sas'
'ServicePrincipal'
'SqlAdmin' (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. DatastorePropertiesTags

DatastoreProperties

Name Description Value

DatastorePropertiesTags

Name Description Value

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

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

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

LinkedInfo

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

Microsoft.MachineLearningServices/workspaces/datastores

Name Description Value
name The resource name string

Constraints:
Pattern = ^[a-zA-Z0-9][a-zA-Z0-9\-_]{0,254}$ (required)
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)

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
authorityUrl Authority URL used for authentication. string
clientId [Required] Service principal client ID. string

Constraints:
Min length = 36
Max length = 36
Pattern = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$ (required)
credentialsType [Required] Credential type used to authentication with storage. 'ServicePrincipal' (required)
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

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

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

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

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)

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": "string"
    },
    "properties": {
      "{customized property}": "string"
    },
    "tags": {
      "{customized property}": "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:

{
  "authorityUrl": "string",
  "clientId": "string",
  "credentialsType": "Certificate",
  "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:

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

For SqlAdmin, use:

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

DatastoreContents objects

Set the contentsType property to specify the type of object.

For AzureBlob, use:

{
  "accountName": "string",
  "containerName": "string",
  "contentsType": "AzureBlob",
  "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:

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

For AzureFile, use:

{
  "accountName": "string",
  "containerName": "string",
  "contentsType": "AzureFile",
  "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"
}

Property values

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)

AzureBlobContents

Name Description Value
accountName [Required] Storage account name. string

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

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

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

Constraints:
Pattern = [a-zA-Z0-9_] (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

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

AzureDataLakeGen2Contents

Name Description Value
accountName [Required] Storage account name. string

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

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

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

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

AzureFileContents

Name Description Value
accountName [Required] Storage account name. string

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

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

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

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

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

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

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

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

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

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

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

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

CertificateDatastoreCredentials

Name Description Value
authorityUrl Authority URL used for authentication. string
clientId [Required] Service principal client ID. string

Constraints:
Min length = 36
Max length = 36
Pattern = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$ (required)
credentialsType [Required] Credential type used to authentication with storage. 'Certificate' (required)
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

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

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

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)

DatastoreContents

Name Description Value
contentsType Set to 'AzureBlob' for type AzureBlobContents. Set to 'AzureDataLakeGen1' for type AzureDataLakeGen1Contents. Set to 'AzureDataLakeGen2' for type AzureDataLakeGen2Contents. Set to 'AzureFile' for type AzureFileContents. Set to 'AzurePostgreSql' for type AzurePostgreSqlContents. Set to 'AzureSqlDatabase' for type AzureSqlDatabaseContents. Set to 'GlusterFs' for type GlusterFsContents. 'AzureBlob'
'AzureDataLakeGen1'
'AzureDataLakeGen2'
'AzureFile'
'AzurePostgreSql'
'AzureSqlDatabase'
'GlusterFs' (required)

DatastoreCredentials

Name Description Value
credentialsType Set to 'AccountKey' for type AccountKeyDatastoreCredentials. Set to 'Certificate' for type CertificateDatastoreCredentials. Set to 'None' for type NoneDatastoreCredentials. Set to 'Sas' for type SasDatastoreCredentials. Set to 'ServicePrincipal' for type ServicePrincipalDatastoreCredentials. Set to 'SqlAdmin' for type SqlAdminDatastoreCredentials. 'AccountKey'
'Certificate'
'None'
'Sas'
'ServicePrincipal'
'SqlAdmin' (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. DatastorePropertiesTags

DatastoreProperties

Name Description Value

DatastorePropertiesTags

Name Description Value

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

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

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

LinkedInfo

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

Microsoft.MachineLearningServices/workspaces/datastores

Name Description Value
apiVersion The api version '2021-03-01-preview'
name The resource name string

Constraints:
Pattern = ^[a-zA-Z0-9][a-zA-Z0-9\-_]{0,254}$ (required)
properties [Required] Additional attributes of the entity. DatastoreProperties (required)
type The resource type 'Microsoft.MachineLearningServices/workspaces/datastores'

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
authorityUrl Authority URL used for authentication. string
clientId [Required] Service principal client ID. string

Constraints:
Min length = 36
Max length = 36
Pattern = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$ (required)
credentialsType [Required] Credential type used to authentication with storage. 'ServicePrincipal' (required)
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

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

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

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

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)

Quickstart templates

The following quickstart templates deploy this resource type.

Template Description
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 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 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"
  body = jsonencode({
    properties = {
      contents = {
        contentsType = "string"
        // For remaining properties, see DatastoreContents objects
      }
      description = "string"
      isDefault = bool
      linkedInfo = {
        linkedId = "string"
        linkedResourceName = "string"
        origin = "string"
      }
      properties = {
        {customized property} = "string"
      }
      tags = {
        {customized property} = "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:

{
  authorityUrl = "string"
  clientId = "string"
  credentialsType = "Certificate"
  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:

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

For SqlAdmin, use:

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

DatastoreContents objects

Set the contentsType property to specify the type of object.

For AzureBlob, use:

{
  accountName = "string"
  containerName = "string"
  contentsType = "AzureBlob"
  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:

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

For AzureFile, use:

{
  accountName = "string"
  containerName = "string"
  contentsType = "AzureFile"
  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"
}

Property values

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)

AzureBlobContents

Name Description Value
accountName [Required] Storage account name. string

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

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

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

Constraints:
Pattern = [a-zA-Z0-9_] (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

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

AzureDataLakeGen2Contents

Name Description Value
accountName [Required] Storage account name. string

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

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

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

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

AzureFileContents

Name Description Value
accountName [Required] Storage account name. string

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

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

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

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

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

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

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

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

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

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

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

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

CertificateDatastoreCredentials

Name Description Value
authorityUrl Authority URL used for authentication. string
clientId [Required] Service principal client ID. string

Constraints:
Min length = 36
Max length = 36
Pattern = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$ (required)
credentialsType [Required] Credential type used to authentication with storage. 'Certificate' (required)
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

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

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

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)

DatastoreContents

Name Description Value
contentsType Set to 'AzureBlob' for type AzureBlobContents. Set to 'AzureDataLakeGen1' for type AzureDataLakeGen1Contents. Set to 'AzureDataLakeGen2' for type AzureDataLakeGen2Contents. Set to 'AzureFile' for type AzureFileContents. Set to 'AzurePostgreSql' for type AzurePostgreSqlContents. Set to 'AzureSqlDatabase' for type AzureSqlDatabaseContents. Set to 'GlusterFs' for type GlusterFsContents. 'AzureBlob'
'AzureDataLakeGen1'
'AzureDataLakeGen2'
'AzureFile'
'AzurePostgreSql'
'AzureSqlDatabase'
'GlusterFs' (required)

DatastoreCredentials

Name Description Value
credentialsType Set to 'AccountKey' for type AccountKeyDatastoreCredentials. Set to 'Certificate' for type CertificateDatastoreCredentials. Set to 'None' for type NoneDatastoreCredentials. Set to 'Sas' for type SasDatastoreCredentials. Set to 'ServicePrincipal' for type ServicePrincipalDatastoreCredentials. Set to 'SqlAdmin' for type SqlAdminDatastoreCredentials. 'AccountKey'
'Certificate'
'None'
'Sas'
'ServicePrincipal'
'SqlAdmin' (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. DatastorePropertiesTags

DatastoreProperties

Name Description Value

DatastorePropertiesTags

Name Description Value

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

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

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

LinkedInfo

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

Microsoft.MachineLearningServices/workspaces/datastores

Name Description Value
name The resource name string

Constraints:
Pattern = ^[a-zA-Z0-9][a-zA-Z0-9\-_]{0,254}$ (required)
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)
type The resource type "Microsoft.MachineLearningServices/workspaces/datastores@2021-03-01-preview"

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
authorityUrl Authority URL used for authentication. string
clientId [Required] Service principal client ID. string

Constraints:
Min length = 36
Max length = 36
Pattern = ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$ (required)
credentialsType [Required] Credential type used to authentication with storage. 'ServicePrincipal' (required)
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

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

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

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

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)