Clusters - Create Or Update

Create or update a Kusto cluster.

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}?api-version=2023-08-15

URI Parameters

Name In Required Type Description
clusterName
path True

string

The name of the Kusto cluster.

Regex pattern: ^.*$

resourceGroupName
path True

string

The name of the resource group. The name is case insensitive.

subscriptionId
path True

string

The ID of the target subscription.

api-version
query True

string

The API version to use for this operation.

Request Header

Name Required Type Description
If-Match

string

The ETag of the cluster. Omit this value to always overwrite the current cluster. Specify the last-seen ETag value to prevent accidentally overwriting concurrent changes.

If-None-Match

string

Set to '*' to allow a new cluster to be created, but to prevent updating an existing cluster. Other values will result in a 412 Pre-condition Failed response.

Request Body

Name Required Type Description
location True

string

The geo-location where the resource lives

sku True

AzureSku

The SKU of the cluster.

identity

Identity

The identity of the cluster, if configured.

properties.acceptedAudiences

AcceptedAudiences[]

The cluster's accepted audiences.

properties.allowedFqdnList

string[]

List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster.

properties.allowedIpRangeList

string[]

The list of ips in the format of CIDR allowed to connect to the cluster.

properties.enableAutoStop

boolean

A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many days).

properties.enableDiskEncryption

boolean

A boolean value that indicates if the cluster's disks are encrypted.

properties.enableDoubleEncryption

boolean

A boolean value that indicates if double encryption is enabled.

properties.enablePurge

boolean

A boolean value that indicates if the purge operations are enabled.

properties.enableStreamingIngest

boolean

A boolean value that indicates if the streaming ingest is enabled.

properties.engineType

EngineType

The engine type

properties.keyVaultProperties

KeyVaultProperties

KeyVault properties for the cluster encryption.

properties.languageExtensions

LanguageExtensionsList

List of the cluster's language extensions.

properties.optimizedAutoscale

OptimizedAutoscale

Optimized auto scale definition.

properties.publicIPType

publicIPType

Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6)

properties.publicNetworkAccess

PublicNetworkAccess

Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster is allowed

properties.restrictOutboundNetworkAccess

ClusterNetworkAccessFlag

Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled'

properties.trustedExternalTenants

TrustedExternalTenant[]

The cluster's external tenants.

properties.virtualClusterGraduationProperties

string

Virtual Cluster graduation properties

properties.virtualNetworkConfiguration

VirtualNetworkConfiguration

Virtual network definition.

tags

object

Resource tags.

zones

string[]

The availability zones of the cluster.

Responses

Name Type Description
200 OK

Cluster

Successfully updated the Cluster.

201 Created

Cluster

Successfully created the cluster.

Other Status Codes

ErrorResponse

Error response describing why the operation failed.

Examples

KustoClustersCreateOrUpdate

Sample request

PUT https://management.azure.com/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/clusters/kustoCluster?api-version=2023-08-15

{
  "location": "westus",
  "sku": {
    "name": "Standard_L16as_v3",
    "capacity": 2,
    "tier": "Standard"
  },
  "identity": {
    "type": "SystemAssigned"
  },
  "properties": {
    "enableStreamingIngest": true,
    "enablePurge": true,
    "enableDoubleEncryption": false,
    "enableAutoStop": true,
    "publicIPType": "DualStack",
    "publicNetworkAccess": "Enabled",
    "allowedIpRangeList": [
      "0.0.0.0/0"
    ],
    "languageExtensions": {
      "value": [
        {
          "languageExtensionName": "PYTHON",
          "languageExtensionImageName": "Python3_10_8"
        },
        {
          "languageExtensionName": "R",
          "languageExtensionImageName": "R"
        }
      ]
    }
  }
}

Sample response

