diff --git a/sdk/kusto/mgmt-v2019_01_21/pom.xml b/sdk/kusto/mgmt-v2019_01_21/pom.xml
new file mode 100644
index 000000000000..c1971fb8b4dd
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/pom.xml
@@ -0,0 +1,135 @@
+
+
+ 4.0.0
+ com.microsoft.azure.kusto.v2019_01_21
+
+ com.microsoft.azure
+ azure-arm-parent
+ 1.1.0
+ ../../../pom.management.xml
+
+ azure-mgmt-kusto
+ 1.0.0-beta
+ 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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/AzureCapacity.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/AzureCapacity.java
new file mode 100644
index 000000000000..4d47e8463850
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/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.v2019_01_21;
+
+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 instances count.
+ */
+ @JsonProperty(value = "minimum", required = true)
+ private int minimum;
+
+ /**
+ * Maximum allowed instances count.
+ */
+ @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 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 AzureCapacity object itself.
+ */
+ public AzureCapacity 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 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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/AzureEntityResource.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/AzureEntityResource.java
new file mode 100644
index 000000000000..d1a72760f8da
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/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.v2019_01_21;
+
+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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/AzureResourceSku.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/AzureResourceSku.java
new file mode 100644
index 000000000000..5e455a670a1d
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/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.v2019_01_21;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.kusto.v2019_01_21.implementation.AzureResourceSkuInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.kusto.v2019_01_21.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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/AzureScaleType.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/AzureScaleType.java
new file mode 100644
index 000000000000..7f48b6502820
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/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.v2019_01_21;
+
+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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/AzureSku.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/AzureSku.java
new file mode 100644
index 000000000000..9ae766b79972
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/AzureSku.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.v2019_01_21;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.kusto.v2019_01_21.implementation.KustoManager;
+import com.microsoft.azure.management.kusto.v2019_01_21.implementation.AzureSkuInner;
+
+/**
+ * Type representing AzureSku.
+ */
+public interface AzureSku extends HasInner, HasManager {
+ /**
+ * @return the capacity value.
+ */
+ Integer capacity();
+
+ /**
+ * @return the name value.
+ */
+ AzureSkuName name();
+
+ /**
+ * @return the tier value.
+ */
+ AzureSkuTier tier();
+
+}
diff --git a/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/AzureSkuName.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/AzureSkuName.java
new file mode 100644
index 000000000000..ded067a6b2d4
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/AzureSkuName.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.v2019_01_21;
+
+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");
+
+ /**
+ * 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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/AzureSkuTier.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/AzureSkuTier.java
new file mode 100644
index 000000000000..148ca156db4d
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/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.v2019_01_21;
+
+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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/CheckNameResult.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/CheckNameResult.java
new file mode 100644
index 000000000000..9d85c2130bb5
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/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.v2019_01_21;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.kusto.v2019_01_21.implementation.KustoManager;
+import com.microsoft.azure.management.kusto.v2019_01_21.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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/Cluster.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/Cluster.java
new file mode 100644
index 000000000000..e622597d6c71
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/Cluster.java
@@ -0,0 +1,148 @@
+/**
+ * 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.v2019_01_21;
+
+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.v2019_01_21.implementation.KustoManager;
+import com.microsoft.azure.management.kusto.v2019_01_21.implementation.AzureSkuInner;
+import java.util.List;
+import com.microsoft.azure.management.kusto.v2019_01_21.implementation.ClusterInner;
+
+/**
+ * Type representing Cluster.
+ */
+public interface Cluster extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the dataIngestionUri value.
+ */
+ String dataIngestionUri();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ProvisioningState provisioningState();
+
+ /**
+ * @return the sku value.
+ */
+ AzureSku sku();
+
+ /**
+ * @return the state value.
+ */
+ State state();
+
+ /**
+ * @return the trustedExternalTenants value.
+ */
+ List trustedExternalTenants();
+
+ /**
+ * @return the uri value.
+ */
+ String uri();
+
+ /**
+ * 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(AzureSkuInner sku);
+ }
+
+ /**
+ * 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 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.WithTrustedExternalTenants {
+ }
+ }
+ /**
+ * The template for a Cluster update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithSku, UpdateStages.WithTrustedExternalTenants {
+ }
+
+ /**
+ * Grouping of Cluster update stages.
+ */
+ interface UpdateStages {
+ /**
+ * 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(AzureSkuInner 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);
+ }
+
+ }
+}
diff --git a/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/ClusterCheckNameRequest.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/ClusterCheckNameRequest.java
new file mode 100644
index 000000000000..f232e2638bc5
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/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.v2019_01_21;
+
+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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/ClusterUpdate.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/ClusterUpdate.java
new file mode 100644
index 000000000000..79b7de86ac99
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/ClusterUpdate.java
@@ -0,0 +1,190 @@
+/**
+ * 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.v2019_01_21;
+
+import java.util.Map;
+import com.microsoft.azure.management.kusto.v2019_01_21.implementation.AzureSkuInner;
+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 AzureSkuInner sku;
+
+ /**
+ * 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'.
+ */
+ @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 cluster's external tenants.
+ */
+ @JsonProperty(value = "properties.trustedExternalTenants")
+ private List trustedExternalTenants;
+
+ /**
+ * 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 AzureSkuInner 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(AzureSkuInner sku) {
+ this.sku = sku;
+ 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'.
+ *
+ * @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 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;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/Clusters.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/Clusters.java
new file mode 100644
index 000000000000..317d1c1362a9
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/Clusters.java
@@ -0,0 +1,75 @@
+/**
+ * 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.v2019_01_21;
+
+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.v2019_01_21.implementation.ClustersInner;
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.kusto.v2019_01_21.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);
+
+ /**
+ * 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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DataConnection.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DataConnection.java
new file mode 100644
index 000000000000..7e22b817bba3
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/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.v2019_01_21;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.kusto.v2019_01_21.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.v2019_01_21.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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DataConnectionCheckNameRequest.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DataConnectionCheckNameRequest.java
new file mode 100644
index 000000000000..478a6aafc81e
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/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.v2019_01_21;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The result returned from a data connections 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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DataConnectionValidation.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DataConnectionValidation.java
new file mode 100644
index 000000000000..d9c53a206382
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/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.v2019_01_21;
+
+import com.microsoft.azure.management.kusto.v2019_01_21.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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DataConnectionValidationListResult.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DataConnectionValidationListResult.java
new file mode 100644
index 000000000000..f20291268c72
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/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.v2019_01_21;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.kusto.v2019_01_21.implementation.KustoManager;
+import com.microsoft.azure.management.kusto.v2019_01_21.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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DataConnectionValidationResult.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DataConnectionValidationResult.java
new file mode 100644
index 000000000000..f9e93960129e
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/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.v2019_01_21;
+
+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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DataConnections.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DataConnections.java
new file mode 100644
index 000000000000..a37d8e66cf3e
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/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.v2019_01_21;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.kusto.v2019_01_21.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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DataFormat.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DataFormat.java
new file mode 100644
index 000000000000..42b743bb804f
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DataFormat.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.v2019_01_21;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DataFormat.
+ */
+public final class DataFormat extends ExpandableStringEnum {
+ /** Static value MULTIJSON for DataFormat. */
+ public static final DataFormat MULTIJSON = fromString("MULTIJSON");
+
+ /** Static value JSON for DataFormat. */
+ public static final DataFormat JSON = fromString("JSON");
+
+ /** Static value CSV for DataFormat. */
+ public static final DataFormat CSV = fromString("CSV");
+
+ /** Static value TSV for DataFormat. */
+ public static final DataFormat TSV = fromString("TSV");
+
+ /** Static value SCSV for DataFormat. */
+ public static final DataFormat SCSV = fromString("SCSV");
+
+ /** Static value SOHSV for DataFormat. */
+ public static final DataFormat SOHSV = fromString("SOHSV");
+
+ /** Static value PSV for DataFormat. */
+ public static final DataFormat PSV = fromString("PSV");
+
+ /** Static value TXT for DataFormat. */
+ public static final DataFormat TXT = fromString("TXT");
+
+ /** Static value RAW for DataFormat. */
+ public static final DataFormat RAW = fromString("RAW");
+
+ /** Static value SINGLEJSON for DataFormat. */
+ public static final DataFormat SINGLEJSON = fromString("SINGLEJSON");
+
+ /** Static value AVRO for DataFormat. */
+ public static final DataFormat AVRO = fromString("AVRO");
+
+ /**
+ * Creates or finds a DataFormat from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DataFormat
+ */
+ @JsonCreator
+ public static DataFormat fromString(String name) {
+ return fromString(name, DataFormat.class);
+ }
+
+ /**
+ * @return known DataFormat values
+ */
+ public static Collection values() {
+ return values(DataFormat.class);
+ }
+}
diff --git a/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/Database.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/Database.java
new file mode 100644
index 000000000000..9aa16dfad242
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/Database.java
@@ -0,0 +1,210 @@
+/**
+ * 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.v2019_01_21;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.kusto.v2019_01_21.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.v2019_01_21.implementation.KustoManager;
+import org.joda.time.Period;
+
+/**
+ * Type representing Database.
+ */
+public interface Database extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the hotCachePeriod value.
+ */
+ Period hotCachePeriod();
+
+ /**
+ * @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 softDeletePeriod value.
+ */
+ Period softDeletePeriod();
+
+ /**
+ * @return the statistics value.
+ */
+ DatabaseStatistics statistics();
+
+ /**
+ * @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 HotCachePeriod.
+ */
+ interface WithHotCachePeriod {
+ /**
+ * Specifies hotCachePeriod.
+ * @param hotCachePeriod The time the data that should be kept in cache for fast queries in TimeSpan
+ * @return the next definition stage
+ */
+ WithCreate withHotCachePeriod(Period hotCachePeriod);
+ }
+
+ /**
+ * 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 database definition allowing to specify SoftDeletePeriod.
+ */
+ interface WithSoftDeletePeriod {
+ /**
+ * Specifies softDeletePeriod.
+ * @param softDeletePeriod The time the data should be kept before it stops being accessible to queries in TimeSpan
+ * @return the next definition stage
+ */
+ WithCreate withSoftDeletePeriod(Period softDeletePeriod);
+ }
+
+ /**
+ * The stage of the database definition allowing to specify Statistics.
+ */
+ interface WithStatistics {
+ /**
+ * Specifies statistics.
+ * @param statistics The statistics of the database
+ * @return the next definition stage
+ */
+ WithCreate withStatistics(DatabaseStatistics statistics);
+ }
+
+ /**
+ * 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.WithHotCachePeriod, DefinitionStages.WithLocation, DefinitionStages.WithSoftDeletePeriod, DefinitionStages.WithStatistics {
+ }
+ }
+ /**
+ * The template for a Database update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithHotCachePeriod, UpdateStages.WithLocation, UpdateStages.WithSoftDeletePeriod, UpdateStages.WithStatistics {
+ }
+
+ /**
+ * Grouping of Database update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the database update allowing to specify HotCachePeriod.
+ */
+ interface WithHotCachePeriod {
+ /**
+ * Specifies hotCachePeriod.
+ * @param hotCachePeriod The time the data that should be kept in cache for fast queries in TimeSpan
+ * @return the next update stage
+ */
+ Update withHotCachePeriod(Period hotCachePeriod);
+ }
+
+ /**
+ * 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);
+ }
+
+ /**
+ * The stage of the database update allowing to specify SoftDeletePeriod.
+ */
+ interface WithSoftDeletePeriod {
+ /**
+ * Specifies softDeletePeriod.
+ * @param softDeletePeriod The time the data should be kept before it stops being accessible to queries in TimeSpan
+ * @return the next update stage
+ */
+ Update withSoftDeletePeriod(Period softDeletePeriod);
+ }
+
+ /**
+ * The stage of the database update allowing to specify Statistics.
+ */
+ interface WithStatistics {
+ /**
+ * Specifies statistics.
+ * @param statistics The statistics of the database
+ * @return the next update stage
+ */
+ Update withStatistics(DatabaseStatistics statistics);
+ }
+
+ }
+}
diff --git a/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DatabaseCheckNameRequest.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DatabaseCheckNameRequest.java
new file mode 100644
index 000000000000..3c89f915bcd5
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DatabaseCheckNameRequest.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.v2019_01_21;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The result returned from a database check name availability request.
+ */
+public class DatabaseCheckNameRequest {
+ /**
+ * Database name.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * The type of resource, Microsoft.Kusto/clusters/databases.
+ */
+ @JsonProperty(value = "type", required = true)
+ private String type;
+
+ /**
+ * Creates an instance of DatabaseCheckNameRequest class.
+ * @param name database name.
+ */
+ public DatabaseCheckNameRequest() {
+ type = "Microsoft.Kusto/clusters/databases";
+ }
+
+ /**
+ * Get database name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set database name.
+ *
+ * @param name the name value to set
+ * @return the DatabaseCheckNameRequest object itself.
+ */
+ public DatabaseCheckNameRequest withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the type of resource, Microsoft.Kusto/clusters/databases.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type of resource, Microsoft.Kusto/clusters/databases.
+ *
+ * @param type the type value to set
+ * @return the DatabaseCheckNameRequest object itself.
+ */
+ public DatabaseCheckNameRequest withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DatabasePrincipal.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DatabasePrincipal.java
new file mode 100644
index 000000000000..a2374ffa8eda
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DatabasePrincipal.java
@@ -0,0 +1,50 @@
+/**
+ * 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.v2019_01_21;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.kusto.v2019_01_21.implementation.KustoManager;
+import com.microsoft.azure.management.kusto.v2019_01_21.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 type value.
+ */
+ DatabasePrincipalType type();
+
+}
diff --git a/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DatabasePrincipalListRequest.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DatabasePrincipalListRequest.java
new file mode 100644
index 000000000000..15b6c0e6a12a
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/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.v2019_01_21;
+
+import java.util.List;
+import com.microsoft.azure.management.kusto.v2019_01_21.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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DatabasePrincipalListResult.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DatabasePrincipalListResult.java
new file mode 100644
index 000000000000..98301849a454
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/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.v2019_01_21;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.kusto.v2019_01_21.implementation.KustoManager;
+import com.microsoft.azure.management.kusto.v2019_01_21.implementation.DatabasePrincipalListResultInner;
+import com.microsoft.azure.management.kusto.v2019_01_21.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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DatabasePrincipalRole.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DatabasePrincipalRole.java
new file mode 100644
index 000000000000..3f6502cbe221
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/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.v2019_01_21;
+
+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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DatabasePrincipalType.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DatabasePrincipalType.java
new file mode 100644
index 000000000000..0024da0db60b
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/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.v2019_01_21;
+
+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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DatabaseStatistics.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DatabaseStatistics.java
new file mode 100644
index 000000000000..4387c295e73c
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/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.v2019_01_21;
+
+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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DatabaseUpdate.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DatabaseUpdate.java
new file mode 100644
index 000000000000..9d8f0a889c30
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/DatabaseUpdate.java
@@ -0,0 +1,143 @@
+/**
+ * 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.v2019_01_21;
+
+import org.joda.time.Period;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * Class representing an update to a Kusto database.
+ */
+@JsonFlatten
+public class DatabaseUpdate extends ProxyResource {
+ /**
+ * Resource location.
+ */
+ @JsonProperty(value = "location")
+ private String location;
+
+ /**
+ * The provisioned state of the resource. Possible values include:
+ * 'Running', 'Creating', 'Deleting', 'Succeeded', 'Failed'.
+ */
+ @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 that 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;
+
+ /**
+ * 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 DatabaseUpdate object itself.
+ */
+ public DatabaseUpdate withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get the provisioned state of the resource. Possible values include: 'Running', 'Creating', 'Deleting', 'Succeeded', 'Failed'.
+ *
+ * @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 DatabaseUpdate object itself.
+ */
+ public DatabaseUpdate withSoftDeletePeriod(Period softDeletePeriod) {
+ this.softDeletePeriod = softDeletePeriod;
+ return this;
+ }
+
+ /**
+ * Get the time the data that 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 that should be kept in cache for fast queries in TimeSpan.
+ *
+ * @param hotCachePeriod the hotCachePeriod value to set
+ * @return the DatabaseUpdate object itself.
+ */
+ public DatabaseUpdate 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 DatabaseUpdate object itself.
+ */
+ public DatabaseUpdate withStatistics(DatabaseStatistics statistics) {
+ this.statistics = statistics;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/Databases.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/Databases.java
new file mode 100644
index 000000000000..61b6fd53689e
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/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.v2019_01_21;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.kusto.v2019_01_21.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 name Database 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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/EventGridDataConnection.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/EventGridDataConnection.java
new file mode 100644
index 000000000000..461cafade2ea
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/EventGridDataConnection.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.v2019_01_21;
+
+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.v2019_01_21.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'.
+ */
+ @JsonProperty(value = "properties.dataFormat", required = true)
+ private DataFormat 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'.
+ *
+ * @return the dataFormat value
+ */
+ public DataFormat 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'.
+ *
+ * @param dataFormat the dataFormat value to set
+ * @return the EventGridDataConnection object itself.
+ */
+ public EventGridDataConnection withDataFormat(DataFormat dataFormat) {
+ this.dataFormat = dataFormat;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/EventHubDataConnection.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/EventHubDataConnection.java
new file mode 100644
index 000000000000..b43a48b9f83a
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/EventHubDataConnection.java
@@ -0,0 +1,158 @@
+/**
+ * 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.v2019_01_21;
+
+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.v2019_01_21.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'.
+ */
+ @JsonProperty(value = "properties.dataFormat")
+ private DataFormat dataFormat;
+
+ /**
+ * 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'.
+ *
+ * @return the dataFormat value
+ */
+ public DataFormat 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'.
+ *
+ * @param dataFormat the dataFormat value to set
+ * @return the EventHubDataConnection object itself.
+ */
+ public EventHubDataConnection withDataFormat(DataFormat dataFormat) {
+ this.dataFormat = dataFormat;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/Operation.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/Operation.java
new file mode 100644
index 000000000000..9b1d5bc0235d
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/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.v2019_01_21;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.kusto.v2019_01_21.implementation.KustoManager;
+import com.microsoft.azure.management.kusto.v2019_01_21.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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/OperationDisplay.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/OperationDisplay.java
new file mode 100644
index 000000000000..e251d5714e91
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/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.v2019_01_21;
+
+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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/Operations.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/Operations.java
new file mode 100644
index 000000000000..4c20871d6403
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/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.v2019_01_21;
+
+import rx.Observable;
+import com.microsoft.azure.management.kusto.v2019_01_21.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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/ProvisioningState.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/ProvisioningState.java
new file mode 100644
index 000000000000..13f118a93fff
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/ProvisioningState.java
@@ -0,0 +1,50 @@
+/**
+ * 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.v2019_01_21;
+
+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");
+
+ /**
+ * 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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/Reason.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/Reason.java
new file mode 100644
index 000000000000..c2bd0dfeef20
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/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.v2019_01_21;
+
+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-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/State.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/State.java
new file mode 100644
index 000000000000..c3d9f84eadb8
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/State.java
@@ -0,0 +1,62 @@
+/**
+ * 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.v2019_01_21;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for State.
+ */
+public final class State extends ExpandableStringEnum {
+ /** Static value Creating for State. */
+ public static final State CREATING = fromString("Creating");
+
+ /** Static value Unavailable for State. */
+ public static final State UNAVAILABLE = fromString("Unavailable");
+
+ /** Static value Running for State. */
+ public static final State RUNNING = fromString("Running");
+
+ /** Static value Deleting for State. */
+ public static final State DELETING = fromString("Deleting");
+
+ /** Static value Deleted for State. */
+ public static final State DELETED = fromString("Deleted");
+
+ /** Static value Stopping for State. */
+ public static final State STOPPING = fromString("Stopping");
+
+ /** Static value Stopped for State. */
+ public static final State STOPPED = fromString("Stopped");
+
+ /** Static value Starting for State. */
+ public static final State STARTING = fromString("Starting");
+
+ /** Static value Updating for State. */
+ public static final State UPDATING = fromString("Updating");
+
+ /**
+ * Creates or finds a State from its string representation.
+ * @param name a name to look for
+ * @return the corresponding State
+ */
+ @JsonCreator
+ public static State fromString(String name) {
+ return fromString(name, State.class);
+ }
+
+ /**
+ * @return known State values
+ */
+ public static Collection values() {
+ return values(State.class);
+ }
+}
diff --git a/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/TrustedExternalTenant.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/TrustedExternalTenant.java
new file mode 100644
index 000000000000..56d9837b43d9
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/TrustedExternalTenant.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.v2019_01_21;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Represents a tenant ID that is trusted by the cluster.
+ */
+public class TrustedExternalTenant {
+ /**
+ * GUID representing an external tenant.
+ */
+ @JsonProperty(value = "value")
+ private String value;
+
+ /**
+ * Get gUID representing an external tenant.
+ *
+ * @return the value value
+ */
+ public String value() {
+ return this.value;
+ }
+
+ /**
+ * Set gUID representing an external tenant.
+ *
+ * @param value the value value to set
+ * @return the TrustedExternalTenant object itself.
+ */
+ public TrustedExternalTenant withValue(String value) {
+ this.value = value;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/AzureResourceSkuImpl.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/AzureResourceSkuImpl.java
new file mode 100644
index 000000000000..5ae0a8f54335
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/AzureResourceSkuImpl.java
@@ -0,0 +1,52 @@
+/**
+ * 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.v2019_01_21.implementation;
+
+import com.microsoft.azure.management.kusto.v2019_01_21.AzureResourceSku;
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import rx.Observable;
+import com.microsoft.azure.management.kusto.v2019_01_21.AzureCapacity;
+import com.microsoft.azure.management.kusto.v2019_01_21.AzureSku;
+
+class AzureResourceSkuImpl extends WrapperImpl implements AzureResourceSku {
+ private final KustoManager manager;
+
+ AzureResourceSkuImpl(AzureResourceSkuInner inner, KustoManager manager) {
+ super(inner);
+ this.manager = manager;
+ }
+
+ @Override
+ public KustoManager manager() {
+ return this.manager;
+ }
+
+
+
+ @Override
+ public AzureCapacity capacity() {
+ return this.inner().capacity();
+ }
+
+ @Override
+ public String resourceType() {
+ return this.inner().resourceType();
+ }
+
+ @Override
+ public AzureSku sku() {
+ AzureSkuInner inner = this.inner().sku();
+ if (inner != null) {
+ return new AzureSkuImpl(inner, manager());
+ } else {
+ return null;
+ }
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/AzureResourceSkuInner.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/AzureResourceSkuInner.java
new file mode 100644
index 000000000000..83917be871bc
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/AzureResourceSkuInner.java
@@ -0,0 +1,96 @@
+/**
+ * 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.v2019_01_21.implementation;
+
+import com.microsoft.azure.management.kusto.v2019_01_21.AzureCapacity;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Azure resource SKU definition.
+ */
+public class AzureResourceSkuInner {
+ /**
+ * Resource Namespace and Type.
+ */
+ @JsonProperty(value = "resourceType")
+ private String resourceType;
+
+ /**
+ * The SKU details.
+ */
+ @JsonProperty(value = "sku")
+ private AzureSkuInner sku;
+
+ /**
+ * The number of instances of the cluster.
+ */
+ @JsonProperty(value = "capacity")
+ private AzureCapacity capacity;
+
+ /**
+ * Get resource Namespace and Type.
+ *
+ * @return the resourceType value
+ */
+ public String resourceType() {
+ return this.resourceType;
+ }
+
+ /**
+ * Set resource Namespace and Type.
+ *
+ * @param resourceType the resourceType value to set
+ * @return the AzureResourceSkuInner object itself.
+ */
+ public AzureResourceSkuInner withResourceType(String resourceType) {
+ this.resourceType = resourceType;
+ return this;
+ }
+
+ /**
+ * Get the SKU details.
+ *
+ * @return the sku value
+ */
+ public AzureSkuInner sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set the SKU details.
+ *
+ * @param sku the sku value to set
+ * @return the AzureResourceSkuInner object itself.
+ */
+ public AzureResourceSkuInner withSku(AzureSkuInner sku) {
+ this.sku = sku;
+ return this;
+ }
+
+ /**
+ * Get the number of instances of the cluster.
+ *
+ * @return the capacity value
+ */
+ public AzureCapacity capacity() {
+ return this.capacity;
+ }
+
+ /**
+ * Set the number of instances of the cluster.
+ *
+ * @param capacity the capacity value to set
+ * @return the AzureResourceSkuInner object itself.
+ */
+ public AzureResourceSkuInner withCapacity(AzureCapacity capacity) {
+ this.capacity = capacity;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/AzureSkuImpl.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/AzureSkuImpl.java
new file mode 100644
index 000000000000..f790f257ac7a
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/AzureSkuImpl.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.v2019_01_21.implementation;
+
+import com.microsoft.azure.management.kusto.v2019_01_21.AzureSku;
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.kusto.v2019_01_21.AzureSkuName;
+import com.microsoft.azure.management.kusto.v2019_01_21.AzureSkuTier;
+
+class AzureSkuImpl extends WrapperImpl implements AzureSku {
+ private final KustoManager manager;
+ AzureSkuImpl(AzureSkuInner inner, KustoManager manager) {
+ super(inner);
+ this.manager = manager;
+ }
+
+ @Override
+ public KustoManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public Integer capacity() {
+ return this.inner().capacity();
+ }
+
+ @Override
+ public AzureSkuName name() {
+ return this.inner().name();
+ }
+
+ @Override
+ public AzureSkuTier tier() {
+ return this.inner().tier();
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/AzureSkuInner.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/AzureSkuInner.java
new file mode 100644
index 000000000000..b5c5bc624709
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/AzureSkuInner.java
@@ -0,0 +1,101 @@
+/**
+ * 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.v2019_01_21.implementation;
+
+import com.microsoft.azure.management.kusto.v2019_01_21.AzureSkuName;
+import com.microsoft.azure.management.kusto.v2019_01_21.AzureSkuTier;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Azure SKU definition.
+ */
+public class AzureSkuInner {
+ /**
+ * 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'.
+ */
+ @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'.
+ *
+ * @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'.
+ *
+ * @param name the name value to set
+ * @return the AzureSkuInner object itself.
+ */
+ public AzureSkuInner 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 AzureSkuInner object itself.
+ */
+ public AzureSkuInner 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 AzureSkuInner object itself.
+ */
+ public AzureSkuInner withTier(AzureSkuTier tier) {
+ this.tier = tier;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/CheckNameResultImpl.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/CheckNameResultImpl.java
new file mode 100644
index 000000000000..cb2eae7f1aa5
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/CheckNameResultImpl.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.v2019_01_21.implementation;
+
+import com.microsoft.azure.management.kusto.v2019_01_21.CheckNameResult;
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.kusto.v2019_01_21.Reason;
+
+class CheckNameResultImpl extends WrapperImpl implements CheckNameResult {
+ private final KustoManager manager;
+ CheckNameResultImpl(CheckNameResultInner inner, KustoManager manager) {
+ super(inner);
+ this.manager = manager;
+ }
+
+ @Override
+ public KustoManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public String message() {
+ return this.inner().message();
+ }
+
+ @Override
+ public String name() {
+ return this.inner().name();
+ }
+
+ @Override
+ public Boolean nameAvailable() {
+ return this.inner().nameAvailable();
+ }
+
+ @Override
+ public Reason reason() {
+ return this.inner().reason();
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/CheckNameResultInner.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/CheckNameResultInner.java
new file mode 100644
index 000000000000..108473cc93fd
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/CheckNameResultInner.java
@@ -0,0 +1,124 @@
+/**
+ * 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.v2019_01_21.implementation;
+
+import com.microsoft.azure.management.kusto.v2019_01_21.Reason;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The result returned from a check name availability request.
+ */
+public class CheckNameResultInner {
+ /**
+ * Specifies a Boolean value that indicates if the name is available.
+ */
+ @JsonProperty(value = "nameAvailable")
+ private Boolean nameAvailable;
+
+ /**
+ * The name that was checked.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Message indicating an unavailable name due to a conflict, or a
+ * description of the naming rules that are violated.
+ */
+ @JsonProperty(value = "message")
+ private String message;
+
+ /**
+ * Message providing the reason why the given name is invalid. Possible
+ * values include: 'Invalid', 'AlreadyExists'.
+ */
+ @JsonProperty(value = "reason")
+ private Reason reason;
+
+ /**
+ * Get specifies a Boolean value that indicates if the name is available.
+ *
+ * @return the nameAvailable value
+ */
+ public Boolean nameAvailable() {
+ return this.nameAvailable;
+ }
+
+ /**
+ * Set specifies a Boolean value that indicates if the name is available.
+ *
+ * @param nameAvailable the nameAvailable value to set
+ * @return the CheckNameResultInner object itself.
+ */
+ public CheckNameResultInner withNameAvailable(Boolean nameAvailable) {
+ this.nameAvailable = nameAvailable;
+ return this;
+ }
+
+ /**
+ * Get the name that was checked.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name that was checked.
+ *
+ * @param name the name value to set
+ * @return the CheckNameResultInner object itself.
+ */
+ public CheckNameResultInner withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get message indicating an unavailable name due to a conflict, or a description of the naming rules that are violated.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+ /**
+ * Set message indicating an unavailable name due to a conflict, or a description of the naming rules that are violated.
+ *
+ * @param message the message value to set
+ * @return the CheckNameResultInner object itself.
+ */
+ public CheckNameResultInner withMessage(String message) {
+ this.message = message;
+ return this;
+ }
+
+ /**
+ * Get message providing the reason why the given name is invalid. Possible values include: 'Invalid', 'AlreadyExists'.
+ *
+ * @return the reason value
+ */
+ public Reason reason() {
+ return this.reason;
+ }
+
+ /**
+ * Set message providing the reason why the given name is invalid. Possible values include: 'Invalid', 'AlreadyExists'.
+ *
+ * @param reason the reason value to set
+ * @return the CheckNameResultInner object itself.
+ */
+ public CheckNameResultInner withReason(Reason reason) {
+ this.reason = reason;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/ClusterImpl.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/ClusterImpl.java
new file mode 100644
index 000000000000..5d324029972d
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/ClusterImpl.java
@@ -0,0 +1,127 @@
+/**
+ * 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.v2019_01_21.implementation;
+
+import com.microsoft.azure.arm.resources.models.implementation.GroupableResourceCoreImpl;
+import com.microsoft.azure.management.kusto.v2019_01_21.Cluster;
+import rx.Observable;
+import com.microsoft.azure.management.kusto.v2019_01_21.ClusterUpdate;
+import java.util.List;
+import com.microsoft.azure.management.kusto.v2019_01_21.State;
+import com.microsoft.azure.management.kusto.v2019_01_21.ProvisioningState;
+import com.microsoft.azure.management.kusto.v2019_01_21.TrustedExternalTenant;
+import com.microsoft.azure.management.kusto.v2019_01_21.AzureSku;
+import rx.functions.Func1;
+
+class ClusterImpl extends GroupableResourceCoreImpl implements Cluster, Cluster.Definition, Cluster.Update {
+ private ClusterUpdate updateParameter;
+ ClusterImpl(String name, ClusterInner inner, KustoManager manager) {
+ super(name, inner, manager);
+ this.updateParameter = new ClusterUpdate();
+ }
+
+ @Override
+ public Observable createResourceAsync() {
+ ClustersInner client = this.manager().inner().clusters();
+ return client.createOrUpdateAsync(this.resourceGroupName(), this.name(), this.inner())
+ .map(new Func1() {
+ @Override
+ public ClusterInner call(ClusterInner resource) {
+ resetCreateUpdateParameters();
+ return resource;
+ }
+ })
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ public Observable updateResourceAsync() {
+ ClustersInner client = this.manager().inner().clusters();
+ return client.updateAsync(this.resourceGroupName(), this.name(), this.updateParameter)
+ .map(new Func1() {
+ @Override
+ public ClusterInner call(ClusterInner resource) {
+ resetCreateUpdateParameters();
+ return resource;
+ }
+ })
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ protected Observable getInnerAsync() {
+ ClustersInner client = this.manager().inner().clusters();
+ return client.getByResourceGroupAsync(this.resourceGroupName(), this.name());
+ }
+
+ @Override
+ public boolean isInCreateMode() {
+ return this.inner().id() == null;
+ }
+
+ private void resetCreateUpdateParameters() {
+ this.updateParameter = new ClusterUpdate();
+ }
+
+ @Override
+ public String dataIngestionUri() {
+ return this.inner().dataIngestionUri();
+ }
+
+ @Override
+ public ProvisioningState provisioningState() {
+ return this.inner().provisioningState();
+ }
+
+ @Override
+ public AzureSku sku() {
+ AzureSkuInner inner = this.inner().sku();
+ if (inner != null) {
+ return new AzureSkuImpl(inner, manager());
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ public State state() {
+ return this.inner().state();
+ }
+
+ @Override
+ public List trustedExternalTenants() {
+ return this.inner().trustedExternalTenants();
+ }
+
+ @Override
+ public String uri() {
+ return this.inner().uri();
+ }
+
+ @Override
+ public ClusterImpl withSku(AzureSkuInner sku) {
+ if (isInCreateMode()) {
+ this.inner().withSku(sku);
+ } else {
+ this.updateParameter.withSku(sku);
+ }
+ return this;
+ }
+
+ @Override
+ public ClusterImpl withTrustedExternalTenants(List trustedExternalTenants) {
+ if (isInCreateMode()) {
+ this.inner().withTrustedExternalTenants(trustedExternalTenants);
+ } else {
+ this.updateParameter.withTrustedExternalTenants(trustedExternalTenants);
+ }
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/ClusterInner.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/ClusterInner.java
new file mode 100644
index 000000000000..ad0d0b14ad98
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/ClusterInner.java
@@ -0,0 +1,139 @@
+/**
+ * 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.v2019_01_21.implementation;
+
+import com.microsoft.azure.management.kusto.v2019_01_21.State;
+import com.microsoft.azure.management.kusto.v2019_01_21.ProvisioningState;
+import java.util.List;
+import com.microsoft.azure.management.kusto.v2019_01_21.TrustedExternalTenant;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.Resource;
+
+/**
+ * Class representing a Kusto cluster.
+ */
+@JsonFlatten
+public class ClusterInner extends Resource {
+ /**
+ * The SKU of the cluster.
+ */
+ @JsonProperty(value = "sku", required = true)
+ private AzureSkuInner sku;
+
+ /**
+ * 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'.
+ */
+ @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 cluster's external tenants.
+ */
+ @JsonProperty(value = "properties.trustedExternalTenants")
+ private List trustedExternalTenants;
+
+ /**
+ * Get the SKU of the cluster.
+ *
+ * @return the sku value
+ */
+ public AzureSkuInner sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set the SKU of the cluster.
+ *
+ * @param sku the sku value to set
+ * @return the ClusterInner object itself.
+ */
+ public ClusterInner withSku(AzureSkuInner sku) {
+ this.sku = sku;
+ 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'.
+ *
+ * @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 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 ClusterInner object itself.
+ */
+ public ClusterInner withTrustedExternalTenants(List trustedExternalTenants) {
+ this.trustedExternalTenants = trustedExternalTenants;
+ return this;
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/ClustersImpl.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/ClustersImpl.java
new file mode 100644
index 000000000000..bbe052ebaf87
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/ClustersImpl.java
@@ -0,0 +1,206 @@
+/**
+ * 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.
+ * def
+ */
+
+package com.microsoft.azure.management.kusto.v2019_01_21.implementation;
+
+import com.microsoft.azure.arm.resources.collection.implementation.GroupableResourcesCoreImpl;
+import com.microsoft.azure.management.kusto.v2019_01_21.Clusters;
+import com.microsoft.azure.management.kusto.v2019_01_21.Cluster;
+import rx.Observable;
+import rx.Completable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import com.microsoft.azure.arm.resources.ResourceUtilsCore;
+import com.microsoft.azure.arm.utils.RXMapper;
+import rx.functions.Func1;
+import com.microsoft.azure.PagedList;
+import com.microsoft.azure.Page;
+import java.util.List;
+import com.microsoft.azure.management.kusto.v2019_01_21.CheckNameResult;
+import com.microsoft.azure.management.kusto.v2019_01_21.AzureResourceSku;
+import com.microsoft.azure.management.kusto.v2019_01_21.AzureSku;
+
+class ClustersImpl extends GroupableResourcesCoreImpl implements Clusters {
+ protected ClustersImpl(KustoManager manager) {
+ super(manager.inner().clusters(), manager);
+ }
+
+ @Override
+ protected Observable getInnerAsync(String resourceGroupName, String name) {
+ ClustersInner client = this.inner();
+ return client.getByResourceGroupAsync(resourceGroupName, name);
+ }
+
+ @Override
+ protected Completable deleteInnerAsync(String resourceGroupName, String name) {
+ ClustersInner client = this.inner();
+ return client.deleteAsync(resourceGroupName, name).toCompletable();
+ }
+
+ @Override
+ public Observable deleteByIdsAsync(Collection ids) {
+ if (ids == null || ids.isEmpty()) {
+ return Observable.empty();
+ }
+ Collection> observables = new ArrayList<>();
+ for (String id : ids) {
+ final String resourceGroupName = ResourceUtilsCore.groupFromResourceId(id);
+ final String name = ResourceUtilsCore.nameFromResourceId(id);
+ Observable o = RXMapper.map(this.inner().deleteAsync(resourceGroupName, name), id);
+ observables.add(o);
+ }
+ return Observable.mergeDelayError(observables);
+ }
+
+ @Override
+ public Observable deleteByIdsAsync(String...ids) {
+ return this.deleteByIdsAsync(new ArrayList(Arrays.asList(ids)));
+ }
+
+ @Override
+ public void deleteByIds(Collection ids) {
+ if (ids != null && !ids.isEmpty()) {
+ this.deleteByIdsAsync(ids).toBlocking().last();
+ }
+ }
+
+ @Override
+ public void deleteByIds(String...ids) {
+ this.deleteByIds(new ArrayList(Arrays.asList(ids)));
+ }
+
+ @Override
+ public PagedList listByResourceGroup(String resourceGroupName) {
+ ClustersInner client = this.inner();
+ return this.wrapList(client.listByResourceGroup(resourceGroupName));
+ }
+
+ @Override
+ public Observable listByResourceGroupAsync(String resourceGroupName) {
+ ClustersInner client = this.inner();
+ return client.listByResourceGroupAsync(resourceGroupName)
+ .flatMap(new Func1, Observable>() {
+ @Override
+ public Observable call(Page innerPage) {
+ return Observable.from(innerPage.items());
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public Cluster call(ClusterInner inner) {
+ return wrapModel(inner);
+ }
+ });
+ }
+
+ @Override
+ public PagedList list() {
+ ClustersInner client = this.inner();
+ return this.wrapList(client.list());
+ }
+
+ @Override
+ public Observable listAsync() {
+ ClustersInner client = this.inner();
+ return client.listAsync()
+ .flatMap(new Func1, Observable>() {
+ @Override
+ public Observable call(List innerList) {
+ return Observable.from(innerList);
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public Cluster call(ClusterInner inner) {
+ return wrapModel(inner);
+ }
+ });
+ }
+
+ @Override
+ public ClusterImpl define(String name) {
+ return wrapModel(name);
+ }
+
+ @Override
+ public Completable stopAsync(String resourceGroupName, String clusterName) {
+ ClustersInner client = this.inner();
+ return client.stopAsync(resourceGroupName, clusterName).toCompletable();
+ }
+
+ @Override
+ public Completable startAsync(String resourceGroupName, String clusterName) {
+ ClustersInner client = this.inner();
+ return client.startAsync(resourceGroupName, clusterName).toCompletable();
+ }
+
+ @Override
+ protected ClusterImpl wrapModel(ClusterInner inner) {
+ return new ClusterImpl(inner.name(), inner, manager());
+ }
+
+ @Override
+ protected ClusterImpl wrapModel(String name) {
+ return new ClusterImpl(name, new ClusterInner(), this.manager());
+ }
+
+ private AzureResourceSkuImpl wrapAzureResourceSkuModel(AzureResourceSkuInner inner) {
+ return new AzureResourceSkuImpl(inner, manager());
+ }
+
+ @Override
+ public Observable checkNameAvailabilityAsync(String location, String name) {
+ ClustersInner client = this.inner();
+ return client.checkNameAvailabilityAsync(location, name)
+ .map(new Func1() {
+ @Override
+ public CheckNameResult call(CheckNameResultInner inner) {
+ return new CheckNameResultImpl(inner, manager());
+ }
+ });
+ }
+
+ @Override
+ public Observable listSkusByResourceAsync(String resourceGroupName, String clusterName) {
+ ClustersInner client = this.inner();
+ return client.listSkusByResourceAsync(resourceGroupName, clusterName)
+ .flatMap(new Func1, Observable>() {
+ @Override
+ public Observable call(List innerList) {
+ return Observable.from(innerList);
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public AzureResourceSku call(AzureResourceSkuInner inner) {
+ return wrapAzureResourceSkuModel(inner);
+ }
+ });
+ }
+
+ @Override
+ public Observable listSkusAsync() {
+ ClustersInner client = this.inner();
+ return client.listSkusAsync()
+ .flatMap(new Func1, Observable>() {
+ @Override
+ public Observable call(List innerList) {
+ return Observable.from(innerList);
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public AzureSku call(AzureSkuInner inner) {
+ return new AzureSkuImpl(inner, manager());
+ }
+ });
+ }
+
+}
diff --git a/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/ClustersInner.java b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/ClustersInner.java
new file mode 100644
index 000000000000..c9110183d7dc
--- /dev/null
+++ b/sdk/kusto/mgmt-v2019_01_21/src/main/java/com/microsoft/azure/management/kusto/v2019_01_21/implementation/ClustersInner.java
@@ -0,0 +1,1448 @@
+/**
+ * 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.v2019_01_21.implementation;
+
+import com.microsoft.azure.arm.collection.InnerSupportsGet;
+import com.microsoft.azure.arm.collection.InnerSupportsDelete;
+import com.microsoft.azure.arm.collection.InnerSupportsListing;
+import retrofit2.Retrofit;
+import com.google.common.reflect.TypeToken;
+import com.microsoft.azure.CloudException;
+import com.microsoft.azure.management.kusto.v2019_01_21.ClusterCheckNameRequest;
+import com.microsoft.azure.management.kusto.v2019_01_21.ClusterUpdate;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.PagedList;
+import com.microsoft.rest.ServiceCallback;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import com.microsoft.rest.Validator;
+import java.io.IOException;
+import java.util.List;
+import okhttp3.ResponseBody;
+import retrofit2.http.Body;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.HTTP;
+import retrofit2.http.PATCH;
+import retrofit2.http.Path;
+import retrofit2.http.POST;
+import retrofit2.http.PUT;
+import retrofit2.http.Query;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in Clusters.
+ */
+public class ClustersInner implements InnerSupportsGet, InnerSupportsDelete, InnerSupportsListing {
+ /** The Retrofit service to perform REST calls. */
+ private ClustersService service;
+ /** The service client containing this operation class. */
+ private KustoManagementClientImpl client;
+
+ /**
+ * Initializes an instance of ClustersInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public ClustersInner(Retrofit retrofit, KustoManagementClientImpl client) {
+ this.service = retrofit.create(ClustersService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for Clusters to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface ClustersService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.kusto.v2019_01_21.Clusters getByResourceGroup" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}")
+ Observable> getByResourceGroup(@Path("resourceGroupName") String resourceGroupName, @Path("clusterName") String clusterName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.kusto.v2019_01_21.Clusters createOrUpdate" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}")
+ Observable> createOrUpdate(@Path("resourceGroupName") String resourceGroupName, @Path("clusterName") String clusterName, @Path("subscriptionId") String subscriptionId, @Body ClusterInner parameters, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.kusto.v2019_01_21.Clusters beginCreateOrUpdate" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}")
+ Observable> beginCreateOrUpdate(@Path("resourceGroupName") String resourceGroupName, @Path("clusterName") String clusterName, @Path("subscriptionId") String subscriptionId, @Body ClusterInner parameters, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.kusto.v2019_01_21.Clusters update" })
+ @PATCH("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}")
+ Observable> update(@Path("resourceGroupName") String resourceGroupName, @Path("clusterName") String clusterName, @Path("subscriptionId") String subscriptionId, @Body ClusterUpdate parameters, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.kusto.v2019_01_21.Clusters beginUpdate" })
+ @PATCH("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}")
+ Observable> beginUpdate(@Path("resourceGroupName") String resourceGroupName, @Path("clusterName") String clusterName, @Path("subscriptionId") String subscriptionId, @Body ClusterUpdate parameters, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.kusto.v2019_01_21.Clusters delete" })
+ @HTTP(path = "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}", method = "DELETE", hasBody = true)
+ Observable> delete(@Path("resourceGroupName") String resourceGroupName, @Path("clusterName") String clusterName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.kusto.v2019_01_21.Clusters beginDelete" })
+ @HTTP(path = "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}", method = "DELETE", hasBody = true)
+ Observable> beginDelete(@Path("resourceGroupName") String resourceGroupName, @Path("clusterName") String clusterName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.kusto.v2019_01_21.Clusters stop" })
+ @POST("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/stop")
+ Observable> stop(@Path("resourceGroupName") String resourceGroupName, @Path("clusterName") String clusterName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.kusto.v2019_01_21.Clusters beginStop" })
+ @POST("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/stop")
+ Observable> beginStop(@Path("resourceGroupName") String resourceGroupName, @Path("clusterName") String clusterName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.kusto.v2019_01_21.Clusters start" })
+ @POST("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/start")
+ Observable> start(@Path("resourceGroupName") String resourceGroupName, @Path("clusterName") String clusterName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.kusto.v2019_01_21.Clusters beginStart" })
+ @POST("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/start")
+ Observable> beginStart(@Path("resourceGroupName") String resourceGroupName, @Path("clusterName") String clusterName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.kusto.v2019_01_21.Clusters listByResourceGroup" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters")
+ Observable> listByResourceGroup(@Path("resourceGroupName") String resourceGroupName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.kusto.v2019_01_21.Clusters list" })
+ @GET("subscriptions/{subscriptionId}/providers/Microsoft.Kusto/clusters")
+ Observable> list(@Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.kusto.v2019_01_21.Clusters listSkus" })
+ @GET("subscriptions/{subscriptionId}/providers/Microsoft.Kusto/skus")
+ Observable> listSkus(@Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.kusto.v2019_01_21.Clusters checkNameAvailability" })
+ @POST("subscriptions/{subscriptionId}/providers/Microsoft.Kusto/locations/{location}/checkNameAvailability")
+ Observable> checkNameAvailability(@Path("subscriptionId") String subscriptionId, @Path("location") String location, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Body ClusterCheckNameRequest clusterName, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.kusto.v2019_01_21.Clusters listSkusByResource" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Kusto/clusters/{clusterName}/skus")
+ Observable> listSkusByResource(@Path("resourceGroupName") String resourceGroupName, @Path("clusterName") String clusterName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * Gets 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
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the ClusterInner object if successful.
+ */
+ public ClusterInner getByResourceGroup(String resourceGroupName, String clusterName) {
+ return getByResourceGroupWithServiceResponseAsync(resourceGroupName, clusterName).toBlocking().single().body();
+ }
+
+ /**
+ * Gets a Kusto cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture getByResourceGroupAsync(String resourceGroupName, String clusterName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(getByResourceGroupWithServiceResponseAsync(resourceGroupName, clusterName), serviceCallback);
+ }
+
+ /**
+ * Gets 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 to the ClusterInner object
+ */
+ public Observable getByResourceGroupAsync(String resourceGroupName, String clusterName) {
+ return getByResourceGroupWithServiceResponseAsync(resourceGroupName, clusterName).map(new Func1, ClusterInner>() {
+ @Override
+ public ClusterInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Gets 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 to the ClusterInner object
+ */
+ public Observable> getByResourceGroupWithServiceResponseAsync(String resourceGroupName, String clusterName) {
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (clusterName == null) {
+ throw new IllegalArgumentException("Parameter clusterName is required and cannot be null.");
+ }
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.getByResourceGroup(resourceGroupName, clusterName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = getByResourceGroupDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse getByResourceGroupDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * Create or update a Kusto cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param parameters The Kusto cluster parameters supplied to the CreateOrUpdate operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the ClusterInner object if successful.
+ */
+ public ClusterInner createOrUpdate(String resourceGroupName, String clusterName, ClusterInner parameters) {
+ return createOrUpdateWithServiceResponseAsync(resourceGroupName, clusterName, parameters).toBlocking().last().body();
+ }
+
+ /**
+ * Create or update a Kusto cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param parameters The Kusto cluster parameters supplied to the CreateOrUpdate operation.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture createOrUpdateAsync(String resourceGroupName, String clusterName, ClusterInner parameters, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(createOrUpdateWithServiceResponseAsync(resourceGroupName, clusterName, parameters), serviceCallback);
+ }
+
+ /**
+ * Create or update a Kusto cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param parameters The Kusto cluster parameters supplied to the CreateOrUpdate operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ public Observable createOrUpdateAsync(String resourceGroupName, String clusterName, ClusterInner parameters) {
+ return createOrUpdateWithServiceResponseAsync(resourceGroupName, clusterName, parameters).map(new Func1, ClusterInner>() {
+ @Override
+ public ClusterInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Create or update a Kusto cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param parameters The Kusto cluster parameters supplied to the CreateOrUpdate operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ public Observable> createOrUpdateWithServiceResponseAsync(String resourceGroupName, String clusterName, ClusterInner parameters) {
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (clusterName == null) {
+ throw new IllegalArgumentException("Parameter clusterName is required and cannot be null.");
+ }
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (parameters == null) {
+ throw new IllegalArgumentException("Parameter parameters is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ Validator.validate(parameters);
+ Observable> observable = service.createOrUpdate(resourceGroupName, clusterName, this.client.subscriptionId(), parameters, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
+ return client.getAzureClient().getPutOrPatchResultAsync(observable, new TypeToken() { }.getType());
+ }
+
+ /**
+ * Create or update a Kusto cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param parameters The Kusto cluster parameters supplied to the CreateOrUpdate operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the ClusterInner object if successful.
+ */
+ public ClusterInner beginCreateOrUpdate(String resourceGroupName, String clusterName, ClusterInner parameters) {
+ return beginCreateOrUpdateWithServiceResponseAsync(resourceGroupName, clusterName, parameters).toBlocking().single().body();
+ }
+
+ /**
+ * Create or update a Kusto cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param parameters The Kusto cluster parameters supplied to the CreateOrUpdate operation.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture beginCreateOrUpdateAsync(String resourceGroupName, String clusterName, ClusterInner parameters, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(beginCreateOrUpdateWithServiceResponseAsync(resourceGroupName, clusterName, parameters), serviceCallback);
+ }
+
+ /**
+ * Create or update a Kusto cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param parameters The Kusto cluster parameters supplied to the CreateOrUpdate operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ClusterInner object
+ */
+ public Observable beginCreateOrUpdateAsync(String resourceGroupName, String clusterName, ClusterInner parameters) {
+ return beginCreateOrUpdateWithServiceResponseAsync(resourceGroupName, clusterName, parameters).map(new Func1, ClusterInner>() {
+ @Override
+ public ClusterInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Create or update a Kusto cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param parameters The Kusto cluster parameters supplied to the CreateOrUpdate operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ClusterInner object
+ */
+ public Observable> beginCreateOrUpdateWithServiceResponseAsync(String resourceGroupName, String clusterName, ClusterInner parameters) {
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (clusterName == null) {
+ throw new IllegalArgumentException("Parameter clusterName is required and cannot be null.");
+ }
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (parameters == null) {
+ throw new IllegalArgumentException("Parameter parameters is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ Validator.validate(parameters);
+ return service.beginCreateOrUpdate(resourceGroupName, clusterName, this.client.subscriptionId(), parameters, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = beginCreateOrUpdateDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse beginCreateOrUpdateDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .register(201, new TypeToken() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * Update a Kusto cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param parameters The Kusto cluster parameters supplied to the Update operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the ClusterInner object if successful.
+ */
+ public ClusterInner update(String resourceGroupName, String clusterName, ClusterUpdate parameters) {
+ return updateWithServiceResponseAsync(resourceGroupName, clusterName, parameters).toBlocking().last().body();
+ }
+
+ /**
+ * Update a Kusto cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param parameters The Kusto cluster parameters supplied to the Update operation.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture updateAsync(String resourceGroupName, String clusterName, ClusterUpdate parameters, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(updateWithServiceResponseAsync(resourceGroupName, clusterName, parameters), serviceCallback);
+ }
+
+ /**
+ * Update a Kusto cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param parameters The Kusto cluster parameters supplied to the Update operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ public Observable updateAsync(String resourceGroupName, String clusterName, ClusterUpdate parameters) {
+ return updateWithServiceResponseAsync(resourceGroupName, clusterName, parameters).map(new Func1, ClusterInner>() {
+ @Override
+ public ClusterInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Update a Kusto cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param parameters The Kusto cluster parameters supplied to the Update operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ public Observable> updateWithServiceResponseAsync(String resourceGroupName, String clusterName, ClusterUpdate parameters) {
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (clusterName == null) {
+ throw new IllegalArgumentException("Parameter clusterName is required and cannot be null.");
+ }
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (parameters == null) {
+ throw new IllegalArgumentException("Parameter parameters is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ Validator.validate(parameters);
+ Observable> observable = service.update(resourceGroupName, clusterName, this.client.subscriptionId(), parameters, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
+ return client.getAzureClient().getPutOrPatchResultAsync(observable, new TypeToken() { }.getType());
+ }
+
+ /**
+ * Update a Kusto cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param parameters The Kusto cluster parameters supplied to the Update operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the ClusterInner object if successful.
+ */
+ public ClusterInner beginUpdate(String resourceGroupName, String clusterName, ClusterUpdate parameters) {
+ return beginUpdateWithServiceResponseAsync(resourceGroupName, clusterName, parameters).toBlocking().single().body();
+ }
+
+ /**
+ * Update a Kusto cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param parameters The Kusto cluster parameters supplied to the Update operation.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture beginUpdateAsync(String resourceGroupName, String clusterName, ClusterUpdate parameters, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(beginUpdateWithServiceResponseAsync(resourceGroupName, clusterName, parameters), serviceCallback);
+ }
+
+ /**
+ * Update a Kusto cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param parameters The Kusto cluster parameters supplied to the Update operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ClusterInner object
+ */
+ public Observable beginUpdateAsync(String resourceGroupName, String clusterName, ClusterUpdate parameters) {
+ return beginUpdateWithServiceResponseAsync(resourceGroupName, clusterName, parameters).map(new Func1, ClusterInner>() {
+ @Override
+ public ClusterInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Update a Kusto cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param parameters The Kusto cluster parameters supplied to the Update operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ClusterInner object
+ */
+ public Observable> beginUpdateWithServiceResponseAsync(String resourceGroupName, String clusterName, ClusterUpdate parameters) {
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (clusterName == null) {
+ throw new IllegalArgumentException("Parameter clusterName is required and cannot be null.");
+ }
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (parameters == null) {
+ throw new IllegalArgumentException("Parameter parameters is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ Validator.validate(parameters);
+ return service.beginUpdate(resourceGroupName, clusterName, this.client.subscriptionId(), parameters, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = beginUpdateDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse beginUpdateDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .register(201, new TypeToken() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * Deletes 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
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ */
+ public void delete(String resourceGroupName, String clusterName) {
+ deleteWithServiceResponseAsync(resourceGroupName, clusterName).toBlocking().last().body();
+ }
+
+ /**
+ * Deletes a Kusto cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture deleteAsync(String resourceGroupName, String clusterName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(deleteWithServiceResponseAsync(resourceGroupName, clusterName), serviceCallback);
+ }
+
+ /**
+ * Deletes 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
+ */
+ public Observable deleteAsync(String resourceGroupName, String clusterName) {
+ return deleteWithServiceResponseAsync(resourceGroupName, clusterName).map(new Func1, Void>() {
+ @Override
+ public Void call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Deletes 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
+ */
+ public Observable> deleteWithServiceResponseAsync(String resourceGroupName, String clusterName) {
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (clusterName == null) {
+ throw new IllegalArgumentException("Parameter clusterName is required and cannot be null.");
+ }
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ Observable> observable = service.delete(resourceGroupName, clusterName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
+ return client.getAzureClient().getPostOrDeleteResultAsync(observable, new TypeToken() { }.getType());
+ }
+
+ /**
+ * Deletes 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
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ */
+ public void beginDelete(String resourceGroupName, String clusterName) {
+ beginDeleteWithServiceResponseAsync(resourceGroupName, clusterName).toBlocking().single().body();
+ }
+
+ /**
+ * Deletes a Kusto cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture beginDeleteAsync(String resourceGroupName, String clusterName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(beginDeleteWithServiceResponseAsync(resourceGroupName, clusterName), serviceCallback);
+ }
+
+ /**
+ * Deletes 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 {@link ServiceResponse} object if successful.
+ */
+ public Observable beginDeleteAsync(String resourceGroupName, String clusterName) {
+ return beginDeleteWithServiceResponseAsync(resourceGroupName, clusterName).map(new Func1, Void>() {
+ @Override
+ public Void call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Deletes 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 {@link ServiceResponse} object if successful.
+ */
+ public Observable> beginDeleteWithServiceResponseAsync(String resourceGroupName, String clusterName) {
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (clusterName == null) {
+ throw new IllegalArgumentException("Parameter clusterName is required and cannot be null.");
+ }
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.beginDelete(resourceGroupName, clusterName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = beginDeleteDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse beginDeleteDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .register(202, new TypeToken() { }.getType())
+ .register(204, new TypeToken() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * 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
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ */
+ public void stop(String resourceGroupName, String clusterName) {
+ stopWithServiceResponseAsync(resourceGroupName, clusterName).toBlocking().last().body();
+ }
+
+ /**
+ * Stops a Kusto cluster.
+ *
+ * @param resourceGroupName The name of the resource group containing the Kusto cluster.
+ * @param clusterName The name of the Kusto cluster.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture stopAsync(String resourceGroupName, String clusterName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(stopWithServiceResponseAsync(resourceGroupName, clusterName), serviceCallback);
+ }
+
+ /**
+ * 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
+ */
+ public Observable