diff --git a/sdk/kusto/mgmt-v2020_02_15/pom.xml b/sdk/kusto/mgmt-v2020_02_15/pom.xml
new file mode 100644
index 000000000000..3c0a218a0978
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/pom.xml
@@ -0,0 +1,135 @@
+
+
+ 4.0.0
+ com.microsoft.azure.kusto.v2020_02_15
+
+ com.microsoft.azure
+ azure-arm-parent
+ 1.3.0
+ ../../parents/azure-arm-parent/pom.xml
+
+ azure-mgmt-kusto
+ 1.0.0-beta-1
+ jar
+ Microsoft Azure SDK for Kusto Management
+ This package contains Microsoft Kusto Management SDK.
+ https://github.com/Azure/azure-sdk-for-java
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+ scm:git:https://github.com/Azure/azure-sdk-for-java
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ HEAD
+
+
+ UTF-8
+
+
+
+
+ microsoft
+ Microsoft
+
+
+
+
+ com.microsoft.azure
+ azure-client-runtime
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+
+
+ junit
+ junit
+ test
+
+
+ com.microsoft.azure
+ azure-client-authentication
+ test
+
+
+ com.microsoft.azure
+ azure-mgmt-resources
+ test
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+ test-jar
+ test
+
+ 1.6.5
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ true
+ true
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+ 1.7
+ 1.7
+
+
+ com.microsoft.azure.management.apigeneration.LangDefinitionProcessor
+
+
+ true
+ true
+
+ true
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.8
+
+ *.implementation.*;*.utils.*;com.microsoft.schemas._2003._10.serialization;*.blob.core.search
+
+
+ /**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ */
+ ]]>
+
+
+
+
+
+
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AttachedDatabaseConfiguration.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AttachedDatabaseConfiguration.java
new file mode 100644
index 000000000000..e092f2f97fea
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AttachedDatabaseConfiguration.java
@@ -0,0 +1,179 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.AttachedDatabaseConfigurationInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.KustoManager;
+import java.util.List;
+
+/**
+ * Type representing AttachedDatabaseConfiguration.
+ */
+public interface AttachedDatabaseConfiguration extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the attachedDatabaseNames value.
+ */
+ List attachedDatabaseNames();
+
+ /**
+ * @return the clusterResourceId value.
+ */
+ String clusterResourceId();
+
+ /**
+ * @return the databaseName value.
+ */
+ String databaseName();
+
+ /**
+ * @return the defaultPrincipalsModificationKind value.
+ */
+ DefaultPrincipalsModificationKind defaultPrincipalsModificationKind();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ProvisioningState provisioningState();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the AttachedDatabaseConfiguration definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithCluster, DefinitionStages.WithClusterResourceId, DefinitionStages.WithDatabaseName, DefinitionStages.WithDefaultPrincipalsModificationKind, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of AttachedDatabaseConfiguration definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a AttachedDatabaseConfiguration definition.
+ */
+ interface Blank extends WithCluster {
+ }
+
+ /**
+ * The stage of the attacheddatabaseconfiguration definition allowing to specify Cluster.
+ */
+ interface WithCluster {
+ /**
+ * Specifies resourceGroupName, clusterName.
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster
+ * @param clusterName The name of the Kusto cluster
+ * @return the next definition stage
+ */
+ WithClusterResourceId withExistingCluster(String resourceGroupName, String clusterName);
+ }
+
+ /**
+ * The stage of the attacheddatabaseconfiguration definition allowing to specify ClusterResourceId.
+ */
+ interface WithClusterResourceId {
+ /**
+ * Specifies clusterResourceId.
+ * @param clusterResourceId The resource id of the cluster where the databases you would like to attach reside
+ * @return the next definition stage
+ */
+ WithDatabaseName withClusterResourceId(String clusterResourceId);
+ }
+
+ /**
+ * The stage of the attacheddatabaseconfiguration definition allowing to specify DatabaseName.
+ */
+ interface WithDatabaseName {
+ /**
+ * Specifies databaseName.
+ * @param databaseName The name of the database which you would like to attach, use * if you want to follow all current and future databases
+ * @return the next definition stage
+ */
+ WithDefaultPrincipalsModificationKind withDatabaseName(String databaseName);
+ }
+
+ /**
+ * The stage of the attacheddatabaseconfiguration definition allowing to specify DefaultPrincipalsModificationKind.
+ */
+ interface WithDefaultPrincipalsModificationKind {
+ /**
+ * Specifies defaultPrincipalsModificationKind.
+ * @param defaultPrincipalsModificationKind The default principals modification kind. Possible values include: 'Union', 'Replace', 'None'
+ * @return the next definition stage
+ */
+ WithCreate withDefaultPrincipalsModificationKind(DefaultPrincipalsModificationKind defaultPrincipalsModificationKind);
+ }
+
+ /**
+ * The stage of the attacheddatabaseconfiguration definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location Resource location
+ * @return the next definition stage
+ */
+ WithCreate withLocation(String location);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithLocation {
+ }
+ }
+ /**
+ * The template for a AttachedDatabaseConfiguration update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithLocation {
+ }
+
+ /**
+ * Grouping of AttachedDatabaseConfiguration update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the attacheddatabaseconfiguration update allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location Resource location
+ * @return the next update stage
+ */
+ Update withLocation(String location);
+ }
+
+ }
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AttachedDatabaseConfigurations.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AttachedDatabaseConfigurations.java
new file mode 100644
index 000000000000..d0fee4d4c13e
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AttachedDatabaseConfigurations.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.AttachedDatabaseConfigurationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing AttachedDatabaseConfigurations.
+ */
+public interface AttachedDatabaseConfigurations extends SupportsCreating, HasInner {
+ /**
+ * Returns an attached database configuration.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param attachedDatabaseConfigurationName The name of the attached database configuration.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String clusterName, String attachedDatabaseConfigurationName);
+
+ /**
+ * Returns the list of attached database configurations of the given Kusto cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByClusterAsync(String resourceGroupName, String clusterName);
+
+ /**
+ * Deletes the attached database configuration with the given name.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param attachedDatabaseConfigurationName The name of the attached database configuration.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String clusterName, String attachedDatabaseConfigurationName);
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AzureCapacity.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AzureCapacity.java
new file mode 100644
index 000000000000..f8c03331131a
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AzureCapacity.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Azure capacity definition.
+ */
+public class AzureCapacity {
+ /**
+ * Scale type. Possible values include: 'automatic', 'manual', 'none'.
+ */
+ @JsonProperty(value = "scaleType", required = true)
+ private AzureScaleType scaleType;
+
+ /**
+ * Minimum allowed capacity.
+ */
+ @JsonProperty(value = "minimum", required = true)
+ private int minimum;
+
+ /**
+ * Maximum allowed capacity.
+ */
+ @JsonProperty(value = "maximum", required = true)
+ private int maximum;
+
+ /**
+ * The default capacity that would be used.
+ */
+ @JsonProperty(value = "default", required = true)
+ private int defaultProperty;
+
+ /**
+ * Get scale type. Possible values include: 'automatic', 'manual', 'none'.
+ *
+ * @return the scaleType value
+ */
+ public AzureScaleType scaleType() {
+ return this.scaleType;
+ }
+
+ /**
+ * Set scale type. Possible values include: 'automatic', 'manual', 'none'.
+ *
+ * @param scaleType the scaleType value to set
+ * @return the AzureCapacity object itself.
+ */
+ public AzureCapacity withScaleType(AzureScaleType scaleType) {
+ this.scaleType = scaleType;
+ return this;
+ }
+
+ /**
+ * Get minimum allowed capacity.
+ *
+ * @return the minimum value
+ */
+ public int minimum() {
+ return this.minimum;
+ }
+
+ /**
+ * Set minimum allowed capacity.
+ *
+ * @param minimum the minimum value to set
+ * @return the AzureCapacity object itself.
+ */
+ public AzureCapacity withMinimum(int minimum) {
+ this.minimum = minimum;
+ return this;
+ }
+
+ /**
+ * Get maximum allowed capacity.
+ *
+ * @return the maximum value
+ */
+ public int maximum() {
+ return this.maximum;
+ }
+
+ /**
+ * Set maximum allowed capacity.
+ *
+ * @param maximum the maximum value to set
+ * @return the AzureCapacity object itself.
+ */
+ public AzureCapacity withMaximum(int maximum) {
+ this.maximum = maximum;
+ return this;
+ }
+
+ /**
+ * Get the default capacity that would be used.
+ *
+ * @return the defaultProperty value
+ */
+ public int defaultProperty() {
+ return this.defaultProperty;
+ }
+
+ /**
+ * Set the default capacity that would be used.
+ *
+ * @param defaultProperty the defaultProperty value to set
+ * @return the AzureCapacity object itself.
+ */
+ public AzureCapacity withDefaultProperty(int defaultProperty) {
+ this.defaultProperty = defaultProperty;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AzureEntityResource.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AzureEntityResource.java
new file mode 100644
index 000000000000..c714f5317317
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AzureEntityResource.java
@@ -0,0 +1,34 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * The resource model definition for a Azure Resource Manager resource with an
+ * etag.
+ */
+public class AzureEntityResource extends ProxyResource {
+ /**
+ * Resource Etag.
+ */
+ @JsonProperty(value = "etag", access = JsonProperty.Access.WRITE_ONLY)
+ private String etag;
+
+ /**
+ * Get resource Etag.
+ *
+ * @return the etag value
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AzureResourceSku.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AzureResourceSku.java
new file mode 100644
index 000000000000..f6b27b54cc8a
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AzureResourceSku.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.AzureResourceSkuInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.KustoManager;
+
+/**
+ * Type representing AzureResourceSku.
+ */
+public interface AzureResourceSku extends HasInner, HasManager {
+ /**
+ * @return the capacity value.
+ */
+ AzureCapacity capacity();
+
+ /**
+ * @return the resourceType value.
+ */
+ String resourceType();
+
+ /**
+ * @return the sku value.
+ */
+ AzureSku sku();
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AzureScaleType.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AzureScaleType.java
new file mode 100644
index 000000000000..2beacc36e288
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AzureScaleType.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for AzureScaleType.
+ */
+public final class AzureScaleType extends ExpandableStringEnum {
+ /** Static value automatic for AzureScaleType. */
+ public static final AzureScaleType AUTOMATIC = fromString("automatic");
+
+ /** Static value manual for AzureScaleType. */
+ public static final AzureScaleType MANUAL = fromString("manual");
+
+ /** Static value none for AzureScaleType. */
+ public static final AzureScaleType NONE = fromString("none");
+
+ /**
+ * Creates or finds a AzureScaleType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding AzureScaleType
+ */
+ @JsonCreator
+ public static AzureScaleType fromString(String name) {
+ return fromString(name, AzureScaleType.class);
+ }
+
+ /**
+ * @return known AzureScaleType values
+ */
+ public static Collection values() {
+ return values(AzureScaleType.class);
+ }
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AzureSku.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AzureSku.java
new file mode 100644
index 000000000000..d147e9bae1a2
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AzureSku.java
@@ -0,0 +1,103 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Azure SKU definition.
+ */
+public class AzureSku {
+ /**
+ * SKU name. Possible values include: 'Standard_DS13_v2+1TB_PS',
+ * 'Standard_DS13_v2+2TB_PS', 'Standard_DS14_v2+3TB_PS',
+ * 'Standard_DS14_v2+4TB_PS', 'Standard_D13_v2', 'Standard_D14_v2',
+ * 'Standard_L8s', 'Standard_L16s', 'Standard_D11_v2', 'Standard_D12_v2',
+ * 'Standard_L4s', 'Dev(No SLA)_Standard_D11_v2', 'Standard_E2a_v4',
+ * 'Standard_E4a_v4', 'Standard_E8a_v4', 'Standard_E16a_v4',
+ * 'Standard_E8as_v4+1TB_PS', 'Standard_E8as_v4+2TB_PS',
+ * 'Standard_E16as_v4+3TB_PS', 'Standard_E16as_v4+4TB_PS', 'Dev(No
+ * SLA)_Standard_E2a_v4'.
+ */
+ @JsonProperty(value = "name", required = true)
+ private AzureSkuName name;
+
+ /**
+ * The number of instances of the cluster.
+ */
+ @JsonProperty(value = "capacity")
+ private Integer capacity;
+
+ /**
+ * SKU tier. Possible values include: 'Basic', 'Standard'.
+ */
+ @JsonProperty(value = "tier", required = true)
+ private AzureSkuTier tier;
+
+ /**
+ * Get sKU name. Possible values include: 'Standard_DS13_v2+1TB_PS', 'Standard_DS13_v2+2TB_PS', 'Standard_DS14_v2+3TB_PS', 'Standard_DS14_v2+4TB_PS', 'Standard_D13_v2', 'Standard_D14_v2', 'Standard_L8s', 'Standard_L16s', 'Standard_D11_v2', 'Standard_D12_v2', 'Standard_L4s', 'Dev(No SLA)_Standard_D11_v2', 'Standard_E2a_v4', 'Standard_E4a_v4', 'Standard_E8a_v4', 'Standard_E16a_v4', 'Standard_E8as_v4+1TB_PS', 'Standard_E8as_v4+2TB_PS', 'Standard_E16as_v4+3TB_PS', 'Standard_E16as_v4+4TB_PS', 'Dev(No SLA)_Standard_E2a_v4'.
+ *
+ * @return the name value
+ */
+ public AzureSkuName name() {
+ return this.name;
+ }
+
+ /**
+ * Set sKU name. Possible values include: 'Standard_DS13_v2+1TB_PS', 'Standard_DS13_v2+2TB_PS', 'Standard_DS14_v2+3TB_PS', 'Standard_DS14_v2+4TB_PS', 'Standard_D13_v2', 'Standard_D14_v2', 'Standard_L8s', 'Standard_L16s', 'Standard_D11_v2', 'Standard_D12_v2', 'Standard_L4s', 'Dev(No SLA)_Standard_D11_v2', 'Standard_E2a_v4', 'Standard_E4a_v4', 'Standard_E8a_v4', 'Standard_E16a_v4', 'Standard_E8as_v4+1TB_PS', 'Standard_E8as_v4+2TB_PS', 'Standard_E16as_v4+3TB_PS', 'Standard_E16as_v4+4TB_PS', 'Dev(No SLA)_Standard_E2a_v4'.
+ *
+ * @param name the name value to set
+ * @return the AzureSku object itself.
+ */
+ public AzureSku withName(AzureSkuName name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the number of instances of the cluster.
+ *
+ * @return the capacity value
+ */
+ public Integer capacity() {
+ return this.capacity;
+ }
+
+ /**
+ * Set the number of instances of the cluster.
+ *
+ * @param capacity the capacity value to set
+ * @return the AzureSku object itself.
+ */
+ public AzureSku withCapacity(Integer capacity) {
+ this.capacity = capacity;
+ return this;
+ }
+
+ /**
+ * Get sKU tier. Possible values include: 'Basic', 'Standard'.
+ *
+ * @return the tier value
+ */
+ public AzureSkuTier tier() {
+ return this.tier;
+ }
+
+ /**
+ * Set sKU tier. Possible values include: 'Basic', 'Standard'.
+ *
+ * @param tier the tier value to set
+ * @return the AzureSku object itself.
+ */
+ public AzureSku withTier(AzureSkuTier tier) {
+ this.tier = tier;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AzureSkuName.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AzureSkuName.java
new file mode 100644
index 000000000000..770c8aa444cf
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AzureSkuName.java
@@ -0,0 +1,98 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for AzureSkuName.
+ */
+public final class AzureSkuName extends ExpandableStringEnum {
+ /** Static value Standard_DS13_v2+1TB_PS for AzureSkuName. */
+ public static final AzureSkuName STANDARD_DS13_V21TB_PS = fromString("Standard_DS13_v2+1TB_PS");
+
+ /** Static value Standard_DS13_v2+2TB_PS for AzureSkuName. */
+ public static final AzureSkuName STANDARD_DS13_V22TB_PS = fromString("Standard_DS13_v2+2TB_PS");
+
+ /** Static value Standard_DS14_v2+3TB_PS for AzureSkuName. */
+ public static final AzureSkuName STANDARD_DS14_V23TB_PS = fromString("Standard_DS14_v2+3TB_PS");
+
+ /** Static value Standard_DS14_v2+4TB_PS for AzureSkuName. */
+ public static final AzureSkuName STANDARD_DS14_V24TB_PS = fromString("Standard_DS14_v2+4TB_PS");
+
+ /** Static value Standard_D13_v2 for AzureSkuName. */
+ public static final AzureSkuName STANDARD_D13_V2 = fromString("Standard_D13_v2");
+
+ /** Static value Standard_D14_v2 for AzureSkuName. */
+ public static final AzureSkuName STANDARD_D14_V2 = fromString("Standard_D14_v2");
+
+ /** Static value Standard_L8s for AzureSkuName. */
+ public static final AzureSkuName STANDARD_L8S = fromString("Standard_L8s");
+
+ /** Static value Standard_L16s for AzureSkuName. */
+ public static final AzureSkuName STANDARD_L16S = fromString("Standard_L16s");
+
+ /** Static value Standard_D11_v2 for AzureSkuName. */
+ public static final AzureSkuName STANDARD_D11_V2 = fromString("Standard_D11_v2");
+
+ /** Static value Standard_D12_v2 for AzureSkuName. */
+ public static final AzureSkuName STANDARD_D12_V2 = fromString("Standard_D12_v2");
+
+ /** Static value Standard_L4s for AzureSkuName. */
+ public static final AzureSkuName STANDARD_L4S = fromString("Standard_L4s");
+
+ /** Static value Dev(No SLA)_Standard_D11_v2 for AzureSkuName. */
+ public static final AzureSkuName DEV_NO_SLA_STANDARD_D11_V2 = fromString("Dev(No SLA)_Standard_D11_v2");
+
+ /** Static value Standard_E2a_v4 for AzureSkuName. */
+ public static final AzureSkuName STANDARD_E2A_V4 = fromString("Standard_E2a_v4");
+
+ /** Static value Standard_E4a_v4 for AzureSkuName. */
+ public static final AzureSkuName STANDARD_E4A_V4 = fromString("Standard_E4a_v4");
+
+ /** Static value Standard_E8a_v4 for AzureSkuName. */
+ public static final AzureSkuName STANDARD_E8A_V4 = fromString("Standard_E8a_v4");
+
+ /** Static value Standard_E16a_v4 for AzureSkuName. */
+ public static final AzureSkuName STANDARD_E16A_V4 = fromString("Standard_E16a_v4");
+
+ /** Static value Standard_E8as_v4+1TB_PS for AzureSkuName. */
+ public static final AzureSkuName STANDARD_E8AS_V41TB_PS = fromString("Standard_E8as_v4+1TB_PS");
+
+ /** Static value Standard_E8as_v4+2TB_PS for AzureSkuName. */
+ public static final AzureSkuName STANDARD_E8AS_V42TB_PS = fromString("Standard_E8as_v4+2TB_PS");
+
+ /** Static value Standard_E16as_v4+3TB_PS for AzureSkuName. */
+ public static final AzureSkuName STANDARD_E16AS_V43TB_PS = fromString("Standard_E16as_v4+3TB_PS");
+
+ /** Static value Standard_E16as_v4+4TB_PS for AzureSkuName. */
+ public static final AzureSkuName STANDARD_E16AS_V44TB_PS = fromString("Standard_E16as_v4+4TB_PS");
+
+ /** Static value Dev(No SLA)_Standard_E2a_v4 for AzureSkuName. */
+ public static final AzureSkuName DEV_NO_SLA_STANDARD_E2A_V4 = fromString("Dev(No SLA)_Standard_E2a_v4");
+
+ /**
+ * Creates or finds a AzureSkuName from its string representation.
+ * @param name a name to look for
+ * @return the corresponding AzureSkuName
+ */
+ @JsonCreator
+ public static AzureSkuName fromString(String name) {
+ return fromString(name, AzureSkuName.class);
+ }
+
+ /**
+ * @return known AzureSkuName values
+ */
+ public static Collection values() {
+ return values(AzureSkuName.class);
+ }
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AzureSkuTier.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AzureSkuTier.java
new file mode 100644
index 000000000000..1bb1f43599cf
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/AzureSkuTier.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for AzureSkuTier.
+ */
+public final class AzureSkuTier extends ExpandableStringEnum {
+ /** Static value Basic for AzureSkuTier. */
+ public static final AzureSkuTier BASIC = fromString("Basic");
+
+ /** Static value Standard for AzureSkuTier. */
+ public static final AzureSkuTier STANDARD = fromString("Standard");
+
+ /**
+ * Creates or finds a AzureSkuTier from its string representation.
+ * @param name a name to look for
+ * @return the corresponding AzureSkuTier
+ */
+ @JsonCreator
+ public static AzureSkuTier fromString(String name) {
+ return fromString(name, AzureSkuTier.class);
+ }
+
+ /**
+ * @return known AzureSkuTier values
+ */
+ public static Collection values() {
+ return values(AzureSkuTier.class);
+ }
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/CheckNameRequest.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/CheckNameRequest.java
new file mode 100644
index 000000000000..3f169abe7e9a
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/CheckNameRequest.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The result returned from a database check name availability request.
+ */
+public class CheckNameRequest {
+ /**
+ * Resource name.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * The type of resource, for instance Microsoft.Kusto/clusters/databases.
+ * Possible values include: 'Microsoft.Kusto/clusters/databases',
+ * 'Microsoft.Kusto/clusters/attachedDatabaseConfigurations'.
+ */
+ @JsonProperty(value = "type", required = true)
+ private Type type;
+
+ /**
+ * Get resource name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set resource name.
+ *
+ * @param name the name value to set
+ * @return the CheckNameRequest object itself.
+ */
+ public CheckNameRequest withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the type of resource, for instance Microsoft.Kusto/clusters/databases. Possible values include: 'Microsoft.Kusto/clusters/databases', 'Microsoft.Kusto/clusters/attachedDatabaseConfigurations'.
+ *
+ * @return the type value
+ */
+ public Type type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type of resource, for instance Microsoft.Kusto/clusters/databases. Possible values include: 'Microsoft.Kusto/clusters/databases', 'Microsoft.Kusto/clusters/attachedDatabaseConfigurations'.
+ *
+ * @param type the type value to set
+ * @return the CheckNameRequest object itself.
+ */
+ public CheckNameRequest withType(Type type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/CheckNameResult.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/CheckNameResult.java
new file mode 100644
index 000000000000..3bb3b1f4c2bf
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/CheckNameResult.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.KustoManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.CheckNameResultInner;
+
+/**
+ * Type representing CheckNameResult.
+ */
+public interface CheckNameResult extends HasInner, HasManager {
+ /**
+ * @return the message value.
+ */
+ String message();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the nameAvailable value.
+ */
+ Boolean nameAvailable();
+
+ /**
+ * @return the reason value.
+ */
+ Reason reason();
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Cluster.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Cluster.java
new file mode 100644
index 000000000000..740faa97eaaa
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Cluster.java
@@ -0,0 +1,401 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.Resource;
+import com.microsoft.azure.arm.resources.models.GroupableResourceCore;
+import com.microsoft.azure.arm.resources.models.HasResourceGroup;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.KustoManager;
+import java.util.List;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.ClusterInner;
+
+/**
+ * Type representing Cluster.
+ */
+public interface Cluster extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the dataIngestionUri value.
+ */
+ String dataIngestionUri();
+
+ /**
+ * @return the enableDiskEncryption value.
+ */
+ Boolean enableDiskEncryption();
+
+ /**
+ * @return the enablePurge value.
+ */
+ Boolean enablePurge();
+
+ /**
+ * @return the enableStreamingIngest value.
+ */
+ Boolean enableStreamingIngest();
+
+ /**
+ * @return the identity value.
+ */
+ Identity identity();
+
+ /**
+ * @return the keyVaultProperties value.
+ */
+ KeyVaultProperties keyVaultProperties();
+
+ /**
+ * @return the languageExtensions value.
+ */
+ LanguageExtensionsList languageExtensions();
+
+ /**
+ * @return the optimizedAutoscale value.
+ */
+ OptimizedAutoscale optimizedAutoscale();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ProvisioningState provisioningState();
+
+ /**
+ * @return the sku value.
+ */
+ AzureSku sku();
+
+ /**
+ * @return the state value.
+ */
+ State state();
+
+ /**
+ * @return the stateReason value.
+ */
+ String stateReason();
+
+ /**
+ * @return the trustedExternalTenants value.
+ */
+ List trustedExternalTenants();
+
+ /**
+ * @return the uri value.
+ */
+ String uri();
+
+ /**
+ * @return the virtualNetworkConfiguration value.
+ */
+ VirtualNetworkConfiguration virtualNetworkConfiguration();
+
+ /**
+ * @return the zones value.
+ */
+ List zones();
+
+ /**
+ * The entirety of the Cluster definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithSku, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Cluster definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Cluster definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the Cluster definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the cluster definition allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ * @param sku The SKU of the cluster
+ * @return the next definition stage
+*/
+ WithCreate withSku(AzureSku sku);
+ }
+
+ /**
+ * The stage of the cluster definition allowing to specify EnableDiskEncryption.
+ */
+ interface WithEnableDiskEncryption {
+ /**
+ * Specifies enableDiskEncryption.
+ * @param enableDiskEncryption A boolean value that indicates if the cluster's disks are encrypted
+ * @return the next definition stage
+ */
+ WithCreate withEnableDiskEncryption(Boolean enableDiskEncryption);
+ }
+
+ /**
+ * The stage of the cluster definition allowing to specify EnablePurge.
+ */
+ interface WithEnablePurge {
+ /**
+ * Specifies enablePurge.
+ * @param enablePurge A boolean value that indicates if the purge operations are enabled
+ * @return the next definition stage
+ */
+ WithCreate withEnablePurge(Boolean enablePurge);
+ }
+
+ /**
+ * The stage of the cluster definition allowing to specify EnableStreamingIngest.
+ */
+ interface WithEnableStreamingIngest {
+ /**
+ * Specifies enableStreamingIngest.
+ * @param enableStreamingIngest A boolean value that indicates if the streaming ingest is enabled
+ * @return the next definition stage
+ */
+ WithCreate withEnableStreamingIngest(Boolean enableStreamingIngest);
+ }
+
+ /**
+ * The stage of the cluster definition allowing to specify Identity.
+ */
+ interface WithIdentity {
+ /**
+ * Specifies identity.
+ * @param identity The identity of the cluster, if configured
+ * @return the next definition stage
+ */
+ WithCreate withIdentity(Identity identity);
+ }
+
+ /**
+ * The stage of the cluster definition allowing to specify KeyVaultProperties.
+ */
+ interface WithKeyVaultProperties {
+ /**
+ * Specifies keyVaultProperties.
+ * @param keyVaultProperties KeyVault properties for the cluster encryption
+ * @return the next definition stage
+ */
+ WithCreate withKeyVaultProperties(KeyVaultProperties keyVaultProperties);
+ }
+
+ /**
+ * The stage of the cluster definition allowing to specify LanguageExtensions.
+ */
+ interface WithLanguageExtensions {
+ /**
+ * Specifies languageExtensions.
+ * @param languageExtensions List of the cluster's language extensions
+ * @return the next definition stage
+ */
+ WithCreate withLanguageExtensions(LanguageExtensionsList languageExtensions);
+ }
+
+ /**
+ * The stage of the cluster definition allowing to specify OptimizedAutoscale.
+ */
+ interface WithOptimizedAutoscale {
+ /**
+ * Specifies optimizedAutoscale.
+ * @param optimizedAutoscale Optimized auto scale definition
+ * @return the next definition stage
+ */
+ WithCreate withOptimizedAutoscale(OptimizedAutoscale optimizedAutoscale);
+ }
+
+ /**
+ * The stage of the cluster definition allowing to specify TrustedExternalTenants.
+ */
+ interface WithTrustedExternalTenants {
+ /**
+ * Specifies trustedExternalTenants.
+ * @param trustedExternalTenants The cluster's external tenants
+ * @return the next definition stage
+ */
+ WithCreate withTrustedExternalTenants(List trustedExternalTenants);
+ }
+
+ /**
+ * The stage of the cluster definition allowing to specify VirtualNetworkConfiguration.
+ */
+ interface WithVirtualNetworkConfiguration {
+ /**
+ * Specifies virtualNetworkConfiguration.
+ * @param virtualNetworkConfiguration Virtual network definition
+ * @return the next definition stage
+ */
+ WithCreate withVirtualNetworkConfiguration(VirtualNetworkConfiguration virtualNetworkConfiguration);
+ }
+
+ /**
+ * The stage of the cluster definition allowing to specify Zones.
+ */
+ interface WithZones {
+ /**
+ * Specifies zones.
+ * @param zones The availability zones of the cluster
+ * @return the next definition stage
+ */
+ WithCreate withZones(List zones);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, Resource.DefinitionWithTags, DefinitionStages.WithEnableDiskEncryption, DefinitionStages.WithEnablePurge, DefinitionStages.WithEnableStreamingIngest, DefinitionStages.WithIdentity, DefinitionStages.WithKeyVaultProperties, DefinitionStages.WithLanguageExtensions, DefinitionStages.WithOptimizedAutoscale, DefinitionStages.WithTrustedExternalTenants, DefinitionStages.WithVirtualNetworkConfiguration, DefinitionStages.WithZones {
+ }
+ }
+ /**
+ * The template for a Cluster update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithEnableDiskEncryption, UpdateStages.WithEnablePurge, UpdateStages.WithEnableStreamingIngest, UpdateStages.WithIdentity, UpdateStages.WithKeyVaultProperties, UpdateStages.WithLanguageExtensions, UpdateStages.WithOptimizedAutoscale, UpdateStages.WithSku, UpdateStages.WithTrustedExternalTenants, UpdateStages.WithVirtualNetworkConfiguration {
+ }
+
+ /**
+ * Grouping of Cluster update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the cluster update allowing to specify EnableDiskEncryption.
+ */
+ interface WithEnableDiskEncryption {
+ /**
+ * Specifies enableDiskEncryption.
+ * @param enableDiskEncryption A boolean value that indicates if the cluster's disks are encrypted
+ * @return the next update stage
+ */
+ Update withEnableDiskEncryption(Boolean enableDiskEncryption);
+ }
+
+ /**
+ * The stage of the cluster update allowing to specify EnablePurge.
+ */
+ interface WithEnablePurge {
+ /**
+ * Specifies enablePurge.
+ * @param enablePurge A boolean value that indicates if the purge operations are enabled
+ * @return the next update stage
+ */
+ Update withEnablePurge(Boolean enablePurge);
+ }
+
+ /**
+ * The stage of the cluster update allowing to specify EnableStreamingIngest.
+ */
+ interface WithEnableStreamingIngest {
+ /**
+ * Specifies enableStreamingIngest.
+ * @param enableStreamingIngest A boolean value that indicates if the streaming ingest is enabled
+ * @return the next update stage
+ */
+ Update withEnableStreamingIngest(Boolean enableStreamingIngest);
+ }
+
+ /**
+ * The stage of the cluster update allowing to specify Identity.
+ */
+ interface WithIdentity {
+ /**
+ * Specifies identity.
+ * @param identity The identity of the cluster, if configured
+ * @return the next update stage
+ */
+ Update withIdentity(Identity identity);
+ }
+
+ /**
+ * The stage of the cluster update allowing to specify KeyVaultProperties.
+ */
+ interface WithKeyVaultProperties {
+ /**
+ * Specifies keyVaultProperties.
+ * @param keyVaultProperties KeyVault properties for the cluster encryption
+ * @return the next update stage
+ */
+ Update withKeyVaultProperties(KeyVaultProperties keyVaultProperties);
+ }
+
+ /**
+ * The stage of the cluster update allowing to specify LanguageExtensions.
+ */
+ interface WithLanguageExtensions {
+ /**
+ * Specifies languageExtensions.
+ * @param languageExtensions List of the cluster's language extensions
+ * @return the next update stage
+ */
+ Update withLanguageExtensions(LanguageExtensionsList languageExtensions);
+ }
+
+ /**
+ * The stage of the cluster update allowing to specify OptimizedAutoscale.
+ */
+ interface WithOptimizedAutoscale {
+ /**
+ * Specifies optimizedAutoscale.
+ * @param optimizedAutoscale Optimized auto scale definition
+ * @return the next update stage
+ */
+ Update withOptimizedAutoscale(OptimizedAutoscale optimizedAutoscale);
+ }
+
+ /**
+ * The stage of the cluster update allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ * @param sku The SKU of the cluster
+ * @return the next update stage
+ */
+ Update withSku(AzureSku sku);
+ }
+
+ /**
+ * The stage of the cluster update allowing to specify TrustedExternalTenants.
+ */
+ interface WithTrustedExternalTenants {
+ /**
+ * Specifies trustedExternalTenants.
+ * @param trustedExternalTenants The cluster's external tenants
+ * @return the next update stage
+ */
+ Update withTrustedExternalTenants(List trustedExternalTenants);
+ }
+
+ /**
+ * The stage of the cluster update allowing to specify VirtualNetworkConfiguration.
+ */
+ interface WithVirtualNetworkConfiguration {
+ /**
+ * Specifies virtualNetworkConfiguration.
+ * @param virtualNetworkConfiguration Virtual network definition
+ * @return the next update stage
+ */
+ Update withVirtualNetworkConfiguration(VirtualNetworkConfiguration virtualNetworkConfiguration);
+ }
+
+ }
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ClusterCheckNameRequest.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ClusterCheckNameRequest.java
new file mode 100644
index 000000000000..a5be600e4ea6
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ClusterCheckNameRequest.java
@@ -0,0 +1,77 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The result returned from a cluster check name availability request.
+ */
+public class ClusterCheckNameRequest {
+ /**
+ * Cluster name.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * The type of resource, Microsoft.Kusto/clusters.
+ */
+ @JsonProperty(value = "type", required = true)
+ private String type;
+
+ /**
+ * Creates an instance of ClusterCheckNameRequest class.
+ * @param name cluster name.
+ */
+ public ClusterCheckNameRequest() {
+ type = "Microsoft.Kusto/clusters";
+ }
+
+ /**
+ * Get cluster name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set cluster name.
+ *
+ * @param name the name value to set
+ * @return the ClusterCheckNameRequest object itself.
+ */
+ public ClusterCheckNameRequest withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the type of resource, Microsoft.Kusto/clusters.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type of resource, Microsoft.Kusto/clusters.
+ *
+ * @param type the type value to set
+ * @return the ClusterCheckNameRequest object itself.
+ */
+ public ClusterCheckNameRequest withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ClusterPrincipalAssignment.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ClusterPrincipalAssignment.java
new file mode 100644
index 000000000000..5a7cc91b5887
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ClusterPrincipalAssignment.java
@@ -0,0 +1,183 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.ClusterPrincipalAssignmentInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.KustoManager;
+
+/**
+ * Type representing ClusterPrincipalAssignment.
+ */
+public interface ClusterPrincipalAssignment extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the principalId value.
+ */
+ String principalId();
+
+ /**
+ * @return the principalName value.
+ */
+ String principalName();
+
+ /**
+ * @return the principalType value.
+ */
+ PrincipalType principalType();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ProvisioningState provisioningState();
+
+ /**
+ * @return the role value.
+ */
+ ClusterPrincipalRole role();
+
+ /**
+ * @return the tenantId value.
+ */
+ String tenantId();
+
+ /**
+ * @return the tenantName value.
+ */
+ String tenantName();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the ClusterPrincipalAssignment definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithCluster, DefinitionStages.WithPrincipalId, DefinitionStages.WithPrincipalType, DefinitionStages.WithRole, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ClusterPrincipalAssignment definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ClusterPrincipalAssignment definition.
+ */
+ interface Blank extends WithCluster {
+ }
+
+ /**
+ * The stage of the clusterprincipalassignment definition allowing to specify Cluster.
+ */
+ interface WithCluster {
+ /**
+ * Specifies resourceGroupName, clusterName.
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster
+ * @param clusterName The name of the Kusto cluster
+ * @return the next definition stage
+ */
+ WithPrincipalId withExistingCluster(String resourceGroupName, String clusterName);
+ }
+
+ /**
+ * The stage of the clusterprincipalassignment definition allowing to specify PrincipalId.
+ */
+ interface WithPrincipalId {
+ /**
+ * Specifies principalId.
+ * @param principalId The principal ID assigned to the cluster principal. It can be a user email, application ID, or security group name
+ * @return the next definition stage
+ */
+ WithPrincipalType withPrincipalId(String principalId);
+ }
+
+ /**
+ * The stage of the clusterprincipalassignment definition allowing to specify PrincipalType.
+ */
+ interface WithPrincipalType {
+ /**
+ * Specifies principalType.
+ * @param principalType Principal type. Possible values include: 'App', 'Group', 'User'
+ * @return the next definition stage
+ */
+ WithRole withPrincipalType(PrincipalType principalType);
+ }
+
+ /**
+ * The stage of the clusterprincipalassignment definition allowing to specify Role.
+ */
+ interface WithRole {
+ /**
+ * Specifies role.
+ * @param role Cluster principal role. Possible values include: 'AllDatabasesAdmin', 'AllDatabasesViewer'
+ * @return the next definition stage
+ */
+ WithCreate withRole(ClusterPrincipalRole role);
+ }
+
+ /**
+ * The stage of the clusterprincipalassignment definition allowing to specify TenantId.
+ */
+ interface WithTenantId {
+ /**
+ * Specifies tenantId.
+ * @param tenantId The tenant id of the principal
+ * @return the next definition stage
+ */
+ WithCreate withTenantId(String tenantId);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithTenantId {
+ }
+ }
+ /**
+ * The template for a ClusterPrincipalAssignment update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithTenantId {
+ }
+
+ /**
+ * Grouping of ClusterPrincipalAssignment update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the clusterprincipalassignment update allowing to specify TenantId.
+ */
+ interface WithTenantId {
+ /**
+ * Specifies tenantId.
+ * @param tenantId The tenant id of the principal
+ * @return the next update stage
+ */
+ Update withTenantId(String tenantId);
+ }
+
+ }
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ClusterPrincipalAssignmentCheckNameRequest.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ClusterPrincipalAssignmentCheckNameRequest.java
new file mode 100644
index 000000000000..6e1b60caa709
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ClusterPrincipalAssignmentCheckNameRequest.java
@@ -0,0 +1,77 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A principal assignment check name availability request.
+ */
+public class ClusterPrincipalAssignmentCheckNameRequest {
+ /**
+ * Principal Assignment resource name.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * The type of resource, Microsoft.Kusto/clusters/principalAssignments.
+ */
+ @JsonProperty(value = "type", required = true)
+ private String type;
+
+ /**
+ * Creates an instance of ClusterPrincipalAssignmentCheckNameRequest class.
+ * @param name principal Assignment resource name.
+ */
+ public ClusterPrincipalAssignmentCheckNameRequest() {
+ type = "Microsoft.Kusto/clusters/principalAssignments";
+ }
+
+ /**
+ * Get principal Assignment resource name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set principal Assignment resource name.
+ *
+ * @param name the name value to set
+ * @return the ClusterPrincipalAssignmentCheckNameRequest object itself.
+ */
+ public ClusterPrincipalAssignmentCheckNameRequest withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the type of resource, Microsoft.Kusto/clusters/principalAssignments.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type of resource, Microsoft.Kusto/clusters/principalAssignments.
+ *
+ * @param type the type value to set
+ * @return the ClusterPrincipalAssignmentCheckNameRequest object itself.
+ */
+ public ClusterPrincipalAssignmentCheckNameRequest withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ClusterPrincipalAssignments.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ClusterPrincipalAssignments.java
new file mode 100644
index 000000000000..b79c14882146
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ClusterPrincipalAssignments.java
@@ -0,0 +1,64 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.ClusterPrincipalAssignmentsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ClusterPrincipalAssignments.
+ */
+public interface ClusterPrincipalAssignments extends SupportsCreating, HasInner {
+ /**
+ * Gets a Kusto cluster principalAssignment.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param principalAssignmentName The name of the Kusto principalAssignment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String clusterName, String principalAssignmentName);
+
+ /**
+ * Lists all Kusto cluster principalAssignments.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(String resourceGroupName, String clusterName);
+
+ /**
+ * Deletes a Kusto cluster principalAssignment.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param principalAssignmentName The name of the Kusto principalAssignment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String clusterName, String principalAssignmentName);
+
+ /**
+ * Checks that the principal assignment name is valid and is not already in use.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param name Principal Assignment resource name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable checkNameAvailabilityAsync(String resourceGroupName, String clusterName, String name);
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ClusterPrincipalRole.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ClusterPrincipalRole.java
new file mode 100644
index 000000000000..8629e063eb27
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ClusterPrincipalRole.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ClusterPrincipalRole.
+ */
+public final class ClusterPrincipalRole extends ExpandableStringEnum {
+ /** Static value AllDatabasesAdmin for ClusterPrincipalRole. */
+ public static final ClusterPrincipalRole ALL_DATABASES_ADMIN = fromString("AllDatabasesAdmin");
+
+ /** Static value AllDatabasesViewer for ClusterPrincipalRole. */
+ public static final ClusterPrincipalRole ALL_DATABASES_VIEWER = fromString("AllDatabasesViewer");
+
+ /**
+ * Creates or finds a ClusterPrincipalRole from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ClusterPrincipalRole
+ */
+ @JsonCreator
+ public static ClusterPrincipalRole fromString(String name) {
+ return fromString(name, ClusterPrincipalRole.class);
+ }
+
+ /**
+ * @return known ClusterPrincipalRole values
+ */
+ public static Collection values() {
+ return values(ClusterPrincipalRole.class);
+ }
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ClusterUpdate.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ClusterUpdate.java
new file mode 100644
index 000000000000..c6880e897f50
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ClusterUpdate.java
@@ -0,0 +1,412 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import java.util.Map;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * Class representing an update to a Kusto cluster.
+ */
+@JsonFlatten
+public class ClusterUpdate extends ProxyResource {
+ /**
+ * Resource tags.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * Resource location.
+ */
+ @JsonProperty(value = "location")
+ private String location;
+
+ /**
+ * The SKU of the cluster.
+ */
+ @JsonProperty(value = "sku")
+ private AzureSku sku;
+
+ /**
+ * The identity of the cluster, if configured.
+ */
+ @JsonProperty(value = "identity")
+ private Identity identity;
+
+ /**
+ * The state of the resource. Possible values include: 'Creating',
+ * 'Unavailable', 'Running', 'Deleting', 'Deleted', 'Stopping', 'Stopped',
+ * 'Starting', 'Updating'.
+ */
+ @JsonProperty(value = "properties.state", access = JsonProperty.Access.WRITE_ONLY)
+ private State state;
+
+ /**
+ * The provisioned state of the resource. Possible values include:
+ * 'Running', 'Creating', 'Deleting', 'Succeeded', 'Failed', 'Moving'.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /**
+ * The cluster URI.
+ */
+ @JsonProperty(value = "properties.uri", access = JsonProperty.Access.WRITE_ONLY)
+ private String uri;
+
+ /**
+ * The cluster data ingestion URI.
+ */
+ @JsonProperty(value = "properties.dataIngestionUri", access = JsonProperty.Access.WRITE_ONLY)
+ private String dataIngestionUri;
+
+ /**
+ * The reason for the cluster's current state.
+ */
+ @JsonProperty(value = "properties.stateReason", access = JsonProperty.Access.WRITE_ONLY)
+ private String stateReason;
+
+ /**
+ * The cluster's external tenants.
+ */
+ @JsonProperty(value = "properties.trustedExternalTenants")
+ private List trustedExternalTenants;
+
+ /**
+ * Optimized auto scale definition.
+ */
+ @JsonProperty(value = "properties.optimizedAutoscale")
+ private OptimizedAutoscale optimizedAutoscale;
+
+ /**
+ * A boolean value that indicates if the cluster's disks are encrypted.
+ */
+ @JsonProperty(value = "properties.enableDiskEncryption")
+ private Boolean enableDiskEncryption;
+
+ /**
+ * A boolean value that indicates if the streaming ingest is enabled.
+ */
+ @JsonProperty(value = "properties.enableStreamingIngest")
+ private Boolean enableStreamingIngest;
+
+ /**
+ * Virtual network definition.
+ */
+ @JsonProperty(value = "properties.virtualNetworkConfiguration")
+ private VirtualNetworkConfiguration virtualNetworkConfiguration;
+
+ /**
+ * KeyVault properties for the cluster encryption.
+ */
+ @JsonProperty(value = "properties.keyVaultProperties")
+ private KeyVaultProperties keyVaultProperties;
+
+ /**
+ * A boolean value that indicates if the purge operations are enabled.
+ */
+ @JsonProperty(value = "properties.enablePurge")
+ private Boolean enablePurge;
+
+ /**
+ * List of the cluster's language extensions.
+ */
+ @JsonProperty(value = "properties.languageExtensions")
+ private LanguageExtensionsList languageExtensions;
+
+ /**
+ * Get resource tags.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set resource tags.
+ *
+ * @param tags the tags value to set
+ * @return the ClusterUpdate object itself.
+ */
+ public ClusterUpdate withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get resource location.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set resource location.
+ *
+ * @param location the location value to set
+ * @return the ClusterUpdate object itself.
+ */
+ public ClusterUpdate withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get the SKU of the cluster.
+ *
+ * @return the sku value
+ */
+ public AzureSku sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set the SKU of the cluster.
+ *
+ * @param sku the sku value to set
+ * @return the ClusterUpdate object itself.
+ */
+ public ClusterUpdate withSku(AzureSku sku) {
+ this.sku = sku;
+ return this;
+ }
+
+ /**
+ * Get the identity of the cluster, if configured.
+ *
+ * @return the identity value
+ */
+ public Identity identity() {
+ return this.identity;
+ }
+
+ /**
+ * Set the identity of the cluster, if configured.
+ *
+ * @param identity the identity value to set
+ * @return the ClusterUpdate object itself.
+ */
+ public ClusterUpdate withIdentity(Identity identity) {
+ this.identity = identity;
+ return this;
+ }
+
+ /**
+ * Get the state of the resource. Possible values include: 'Creating', 'Unavailable', 'Running', 'Deleting', 'Deleted', 'Stopping', 'Stopped', 'Starting', 'Updating'.
+ *
+ * @return the state value
+ */
+ public State state() {
+ return this.state;
+ }
+
+ /**
+ * Get the provisioned state of the resource. Possible values include: 'Running', 'Creating', 'Deleting', 'Succeeded', 'Failed', 'Moving'.
+ *
+ * @return the provisioningState value
+ */
+ public ProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the cluster URI.
+ *
+ * @return the uri value
+ */
+ public String uri() {
+ return this.uri;
+ }
+
+ /**
+ * Get the cluster data ingestion URI.
+ *
+ * @return the dataIngestionUri value
+ */
+ public String dataIngestionUri() {
+ return this.dataIngestionUri;
+ }
+
+ /**
+ * Get the reason for the cluster's current state.
+ *
+ * @return the stateReason value
+ */
+ public String stateReason() {
+ return this.stateReason;
+ }
+
+ /**
+ * Get the cluster's external tenants.
+ *
+ * @return the trustedExternalTenants value
+ */
+ public List trustedExternalTenants() {
+ return this.trustedExternalTenants;
+ }
+
+ /**
+ * Set the cluster's external tenants.
+ *
+ * @param trustedExternalTenants the trustedExternalTenants value to set
+ * @return the ClusterUpdate object itself.
+ */
+ public ClusterUpdate withTrustedExternalTenants(List trustedExternalTenants) {
+ this.trustedExternalTenants = trustedExternalTenants;
+ return this;
+ }
+
+ /**
+ * Get optimized auto scale definition.
+ *
+ * @return the optimizedAutoscale value
+ */
+ public OptimizedAutoscale optimizedAutoscale() {
+ return this.optimizedAutoscale;
+ }
+
+ /**
+ * Set optimized auto scale definition.
+ *
+ * @param optimizedAutoscale the optimizedAutoscale value to set
+ * @return the ClusterUpdate object itself.
+ */
+ public ClusterUpdate withOptimizedAutoscale(OptimizedAutoscale optimizedAutoscale) {
+ this.optimizedAutoscale = optimizedAutoscale;
+ return this;
+ }
+
+ /**
+ * Get a boolean value that indicates if the cluster's disks are encrypted.
+ *
+ * @return the enableDiskEncryption value
+ */
+ public Boolean enableDiskEncryption() {
+ return this.enableDiskEncryption;
+ }
+
+ /**
+ * Set a boolean value that indicates if the cluster's disks are encrypted.
+ *
+ * @param enableDiskEncryption the enableDiskEncryption value to set
+ * @return the ClusterUpdate object itself.
+ */
+ public ClusterUpdate withEnableDiskEncryption(Boolean enableDiskEncryption) {
+ this.enableDiskEncryption = enableDiskEncryption;
+ return this;
+ }
+
+ /**
+ * Get a boolean value that indicates if the streaming ingest is enabled.
+ *
+ * @return the enableStreamingIngest value
+ */
+ public Boolean enableStreamingIngest() {
+ return this.enableStreamingIngest;
+ }
+
+ /**
+ * Set a boolean value that indicates if the streaming ingest is enabled.
+ *
+ * @param enableStreamingIngest the enableStreamingIngest value to set
+ * @return the ClusterUpdate object itself.
+ */
+ public ClusterUpdate withEnableStreamingIngest(Boolean enableStreamingIngest) {
+ this.enableStreamingIngest = enableStreamingIngest;
+ return this;
+ }
+
+ /**
+ * Get virtual network definition.
+ *
+ * @return the virtualNetworkConfiguration value
+ */
+ public VirtualNetworkConfiguration virtualNetworkConfiguration() {
+ return this.virtualNetworkConfiguration;
+ }
+
+ /**
+ * Set virtual network definition.
+ *
+ * @param virtualNetworkConfiguration the virtualNetworkConfiguration value to set
+ * @return the ClusterUpdate object itself.
+ */
+ public ClusterUpdate withVirtualNetworkConfiguration(VirtualNetworkConfiguration virtualNetworkConfiguration) {
+ this.virtualNetworkConfiguration = virtualNetworkConfiguration;
+ return this;
+ }
+
+ /**
+ * Get keyVault properties for the cluster encryption.
+ *
+ * @return the keyVaultProperties value
+ */
+ public KeyVaultProperties keyVaultProperties() {
+ return this.keyVaultProperties;
+ }
+
+ /**
+ * Set keyVault properties for the cluster encryption.
+ *
+ * @param keyVaultProperties the keyVaultProperties value to set
+ * @return the ClusterUpdate object itself.
+ */
+ public ClusterUpdate withKeyVaultProperties(KeyVaultProperties keyVaultProperties) {
+ this.keyVaultProperties = keyVaultProperties;
+ return this;
+ }
+
+ /**
+ * Get a boolean value that indicates if the purge operations are enabled.
+ *
+ * @return the enablePurge value
+ */
+ public Boolean enablePurge() {
+ return this.enablePurge;
+ }
+
+ /**
+ * Set a boolean value that indicates if the purge operations are enabled.
+ *
+ * @param enablePurge the enablePurge value to set
+ * @return the ClusterUpdate object itself.
+ */
+ public ClusterUpdate withEnablePurge(Boolean enablePurge) {
+ this.enablePurge = enablePurge;
+ return this;
+ }
+
+ /**
+ * Get list of the cluster's language extensions.
+ *
+ * @return the languageExtensions value
+ */
+ public LanguageExtensionsList languageExtensions() {
+ return this.languageExtensions;
+ }
+
+ /**
+ * Set list of the cluster's language extensions.
+ *
+ * @param languageExtensions the languageExtensions value to set
+ * @return the ClusterUpdate object itself.
+ */
+ public ClusterUpdate withLanguageExtensions(LanguageExtensionsList languageExtensions) {
+ this.languageExtensions = languageExtensions;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Clusters.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Clusters.java
new file mode 100644
index 000000000000..e7c8dcff51fa
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Clusters.java
@@ -0,0 +1,137 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import com.microsoft.azure.arm.resources.collection.SupportsDeletingByResourceGroup;
+import com.microsoft.azure.arm.resources.collection.SupportsBatchDeletion;
+import com.microsoft.azure.arm.resources.collection.SupportsGettingByResourceGroup;
+import rx.Observable;
+import com.microsoft.azure.arm.resources.collection.SupportsListingByResourceGroup;
+import com.microsoft.azure.arm.collection.SupportsListing;
+import rx.Completable;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.FollowerDatabaseDefinitionInner;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.ClustersInner;
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.kusto.v2020_02_15.AzureResourceSku;
+
+/**
+ * Type representing Clusters.
+ */
+public interface Clusters extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+ /**
+ * Stops a Kusto cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable stopAsync(String resourceGroupName, String clusterName);
+
+ /**
+ * Starts a Kusto cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable startAsync(String resourceGroupName, String clusterName);
+
+ /**
+ * Returns a list of databases that are owned by this cluster and were followed by another cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listFollowerDatabasesAsync(String resourceGroupName, String clusterName);
+
+ /**
+ * Detaches all followers of a database owned by this cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param followerDatabaseToRemove The follower databases properties to remove.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable detachFollowerDatabasesAsync(String resourceGroupName, String clusterName, FollowerDatabaseDefinitionInner followerDatabaseToRemove);
+
+ /**
+ * Diagnoses network connectivity status for external resources on which the service is dependent on.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable diagnoseVirtualNetworkAsync(String resourceGroupName, String clusterName);
+
+ /**
+ * Returns a list of language extensions that can run within KQL queries.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listLanguageExtensionsAsync(String resourceGroupName, String clusterName);
+
+ /**
+ * Add a list of language extensions that can run within KQL queries.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable addLanguageExtensionsAsync(String resourceGroupName, String clusterName);
+
+ /**
+ * Remove a list of language extensions that can run within KQL queries.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable removeLanguageExtensionsAsync(String resourceGroupName, String clusterName);
+
+ /**
+ * Checks that the cluster name is valid and is not already in use.
+ *
+ * @param location Azure location.
+ * @param name Cluster name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable checkNameAvailabilityAsync(String location, String name);
+
+ /**
+ * Returns the SKUs available for the provided resource.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listSkusByResourceAsync(String resourceGroupName, String clusterName);
+
+ /**
+ * Lists eligible SKUs for Kusto resource provider.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listSkusAsync();
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Compression.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Compression.java
new file mode 100644
index 000000000000..ffd6443ca7ad
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Compression.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for Compression.
+ */
+public final class Compression extends ExpandableStringEnum {
+ /** Static value None for Compression. */
+ public static final Compression NONE = fromString("None");
+
+ /** Static value GZip for Compression. */
+ public static final Compression GZIP = fromString("GZip");
+
+ /**
+ * Creates or finds a Compression from its string representation.
+ * @param name a name to look for
+ * @return the corresponding Compression
+ */
+ @JsonCreator
+ public static Compression fromString(String name) {
+ return fromString(name, Compression.class);
+ }
+
+ /**
+ * @return known Compression values
+ */
+ public static Collection values() {
+ return values(Compression.class);
+ }
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DataConnection.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DataConnection.java
new file mode 100644
index 000000000000..008ff5e3daa1
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DataConnection.java
@@ -0,0 +1,118 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.DataConnectionInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.KustoManager;
+
+/**
+ * Type representing DataConnection.
+ */
+public interface DataConnection extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the DataConnection definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDatabasis, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of DataConnection definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a DataConnection definition.
+ */
+ interface Blank extends WithDatabasis {
+ }
+
+ /**
+ * The stage of the dataconnection definition allowing to specify Databasis.
+ */
+ interface WithDatabasis {
+ /**
+ * Specifies resourceGroupName, clusterName, databaseName.
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster
+ * @param clusterName The name of the Kusto cluster
+ * @param databaseName The name of the database in the Kusto cluster
+ * @return the next definition stage
+ */
+ WithCreate withExistingDatabasis(String resourceGroupName, String clusterName, String databaseName);
+ }
+
+ /**
+ * The stage of the dataconnection definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location Resource location
+ * @return the next definition stage
+ */
+ WithCreate withLocation(String location);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithLocation {
+ }
+ }
+ /**
+ * The template for a DataConnection update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithLocation {
+ }
+
+ /**
+ * Grouping of DataConnection update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the dataconnection update allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location Resource location
+ * @return the next update stage
+ */
+ Update withLocation(String location);
+ }
+
+ }
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DataConnectionCheckNameRequest.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DataConnectionCheckNameRequest.java
new file mode 100644
index 000000000000..be2c33e30550
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DataConnectionCheckNameRequest.java
@@ -0,0 +1,78 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A data connection check name availability request.
+ */
+public class DataConnectionCheckNameRequest {
+ /**
+ * Data Connection name.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * The type of resource,
+ * Microsoft.Kusto/clusters/databases/dataConnections.
+ */
+ @JsonProperty(value = "type", required = true)
+ private String type;
+
+ /**
+ * Creates an instance of DataConnectionCheckNameRequest class.
+ * @param name data Connection name.
+ */
+ public DataConnectionCheckNameRequest() {
+ type = "Microsoft.Kusto/clusters/databases/dataConnections";
+ }
+
+ /**
+ * Get data Connection name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set data Connection name.
+ *
+ * @param name the name value to set
+ * @return the DataConnectionCheckNameRequest object itself.
+ */
+ public DataConnectionCheckNameRequest withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the type of resource, Microsoft.Kusto/clusters/databases/dataConnections.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type of resource, Microsoft.Kusto/clusters/databases/dataConnections.
+ *
+ * @param type the type value to set
+ * @return the DataConnectionCheckNameRequest object itself.
+ */
+ public DataConnectionCheckNameRequest withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DataConnectionValidation.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DataConnectionValidation.java
new file mode 100644
index 000000000000..3bbbcd26c0dd
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DataConnectionValidation.java
@@ -0,0 +1,70 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.DataConnectionInner;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Class representing an data connection validation.
+ */
+public class DataConnectionValidation {
+ /**
+ * The name of the data connection.
+ */
+ @JsonProperty(value = "dataConnectionName")
+ private String dataConnectionName;
+
+ /**
+ * The data connection properties to validate.
+ */
+ @JsonProperty(value = "properties")
+ private DataConnectionInner properties;
+
+ /**
+ * Get the name of the data connection.
+ *
+ * @return the dataConnectionName value
+ */
+ public String dataConnectionName() {
+ return this.dataConnectionName;
+ }
+
+ /**
+ * Set the name of the data connection.
+ *
+ * @param dataConnectionName the dataConnectionName value to set
+ * @return the DataConnectionValidation object itself.
+ */
+ public DataConnectionValidation withDataConnectionName(String dataConnectionName) {
+ this.dataConnectionName = dataConnectionName;
+ return this;
+ }
+
+ /**
+ * Get the data connection properties to validate.
+ *
+ * @return the properties value
+ */
+ public DataConnectionInner properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set the data connection properties to validate.
+ *
+ * @param properties the properties value to set
+ * @return the DataConnectionValidation object itself.
+ */
+ public DataConnectionValidation withProperties(DataConnectionInner properties) {
+ this.properties = properties;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DataConnectionValidationListResult.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DataConnectionValidationListResult.java
new file mode 100644
index 000000000000..98df890c0e3e
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DataConnectionValidationListResult.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.KustoManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.DataConnectionValidationListResultInner;
+import java.util.List;
+
+/**
+ * Type representing DataConnectionValidationListResult.
+ */
+public interface DataConnectionValidationListResult extends HasInner, HasManager {
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DataConnectionValidationResult.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DataConnectionValidationResult.java
new file mode 100644
index 000000000000..77848f45d8a4
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DataConnectionValidationResult.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The result returned from a data connection validation request.
+ */
+public class DataConnectionValidationResult {
+ /**
+ * A message which indicates a problem in data connection validation.
+ */
+ @JsonProperty(value = "errorMessage")
+ private String errorMessage;
+
+ /**
+ * Get a message which indicates a problem in data connection validation.
+ *
+ * @return the errorMessage value
+ */
+ public String errorMessage() {
+ return this.errorMessage;
+ }
+
+ /**
+ * Set a message which indicates a problem in data connection validation.
+ *
+ * @param errorMessage the errorMessage value to set
+ * @return the DataConnectionValidationResult object itself.
+ */
+ public DataConnectionValidationResult withErrorMessage(String errorMessage) {
+ this.errorMessage = errorMessage;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DataConnections.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DataConnections.java
new file mode 100644
index 000000000000..5ad29660f230
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DataConnections.java
@@ -0,0 +1,80 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.DataConnectionsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing DataConnections.
+ */
+public interface DataConnections extends SupportsCreating, HasInner {
+ /**
+ * Returns a data connection.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param databaseName The name of the database in the Kusto cluster.
+ * @param dataConnectionName The name of the data connection.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String clusterName, String databaseName, String dataConnectionName);
+
+ /**
+ * Returns the list of data connections of the given Kusto database.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param databaseName The name of the database in the Kusto cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByDatabaseAsync(String resourceGroupName, String clusterName, String databaseName);
+
+ /**
+ * Deletes the data connection with the given name.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param databaseName The name of the database in the Kusto cluster.
+ * @param dataConnectionName The name of the data connection.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String clusterName, String databaseName, String dataConnectionName);
+
+ /**
+ * Checks that the data connection parameters are valid.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param databaseName The name of the database in the Kusto cluster.
+ * @param parameters The data connection parameters supplied to the CreateOrUpdate operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable dataConnectionValidationMethodAsync(String resourceGroupName, String clusterName, String databaseName, DataConnectionValidation parameters);
+
+ /**
+ * Checks that the data connection name is valid and is not already in use.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param databaseName The name of the database in the Kusto cluster.
+ * @param name Data Connection name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable checkNameAvailabilityAsync(String resourceGroupName, String clusterName, String databaseName, String name);
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Database.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Database.java
new file mode 100644
index 000000000000..9eb3ebc3a831
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Database.java
@@ -0,0 +1,117 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.DatabaseInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.KustoManager;
+
+/**
+ * Type representing Database.
+ */
+public interface Database extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the Database definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithCluster, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Database definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Database definition.
+ */
+ interface Blank extends WithCluster {
+ }
+
+ /**
+ * The stage of the database definition allowing to specify Cluster.
+ */
+ interface WithCluster {
+ /**
+ * Specifies resourceGroupName, clusterName.
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster
+ * @param clusterName The name of the Kusto cluster
+ * @return the next definition stage
+ */
+ WithCreate withExistingCluster(String resourceGroupName, String clusterName);
+ }
+
+ /**
+ * The stage of the database definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location Resource location
+ * @return the next definition stage
+ */
+ WithCreate withLocation(String location);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithLocation {
+ }
+ }
+ /**
+ * The template for a Database update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithLocation {
+ }
+
+ /**
+ * Grouping of Database update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the database update allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location Resource location
+ * @return the next update stage
+ */
+ Update withLocation(String location);
+ }
+
+ }
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabasePrincipal.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabasePrincipal.java
new file mode 100644
index 000000000000..0b8ba69b1d9e
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabasePrincipal.java
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.KustoManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.DatabasePrincipalInner;
+
+/**
+ * Type representing DatabasePrincipal.
+ */
+public interface DatabasePrincipal extends HasInner, HasManager {
+ /**
+ * @return the appId value.
+ */
+ String appId();
+
+ /**
+ * @return the email value.
+ */
+ String email();
+
+ /**
+ * @return the fqn value.
+ */
+ String fqn();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the role value.
+ */
+ DatabasePrincipalRole role();
+
+ /**
+ * @return the tenantName value.
+ */
+ String tenantName();
+
+ /**
+ * @return the type value.
+ */
+ DatabasePrincipalType type();
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabasePrincipalAssignment.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabasePrincipalAssignment.java
new file mode 100644
index 000000000000..66af36453f0d
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabasePrincipalAssignment.java
@@ -0,0 +1,184 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.DatabasePrincipalAssignmentInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.KustoManager;
+
+/**
+ * Type representing DatabasePrincipalAssignment.
+ */
+public interface DatabasePrincipalAssignment extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the principalId value.
+ */
+ String principalId();
+
+ /**
+ * @return the principalName value.
+ */
+ String principalName();
+
+ /**
+ * @return the principalType value.
+ */
+ PrincipalType principalType();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ProvisioningState provisioningState();
+
+ /**
+ * @return the role value.
+ */
+ DatabasePrincipalRole role();
+
+ /**
+ * @return the tenantId value.
+ */
+ String tenantId();
+
+ /**
+ * @return the tenantName value.
+ */
+ String tenantName();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the DatabasePrincipalAssignment definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDatabasis, DefinitionStages.WithPrincipalId, DefinitionStages.WithPrincipalType, DefinitionStages.WithRole, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of DatabasePrincipalAssignment definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a DatabasePrincipalAssignment definition.
+ */
+ interface Blank extends WithDatabasis {
+ }
+
+ /**
+ * The stage of the databaseprincipalassignment definition allowing to specify Databasis.
+ */
+ interface WithDatabasis {
+ /**
+ * Specifies resourceGroupName, clusterName, databaseName.
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster
+ * @param clusterName The name of the Kusto cluster
+ * @param databaseName The name of the database in the Kusto cluster
+ * @return the next definition stage
+ */
+ WithPrincipalId withExistingDatabasis(String resourceGroupName, String clusterName, String databaseName);
+ }
+
+ /**
+ * The stage of the databaseprincipalassignment definition allowing to specify PrincipalId.
+ */
+ interface WithPrincipalId {
+ /**
+ * Specifies principalId.
+ * @param principalId The principal ID assigned to the database principal. It can be a user email, application ID, or security group name
+ * @return the next definition stage
+ */
+ WithPrincipalType withPrincipalId(String principalId);
+ }
+
+ /**
+ * The stage of the databaseprincipalassignment definition allowing to specify PrincipalType.
+ */
+ interface WithPrincipalType {
+ /**
+ * Specifies principalType.
+ * @param principalType Principal type. Possible values include: 'App', 'Group', 'User'
+ * @return the next definition stage
+ */
+ WithRole withPrincipalType(PrincipalType principalType);
+ }
+
+ /**
+ * The stage of the databaseprincipalassignment definition allowing to specify Role.
+ */
+ interface WithRole {
+ /**
+ * Specifies role.
+ * @param role Database principal role. Possible values include: 'Admin', 'Ingestor', 'Monitor', 'User', 'UnrestrictedViewers', 'Viewer'
+ * @return the next definition stage
+ */
+ WithCreate withRole(DatabasePrincipalRole role);
+ }
+
+ /**
+ * The stage of the databaseprincipalassignment definition allowing to specify TenantId.
+ */
+ interface WithTenantId {
+ /**
+ * Specifies tenantId.
+ * @param tenantId The tenant id of the principal
+ * @return the next definition stage
+ */
+ WithCreate withTenantId(String tenantId);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithTenantId {
+ }
+ }
+ /**
+ * The template for a DatabasePrincipalAssignment update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithTenantId {
+ }
+
+ /**
+ * Grouping of DatabasePrincipalAssignment update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the databaseprincipalassignment update allowing to specify TenantId.
+ */
+ interface WithTenantId {
+ /**
+ * Specifies tenantId.
+ * @param tenantId The tenant id of the principal
+ * @return the next update stage
+ */
+ Update withTenantId(String tenantId);
+ }
+
+ }
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabasePrincipalAssignmentCheckNameRequest.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabasePrincipalAssignmentCheckNameRequest.java
new file mode 100644
index 000000000000..973e5d611526
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabasePrincipalAssignmentCheckNameRequest.java
@@ -0,0 +1,78 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A principal assignment check name availability request.
+ */
+public class DatabasePrincipalAssignmentCheckNameRequest {
+ /**
+ * Principal Assignment resource name.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * The type of resource,
+ * Microsoft.Kusto/clusters/databases/principalAssignments.
+ */
+ @JsonProperty(value = "type", required = true)
+ private String type;
+
+ /**
+ * Creates an instance of DatabasePrincipalAssignmentCheckNameRequest class.
+ * @param name principal Assignment resource name.
+ */
+ public DatabasePrincipalAssignmentCheckNameRequest() {
+ type = "Microsoft.Kusto/clusters/databases/principalAssignments";
+ }
+
+ /**
+ * Get principal Assignment resource name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set principal Assignment resource name.
+ *
+ * @param name the name value to set
+ * @return the DatabasePrincipalAssignmentCheckNameRequest object itself.
+ */
+ public DatabasePrincipalAssignmentCheckNameRequest withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the type of resource, Microsoft.Kusto/clusters/databases/principalAssignments.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type of resource, Microsoft.Kusto/clusters/databases/principalAssignments.
+ *
+ * @param type the type value to set
+ * @return the DatabasePrincipalAssignmentCheckNameRequest object itself.
+ */
+ public DatabasePrincipalAssignmentCheckNameRequest withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabasePrincipalAssignments.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabasePrincipalAssignments.java
new file mode 100644
index 000000000000..02f07b4cb841
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabasePrincipalAssignments.java
@@ -0,0 +1,68 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.DatabasePrincipalAssignmentsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing DatabasePrincipalAssignments.
+ */
+public interface DatabasePrincipalAssignments extends SupportsCreating, HasInner {
+ /**
+ * Gets a Kusto cluster database principalAssignment.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param databaseName The name of the database in the Kusto cluster.
+ * @param principalAssignmentName The name of the Kusto principalAssignment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String clusterName, String databaseName, String principalAssignmentName);
+
+ /**
+ * Lists all Kusto cluster database principalAssignments.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param databaseName The name of the database in the Kusto cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(String resourceGroupName, String clusterName, String databaseName);
+
+ /**
+ * Deletes a Kusto principalAssignment.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param databaseName The name of the database in the Kusto cluster.
+ * @param principalAssignmentName The name of the Kusto principalAssignment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String clusterName, String databaseName, String principalAssignmentName);
+
+ /**
+ * Checks that the database principal assignment is valid and is not already in use.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param databaseName The name of the database in the Kusto cluster.
+ * @param name Principal Assignment resource name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable checkNameAvailabilityAsync(String resourceGroupName, String clusterName, String databaseName, String name);
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabasePrincipalListRequest.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabasePrincipalListRequest.java
new file mode 100644
index 000000000000..ba12aed5aaa3
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabasePrincipalListRequest.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import java.util.List;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.DatabasePrincipalInner;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The list Kusto database principals operation request.
+ */
+public class DatabasePrincipalListRequest {
+ /**
+ * The list of Kusto database principals.
+ */
+ @JsonProperty(value = "value")
+ private List value;
+
+ /**
+ * Get the list of Kusto database principals.
+ *
+ * @return the value value
+ */
+ public List value() {
+ return this.value;
+ }
+
+ /**
+ * Set the list of Kusto database principals.
+ *
+ * @param value the value value to set
+ * @return the DatabasePrincipalListRequest object itself.
+ */
+ public DatabasePrincipalListRequest withValue(List value) {
+ this.value = value;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabasePrincipalListResult.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabasePrincipalListResult.java
new file mode 100644
index 000000000000..1b2a072450f0
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabasePrincipalListResult.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.KustoManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.DatabasePrincipalListResultInner;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.DatabasePrincipalInner;
+import java.util.List;
+
+/**
+ * Type representing DatabasePrincipalListResult.
+ */
+public interface DatabasePrincipalListResult extends HasInner, HasManager {
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabasePrincipalRole.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabasePrincipalRole.java
new file mode 100644
index 000000000000..62e4aefd02bb
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabasePrincipalRole.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DatabasePrincipalRole.
+ */
+public final class DatabasePrincipalRole extends ExpandableStringEnum {
+ /** Static value Admin for DatabasePrincipalRole. */
+ public static final DatabasePrincipalRole ADMIN = fromString("Admin");
+
+ /** Static value Ingestor for DatabasePrincipalRole. */
+ public static final DatabasePrincipalRole INGESTOR = fromString("Ingestor");
+
+ /** Static value Monitor for DatabasePrincipalRole. */
+ public static final DatabasePrincipalRole MONITOR = fromString("Monitor");
+
+ /** Static value User for DatabasePrincipalRole. */
+ public static final DatabasePrincipalRole USER = fromString("User");
+
+ /** Static value UnrestrictedViewers for DatabasePrincipalRole. */
+ public static final DatabasePrincipalRole UNRESTRICTED_VIEWERS = fromString("UnrestrictedViewers");
+
+ /** Static value Viewer for DatabasePrincipalRole. */
+ public static final DatabasePrincipalRole VIEWER = fromString("Viewer");
+
+ /**
+ * Creates or finds a DatabasePrincipalRole from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DatabasePrincipalRole
+ */
+ @JsonCreator
+ public static DatabasePrincipalRole fromString(String name) {
+ return fromString(name, DatabasePrincipalRole.class);
+ }
+
+ /**
+ * @return known DatabasePrincipalRole values
+ */
+ public static Collection values() {
+ return values(DatabasePrincipalRole.class);
+ }
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabasePrincipalType.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabasePrincipalType.java
new file mode 100644
index 000000000000..8799a10ba0f3
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabasePrincipalType.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DatabasePrincipalType.
+ */
+public final class DatabasePrincipalType extends ExpandableStringEnum {
+ /** Static value App for DatabasePrincipalType. */
+ public static final DatabasePrincipalType APP = fromString("App");
+
+ /** Static value Group for DatabasePrincipalType. */
+ public static final DatabasePrincipalType GROUP = fromString("Group");
+
+ /** Static value User for DatabasePrincipalType. */
+ public static final DatabasePrincipalType USER = fromString("User");
+
+ /**
+ * Creates or finds a DatabasePrincipalType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DatabasePrincipalType
+ */
+ @JsonCreator
+ public static DatabasePrincipalType fromString(String name) {
+ return fromString(name, DatabasePrincipalType.class);
+ }
+
+ /**
+ * @return known DatabasePrincipalType values
+ */
+ public static Collection values() {
+ return values(DatabasePrincipalType.class);
+ }
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabaseStatistics.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabaseStatistics.java
new file mode 100644
index 000000000000..cec3718cb2c5
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DatabaseStatistics.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A class that contains database statistics information.
+ */
+public class DatabaseStatistics {
+ /**
+ * The database size - the total size of compressed data and index in
+ * bytes.
+ */
+ @JsonProperty(value = "size")
+ private Double size;
+
+ /**
+ * Get the database size - the total size of compressed data and index in bytes.
+ *
+ * @return the size value
+ */
+ public Double size() {
+ return this.size;
+ }
+
+ /**
+ * Set the database size - the total size of compressed data and index in bytes.
+ *
+ * @param size the size value to set
+ * @return the DatabaseStatistics object itself.
+ */
+ public DatabaseStatistics withSize(Double size) {
+ this.size = size;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Databases.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Databases.java
new file mode 100644
index 000000000000..0854e119cd30
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Databases.java
@@ -0,0 +1,97 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.DatabasesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Databases.
+ */
+public interface Databases extends SupportsCreating, HasInner {
+ /**
+ * Returns a list of database principals of the given Kusto cluster and database.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param databaseName The name of the database in the Kusto cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listPrincipalsAsync(String resourceGroupName, String clusterName, String databaseName);
+
+ /**
+ * Add Database principals permissions.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param databaseName The name of the database in the Kusto cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable addPrincipalsAsync(String resourceGroupName, String clusterName, String databaseName);
+
+ /**
+ * Remove Database principals permissions.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param databaseName The name of the database in the Kusto cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable removePrincipalsAsync(String resourceGroupName, String clusterName, String databaseName);
+
+ /**
+ * Returns a database.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param databaseName The name of the database in the Kusto cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String clusterName, String databaseName);
+
+ /**
+ * Returns the list of databases of the given Kusto cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByClusterAsync(String resourceGroupName, String clusterName);
+
+ /**
+ * Deletes the database with the given name.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param databaseName The name of the database in the Kusto cluster.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String clusterName, String databaseName);
+
+ /**
+ * Checks that the database name is valid and is not already in use.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param resourceName The name of the resource.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable checkNameAvailabilityAsync(String resourceGroupName, String clusterName, CheckNameRequest resourceName);
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DefaultPrincipalsModificationKind.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DefaultPrincipalsModificationKind.java
new file mode 100644
index 000000000000..d6ad40ab9a1f
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DefaultPrincipalsModificationKind.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DefaultPrincipalsModificationKind.
+ */
+public final class DefaultPrincipalsModificationKind extends ExpandableStringEnum {
+ /** Static value Union for DefaultPrincipalsModificationKind. */
+ public static final DefaultPrincipalsModificationKind UNION = fromString("Union");
+
+ /** Static value Replace for DefaultPrincipalsModificationKind. */
+ public static final DefaultPrincipalsModificationKind REPLACE = fromString("Replace");
+
+ /** Static value None for DefaultPrincipalsModificationKind. */
+ public static final DefaultPrincipalsModificationKind NONE = fromString("None");
+
+ /**
+ * Creates or finds a DefaultPrincipalsModificationKind from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DefaultPrincipalsModificationKind
+ */
+ @JsonCreator
+ public static DefaultPrincipalsModificationKind fromString(String name) {
+ return fromString(name, DefaultPrincipalsModificationKind.class);
+ }
+
+ /**
+ * @return known DefaultPrincipalsModificationKind values
+ */
+ public static Collection values() {
+ return values(DefaultPrincipalsModificationKind.class);
+ }
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DiagnoseVirtualNetworkResult.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DiagnoseVirtualNetworkResult.java
new file mode 100644
index 000000000000..8e7f1a39cb62
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/DiagnoseVirtualNetworkResult.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.KustoManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.DiagnoseVirtualNetworkResultInner;
+import java.util.List;
+
+/**
+ * Type representing DiagnoseVirtualNetworkResult.
+ */
+public interface DiagnoseVirtualNetworkResult extends HasInner, HasManager {
+ /**
+ * @return the findings value.
+ */
+ List findings();
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/EventGridDataConnection.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/EventGridDataConnection.java
new file mode 100644
index 000000000000..3586cefd251d
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/EventGridDataConnection.java
@@ -0,0 +1,185 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.DataConnectionInner;
+
+/**
+ * Class representing an Event Grid data connection.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "kind", defaultImpl = EventGridDataConnection.class)
+@JsonTypeName("EventGrid")
+@JsonFlatten
+public class EventGridDataConnection extends DataConnectionInner {
+ /**
+ * The resource ID of the storage account where the data resides.
+ */
+ @JsonProperty(value = "properties.storageAccountResourceId", required = true)
+ private String storageAccountResourceId;
+
+ /**
+ * The resource ID where the event grid is configured to send events.
+ */
+ @JsonProperty(value = "properties.eventHubResourceId", required = true)
+ private String eventHubResourceId;
+
+ /**
+ * The event hub consumer group.
+ */
+ @JsonProperty(value = "properties.consumerGroup", required = true)
+ private String consumerGroup;
+
+ /**
+ * The table where the data should be ingested. Optionally the table
+ * information can be added to each message.
+ */
+ @JsonProperty(value = "properties.tableName", required = true)
+ private String tableName;
+
+ /**
+ * The mapping rule to be used to ingest the data. Optionally the mapping
+ * information can be added to each message.
+ */
+ @JsonProperty(value = "properties.mappingRuleName")
+ private String mappingRuleName;
+
+ /**
+ * The data format of the message. Optionally the data format can be added
+ * to each message. Possible values include: 'MULTIJSON', 'JSON', 'CSV',
+ * 'TSV', 'SCSV', 'SOHSV', 'PSV', 'TXT', 'RAW', 'SINGLEJSON', 'AVRO',
+ * 'TSVE', 'PARQUET', 'ORC'.
+ */
+ @JsonProperty(value = "properties.dataFormat", required = true)
+ private EventGridDataFormat dataFormat;
+
+ /**
+ * Get the resource ID of the storage account where the data resides.
+ *
+ * @return the storageAccountResourceId value
+ */
+ public String storageAccountResourceId() {
+ return this.storageAccountResourceId;
+ }
+
+ /**
+ * Set the resource ID of the storage account where the data resides.
+ *
+ * @param storageAccountResourceId the storageAccountResourceId value to set
+ * @return the EventGridDataConnection object itself.
+ */
+ public EventGridDataConnection withStorageAccountResourceId(String storageAccountResourceId) {
+ this.storageAccountResourceId = storageAccountResourceId;
+ return this;
+ }
+
+ /**
+ * Get the resource ID where the event grid is configured to send events.
+ *
+ * @return the eventHubResourceId value
+ */
+ public String eventHubResourceId() {
+ return this.eventHubResourceId;
+ }
+
+ /**
+ * Set the resource ID where the event grid is configured to send events.
+ *
+ * @param eventHubResourceId the eventHubResourceId value to set
+ * @return the EventGridDataConnection object itself.
+ */
+ public EventGridDataConnection withEventHubResourceId(String eventHubResourceId) {
+ this.eventHubResourceId = eventHubResourceId;
+ return this;
+ }
+
+ /**
+ * Get the event hub consumer group.
+ *
+ * @return the consumerGroup value
+ */
+ public String consumerGroup() {
+ return this.consumerGroup;
+ }
+
+ /**
+ * Set the event hub consumer group.
+ *
+ * @param consumerGroup the consumerGroup value to set
+ * @return the EventGridDataConnection object itself.
+ */
+ public EventGridDataConnection withConsumerGroup(String consumerGroup) {
+ this.consumerGroup = consumerGroup;
+ return this;
+ }
+
+ /**
+ * Get the table where the data should be ingested. Optionally the table information can be added to each message.
+ *
+ * @return the tableName value
+ */
+ public String tableName() {
+ return this.tableName;
+ }
+
+ /**
+ * Set the table where the data should be ingested. Optionally the table information can be added to each message.
+ *
+ * @param tableName the tableName value to set
+ * @return the EventGridDataConnection object itself.
+ */
+ public EventGridDataConnection withTableName(String tableName) {
+ this.tableName = tableName;
+ return this;
+ }
+
+ /**
+ * Get the mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message.
+ *
+ * @return the mappingRuleName value
+ */
+ public String mappingRuleName() {
+ return this.mappingRuleName;
+ }
+
+ /**
+ * Set the mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message.
+ *
+ * @param mappingRuleName the mappingRuleName value to set
+ * @return the EventGridDataConnection object itself.
+ */
+ public EventGridDataConnection withMappingRuleName(String mappingRuleName) {
+ this.mappingRuleName = mappingRuleName;
+ return this;
+ }
+
+ /**
+ * Get the data format of the message. Optionally the data format can be added to each message. Possible values include: 'MULTIJSON', 'JSON', 'CSV', 'TSV', 'SCSV', 'SOHSV', 'PSV', 'TXT', 'RAW', 'SINGLEJSON', 'AVRO', 'TSVE', 'PARQUET', 'ORC'.
+ *
+ * @return the dataFormat value
+ */
+ public EventGridDataFormat dataFormat() {
+ return this.dataFormat;
+ }
+
+ /**
+ * Set the data format of the message. Optionally the data format can be added to each message. Possible values include: 'MULTIJSON', 'JSON', 'CSV', 'TSV', 'SCSV', 'SOHSV', 'PSV', 'TXT', 'RAW', 'SINGLEJSON', 'AVRO', 'TSVE', 'PARQUET', 'ORC'.
+ *
+ * @param dataFormat the dataFormat value to set
+ * @return the EventGridDataConnection object itself.
+ */
+ public EventGridDataConnection withDataFormat(EventGridDataFormat dataFormat) {
+ this.dataFormat = dataFormat;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/EventGridDataFormat.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/EventGridDataFormat.java
new file mode 100644
index 000000000000..77a06e72cf74
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/EventGridDataFormat.java
@@ -0,0 +1,77 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for EventGridDataFormat.
+ */
+public final class EventGridDataFormat extends ExpandableStringEnum {
+ /** Static value MULTIJSON for EventGridDataFormat. */
+ public static final EventGridDataFormat MULTIJSON = fromString("MULTIJSON");
+
+ /** Static value JSON for EventGridDataFormat. */
+ public static final EventGridDataFormat JSON = fromString("JSON");
+
+ /** Static value CSV for EventGridDataFormat. */
+ public static final EventGridDataFormat CSV = fromString("CSV");
+
+ /** Static value TSV for EventGridDataFormat. */
+ public static final EventGridDataFormat TSV = fromString("TSV");
+
+ /** Static value SCSV for EventGridDataFormat. */
+ public static final EventGridDataFormat SCSV = fromString("SCSV");
+
+ /** Static value SOHSV for EventGridDataFormat. */
+ public static final EventGridDataFormat SOHSV = fromString("SOHSV");
+
+ /** Static value PSV for EventGridDataFormat. */
+ public static final EventGridDataFormat PSV = fromString("PSV");
+
+ /** Static value TXT for EventGridDataFormat. */
+ public static final EventGridDataFormat TXT = fromString("TXT");
+
+ /** Static value RAW for EventGridDataFormat. */
+ public static final EventGridDataFormat RAW = fromString("RAW");
+
+ /** Static value SINGLEJSON for EventGridDataFormat. */
+ public static final EventGridDataFormat SINGLEJSON = fromString("SINGLEJSON");
+
+ /** Static value AVRO for EventGridDataFormat. */
+ public static final EventGridDataFormat AVRO = fromString("AVRO");
+
+ /** Static value TSVE for EventGridDataFormat. */
+ public static final EventGridDataFormat TSVE = fromString("TSVE");
+
+ /** Static value PARQUET for EventGridDataFormat. */
+ public static final EventGridDataFormat PARQUET = fromString("PARQUET");
+
+ /** Static value ORC for EventGridDataFormat. */
+ public static final EventGridDataFormat ORC = fromString("ORC");
+
+ /**
+ * Creates or finds a EventGridDataFormat from its string representation.
+ * @param name a name to look for
+ * @return the corresponding EventGridDataFormat
+ */
+ @JsonCreator
+ public static EventGridDataFormat fromString(String name) {
+ return fromString(name, EventGridDataFormat.class);
+ }
+
+ /**
+ * @return known EventGridDataFormat values
+ */
+ public static Collection values() {
+ return values(EventGridDataFormat.class);
+ }
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/EventHubDataConnection.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/EventHubDataConnection.java
new file mode 100644
index 000000000000..69b2c1cb946a
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/EventHubDataConnection.java
@@ -0,0 +1,213 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.DataConnectionInner;
+
+/**
+ * Class representing an event hub data connection.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "kind", defaultImpl = EventHubDataConnection.class)
+@JsonTypeName("EventHub")
+@JsonFlatten
+public class EventHubDataConnection extends DataConnectionInner {
+ /**
+ * The resource ID of the event hub to be used to create a data connection.
+ */
+ @JsonProperty(value = "properties.eventHubResourceId", required = true)
+ private String eventHubResourceId;
+
+ /**
+ * The event hub consumer group.
+ */
+ @JsonProperty(value = "properties.consumerGroup", required = true)
+ private String consumerGroup;
+
+ /**
+ * The table where the data should be ingested. Optionally the table
+ * information can be added to each message.
+ */
+ @JsonProperty(value = "properties.tableName")
+ private String tableName;
+
+ /**
+ * The mapping rule to be used to ingest the data. Optionally the mapping
+ * information can be added to each message.
+ */
+ @JsonProperty(value = "properties.mappingRuleName")
+ private String mappingRuleName;
+
+ /**
+ * The data format of the message. Optionally the data format can be added
+ * to each message. Possible values include: 'MULTIJSON', 'JSON', 'CSV',
+ * 'TSV', 'SCSV', 'SOHSV', 'PSV', 'TXT', 'RAW', 'SINGLEJSON', 'AVRO',
+ * 'TSVE', 'PARQUET', 'ORC'.
+ */
+ @JsonProperty(value = "properties.dataFormat")
+ private EventHubDataFormat dataFormat;
+
+ /**
+ * System properties of the event hub.
+ */
+ @JsonProperty(value = "properties.eventSystemProperties")
+ private List eventSystemProperties;
+
+ /**
+ * The event hub messages compression type. Possible values include:
+ * 'None', 'GZip'.
+ */
+ @JsonProperty(value = "properties.compression")
+ private Compression compression;
+
+ /**
+ * Get the resource ID of the event hub to be used to create a data connection.
+ *
+ * @return the eventHubResourceId value
+ */
+ public String eventHubResourceId() {
+ return this.eventHubResourceId;
+ }
+
+ /**
+ * Set the resource ID of the event hub to be used to create a data connection.
+ *
+ * @param eventHubResourceId the eventHubResourceId value to set
+ * @return the EventHubDataConnection object itself.
+ */
+ public EventHubDataConnection withEventHubResourceId(String eventHubResourceId) {
+ this.eventHubResourceId = eventHubResourceId;
+ return this;
+ }
+
+ /**
+ * Get the event hub consumer group.
+ *
+ * @return the consumerGroup value
+ */
+ public String consumerGroup() {
+ return this.consumerGroup;
+ }
+
+ /**
+ * Set the event hub consumer group.
+ *
+ * @param consumerGroup the consumerGroup value to set
+ * @return the EventHubDataConnection object itself.
+ */
+ public EventHubDataConnection withConsumerGroup(String consumerGroup) {
+ this.consumerGroup = consumerGroup;
+ return this;
+ }
+
+ /**
+ * Get the table where the data should be ingested. Optionally the table information can be added to each message.
+ *
+ * @return the tableName value
+ */
+ public String tableName() {
+ return this.tableName;
+ }
+
+ /**
+ * Set the table where the data should be ingested. Optionally the table information can be added to each message.
+ *
+ * @param tableName the tableName value to set
+ * @return the EventHubDataConnection object itself.
+ */
+ public EventHubDataConnection withTableName(String tableName) {
+ this.tableName = tableName;
+ return this;
+ }
+
+ /**
+ * Get the mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message.
+ *
+ * @return the mappingRuleName value
+ */
+ public String mappingRuleName() {
+ return this.mappingRuleName;
+ }
+
+ /**
+ * Set the mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message.
+ *
+ * @param mappingRuleName the mappingRuleName value to set
+ * @return the EventHubDataConnection object itself.
+ */
+ public EventHubDataConnection withMappingRuleName(String mappingRuleName) {
+ this.mappingRuleName = mappingRuleName;
+ return this;
+ }
+
+ /**
+ * Get the data format of the message. Optionally the data format can be added to each message. Possible values include: 'MULTIJSON', 'JSON', 'CSV', 'TSV', 'SCSV', 'SOHSV', 'PSV', 'TXT', 'RAW', 'SINGLEJSON', 'AVRO', 'TSVE', 'PARQUET', 'ORC'.
+ *
+ * @return the dataFormat value
+ */
+ public EventHubDataFormat dataFormat() {
+ return this.dataFormat;
+ }
+
+ /**
+ * Set the data format of the message. Optionally the data format can be added to each message. Possible values include: 'MULTIJSON', 'JSON', 'CSV', 'TSV', 'SCSV', 'SOHSV', 'PSV', 'TXT', 'RAW', 'SINGLEJSON', 'AVRO', 'TSVE', 'PARQUET', 'ORC'.
+ *
+ * @param dataFormat the dataFormat value to set
+ * @return the EventHubDataConnection object itself.
+ */
+ public EventHubDataConnection withDataFormat(EventHubDataFormat dataFormat) {
+ this.dataFormat = dataFormat;
+ return this;
+ }
+
+ /**
+ * Get system properties of the event hub.
+ *
+ * @return the eventSystemProperties value
+ */
+ public List eventSystemProperties() {
+ return this.eventSystemProperties;
+ }
+
+ /**
+ * Set system properties of the event hub.
+ *
+ * @param eventSystemProperties the eventSystemProperties value to set
+ * @return the EventHubDataConnection object itself.
+ */
+ public EventHubDataConnection withEventSystemProperties(List eventSystemProperties) {
+ this.eventSystemProperties = eventSystemProperties;
+ return this;
+ }
+
+ /**
+ * Get the event hub messages compression type. Possible values include: 'None', 'GZip'.
+ *
+ * @return the compression value
+ */
+ public Compression compression() {
+ return this.compression;
+ }
+
+ /**
+ * Set the event hub messages compression type. Possible values include: 'None', 'GZip'.
+ *
+ * @param compression the compression value to set
+ * @return the EventHubDataConnection object itself.
+ */
+ public EventHubDataConnection withCompression(Compression compression) {
+ this.compression = compression;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/EventHubDataFormat.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/EventHubDataFormat.java
new file mode 100644
index 000000000000..c737c431dccc
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/EventHubDataFormat.java
@@ -0,0 +1,77 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for EventHubDataFormat.
+ */
+public final class EventHubDataFormat extends ExpandableStringEnum {
+ /** Static value MULTIJSON for EventHubDataFormat. */
+ public static final EventHubDataFormat MULTIJSON = fromString("MULTIJSON");
+
+ /** Static value JSON for EventHubDataFormat. */
+ public static final EventHubDataFormat JSON = fromString("JSON");
+
+ /** Static value CSV for EventHubDataFormat. */
+ public static final EventHubDataFormat CSV = fromString("CSV");
+
+ /** Static value TSV for EventHubDataFormat. */
+ public static final EventHubDataFormat TSV = fromString("TSV");
+
+ /** Static value SCSV for EventHubDataFormat. */
+ public static final EventHubDataFormat SCSV = fromString("SCSV");
+
+ /** Static value SOHSV for EventHubDataFormat. */
+ public static final EventHubDataFormat SOHSV = fromString("SOHSV");
+
+ /** Static value PSV for EventHubDataFormat. */
+ public static final EventHubDataFormat PSV = fromString("PSV");
+
+ /** Static value TXT for EventHubDataFormat. */
+ public static final EventHubDataFormat TXT = fromString("TXT");
+
+ /** Static value RAW for EventHubDataFormat. */
+ public static final EventHubDataFormat RAW = fromString("RAW");
+
+ /** Static value SINGLEJSON for EventHubDataFormat. */
+ public static final EventHubDataFormat SINGLEJSON = fromString("SINGLEJSON");
+
+ /** Static value AVRO for EventHubDataFormat. */
+ public static final EventHubDataFormat AVRO = fromString("AVRO");
+
+ /** Static value TSVE for EventHubDataFormat. */
+ public static final EventHubDataFormat TSVE = fromString("TSVE");
+
+ /** Static value PARQUET for EventHubDataFormat. */
+ public static final EventHubDataFormat PARQUET = fromString("PARQUET");
+
+ /** Static value ORC for EventHubDataFormat. */
+ public static final EventHubDataFormat ORC = fromString("ORC");
+
+ /**
+ * Creates or finds a EventHubDataFormat from its string representation.
+ * @param name a name to look for
+ * @return the corresponding EventHubDataFormat
+ */
+ @JsonCreator
+ public static EventHubDataFormat fromString(String name) {
+ return fromString(name, EventHubDataFormat.class);
+ }
+
+ /**
+ * @return known EventHubDataFormat values
+ */
+ public static Collection values() {
+ return values(EventHubDataFormat.class);
+ }
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/FollowerDatabaseDefinition.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/FollowerDatabaseDefinition.java
new file mode 100644
index 000000000000..636d6c187150
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/FollowerDatabaseDefinition.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.KustoManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.FollowerDatabaseDefinitionInner;
+
+/**
+ * Type representing FollowerDatabaseDefinition.
+ */
+public interface FollowerDatabaseDefinition extends HasInner, HasManager {
+ /**
+ * @return the attachedDatabaseConfigurationName value.
+ */
+ String attachedDatabaseConfigurationName();
+
+ /**
+ * @return the clusterResourceId value.
+ */
+ String clusterResourceId();
+
+ /**
+ * @return the databaseName value.
+ */
+ String databaseName();
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Identity.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Identity.java
new file mode 100644
index 000000000000..136fa8ee8c49
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Identity.java
@@ -0,0 +1,102 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Identity for the resource.
+ */
+public class Identity {
+ /**
+ * The principal ID of resource identity.
+ */
+ @JsonProperty(value = "principalId", access = JsonProperty.Access.WRITE_ONLY)
+ private String principalId;
+
+ /**
+ * The tenant ID of resource.
+ */
+ @JsonProperty(value = "tenantId", access = JsonProperty.Access.WRITE_ONLY)
+ private String tenantId;
+
+ /**
+ * The identity type. Possible values include: 'None', 'SystemAssigned'.
+ */
+ @JsonProperty(value = "type", required = true)
+ private IdentityType type;
+
+ /**
+ * 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}'.
+ */
+ @JsonProperty(value = "userAssignedIdentities")
+ private Map userAssignedIdentities;
+
+ /**
+ * Get the principal ID of resource identity.
+ *
+ * @return the principalId value
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Get the tenant ID of resource.
+ *
+ * @return the tenantId value
+ */
+ public String tenantId() {
+ return this.tenantId;
+ }
+
+ /**
+ * Get the identity type. Possible values include: 'None', 'SystemAssigned'.
+ *
+ * @return the type value
+ */
+ public IdentityType type() {
+ return this.type;
+ }
+
+ /**
+ * Set the identity type. Possible values include: 'None', 'SystemAssigned'.
+ *
+ * @param type the type value to set
+ * @return the Identity object itself.
+ */
+ public Identity withType(IdentityType type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get 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}'.
+ *
+ * @return the userAssignedIdentities value
+ */
+ public Map userAssignedIdentities() {
+ return this.userAssignedIdentities;
+ }
+
+ /**
+ * Set 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}'.
+ *
+ * @param userAssignedIdentities the userAssignedIdentities value to set
+ * @return the Identity object itself.
+ */
+ public Identity withUserAssignedIdentities(Map userAssignedIdentities) {
+ this.userAssignedIdentities = userAssignedIdentities;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/IdentityType.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/IdentityType.java
new file mode 100644
index 000000000000..229d6df255a8
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/IdentityType.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for IdentityType.
+ */
+public enum IdentityType {
+ /** Enum value None. */
+ NONE("None"),
+
+ /** Enum value SystemAssigned. */
+ SYSTEM_ASSIGNED("SystemAssigned");
+
+ /** The actual serialized value for a IdentityType instance. */
+ private String value;
+
+ IdentityType(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a IdentityType instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed IdentityType object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static IdentityType fromString(String value) {
+ IdentityType[] items = IdentityType.values();
+ for (IdentityType item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/IdentityUserAssignedIdentitiesValue.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/IdentityUserAssignedIdentitiesValue.java
new file mode 100644
index 000000000000..66d9c2eb260f
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/IdentityUserAssignedIdentitiesValue.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The IdentityUserAssignedIdentitiesValue model.
+ */
+public class IdentityUserAssignedIdentitiesValue {
+ /**
+ * The principal id of user assigned identity.
+ */
+ @JsonProperty(value = "principalId", access = JsonProperty.Access.WRITE_ONLY)
+ private String principalId;
+
+ /**
+ * The client id of user assigned identity.
+ */
+ @JsonProperty(value = "clientId", access = JsonProperty.Access.WRITE_ONLY)
+ private String clientId;
+
+ /**
+ * Get the principal id of user assigned identity.
+ *
+ * @return the principalId value
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Get the client id of user assigned identity.
+ *
+ * @return the clientId value
+ */
+ public String clientId() {
+ return this.clientId;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/IotHubDataConnection.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/IotHubDataConnection.java
new file mode 100644
index 000000000000..a957a9dd6b4b
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/IotHubDataConnection.java
@@ -0,0 +1,212 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.DataConnectionInner;
+
+/**
+ * Class representing an iot hub data connection.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "kind", defaultImpl = IotHubDataConnection.class)
+@JsonTypeName("IotHub")
+@JsonFlatten
+public class IotHubDataConnection extends DataConnectionInner {
+ /**
+ * The resource ID of the Iot hub to be used to create a data connection.
+ */
+ @JsonProperty(value = "properties.iotHubResourceId", required = true)
+ private String iotHubResourceId;
+
+ /**
+ * The iot hub consumer group.
+ */
+ @JsonProperty(value = "properties.consumerGroup", required = true)
+ private String consumerGroup;
+
+ /**
+ * The table where the data should be ingested. Optionally the table
+ * information can be added to each message.
+ */
+ @JsonProperty(value = "properties.tableName")
+ private String tableName;
+
+ /**
+ * The mapping rule to be used to ingest the data. Optionally the mapping
+ * information can be added to each message.
+ */
+ @JsonProperty(value = "properties.mappingRuleName")
+ private String mappingRuleName;
+
+ /**
+ * The data format of the message. Optionally the data format can be added
+ * to each message. Possible values include: 'MULTIJSON', 'JSON', 'CSV',
+ * 'TSV', 'SCSV', 'SOHSV', 'PSV', 'TXT', 'RAW', 'SINGLEJSON', 'AVRO',
+ * 'TSVE', 'PARQUET', 'ORC'.
+ */
+ @JsonProperty(value = "properties.dataFormat")
+ private IotHubDataFormat dataFormat;
+
+ /**
+ * System properties of the iot hub.
+ */
+ @JsonProperty(value = "properties.eventSystemProperties")
+ private List eventSystemProperties;
+
+ /**
+ * The name of the share access policy.
+ */
+ @JsonProperty(value = "properties.sharedAccessPolicyName", required = true)
+ private String sharedAccessPolicyName;
+
+ /**
+ * Get the resource ID of the Iot hub to be used to create a data connection.
+ *
+ * @return the iotHubResourceId value
+ */
+ public String iotHubResourceId() {
+ return this.iotHubResourceId;
+ }
+
+ /**
+ * Set the resource ID of the Iot hub to be used to create a data connection.
+ *
+ * @param iotHubResourceId the iotHubResourceId value to set
+ * @return the IotHubDataConnection object itself.
+ */
+ public IotHubDataConnection withIotHubResourceId(String iotHubResourceId) {
+ this.iotHubResourceId = iotHubResourceId;
+ return this;
+ }
+
+ /**
+ * Get the iot hub consumer group.
+ *
+ * @return the consumerGroup value
+ */
+ public String consumerGroup() {
+ return this.consumerGroup;
+ }
+
+ /**
+ * Set the iot hub consumer group.
+ *
+ * @param consumerGroup the consumerGroup value to set
+ * @return the IotHubDataConnection object itself.
+ */
+ public IotHubDataConnection withConsumerGroup(String consumerGroup) {
+ this.consumerGroup = consumerGroup;
+ return this;
+ }
+
+ /**
+ * Get the table where the data should be ingested. Optionally the table information can be added to each message.
+ *
+ * @return the tableName value
+ */
+ public String tableName() {
+ return this.tableName;
+ }
+
+ /**
+ * Set the table where the data should be ingested. Optionally the table information can be added to each message.
+ *
+ * @param tableName the tableName value to set
+ * @return the IotHubDataConnection object itself.
+ */
+ public IotHubDataConnection withTableName(String tableName) {
+ this.tableName = tableName;
+ return this;
+ }
+
+ /**
+ * Get the mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message.
+ *
+ * @return the mappingRuleName value
+ */
+ public String mappingRuleName() {
+ return this.mappingRuleName;
+ }
+
+ /**
+ * Set the mapping rule to be used to ingest the data. Optionally the mapping information can be added to each message.
+ *
+ * @param mappingRuleName the mappingRuleName value to set
+ * @return the IotHubDataConnection object itself.
+ */
+ public IotHubDataConnection withMappingRuleName(String mappingRuleName) {
+ this.mappingRuleName = mappingRuleName;
+ return this;
+ }
+
+ /**
+ * Get the data format of the message. Optionally the data format can be added to each message. Possible values include: 'MULTIJSON', 'JSON', 'CSV', 'TSV', 'SCSV', 'SOHSV', 'PSV', 'TXT', 'RAW', 'SINGLEJSON', 'AVRO', 'TSVE', 'PARQUET', 'ORC'.
+ *
+ * @return the dataFormat value
+ */
+ public IotHubDataFormat dataFormat() {
+ return this.dataFormat;
+ }
+
+ /**
+ * Set the data format of the message. Optionally the data format can be added to each message. Possible values include: 'MULTIJSON', 'JSON', 'CSV', 'TSV', 'SCSV', 'SOHSV', 'PSV', 'TXT', 'RAW', 'SINGLEJSON', 'AVRO', 'TSVE', 'PARQUET', 'ORC'.
+ *
+ * @param dataFormat the dataFormat value to set
+ * @return the IotHubDataConnection object itself.
+ */
+ public IotHubDataConnection withDataFormat(IotHubDataFormat dataFormat) {
+ this.dataFormat = dataFormat;
+ return this;
+ }
+
+ /**
+ * Get system properties of the iot hub.
+ *
+ * @return the eventSystemProperties value
+ */
+ public List eventSystemProperties() {
+ return this.eventSystemProperties;
+ }
+
+ /**
+ * Set system properties of the iot hub.
+ *
+ * @param eventSystemProperties the eventSystemProperties value to set
+ * @return the IotHubDataConnection object itself.
+ */
+ public IotHubDataConnection withEventSystemProperties(List eventSystemProperties) {
+ this.eventSystemProperties = eventSystemProperties;
+ return this;
+ }
+
+ /**
+ * Get the name of the share access policy.
+ *
+ * @return the sharedAccessPolicyName value
+ */
+ public String sharedAccessPolicyName() {
+ return this.sharedAccessPolicyName;
+ }
+
+ /**
+ * Set the name of the share access policy.
+ *
+ * @param sharedAccessPolicyName the sharedAccessPolicyName value to set
+ * @return the IotHubDataConnection object itself.
+ */
+ public IotHubDataConnection withSharedAccessPolicyName(String sharedAccessPolicyName) {
+ this.sharedAccessPolicyName = sharedAccessPolicyName;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/IotHubDataFormat.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/IotHubDataFormat.java
new file mode 100644
index 000000000000..b8c15f52820d
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/IotHubDataFormat.java
@@ -0,0 +1,77 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for IotHubDataFormat.
+ */
+public final class IotHubDataFormat extends ExpandableStringEnum {
+ /** Static value MULTIJSON for IotHubDataFormat. */
+ public static final IotHubDataFormat MULTIJSON = fromString("MULTIJSON");
+
+ /** Static value JSON for IotHubDataFormat. */
+ public static final IotHubDataFormat JSON = fromString("JSON");
+
+ /** Static value CSV for IotHubDataFormat. */
+ public static final IotHubDataFormat CSV = fromString("CSV");
+
+ /** Static value TSV for IotHubDataFormat. */
+ public static final IotHubDataFormat TSV = fromString("TSV");
+
+ /** Static value SCSV for IotHubDataFormat. */
+ public static final IotHubDataFormat SCSV = fromString("SCSV");
+
+ /** Static value SOHSV for IotHubDataFormat. */
+ public static final IotHubDataFormat SOHSV = fromString("SOHSV");
+
+ /** Static value PSV for IotHubDataFormat. */
+ public static final IotHubDataFormat PSV = fromString("PSV");
+
+ /** Static value TXT for IotHubDataFormat. */
+ public static final IotHubDataFormat TXT = fromString("TXT");
+
+ /** Static value RAW for IotHubDataFormat. */
+ public static final IotHubDataFormat RAW = fromString("RAW");
+
+ /** Static value SINGLEJSON for IotHubDataFormat. */
+ public static final IotHubDataFormat SINGLEJSON = fromString("SINGLEJSON");
+
+ /** Static value AVRO for IotHubDataFormat. */
+ public static final IotHubDataFormat AVRO = fromString("AVRO");
+
+ /** Static value TSVE for IotHubDataFormat. */
+ public static final IotHubDataFormat TSVE = fromString("TSVE");
+
+ /** Static value PARQUET for IotHubDataFormat. */
+ public static final IotHubDataFormat PARQUET = fromString("PARQUET");
+
+ /** Static value ORC for IotHubDataFormat. */
+ public static final IotHubDataFormat ORC = fromString("ORC");
+
+ /**
+ * Creates or finds a IotHubDataFormat from its string representation.
+ * @param name a name to look for
+ * @return the corresponding IotHubDataFormat
+ */
+ @JsonCreator
+ public static IotHubDataFormat fromString(String name) {
+ return fromString(name, IotHubDataFormat.class);
+ }
+
+ /**
+ * @return known IotHubDataFormat values
+ */
+ public static Collection values() {
+ return values(IotHubDataFormat.class);
+ }
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/KeyVaultProperties.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/KeyVaultProperties.java
new file mode 100644
index 000000000000..5a6821f853d3
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/KeyVaultProperties.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Properties of the key vault.
+ */
+public class KeyVaultProperties {
+ /**
+ * The name of the key vault key.
+ */
+ @JsonProperty(value = "keyName", required = true)
+ private String keyName;
+
+ /**
+ * The version of the key vault key.
+ */
+ @JsonProperty(value = "keyVersion", required = true)
+ private String keyVersion;
+
+ /**
+ * The Uri of the key vault.
+ */
+ @JsonProperty(value = "keyVaultUri", required = true)
+ private String keyVaultUri;
+
+ /**
+ * Get the name of the key vault key.
+ *
+ * @return the keyName value
+ */
+ public String keyName() {
+ return this.keyName;
+ }
+
+ /**
+ * Set the name of the key vault key.
+ *
+ * @param keyName the keyName value to set
+ * @return the KeyVaultProperties object itself.
+ */
+ public KeyVaultProperties withKeyName(String keyName) {
+ this.keyName = keyName;
+ return this;
+ }
+
+ /**
+ * Get the version of the key vault key.
+ *
+ * @return the keyVersion value
+ */
+ public String keyVersion() {
+ return this.keyVersion;
+ }
+
+ /**
+ * Set the version of the key vault key.
+ *
+ * @param keyVersion the keyVersion value to set
+ * @return the KeyVaultProperties object itself.
+ */
+ public KeyVaultProperties withKeyVersion(String keyVersion) {
+ this.keyVersion = keyVersion;
+ return this;
+ }
+
+ /**
+ * Get the Uri of the key vault.
+ *
+ * @return the keyVaultUri value
+ */
+ public String keyVaultUri() {
+ return this.keyVaultUri;
+ }
+
+ /**
+ * Set the Uri of the key vault.
+ *
+ * @param keyVaultUri the keyVaultUri value to set
+ * @return the KeyVaultProperties object itself.
+ */
+ public KeyVaultProperties withKeyVaultUri(String keyVaultUri) {
+ this.keyVaultUri = keyVaultUri;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/LanguageExtension.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/LanguageExtension.java
new file mode 100644
index 000000000000..32a08b9ecb1e
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/LanguageExtension.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.KustoManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.LanguageExtensionInner;
+
+/**
+ * Type representing LanguageExtension.
+ */
+public interface LanguageExtension extends HasInner, HasManager {
+ /**
+ * @return the languageExtensionName value.
+ */
+ LanguageExtensionName languageExtensionName();
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/LanguageExtensionName.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/LanguageExtensionName.java
new file mode 100644
index 000000000000..5fa420b908b6
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/LanguageExtensionName.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for LanguageExtensionName.
+ */
+public final class LanguageExtensionName extends ExpandableStringEnum {
+ /** Static value PYTHON for LanguageExtensionName. */
+ public static final LanguageExtensionName PYTHON = fromString("PYTHON");
+
+ /** Static value R for LanguageExtensionName. */
+ public static final LanguageExtensionName R = fromString("R");
+
+ /**
+ * Creates or finds a LanguageExtensionName from its string representation.
+ * @param name a name to look for
+ * @return the corresponding LanguageExtensionName
+ */
+ @JsonCreator
+ public static LanguageExtensionName fromString(String name) {
+ return fromString(name, LanguageExtensionName.class);
+ }
+
+ /**
+ * @return known LanguageExtensionName values
+ */
+ public static Collection values() {
+ return values(LanguageExtensionName.class);
+ }
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/LanguageExtensionsList.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/LanguageExtensionsList.java
new file mode 100644
index 000000000000..1faa04a30b50
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/LanguageExtensionsList.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import java.util.List;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.LanguageExtensionInner;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The list of language extension objects.
+ */
+public class LanguageExtensionsList {
+ /**
+ * The list of language extensions.
+ */
+ @JsonProperty(value = "value")
+ private List value;
+
+ /**
+ * Get the list of language extensions.
+ *
+ * @return the value value
+ */
+ public List value() {
+ return this.value;
+ }
+
+ /**
+ * Set the list of language extensions.
+ *
+ * @param value the value value to set
+ * @return the LanguageExtensionsList object itself.
+ */
+ public LanguageExtensionsList withValue(List value) {
+ this.value = value;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Operation.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Operation.java
new file mode 100644
index 000000000000..85a349b68162
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Operation.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.KustoManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.OperationInner;
+
+/**
+ * Type representing Operation.
+ */
+public interface Operation extends HasInner, HasManager {
+ /**
+ * @return the display value.
+ */
+ OperationDisplay display();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the origin value.
+ */
+ String origin();
+
+ /**
+ * @return the properties value.
+ */
+ Object properties();
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/OperationDisplay.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/OperationDisplay.java
new file mode 100644
index 000000000000..4aeac3137f78
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/OperationDisplay.java
@@ -0,0 +1,122 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The object that describes the operation.
+ */
+public class OperationDisplay {
+ /**
+ * Friendly name of the resource provider.
+ */
+ @JsonProperty(value = "provider")
+ private String provider;
+
+ /**
+ * The operation type.
+ * For example: read, write, delete.
+ */
+ @JsonProperty(value = "operation")
+ private String operation;
+
+ /**
+ * The resource type on which the operation is performed.
+ */
+ @JsonProperty(value = "resource")
+ private String resource;
+
+ /**
+ * The friendly name of the operation.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * Get the provider value.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Set the provider value.
+ *
+ * @param provider the provider value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withProvider(String provider) {
+ this.provider = provider;
+ return this;
+ }
+
+ /**
+ * Get for example: read, write, delete.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+ /**
+ * Set for example: read, write, delete.
+ *
+ * @param operation the operation value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withOperation(String operation) {
+ this.operation = operation;
+ return this;
+ }
+
+ /**
+ * Get the resource value.
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set the resource value.
+ *
+ * @param resource the resource value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withResource(String resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get the description value.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set the description value.
+ *
+ * @param description the description value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Operations.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Operations.java
new file mode 100644
index 000000000000..f2f85f0f7bec
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Operations.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import rx.Observable;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.OperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Operations.
+ */
+public interface Operations extends HasInner {
+ /**
+ * Lists available operations for the Microsoft.Kusto provider.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/OptimizedAutoscale.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/OptimizedAutoscale.java
new file mode 100644
index 000000000000..77a2c78f5c8e
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/OptimizedAutoscale.java
@@ -0,0 +1,122 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A class that contains the optimized auto scale definition.
+ */
+public class OptimizedAutoscale {
+ /**
+ * The version of the template defined, for instance 1.
+ */
+ @JsonProperty(value = "version", required = true)
+ private int version;
+
+ /**
+ * A boolean value that indicate if the optimized autoscale feature is
+ * enabled or not.
+ */
+ @JsonProperty(value = "isEnabled", required = true)
+ private boolean isEnabled;
+
+ /**
+ * Minimum allowed instances count.
+ */
+ @JsonProperty(value = "minimum", required = true)
+ private int minimum;
+
+ /**
+ * Maximum allowed instances count.
+ */
+ @JsonProperty(value = "maximum", required = true)
+ private int maximum;
+
+ /**
+ * Get the version of the template defined, for instance 1.
+ *
+ * @return the version value
+ */
+ public int version() {
+ return this.version;
+ }
+
+ /**
+ * Set the version of the template defined, for instance 1.
+ *
+ * @param version the version value to set
+ * @return the OptimizedAutoscale object itself.
+ */
+ public OptimizedAutoscale withVersion(int version) {
+ this.version = version;
+ return this;
+ }
+
+ /**
+ * Get a boolean value that indicate if the optimized autoscale feature is enabled or not.
+ *
+ * @return the isEnabled value
+ */
+ public boolean isEnabled() {
+ return this.isEnabled;
+ }
+
+ /**
+ * Set a boolean value that indicate if the optimized autoscale feature is enabled or not.
+ *
+ * @param isEnabled the isEnabled value to set
+ * @return the OptimizedAutoscale object itself.
+ */
+ public OptimizedAutoscale withIsEnabled(boolean isEnabled) {
+ this.isEnabled = isEnabled;
+ return this;
+ }
+
+ /**
+ * Get minimum allowed instances count.
+ *
+ * @return the minimum value
+ */
+ public int minimum() {
+ return this.minimum;
+ }
+
+ /**
+ * Set minimum allowed instances count.
+ *
+ * @param minimum the minimum value to set
+ * @return the OptimizedAutoscale object itself.
+ */
+ public OptimizedAutoscale withMinimum(int minimum) {
+ this.minimum = minimum;
+ return this;
+ }
+
+ /**
+ * Get maximum allowed instances count.
+ *
+ * @return the maximum value
+ */
+ public int maximum() {
+ return this.maximum;
+ }
+
+ /**
+ * Set maximum allowed instances count.
+ *
+ * @param maximum the maximum value to set
+ * @return the OptimizedAutoscale object itself.
+ */
+ public OptimizedAutoscale withMaximum(int maximum) {
+ this.maximum = maximum;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/PrincipalType.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/PrincipalType.java
new file mode 100644
index 000000000000..51f33eaf8306
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/PrincipalType.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for PrincipalType.
+ */
+public final class PrincipalType extends ExpandableStringEnum {
+ /** Static value App for PrincipalType. */
+ public static final PrincipalType APP = fromString("App");
+
+ /** Static value Group for PrincipalType. */
+ public static final PrincipalType GROUP = fromString("Group");
+
+ /** Static value User for PrincipalType. */
+ public static final PrincipalType USER = fromString("User");
+
+ /**
+ * Creates or finds a PrincipalType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding PrincipalType
+ */
+ @JsonCreator
+ public static PrincipalType fromString(String name) {
+ return fromString(name, PrincipalType.class);
+ }
+
+ /**
+ * @return known PrincipalType values
+ */
+ public static Collection values() {
+ return values(PrincipalType.class);
+ }
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/PrincipalsModificationKind.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/PrincipalsModificationKind.java
new file mode 100644
index 000000000000..44bae48d5d33
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/PrincipalsModificationKind.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for PrincipalsModificationKind.
+ */
+public final class PrincipalsModificationKind extends ExpandableStringEnum {
+ /** Static value Union for PrincipalsModificationKind. */
+ public static final PrincipalsModificationKind UNION = fromString("Union");
+
+ /** Static value Replace for PrincipalsModificationKind. */
+ public static final PrincipalsModificationKind REPLACE = fromString("Replace");
+
+ /** Static value None for PrincipalsModificationKind. */
+ public static final PrincipalsModificationKind NONE = fromString("None");
+
+ /**
+ * Creates or finds a PrincipalsModificationKind from its string representation.
+ * @param name a name to look for
+ * @return the corresponding PrincipalsModificationKind
+ */
+ @JsonCreator
+ public static PrincipalsModificationKind fromString(String name) {
+ return fromString(name, PrincipalsModificationKind.class);
+ }
+
+ /**
+ * @return known PrincipalsModificationKind values
+ */
+ public static Collection values() {
+ return values(PrincipalsModificationKind.class);
+ }
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ProvisioningState.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ProvisioningState.java
new file mode 100644
index 000000000000..38589c50d485
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ProvisioningState.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ProvisioningState.
+ */
+public final class ProvisioningState extends ExpandableStringEnum {
+ /** Static value Running for ProvisioningState. */
+ public static final ProvisioningState RUNNING = fromString("Running");
+
+ /** Static value Creating for ProvisioningState. */
+ public static final ProvisioningState CREATING = fromString("Creating");
+
+ /** Static value Deleting for ProvisioningState. */
+ public static final ProvisioningState DELETING = fromString("Deleting");
+
+ /** Static value Succeeded for ProvisioningState. */
+ public static final ProvisioningState SUCCEEDED = fromString("Succeeded");
+
+ /** Static value Failed for ProvisioningState. */
+ public static final ProvisioningState FAILED = fromString("Failed");
+
+ /** Static value Moving for ProvisioningState. */
+ public static final ProvisioningState MOVING = fromString("Moving");
+
+ /**
+ * Creates or finds a ProvisioningState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ProvisioningState
+ */
+ @JsonCreator
+ public static ProvisioningState fromString(String name) {
+ return fromString(name, ProvisioningState.class);
+ }
+
+ /**
+ * @return known ProvisioningState values
+ */
+ public static Collection values() {
+ return values(ProvisioningState.class);
+ }
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ReadOnlyFollowingDatabase.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ReadOnlyFollowingDatabase.java
new file mode 100644
index 000000000000..0821cfe0e0e0
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ReadOnlyFollowingDatabase.java
@@ -0,0 +1,155 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import org.joda.time.Period;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.DatabaseInner;
+
+/**
+ * Class representing a read only following database.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "kind", defaultImpl = ReadOnlyFollowingDatabase.class)
+@JsonTypeName("ReadOnlyFollowing")
+@JsonFlatten
+public class ReadOnlyFollowingDatabase extends DatabaseInner {
+ /**
+ * The provisioned state of the resource. Possible values include:
+ * 'Running', 'Creating', 'Deleting', 'Succeeded', 'Failed', 'Moving'.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /**
+ * The time the data should be kept before it stops being accessible to
+ * queries in TimeSpan.
+ */
+ @JsonProperty(value = "properties.softDeletePeriod", access = JsonProperty.Access.WRITE_ONLY)
+ private Period softDeletePeriod;
+
+ /**
+ * The time the data should be kept in cache for fast queries in TimeSpan.
+ */
+ @JsonProperty(value = "properties.hotCachePeriod")
+ private Period hotCachePeriod;
+
+ /**
+ * The statistics of the database.
+ */
+ @JsonProperty(value = "properties.statistics")
+ private DatabaseStatistics statistics;
+
+ /**
+ * The name of the leader cluster.
+ */
+ @JsonProperty(value = "properties.leaderClusterResourceId", access = JsonProperty.Access.WRITE_ONLY)
+ private String leaderClusterResourceId;
+
+ /**
+ * The name of the attached database configuration cluster.
+ */
+ @JsonProperty(value = "properties.attachedDatabaseConfigurationName", access = JsonProperty.Access.WRITE_ONLY)
+ private String attachedDatabaseConfigurationName;
+
+ /**
+ * The principals modification kind of the database. Possible values
+ * include: 'Union', 'Replace', 'None'.
+ */
+ @JsonProperty(value = "properties.principalsModificationKind", access = JsonProperty.Access.WRITE_ONLY)
+ private PrincipalsModificationKind principalsModificationKind;
+
+ /**
+ * Get the provisioned state of the resource. Possible values include: 'Running', 'Creating', 'Deleting', 'Succeeded', 'Failed', 'Moving'.
+ *
+ * @return the provisioningState value
+ */
+ public ProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the time the data should be kept before it stops being accessible to queries in TimeSpan.
+ *
+ * @return the softDeletePeriod value
+ */
+ public Period softDeletePeriod() {
+ return this.softDeletePeriod;
+ }
+
+ /**
+ * Get the time the data should be kept in cache for fast queries in TimeSpan.
+ *
+ * @return the hotCachePeriod value
+ */
+ public Period hotCachePeriod() {
+ return this.hotCachePeriod;
+ }
+
+ /**
+ * Set the time the data should be kept in cache for fast queries in TimeSpan.
+ *
+ * @param hotCachePeriod the hotCachePeriod value to set
+ * @return the ReadOnlyFollowingDatabase object itself.
+ */
+ public ReadOnlyFollowingDatabase withHotCachePeriod(Period hotCachePeriod) {
+ this.hotCachePeriod = hotCachePeriod;
+ return this;
+ }
+
+ /**
+ * Get the statistics of the database.
+ *
+ * @return the statistics value
+ */
+ public DatabaseStatistics statistics() {
+ return this.statistics;
+ }
+
+ /**
+ * Set the statistics of the database.
+ *
+ * @param statistics the statistics value to set
+ * @return the ReadOnlyFollowingDatabase object itself.
+ */
+ public ReadOnlyFollowingDatabase withStatistics(DatabaseStatistics statistics) {
+ this.statistics = statistics;
+ return this;
+ }
+
+ /**
+ * Get the name of the leader cluster.
+ *
+ * @return the leaderClusterResourceId value
+ */
+ public String leaderClusterResourceId() {
+ return this.leaderClusterResourceId;
+ }
+
+ /**
+ * Get the name of the attached database configuration cluster.
+ *
+ * @return the attachedDatabaseConfigurationName value
+ */
+ public String attachedDatabaseConfigurationName() {
+ return this.attachedDatabaseConfigurationName;
+ }
+
+ /**
+ * Get the principals modification kind of the database. Possible values include: 'Union', 'Replace', 'None'.
+ *
+ * @return the principalsModificationKind value
+ */
+ public PrincipalsModificationKind principalsModificationKind() {
+ return this.principalsModificationKind;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ReadWriteDatabase.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ReadWriteDatabase.java
new file mode 100644
index 000000000000..755b90ae0298
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/ReadWriteDatabase.java
@@ -0,0 +1,135 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import org.joda.time.Period;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.DatabaseInner;
+
+/**
+ * Class representing a read write database.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "kind", defaultImpl = ReadWriteDatabase.class)
+@JsonTypeName("ReadWrite")
+@JsonFlatten
+public class ReadWriteDatabase extends DatabaseInner {
+ /**
+ * The provisioned state of the resource. Possible values include:
+ * 'Running', 'Creating', 'Deleting', 'Succeeded', 'Failed', 'Moving'.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /**
+ * The time the data should be kept before it stops being accessible to
+ * queries in TimeSpan.
+ */
+ @JsonProperty(value = "properties.softDeletePeriod")
+ private Period softDeletePeriod;
+
+ /**
+ * The time the data should be kept in cache for fast queries in TimeSpan.
+ */
+ @JsonProperty(value = "properties.hotCachePeriod")
+ private Period hotCachePeriod;
+
+ /**
+ * The statistics of the database.
+ */
+ @JsonProperty(value = "properties.statistics")
+ private DatabaseStatistics statistics;
+
+ /**
+ * Indicates whether the database is followed.
+ */
+ @JsonProperty(value = "properties.isFollowed", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean isFollowed;
+
+ /**
+ * Get the provisioned state of the resource. Possible values include: 'Running', 'Creating', 'Deleting', 'Succeeded', 'Failed', 'Moving'.
+ *
+ * @return the provisioningState value
+ */
+ public ProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the time the data should be kept before it stops being accessible to queries in TimeSpan.
+ *
+ * @return the softDeletePeriod value
+ */
+ public Period softDeletePeriod() {
+ return this.softDeletePeriod;
+ }
+
+ /**
+ * Set the time the data should be kept before it stops being accessible to queries in TimeSpan.
+ *
+ * @param softDeletePeriod the softDeletePeriod value to set
+ * @return the ReadWriteDatabase object itself.
+ */
+ public ReadWriteDatabase withSoftDeletePeriod(Period softDeletePeriod) {
+ this.softDeletePeriod = softDeletePeriod;
+ return this;
+ }
+
+ /**
+ * Get the time the data should be kept in cache for fast queries in TimeSpan.
+ *
+ * @return the hotCachePeriod value
+ */
+ public Period hotCachePeriod() {
+ return this.hotCachePeriod;
+ }
+
+ /**
+ * Set the time the data should be kept in cache for fast queries in TimeSpan.
+ *
+ * @param hotCachePeriod the hotCachePeriod value to set
+ * @return the ReadWriteDatabase object itself.
+ */
+ public ReadWriteDatabase withHotCachePeriod(Period hotCachePeriod) {
+ this.hotCachePeriod = hotCachePeriod;
+ return this;
+ }
+
+ /**
+ * Get the statistics of the database.
+ *
+ * @return the statistics value
+ */
+ public DatabaseStatistics statistics() {
+ return this.statistics;
+ }
+
+ /**
+ * Set the statistics of the database.
+ *
+ * @param statistics the statistics value to set
+ * @return the ReadWriteDatabase object itself.
+ */
+ public ReadWriteDatabase withStatistics(DatabaseStatistics statistics) {
+ this.statistics = statistics;
+ return this;
+ }
+
+ /**
+ * Get indicates whether the database is followed.
+ *
+ * @return the isFollowed value
+ */
+ public Boolean isFollowed() {
+ return this.isFollowed;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Reason.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Reason.java
new file mode 100644
index 000000000000..01b407e31288
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/Reason.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for Reason.
+ */
+public final class Reason extends ExpandableStringEnum {
+ /** Static value Invalid for Reason. */
+ public static final Reason INVALID = fromString("Invalid");
+
+ /** Static value AlreadyExists for Reason. */
+ public static final Reason ALREADY_EXISTS = fromString("AlreadyExists");
+
+ /**
+ * Creates or finds a Reason from its string representation.
+ * @param name a name to look for
+ * @return the corresponding Reason
+ */
+ @JsonCreator
+ public static Reason fromString(String name) {
+ return fromString(name, Reason.class);
+ }
+
+ /**
+ * @return known Reason values
+ */
+ public static Collection values() {
+ return values(Reason.class);
+ }
+}
diff --git a/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/SkuDescription.java b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/SkuDescription.java
new file mode 100644
index 000000000000..4ceaa0425c45
--- /dev/null
+++ b/sdk/kusto/mgmt-v2020_02_15/src/main/java/com/microsoft/azure/management/kusto/v2020_02_15/SkuDescription.java
@@ -0,0 +1,51 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.kusto.v2020_02_15;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.KustoManager;
+import com.microsoft.azure.management.kusto.v2020_02_15.implementation.SkuDescriptionInner;
+import java.util.List;
+
+/**
+ * Type representing SkuDescription.
+ */
+public interface SkuDescription extends HasInner, HasManager {
+ /**
+ * @return the locationInfo value.
+ */
+ List locationInfo();
+
+ /**
+ * @return the locations value.
+ */
+ List locations();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the resourceType value.
+ */
+ String resourceType();
+
+ /**
+ * @return the restrictions value.
+ */
+ List