{
  "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/kustoCluster",
  "name": "kustoCluster",
  "type": "Microsoft.Kusto/Clusters",
  "location": "westus",
  "properties": {
    "provisioningState": "Succeeded",
    "enableDiskEncryption": false,
    "enableStreamingIngest": true,
    "enablePurge": true,
    "enableDoubleEncryption": false,
    "enableAutoStop": true,
    "publicIPType": "DualStack",
    "keyVaultProperties": {
      "keyVaultUri": "https://dummy.keyvault.com",
      "keyName": "keyName",
      "keyVersion": "keyVersion"
    },
    "engineType": "V3",
    "publicNetworkAccess": "Enabled",
    "restrictOutboundNetworkAccess": "Disabled",
    "allowedIpRangeList": [
      "0.0.0.0/0"
    ],
    "languageExtensions": {
      "value": [
        {
          "languageExtensionName": "PYTHON",
          "languageExtensionImageName": "Python3_10_8"
        },
        {
          "languageExtensionName": "R",
          "languageExtensionImageName": "R"
        }
      ]
    }
  },
  "sku": {
    "name": "Standard_L16as_v3",
    "capacity": 2,
    "tier": "Standard"
  },
  "identity": {
    "type": "SystemAssigned",
    "tenantId": "b932977f-6277-4ab7-a2cd-5bd21f07aaf4",
    "principalId": "faabad1f-4876-463c-af9d-6ba2d2d2394c",
    "userAssignedIdentities": {}
  },
  "etag": "abcd"
}
{
  "id": "/subscriptions/12345678-1234-1234-1234-123456789098/resourceGroups/kustorptest/providers/Microsoft.Kusto/Clusters/kustoCluster",
  "name": "kustoCluster",
  "type": "Microsoft.Kusto/Clusters",
  "location": "westus",
  "properties": {
    "provisioningState": "Succeeded",
    "enableDiskEncryption": false,
    "enableStreamingIngest": true,
    "enablePurge": true,
    "enableDoubleEncryption": false,
    "enableAutoStop": true,
    "publicIPType": "DualStack",
    "keyVaultProperties": {
      "keyVaultUri": "https://dummy.keyvault.com",
      "keyName": "keyName",
      "keyVersion": "keyVersion"
    },
    "engineType": "V3",
    "publicNetworkAccess": "Enabled",
    "restrictOutboundNetworkAccess": "Disabled",
    "allowedIpRangeList": [
      "0.0.0.0/0"
    ],
    "languageExtensions": {
      "value": [
        {
          "languageExtensionName": "PYTHON",
          "languageExtensionImageName": "Python3_10_8"
        },
        {
          "languageExtensionName": "R",
          "languageExtensionImageName": "R"
        }
      ]
    }
  },
  "sku": {
    "name": "Standard_L16as_v3",
    "capacity": 2,
    "tier": "Standard"
  },
  "identity": {
    "type": "SystemAssigned",
    "tenantId": "b932977f-6277-4ab7-a2cd-5bd21f07aaf4",
    "principalId": "faabad1f-4876-463c-af9d-6ba2d2d2394c",
    "userAssignedIdentities": {}
  },
  "etag": "abcd123"
}

Definitions

Name Description
AcceptedAudiences

Represents an accepted audience trusted by the cluster.

AzureSku

Azure SKU definition.

AzureSkuName

SKU name.

AzureSkuTier

SKU tier.

Cluster

Class representing a Kusto cluster.

ClusterNetworkAccessFlag

Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled'

createdByType

The type of identity that created the resource.

EngineType

The engine type

ErrorAdditionalInfo

The resource management error additional info.

ErrorDetail

The error detail.

ErrorResponse

Error response

Identity

Identity for the resource.

IdentityType

The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove all identities.

KeyVaultProperties

Properties of the key vault.

LanguageExtension

The language extension object.

languageExtensionImageName

The language extension image name.

languageExtensionName

The language extension name.

LanguageExtensionsList

The list of language extension objects.

MigrationClusterProperties

Represents a properties of a cluster that is part of a migration.

MigrationClusterRole

The role of the cluster in the migration process.

OptimizedAutoscale

A class that contains the optimized auto scale definition.

PrivateEndpointConnection

A private endpoint connection

PrivateEndpointProperty

Private endpoint which the connection belongs to.

PrivateLinkServiceConnectionStateProperty

Connection State of the Private Endpoint Connection.

ProvisioningState

The provisioned state of the resource.

publicIPType

Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6)

PublicNetworkAccess

Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster is allowed

State

The state of the resource.

systemData

Metadata pertaining to creation and last modification of the resource.

TrustedExternalTenant

Represents a tenant ID that is trusted by the cluster.

UserAssignedIdentities

The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.

VirtualNetworkConfiguration

A class that contains virtual network definition.

VnetState

When enabled, the cluster is deployed into the configured subnet, when disabled it will be removed from the subnet.

AcceptedAudiences

Represents an accepted audience trusted by the cluster.

Name Type Description
value

string

GUID or valid URL representing an accepted audience.

AzureSku

Azure SKU definition.

Name Type Description
capacity

integer

The number of instances of the cluster.

name

AzureSkuName

SKU name.

tier

AzureSkuTier

SKU tier.

AzureSkuName

SKU name.

Name Type Description
Dev(No SLA)_Standard_D11_v2

string

Dev(No SLA)_Standard_E2a_v4

string

Standard_D11_v2

string

Standard_D12_v2

string

Standard_D13_v2

string

Standard_D14_v2

string

Standard_D16d_v5

string

Standard_D32d_v4

string

Standard_D32d_v5

string

Standard_DS13_v2+1TB_PS

string

Standard_DS13_v2+2TB_PS

string

Standard_DS14_v2+3TB_PS

string

Standard_DS14_v2+4TB_PS

string

Standard_E16a_v4

string

Standard_E16ads_v5

string

Standard_E16as_v4+3TB_PS

string

Standard_E16as_v4+4TB_PS

string

Standard_E16as_v5+3TB_PS

string

Standard_E16as_v5+4TB_PS

string

Standard_E16d_v4

string

Standard_E16d_v5

string

Standard_E16s_v4+3TB_PS

string

Standard_E16s_v4+4TB_PS

string

Standard_E16s_v5+3TB_PS

string

Standard_E16s_v5+4TB_PS

string

Standard_E2a_v4

string

Standard_E2ads_v5

string

Standard_E2d_v4

string

Standard_E2d_v5

string

Standard_E4a_v4

string

Standard_E4ads_v5

string

Standard_E4d_v4

string

Standard_E4d_v5

string

Standard_E64i_v3

string

Standard_E80ids_v4

string

Standard_E8a_v4

string

Standard_E8ads_v5

string

Standard_E8as_v4+1TB_PS

string

Standard_E8as_v4+2TB_PS

string

Standard_E8as_v5+1TB_PS

string

Standard_E8as_v5+2TB_PS

string

Standard_E8d_v4

string

Standard_E8d_v5

string

Standard_E8s_v4+1TB_PS

string

Standard_E8s_v4+2TB_PS

string

Standard_E8s_v5+1TB_PS

string

Standard_E8s_v5+2TB_PS

string

Standard_EC16ads_v5

string

Standard_EC16as_v5+3TB_PS

string

Standard_EC16as_v5+4TB_PS

string

Standard_EC8ads_v5

string

Standard_EC8as_v5+1TB_PS

string

Standard_EC8as_v5+2TB_PS

string

Standard_L16as_v3

string

Standard_L16s

string

Standard_L16s_v2

string

Standard_L16s_v3

string

Standard_L32as_v3

string

Standard_L32s_v3

string

Standard_L4s

string

Standard_L8as_v3

string

Standard_L8s

string

Standard_L8s_v2

string

Standard_L8s_v3

string

AzureSkuTier

SKU tier.

Name Type Description
Basic

string

Standard

string

Cluster

Class representing a Kusto cluster.

Name Type Default value Description
etag

string

A unique read-only string that changes whenever the resource is updated.

id

string

Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}

identity

Identity

The identity of the cluster, if configured.

location

string

The geo-location where the resource lives

name

string

The name of the resource

properties.acceptedAudiences

AcceptedAudiences[]

The cluster's accepted audiences.

properties.allowedFqdnList

string[]

List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster.

properties.allowedIpRangeList

string[]

The list of ips in the format of CIDR allowed to connect to the cluster.

properties.dataIngestionUri

string

The cluster data ingestion URI.

properties.enableAutoStop

boolean

True

A boolean value that indicates if the cluster could be automatically stopped (due to lack of data or no activity for many days).

properties.enableDiskEncryption

boolean

False

A boolean value that indicates if the cluster's disks are encrypted.

properties.enableDoubleEncryption

boolean

False

A boolean value that indicates if double encryption is enabled.

properties.enablePurge

boolean

False

A boolean value that indicates if the purge operations are enabled.

properties.enableStreamingIngest

boolean

False

A boolean value that indicates if the streaming ingest is enabled.

properties.engineType

EngineType

V3

The engine type

properties.keyVaultProperties

KeyVaultProperties

KeyVault properties for the cluster encryption.

properties.languageExtensions

LanguageExtensionsList

List of the cluster's language extensions.

properties.migrationCluster

MigrationClusterProperties

Properties of the peer cluster involved in a migration to/from this cluster.

properties.optimizedAutoscale

OptimizedAutoscale

Optimized auto scale definition.

properties.privateEndpointConnections

PrivateEndpointConnection[]

A list of private endpoint connections.

properties.provisioningState

ProvisioningState

The provisioned state of the resource.

properties.publicIPType

publicIPType

IPv4

Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6)

properties.publicNetworkAccess

PublicNetworkAccess

Enabled

Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster is allowed

properties.restrictOutboundNetworkAccess

ClusterNetworkAccessFlag

Disabled

Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled'

properties.state

State

The state of the resource.

properties.stateReason

string

The reason for the cluster's current state.

properties.trustedExternalTenants

TrustedExternalTenant[]

The cluster's external tenants.

properties.uri

string

The cluster URI.

properties.virtualClusterGraduationProperties

string

Virtual Cluster graduation properties

properties.virtualNetworkConfiguration

VirtualNetworkConfiguration

Virtual network definition.

sku

AzureSku

The SKU of the cluster.

systemData

systemData

Metadata pertaining to creation and last modification of the resource.

tags

object

Resource tags.

type

string

The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"

zones

string[]

The availability zones of the cluster.

ClusterNetworkAccessFlag

Whether or not to restrict outbound network access. Value is optional but if passed in, must be 'Enabled' or 'Disabled'

Name Type Description
Disabled

string

Enabled

string

createdByType

The type of identity that created the resource.

Name Type Description
Application

string

Key

string

ManagedIdentity

string

User

string

EngineType

The engine type

Name Type Description
V2

string

V3

string

ErrorAdditionalInfo

The resource management error additional info.

Name Type Description
info

object

The additional info.

type

string

The additional info type.

ErrorDetail

The error detail.

Name Type Description
additionalInfo

ErrorAdditionalInfo[]

The error additional info.

code

string

The error code.

details

ErrorDetail[]

The error details.

message

string

The error message.

target

string

The error target.

ErrorResponse

Error response

Name Type Description
error

ErrorDetail

The error object.

Identity

Identity for the resource.

Name Type Description
principalId

string

The principal ID of resource identity.

tenantId

string

The tenant ID of resource.

type

IdentityType

The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove all identities.

userAssignedIdentities

UserAssignedIdentities

The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.

IdentityType

The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove all identities.

Name Type Description
None

string

SystemAssigned

string

SystemAssigned, UserAssigned

string

UserAssigned

string

KeyVaultProperties

Properties of the key vault.

Name Type Description
keyName

string

The name of the key vault key.

keyVaultUri

string

The Uri of the key vault.

keyVersion

string

The version of the key vault key.

userIdentity

string

The user assigned identity (ARM resource id) that has access to the key.

LanguageExtension

The language extension object.

Name Type Description
languageExtensionCustomImageName

string

The language extension custom image name.

languageExtensionImageName

languageExtensionImageName

The language extension image name.

languageExtensionName

languageExtensionName

The language extension name.

languageExtensionImageName

The language extension image name.

Name Type Description
Python3_10_8

string

Python3_10_8_DL

string

Python3_6_5

string

PythonCustomImage

string

R

string

languageExtensionName

The language extension name.

Name Type Description
PYTHON

string

R

string

LanguageExtensionsList

The list of language extension objects.

Name Type Description
value

LanguageExtension[]

The list of language extensions.

MigrationClusterProperties

Represents a properties of a cluster that is part of a migration.

Name Type Description
dataIngestionUri

string

The public data ingestion URL of the cluster.

id

string

The resource ID of the cluster.

role

MigrationClusterRole

The role of the cluster in the migration process.

uri

string

The public URL of the cluster.

MigrationClusterRole

The role of the cluster in the migration process.

Name Type Description
Destination

string

Source

string

OptimizedAutoscale

A class that contains the optimized auto scale definition.

Name Type Description
isEnabled

boolean

A boolean value that indicate if the optimized autoscale feature is enabled or not.

maximum

integer

Maximum allowed instances count.

minimum

integer

Minimum allowed instances count.

version

integer

The version of the template defined, for instance 1.

PrivateEndpointConnection

A private endpoint connection

Name Type Description
id

string

Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}

name

string

The name of the resource

properties.groupId

string

Group id of the private endpoint.

properties.privateEndpoint

PrivateEndpointProperty

Private endpoint which the connection belongs to.

properties.privateLinkServiceConnectionState

PrivateLinkServiceConnectionStateProperty

Connection State of the Private Endpoint Connection.

properties.provisioningState

string

Provisioning state of the private endpoint.

systemData

systemData

Metadata pertaining to creation and last modification of the resource.

type

string

The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"

PrivateEndpointProperty

Private endpoint which the connection belongs to.

Name Type Description
id

string

Resource id of the private endpoint.

PrivateLinkServiceConnectionStateProperty

Connection State of the Private Endpoint Connection.

Name Type Description
actionsRequired

string

Any action that is required beyond basic workflow (approve/ reject/ disconnect)

description

string

The private link service connection description.

status

string

The private link service connection status.

ProvisioningState

The provisioned state of the resource.

Name Type Description
Canceled

string

Creating

string

Deleting

string

Failed

string

Moving

string

Running

string

Succeeded

string

publicIPType

Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6)

Name Type Description
DualStack

string

IPv4

string

PublicNetworkAccess

Public network access to the cluster is enabled by default. When disabled, only private endpoint connection to the cluster is allowed

Name Type Description
Disabled

string

Enabled

string

State

The state of the resource.

Name Type Description
Creating

string

Deleted

string

Deleting

string

Migrated

string

Running

string

Starting

string

Stopped

string

Stopping

string

Unavailable

string

Updating

string

systemData

Metadata pertaining to creation and last modification of the resource.

Name Type Description
createdAt

string

The timestamp of resource creation (UTC).

createdBy

string

The identity that created the resource.

createdByType

createdByType

The type of identity that created the resource.

lastModifiedAt

string

The timestamp of resource last modification (UTC)

lastModifiedBy

string

The identity that last modified the resource.

lastModifiedByType

createdByType

The type of identity that last modified the resource.

TrustedExternalTenant

Represents a tenant ID that is trusted by the cluster.

Name Type Description
value

string

GUID representing an external tenant.

UserAssignedIdentities

The list of user identities associated with the Kusto cluster. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.

Name Type Description

VirtualNetworkConfiguration

A class that contains virtual network definition.

Name Type Default value Description
dataManagementPublicIpId

string

Data management's service public IP address resource id.

enginePublicIpId

string

Engine service's public IP address resource id.

state

VnetState

Enabled

When enabled, the cluster is deployed into the configured subnet, when disabled it will be removed from the subnet.

subnetId

string

The subnet resource id.

VnetState

When enabled, the cluster is deployed into the configured subnet, when disabled it will be removed from the subnet.

Name Type Description
Disabled

string

Enabled

string