diff --git a/sql/resource-manager/v2014_04_01/pom.xml b/sql/resource-manager/v2014_04_01/pom.xml
new file mode 100644
index 000000000000..15ee9d56a144
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/pom.xml
@@ -0,0 +1,133 @@
+
+
+ 4.0.0
+ com.microsoft.azure.sql.v2014_04_01
+
+ com.microsoft.azure
+ azure-arm-parent
+ 0.0.2-beta
+ ../../../pom.xml
+
+ azure-mgmt-sql
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for Sql Management
+ This package contains Microsoft Sql Management SDK.
+ https://github.com/Azure/azure-libraries-for-java
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+ scm:git:https://github.com/Azure/azure-libraries-for-java
+ scm:git:git@github.com:Azure/azure-libraries-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
+
+
+
+
+
+ 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/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/AdvisorListResult.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/AdvisorListResult.java
new file mode 100644
index 000000000000..38e4be626512
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/AdvisorListResult.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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.SqlManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.AdvisorListResultInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.AdvisorInner;
+import java.util.List;
+
+/**
+ * Type representing AdvisorListResult.
+ */
+public interface AdvisorListResult extends HasInner, HasManager {
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/AdvisorStatus.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/AdvisorStatus.java
new file mode 100644
index 000000000000..de830b829b90
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/AdvisorStatus.java
@@ -0,0 +1,59 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for AdvisorStatus.
+ */
+public enum AdvisorStatus {
+ /** Enum value GA. */
+ GA("GA"),
+
+ /** Enum value PublicPreview. */
+ PUBLIC_PREVIEW("PublicPreview"),
+
+ /** Enum value LimitedPublicPreview. */
+ LIMITED_PUBLIC_PREVIEW("LimitedPublicPreview"),
+
+ /** Enum value PrivatePreview. */
+ PRIVATE_PREVIEW("PrivatePreview");
+
+ /** The actual serialized value for a AdvisorStatus instance. */
+ private String value;
+
+ AdvisorStatus(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a AdvisorStatus instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed AdvisorStatus object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static AdvisorStatus fromString(String value) {
+ AdvisorStatus[] items = AdvisorStatus.values();
+ for (AdvisorStatus item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/AuthenticationType.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/AuthenticationType.java
new file mode 100644
index 000000000000..4612cd8dbdcb
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/AuthenticationType.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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for AuthenticationType.
+ */
+public enum AuthenticationType {
+ /** Enum value SQL. */
+ SQL("SQL"),
+
+ /** Enum value ADPassword. */
+ ADPASSWORD("ADPassword");
+
+ /** The actual serialized value for a AuthenticationType instance. */
+ private String value;
+
+ AuthenticationType(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a AuthenticationType instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed AuthenticationType object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static AuthenticationType fromString(String value) {
+ AuthenticationType[] items = AuthenticationType.values();
+ for (AuthenticationType item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/AutoExecuteStatus.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/AutoExecuteStatus.java
new file mode 100644
index 000000000000..758100d774da
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/AutoExecuteStatus.java
@@ -0,0 +1,56 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for AutoExecuteStatus.
+ */
+public enum AutoExecuteStatus {
+ /** Enum value Enabled. */
+ ENABLED("Enabled"),
+
+ /** Enum value Disabled. */
+ DISABLED("Disabled"),
+
+ /** Enum value Default. */
+ DEFAULT("Default");
+
+ /** The actual serialized value for a AutoExecuteStatus instance. */
+ private String value;
+
+ AutoExecuteStatus(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a AutoExecuteStatus instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed AutoExecuteStatus object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static AutoExecuteStatus fromString(String value) {
+ AutoExecuteStatus[] items = AutoExecuteStatus.values();
+ for (AutoExecuteStatus item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/BackupLongTermRetentionPolicies.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/BackupLongTermRetentionPolicies.java
new file mode 100644
index 000000000000..3515ee27977e
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/BackupLongTermRetentionPolicies.java
@@ -0,0 +1,42 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Observable;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.BackupLongTermRetentionPoliciesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BackupLongTermRetentionPolicies.
+ */
+public interface BackupLongTermRetentionPolicies extends SupportsCreating, HasInner {
+ /**
+ * Returns a database backup long term retention policy.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param databaseName The name of the database.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serverName, String databaseName);
+
+ /**
+ * Returns a database backup long term retention policy.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param databaseName The name of the database.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByDatabaseAsync(String resourceGroupName, String serverName, String databaseName);
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/BackupLongTermRetentionPolicy.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/BackupLongTermRetentionPolicy.java
new file mode 100644
index 000000000000..c2c06c4ca834
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/BackupLongTermRetentionPolicy.java
@@ -0,0 +1,120 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.BackupLongTermRetentionPolicyInner;
+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.sql.v2014_04_01.implementation.SqlManager;
+
+/**
+ * Type representing BackupLongTermRetentionPolicy.
+ */
+public interface BackupLongTermRetentionPolicy 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 recoveryServicesBackupPolicyResourceId value.
+ */
+ String recoveryServicesBackupPolicyResourceId();
+
+ /**
+ * @return the state value.
+ */
+ BackupLongTermRetentionPolicyState state();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the BackupLongTermRetentionPolicy definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDatabasis, DefinitionStages.WithRecoveryServicesBackupPolicyResourceId, DefinitionStages.WithState, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of BackupLongTermRetentionPolicy definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a BackupLongTermRetentionPolicy definition.
+ */
+ interface Blank extends WithDatabasis {
+ }
+
+ /**
+ * The stage of the backuplongtermretentionpolicy definition allowing to specify Databasis.
+ */
+ interface WithDatabasis {
+ /**
+ * Specifies resourceGroupName, serverName, databaseName.
+ */
+ WithRecoveryServicesBackupPolicyResourceId withExistingDatabasis(String resourceGroupName, String serverName, String databaseName);
+ }
+
+ /**
+ * The stage of the backuplongtermretentionpolicy definition allowing to specify RecoveryServicesBackupPolicyResourceId.
+ */
+ interface WithRecoveryServicesBackupPolicyResourceId {
+ /**
+ * Specifies recoveryServicesBackupPolicyResourceId.
+ */
+ WithState withRecoveryServicesBackupPolicyResourceId(String recoveryServicesBackupPolicyResourceId);
+ }
+
+ /**
+ * The stage of the backuplongtermretentionpolicy definition allowing to specify State.
+ */
+ interface WithState {
+ /**
+ * Specifies state.
+ */
+ WithCreate withState(BackupLongTermRetentionPolicyState state);
+ }
+
+ /**
+ * 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 {
+ }
+ }
+ /**
+ * The template for a BackupLongTermRetentionPolicy update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable {
+ }
+
+ /**
+ * Grouping of BackupLongTermRetentionPolicy update stages.
+ */
+ interface UpdateStages {
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/BackupLongTermRetentionPolicyState.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/BackupLongTermRetentionPolicyState.java
new file mode 100644
index 000000000000..ab6a6c583943
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/BackupLongTermRetentionPolicyState.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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for BackupLongTermRetentionPolicyState.
+ */
+public enum BackupLongTermRetentionPolicyState {
+ /** Enum value Disabled. */
+ DISABLED("Disabled"),
+
+ /** Enum value Enabled. */
+ ENABLED("Enabled");
+
+ /** The actual serialized value for a BackupLongTermRetentionPolicyState instance. */
+ private String value;
+
+ BackupLongTermRetentionPolicyState(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a BackupLongTermRetentionPolicyState instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed BackupLongTermRetentionPolicyState object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static BackupLongTermRetentionPolicyState fromString(String value) {
+ BackupLongTermRetentionPolicyState[] items = BackupLongTermRetentionPolicyState.values();
+ for (BackupLongTermRetentionPolicyState item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/BackupLongTermRetentionVault.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/BackupLongTermRetentionVault.java
new file mode 100644
index 000000000000..0df184b3e6aa
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/BackupLongTermRetentionVault.java
@@ -0,0 +1,115 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.BackupLongTermRetentionVaultInner;
+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.sql.v2014_04_01.implementation.SqlManager;
+
+/**
+ * Type representing BackupLongTermRetentionVault.
+ */
+public interface BackupLongTermRetentionVault 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 recoveryServicesVaultResourceId value.
+ */
+ String recoveryServicesVaultResourceId();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the BackupLongTermRetentionVault definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithServer, DefinitionStages.WithRecoveryServicesVaultResourceId, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of BackupLongTermRetentionVault definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a BackupLongTermRetentionVault definition.
+ */
+ interface Blank extends WithServer {
+ }
+
+ /**
+ * The stage of the backuplongtermretentionvault definition allowing to specify Server.
+ */
+ interface WithServer {
+ /**
+ * Specifies resourceGroupName, serverName.
+ */
+ WithRecoveryServicesVaultResourceId withExistingServer(String resourceGroupName, String serverName);
+ }
+
+ /**
+ * The stage of the backuplongtermretentionvault definition allowing to specify RecoveryServicesVaultResourceId.
+ */
+ interface WithRecoveryServicesVaultResourceId {
+ /**
+ * Specifies recoveryServicesVaultResourceId.
+ */
+ WithCreate withRecoveryServicesVaultResourceId(String recoveryServicesVaultResourceId);
+ }
+
+ /**
+ * 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 {
+ }
+ }
+ /**
+ * The template for a BackupLongTermRetentionVault update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithRecoveryServicesVaultResourceId {
+ }
+
+ /**
+ * Grouping of BackupLongTermRetentionVault update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the backuplongtermretentionvault update allowing to specify RecoveryServicesVaultResourceId.
+ */
+ interface WithRecoveryServicesVaultResourceId {
+ /**
+ * Specifies recoveryServicesVaultResourceId.
+ */
+ Update withRecoveryServicesVaultResourceId(String recoveryServicesVaultResourceId);
+ }
+
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/BackupLongTermRetentionVaults.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/BackupLongTermRetentionVaults.java
new file mode 100644
index 000000000000..3db6a0d144e9
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/BackupLongTermRetentionVaults.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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Observable;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.BackupLongTermRetentionVaultsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing BackupLongTermRetentionVaults.
+ */
+public interface BackupLongTermRetentionVaults extends SupportsCreating, HasInner {
+ /**
+ * Gets a server backup long term retention vault.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serverName);
+
+ /**
+ * Gets server backup long term retention vaults in a server.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByServerAsync(String resourceGroupName, String serverName);
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/Capabilities.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/Capabilities.java
new file mode 100644
index 000000000000..5752a95b7281
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/Capabilities.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.sql.v2014_04_01;
+
+import rx.Observable;
+
+/**
+ * Type representing Capabilities.
+ */
+public interface Capabilities {
+ /**
+ * Gets the capabilities available for the specified location.
+ *
+ * @param locationId The location id whose capabilities are retrieved.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByLocationAsync(String locationId);
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/CapabilityStatus.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/CapabilityStatus.java
new file mode 100644
index 000000000000..befbe507cdb4
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/CapabilityStatus.java
@@ -0,0 +1,59 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for CapabilityStatus.
+ */
+public enum CapabilityStatus {
+ /** Enum value Visible. */
+ VISIBLE("Visible"),
+
+ /** Enum value Available. */
+ AVAILABLE("Available"),
+
+ /** Enum value Default. */
+ DEFAULT("Default"),
+
+ /** Enum value Disabled. */
+ DISABLED("Disabled");
+
+ /** The actual serialized value for a CapabilityStatus instance. */
+ private String value;
+
+ CapabilityStatus(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a CapabilityStatus instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed CapabilityStatus object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static CapabilityStatus fromString(String value) {
+ CapabilityStatus[] items = CapabilityStatus.values();
+ for (CapabilityStatus item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/CheckNameAvailabilityReason.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/CheckNameAvailabilityReason.java
new file mode 100644
index 000000000000..43ccfbe6df5d
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/CheckNameAvailabilityReason.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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for CheckNameAvailabilityReason.
+ */
+public enum CheckNameAvailabilityReason {
+ /** Enum value Invalid. */
+ INVALID("Invalid"),
+
+ /** Enum value AlreadyExists. */
+ ALREADY_EXISTS("AlreadyExists");
+
+ /** The actual serialized value for a CheckNameAvailabilityReason instance. */
+ private String value;
+
+ CheckNameAvailabilityReason(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a CheckNameAvailabilityReason instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed CheckNameAvailabilityReason object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static CheckNameAvailabilityReason fromString(String value) {
+ CheckNameAvailabilityReason[] items = CheckNameAvailabilityReason.values();
+ for (CheckNameAvailabilityReason item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/CheckNameAvailabilityRequest.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/CheckNameAvailabilityRequest.java
new file mode 100644
index 000000000000..b47c0b0d7f75
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/CheckNameAvailabilityRequest.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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A request to check whether the specified name for a resource is available.
+ */
+public class CheckNameAvailabilityRequest {
+ /**
+ * The name whose availability is to be checked.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * The type of resource that is used as the scope of the availability
+ * check.
+ */
+ @JsonProperty(value = "type", required = true)
+ private String type;
+
+ /**
+ * Creates an instance of CheckNameAvailabilityRequest class.
+ * @param name the name whose availability is to be checked.
+ */
+ public CheckNameAvailabilityRequest() {
+ type = "Microsoft.Sql/servers";
+ }
+
+ /**
+ * Get the name whose availability is to be checked.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name whose availability is to be checked.
+ *
+ * @param name the name value to set
+ * @return the CheckNameAvailabilityRequest object itself.
+ */
+ public CheckNameAvailabilityRequest withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the type of resource that is used as the scope of the availability check.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type of resource that is used as the scope of the availability check.
+ *
+ * @param type the type value to set
+ * @return the CheckNameAvailabilityRequest object itself.
+ */
+ public CheckNameAvailabilityRequest withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/CheckNameAvailabilityResponse.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/CheckNameAvailabilityResponse.java
new file mode 100644
index 000000000000..46f0b0f74233
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/CheckNameAvailabilityResponse.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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.SqlManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.CheckNameAvailabilityResponseInner;
+
+/**
+ * Type representing CheckNameAvailabilityResponse.
+ */
+public interface CheckNameAvailabilityResponse extends HasInner, HasManager {
+ /**
+ * @return the available value.
+ */
+ Boolean available();
+
+ /**
+ * @return the message value.
+ */
+ String message();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the reason value.
+ */
+ CheckNameAvailabilityReason reason();
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/CreateMode.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/CreateMode.java
new file mode 100644
index 000000000000..3228ed0aeb77
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/CreateMode.java
@@ -0,0 +1,59 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for CreateMode.
+ */
+public final class CreateMode extends ExpandableStringEnum {
+ /** Static value Copy for CreateMode. */
+ public static final CreateMode COPY = fromString("Copy");
+
+ /** Static value Default for CreateMode. */
+ public static final CreateMode DEFAULT = fromString("Default");
+
+ /** Static value NonReadableSecondary for CreateMode. */
+ public static final CreateMode NON_READABLE_SECONDARY = fromString("NonReadableSecondary");
+
+ /** Static value OnlineSecondary for CreateMode. */
+ public static final CreateMode ONLINE_SECONDARY = fromString("OnlineSecondary");
+
+ /** Static value PointInTimeRestore for CreateMode. */
+ public static final CreateMode POINT_IN_TIME_RESTORE = fromString("PointInTimeRestore");
+
+ /** Static value Recovery for CreateMode. */
+ public static final CreateMode RECOVERY = fromString("Recovery");
+
+ /** Static value Restore for CreateMode. */
+ public static final CreateMode RESTORE = fromString("Restore");
+
+ /** Static value RestoreLongTermRetentionBackup for CreateMode. */
+ public static final CreateMode RESTORE_LONG_TERM_RETENTION_BACKUP = fromString("RestoreLongTermRetentionBackup");
+
+ /**
+ * Creates or finds a CreateMode from its string representation.
+ * @param name a name to look for
+ * @return the corresponding CreateMode
+ */
+ @JsonCreator
+ public static CreateMode fromString(String name) {
+ return fromString(name, CreateMode.class);
+ }
+
+ /**
+ * @return known CreateMode values
+ */
+ public static Collection values() {
+ return values(CreateMode.class);
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DataMaskingFunction.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DataMaskingFunction.java
new file mode 100644
index 000000000000..e1641efcf178
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DataMaskingFunction.java
@@ -0,0 +1,65 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for DataMaskingFunction.
+ */
+public enum DataMaskingFunction {
+ /** Enum value Default. */
+ DEFAULT("Default"),
+
+ /** Enum value CCN. */
+ CCN("CCN"),
+
+ /** Enum value Email. */
+ EMAIL("Email"),
+
+ /** Enum value Number. */
+ NUMBER("Number"),
+
+ /** Enum value SSN. */
+ SSN("SSN"),
+
+ /** Enum value Text. */
+ TEXT("Text");
+
+ /** The actual serialized value for a DataMaskingFunction instance. */
+ private String value;
+
+ DataMaskingFunction(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a DataMaskingFunction instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed DataMaskingFunction object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static DataMaskingFunction fromString(String value) {
+ DataMaskingFunction[] items = DataMaskingFunction.values();
+ for (DataMaskingFunction item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DataMaskingPolicies.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DataMaskingPolicies.java
new file mode 100644
index 000000000000..b8b1c3ead1c7
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DataMaskingPolicies.java
@@ -0,0 +1,31 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Observable;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.DataMaskingPoliciesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing DataMaskingPolicies.
+ */
+public interface DataMaskingPolicies extends SupportsCreating, HasInner {
+ /**
+ * Gets a database data masking policy.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param databaseName The name of the database.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serverName, String databaseName);
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DataMaskingPolicy.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DataMaskingPolicy.java
new file mode 100644
index 000000000000..04dd86311a82
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DataMaskingPolicy.java
@@ -0,0 +1,145 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.DataMaskingPolicyInner;
+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.sql.v2014_04_01.implementation.SqlManager;
+
+/**
+ * Type representing DataMaskingPolicy.
+ */
+public interface DataMaskingPolicy extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the applicationPrincipals value.
+ */
+ String applicationPrincipals();
+
+ /**
+ * @return the dataMaskingState value.
+ */
+ DataMaskingState dataMaskingState();
+
+ /**
+ * @return the exemptPrincipals value.
+ */
+ String exemptPrincipals();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the kind value.
+ */
+ String kind();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the maskingLevel value.
+ */
+ String maskingLevel();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the DataMaskingPolicy definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDatabasis, DefinitionStages.WithDataMaskingState, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of DataMaskingPolicy definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a DataMaskingPolicy definition.
+ */
+ interface Blank extends WithDatabasis {
+ }
+
+ /**
+ * The stage of the datamaskingpolicy definition allowing to specify Databasis.
+ */
+ interface WithDatabasis {
+ /**
+ * Specifies resourceGroupName, serverName, databaseName.
+ */
+ WithDataMaskingState withExistingDatabasis(String resourceGroupName, String serverName, String databaseName);
+ }
+
+ /**
+ * The stage of the datamaskingpolicy definition allowing to specify DataMaskingState.
+ */
+ interface WithDataMaskingState {
+ /**
+ * Specifies dataMaskingState.
+ */
+ WithCreate withDataMaskingState(DataMaskingState dataMaskingState);
+ }
+
+ /**
+ * The stage of the datamaskingpolicy definition allowing to specify ExemptPrincipals.
+ */
+ interface WithExemptPrincipals {
+ /**
+ * Specifies exemptPrincipals.
+ */
+ WithCreate withExemptPrincipals(String exemptPrincipals);
+ }
+
+ /**
+ * 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.WithExemptPrincipals {
+ }
+ }
+ /**
+ * The template for a DataMaskingPolicy update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithExemptPrincipals {
+ }
+
+ /**
+ * Grouping of DataMaskingPolicy update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the datamaskingpolicy update allowing to specify ExemptPrincipals.
+ */
+ interface WithExemptPrincipals {
+ /**
+ * Specifies exemptPrincipals.
+ */
+ Update withExemptPrincipals(String exemptPrincipals);
+ }
+
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DataMaskingRule.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DataMaskingRule.java
new file mode 100644
index 000000000000..99f054565005
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DataMaskingRule.java
@@ -0,0 +1,334 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.DataMaskingRuleInner;
+import com.microsoft.azure.arm.model.Indexable;
+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.sql.v2014_04_01.implementation.SqlManager;
+
+/**
+ * Type representing DataMaskingRule.
+ */
+public interface DataMaskingRule extends HasInner, Indexable, Updatable, HasManager {
+ /**
+ * @return the aliasName value.
+ */
+ String aliasName();
+
+ /**
+ * @return the columnName value.
+ */
+ String columnName();
+
+ /**
+ * @return the dataMaskingRuleId value.
+ */
+ String dataMaskingRuleId();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the kind value.
+ */
+ String kind();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the maskingFunction value.
+ */
+ DataMaskingFunction maskingFunction();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the numberFrom value.
+ */
+ String numberFrom();
+
+ /**
+ * @return the numberTo value.
+ */
+ String numberTo();
+
+ /**
+ * @return the prefixSize value.
+ */
+ String prefixSize();
+
+ /**
+ * @return the replacementString value.
+ */
+ String replacementString();
+
+ /**
+ * @return the ruleState value.
+ */
+ DataMaskingRuleState ruleState();
+
+ /**
+ * @return the schemaName value.
+ */
+ String schemaName();
+
+ /**
+ * @return the suffixSize value.
+ */
+ String suffixSize();
+
+ /**
+ * @return the tableName value.
+ */
+ String tableName();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the DataMaskingRule definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDataMaskingPolicy, DefinitionStages.WithColumnName, DefinitionStages.WithMaskingFunction, DefinitionStages.WithSchemaName, DefinitionStages.WithTableName, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of DataMaskingRule definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a DataMaskingRule definition.
+ */
+ interface Blank extends WithDataMaskingPolicy {
+ }
+
+ /**
+ * The stage of the datamaskingrule definition allowing to specify DataMaskingPolicy.
+ */
+ interface WithDataMaskingPolicy {
+ /**
+ * Specifies resourceGroupName, serverName, databaseName.
+ */
+ WithColumnName withExistingDataMaskingPolicy(String resourceGroupName, String serverName, String databaseName);
+ }
+
+ /**
+ * The stage of the datamaskingrule definition allowing to specify ColumnName.
+ */
+ interface WithColumnName {
+ /**
+ * Specifies columnName.
+ */
+ WithMaskingFunction withColumnName(String columnName);
+ }
+
+ /**
+ * The stage of the datamaskingrule definition allowing to specify MaskingFunction.
+ */
+ interface WithMaskingFunction {
+ /**
+ * Specifies maskingFunction.
+ */
+ WithSchemaName withMaskingFunction(DataMaskingFunction maskingFunction);
+ }
+
+ /**
+ * The stage of the datamaskingrule definition allowing to specify SchemaName.
+ */
+ interface WithSchemaName {
+ /**
+ * Specifies schemaName.
+ */
+ WithTableName withSchemaName(String schemaName);
+ }
+
+ /**
+ * The stage of the datamaskingrule definition allowing to specify TableName.
+ */
+ interface WithTableName {
+ /**
+ * Specifies tableName.
+ */
+ WithCreate withTableName(String tableName);
+ }
+
+ /**
+ * The stage of the datamaskingrule definition allowing to specify AliasName.
+ */
+ interface WithAliasName {
+ /**
+ * Specifies aliasName.
+ */
+ WithCreate withAliasName(String aliasName);
+ }
+
+ /**
+ * The stage of the datamaskingrule definition allowing to specify NumberFrom.
+ */
+ interface WithNumberFrom {
+ /**
+ * Specifies numberFrom.
+ */
+ WithCreate withNumberFrom(String numberFrom);
+ }
+
+ /**
+ * The stage of the datamaskingrule definition allowing to specify NumberTo.
+ */
+ interface WithNumberTo {
+ /**
+ * Specifies numberTo.
+ */
+ WithCreate withNumberTo(String numberTo);
+ }
+
+ /**
+ * The stage of the datamaskingrule definition allowing to specify PrefixSize.
+ */
+ interface WithPrefixSize {
+ /**
+ * Specifies prefixSize.
+ */
+ WithCreate withPrefixSize(String prefixSize);
+ }
+
+ /**
+ * The stage of the datamaskingrule definition allowing to specify ReplacementString.
+ */
+ interface WithReplacementString {
+ /**
+ * Specifies replacementString.
+ */
+ WithCreate withReplacementString(String replacementString);
+ }
+
+ /**
+ * The stage of the datamaskingrule definition allowing to specify RuleState.
+ */
+ interface WithRuleState {
+ /**
+ * Specifies ruleState.
+ */
+ WithCreate withRuleState(DataMaskingRuleState ruleState);
+ }
+
+ /**
+ * The stage of the datamaskingrule definition allowing to specify SuffixSize.
+ */
+ interface WithSuffixSize {
+ /**
+ * Specifies suffixSize.
+ */
+ WithCreate withSuffixSize(String suffixSize);
+ }
+
+ /**
+ * 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.WithAliasName, DefinitionStages.WithNumberFrom, DefinitionStages.WithNumberTo, DefinitionStages.WithPrefixSize, DefinitionStages.WithReplacementString, DefinitionStages.WithRuleState, DefinitionStages.WithSuffixSize {
+ }
+ }
+ /**
+ * The template for a DataMaskingRule update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithAliasName, UpdateStages.WithNumberFrom, UpdateStages.WithNumberTo, UpdateStages.WithPrefixSize, UpdateStages.WithReplacementString, UpdateStages.WithRuleState, UpdateStages.WithSuffixSize {
+ }
+
+ /**
+ * Grouping of DataMaskingRule update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the datamaskingrule update allowing to specify AliasName.
+ */
+ interface WithAliasName {
+ /**
+ * Specifies aliasName.
+ */
+ Update withAliasName(String aliasName);
+ }
+
+ /**
+ * The stage of the datamaskingrule update allowing to specify NumberFrom.
+ */
+ interface WithNumberFrom {
+ /**
+ * Specifies numberFrom.
+ */
+ Update withNumberFrom(String numberFrom);
+ }
+
+ /**
+ * The stage of the datamaskingrule update allowing to specify NumberTo.
+ */
+ interface WithNumberTo {
+ /**
+ * Specifies numberTo.
+ */
+ Update withNumberTo(String numberTo);
+ }
+
+ /**
+ * The stage of the datamaskingrule update allowing to specify PrefixSize.
+ */
+ interface WithPrefixSize {
+ /**
+ * Specifies prefixSize.
+ */
+ Update withPrefixSize(String prefixSize);
+ }
+
+ /**
+ * The stage of the datamaskingrule update allowing to specify ReplacementString.
+ */
+ interface WithReplacementString {
+ /**
+ * Specifies replacementString.
+ */
+ Update withReplacementString(String replacementString);
+ }
+
+ /**
+ * The stage of the datamaskingrule update allowing to specify RuleState.
+ */
+ interface WithRuleState {
+ /**
+ * Specifies ruleState.
+ */
+ Update withRuleState(DataMaskingRuleState ruleState);
+ }
+
+ /**
+ * The stage of the datamaskingrule update allowing to specify SuffixSize.
+ */
+ interface WithSuffixSize {
+ /**
+ * Specifies suffixSize.
+ */
+ Update withSuffixSize(String suffixSize);
+ }
+
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DataMaskingRuleState.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DataMaskingRuleState.java
new file mode 100644
index 000000000000..22bc925c49e9
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DataMaskingRuleState.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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for DataMaskingRuleState.
+ */
+public enum DataMaskingRuleState {
+ /** Enum value Disabled. */
+ DISABLED("Disabled"),
+
+ /** Enum value Enabled. */
+ ENABLED("Enabled");
+
+ /** The actual serialized value for a DataMaskingRuleState instance. */
+ private String value;
+
+ DataMaskingRuleState(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a DataMaskingRuleState instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed DataMaskingRuleState object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static DataMaskingRuleState fromString(String value) {
+ DataMaskingRuleState[] items = DataMaskingRuleState.values();
+ for (DataMaskingRuleState item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DataMaskingRules.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DataMaskingRules.java
new file mode 100644
index 000000000000..71eb8778040a
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DataMaskingRules.java
@@ -0,0 +1,31 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Observable;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.DataMaskingRulesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing DataMaskingRules.
+ */
+public interface DataMaskingRules extends SupportsCreating, HasInner {
+ /**
+ * Gets a list of database data masking rules.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param databaseName The name of the database.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByDatabaseAsync(String resourceGroupName, String serverName, String databaseName);
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DataMaskingState.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DataMaskingState.java
new file mode 100644
index 000000000000..7f53bc421d4f
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DataMaskingState.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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for DataMaskingState.
+ */
+public enum DataMaskingState {
+ /** Enum value Disabled. */
+ DISABLED("Disabled"),
+
+ /** Enum value Enabled. */
+ ENABLED("Enabled");
+
+ /** The actual serialized value for a DataMaskingState instance. */
+ private String value;
+
+ DataMaskingState(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a DataMaskingState instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed DataMaskingState object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static DataMaskingState fromString(String value) {
+ DataMaskingState[] items = DataMaskingState.values();
+ for (DataMaskingState item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/Database.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/Database.java
new file mode 100644
index 000000000000..cbc104d416e0
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/Database.java
@@ -0,0 +1,546 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.sql.v2014_04_01.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.sql.v2014_04_01.implementation.SqlManager;
+import java.util.Map;
+import org.joda.time.DateTime;
+import java.util.UUID;
+import java.util.List;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.ServiceTierAdvisorInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.TransparentDataEncryptionInner;
+
+/**
+ * Type representing Database.
+ */
+public interface Database extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the collation value.
+ */
+ String collation();
+
+ /**
+ * @return the containmentState value.
+ */
+ Long containmentState();
+
+ /**
+ * @return the createMode value.
+ */
+ CreateMode createMode();
+
+ /**
+ * @return the creationDate value.
+ */
+ DateTime creationDate();
+
+ /**
+ * @return the currentServiceObjectiveId value.
+ */
+ UUID currentServiceObjectiveId();
+
+ /**
+ * @return the databaseId value.
+ */
+ UUID databaseId();
+
+ /**
+ * @return the defaultSecondaryLocation value.
+ */
+ String defaultSecondaryLocation();
+
+ /**
+ * @return the earliestRestoreDate value.
+ */
+ DateTime earliestRestoreDate();
+
+ /**
+ * @return the edition value.
+ */
+ DatabaseEdition edition();
+
+ /**
+ * @return the elasticPoolName value.
+ */
+ String elasticPoolName();
+
+ /**
+ * @return the failoverGroupId value.
+ */
+ String failoverGroupId();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the kind value.
+ */
+ String kind();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the maxSizeBytes value.
+ */
+ String maxSizeBytes();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the readScale value.
+ */
+ ReadScale readScale();
+
+ /**
+ * @return the recommendedIndex value.
+ */
+ List recommendedIndex();
+
+ /**
+ * @return the recoveryServicesRecoveryPointResourceId value.
+ */
+ String recoveryServicesRecoveryPointResourceId();
+
+ /**
+ * @return the requestedServiceObjectiveId value.
+ */
+ UUID requestedServiceObjectiveId();
+
+ /**
+ * @return the requestedServiceObjectiveName value.
+ */
+ ServiceObjectiveName requestedServiceObjectiveName();
+
+ /**
+ * @return the restorePointInTime value.
+ */
+ DateTime restorePointInTime();
+
+ /**
+ * @return the sampleName value.
+ */
+ SampleName sampleName();
+
+ /**
+ * @return the serviceLevelObjective value.
+ */
+ ServiceObjectiveName serviceLevelObjective();
+
+ /**
+ * @return the serviceTierAdvisors value.
+ */
+ List serviceTierAdvisors();
+
+ /**
+ * @return the sourceDatabaseDeletionDate value.
+ */
+ DateTime sourceDatabaseDeletionDate();
+
+ /**
+ * @return the sourceDatabaseId value.
+ */
+ String sourceDatabaseId();
+
+ /**
+ * @return the status value.
+ */
+ String status();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the transparentDataEncryption value.
+ */
+ List transparentDataEncryption();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the zoneRedundant value.
+ */
+ Boolean zoneRedundant();
+
+ /**
+ * The entirety of the Database definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithServer, DefinitionStages.WithLocation, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Database definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Database definition.
+ */
+ interface Blank extends WithServer {
+ }
+
+ /**
+ * The stage of the database definition allowing to specify Server.
+ */
+ interface WithServer {
+ /**
+ * Specifies resourceGroupName, serverName.
+ */
+ WithLocation withExistingServer(String resourceGroupName, String serverName);
+ }
+
+ /**
+ * The stage of the database definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ */
+ WithCreate withLocation(String location);
+ }
+
+ /**
+ * The stage of the database definition allowing to specify Collation.
+ */
+ interface WithCollation {
+ /**
+ * Specifies collation.
+ */
+ WithCreate withCollation(String collation);
+ }
+
+ /**
+ * The stage of the database definition allowing to specify CreateMode.
+ */
+ interface WithCreateMode {
+ /**
+ * Specifies createMode.
+ */
+ WithCreate withCreateMode(CreateMode createMode);
+ }
+
+ /**
+ * The stage of the database definition allowing to specify Edition.
+ */
+ interface WithEdition {
+ /**
+ * Specifies edition.
+ */
+ WithCreate withEdition(DatabaseEdition edition);
+ }
+
+ /**
+ * The stage of the database definition allowing to specify ElasticPoolName.
+ */
+ interface WithElasticPoolName {
+ /**
+ * Specifies elasticPoolName.
+ */
+ WithCreate withElasticPoolName(String elasticPoolName);
+ }
+
+ /**
+ * The stage of the database definition allowing to specify MaxSizeBytes.
+ */
+ interface WithMaxSizeBytes {
+ /**
+ * Specifies maxSizeBytes.
+ */
+ WithCreate withMaxSizeBytes(String maxSizeBytes);
+ }
+
+ /**
+ * The stage of the database definition allowing to specify ReadScale.
+ */
+ interface WithReadScale {
+ /**
+ * Specifies readScale.
+ */
+ WithCreate withReadScale(ReadScale readScale);
+ }
+
+ /**
+ * The stage of the database definition allowing to specify RecoveryServicesRecoveryPointResourceId.
+ */
+ interface WithRecoveryServicesRecoveryPointResourceId {
+ /**
+ * Specifies recoveryServicesRecoveryPointResourceId.
+ */
+ WithCreate withRecoveryServicesRecoveryPointResourceId(String recoveryServicesRecoveryPointResourceId);
+ }
+
+ /**
+ * The stage of the database definition allowing to specify RequestedServiceObjectiveId.
+ */
+ interface WithRequestedServiceObjectiveId {
+ /**
+ * Specifies requestedServiceObjectiveId.
+ */
+ WithCreate withRequestedServiceObjectiveId(UUID requestedServiceObjectiveId);
+ }
+
+ /**
+ * The stage of the database definition allowing to specify RequestedServiceObjectiveName.
+ */
+ interface WithRequestedServiceObjectiveName {
+ /**
+ * Specifies requestedServiceObjectiveName.
+ */
+ WithCreate withRequestedServiceObjectiveName(ServiceObjectiveName requestedServiceObjectiveName);
+ }
+
+ /**
+ * The stage of the database definition allowing to specify RestorePointInTime.
+ */
+ interface WithRestorePointInTime {
+ /**
+ * Specifies restorePointInTime.
+ */
+ WithCreate withRestorePointInTime(DateTime restorePointInTime);
+ }
+
+ /**
+ * The stage of the database definition allowing to specify SampleName.
+ */
+ interface WithSampleName {
+ /**
+ * Specifies sampleName.
+ */
+ WithCreate withSampleName(SampleName sampleName);
+ }
+
+ /**
+ * The stage of the database definition allowing to specify SourceDatabaseDeletionDate.
+ */
+ interface WithSourceDatabaseDeletionDate {
+ /**
+ * Specifies sourceDatabaseDeletionDate.
+ */
+ WithCreate withSourceDatabaseDeletionDate(DateTime sourceDatabaseDeletionDate);
+ }
+
+ /**
+ * The stage of the database definition allowing to specify SourceDatabaseId.
+ */
+ interface WithSourceDatabaseId {
+ /**
+ * Specifies sourceDatabaseId.
+ */
+ WithCreate withSourceDatabaseId(String sourceDatabaseId);
+ }
+
+ /**
+ * The stage of the database definition allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ */
+ WithCreate withTags(Map tags);
+ }
+
+ /**
+ * The stage of the database definition allowing to specify ZoneRedundant.
+ */
+ interface WithZoneRedundant {
+ /**
+ * Specifies zoneRedundant.
+ */
+ WithCreate withZoneRedundant(Boolean zoneRedundant);
+ }
+
+ /**
+ * 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.WithCollation, DefinitionStages.WithCreateMode, DefinitionStages.WithEdition, DefinitionStages.WithElasticPoolName, DefinitionStages.WithMaxSizeBytes, DefinitionStages.WithReadScale, DefinitionStages.WithRecoveryServicesRecoveryPointResourceId, DefinitionStages.WithRequestedServiceObjectiveId, DefinitionStages.WithRequestedServiceObjectiveName, DefinitionStages.WithRestorePointInTime, DefinitionStages.WithSampleName, DefinitionStages.WithSourceDatabaseDeletionDate, DefinitionStages.WithSourceDatabaseId, DefinitionStages.WithTags, DefinitionStages.WithZoneRedundant {
+ }
+ }
+ /**
+ * The template for a Database update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithCollation, UpdateStages.WithCreateMode, UpdateStages.WithEdition, UpdateStages.WithElasticPoolName, UpdateStages.WithMaxSizeBytes, UpdateStages.WithReadScale, UpdateStages.WithRecoveryServicesRecoveryPointResourceId, UpdateStages.WithRequestedServiceObjectiveId, UpdateStages.WithRequestedServiceObjectiveName, UpdateStages.WithRestorePointInTime, UpdateStages.WithSampleName, UpdateStages.WithSourceDatabaseDeletionDate, UpdateStages.WithSourceDatabaseId, UpdateStages.WithTags, UpdateStages.WithZoneRedundant {
+ }
+
+ /**
+ * Grouping of Database update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the database update allowing to specify Collation.
+ */
+ interface WithCollation {
+ /**
+ * Specifies collation.
+ */
+ Update withCollation(String collation);
+ }
+
+ /**
+ * The stage of the database update allowing to specify CreateMode.
+ */
+ interface WithCreateMode {
+ /**
+ * Specifies createMode.
+ */
+ Update withCreateMode(CreateMode createMode);
+ }
+
+ /**
+ * The stage of the database update allowing to specify Edition.
+ */
+ interface WithEdition {
+ /**
+ * Specifies edition.
+ */
+ Update withEdition(DatabaseEdition edition);
+ }
+
+ /**
+ * The stage of the database update allowing to specify ElasticPoolName.
+ */
+ interface WithElasticPoolName {
+ /**
+ * Specifies elasticPoolName.
+ */
+ Update withElasticPoolName(String elasticPoolName);
+ }
+
+ /**
+ * The stage of the database update allowing to specify MaxSizeBytes.
+ */
+ interface WithMaxSizeBytes {
+ /**
+ * Specifies maxSizeBytes.
+ */
+ Update withMaxSizeBytes(String maxSizeBytes);
+ }
+
+ /**
+ * The stage of the database update allowing to specify ReadScale.
+ */
+ interface WithReadScale {
+ /**
+ * Specifies readScale.
+ */
+ Update withReadScale(ReadScale readScale);
+ }
+
+ /**
+ * The stage of the database update allowing to specify RecoveryServicesRecoveryPointResourceId.
+ */
+ interface WithRecoveryServicesRecoveryPointResourceId {
+ /**
+ * Specifies recoveryServicesRecoveryPointResourceId.
+ */
+ Update withRecoveryServicesRecoveryPointResourceId(String recoveryServicesRecoveryPointResourceId);
+ }
+
+ /**
+ * The stage of the database update allowing to specify RequestedServiceObjectiveId.
+ */
+ interface WithRequestedServiceObjectiveId {
+ /**
+ * Specifies requestedServiceObjectiveId.
+ */
+ Update withRequestedServiceObjectiveId(UUID requestedServiceObjectiveId);
+ }
+
+ /**
+ * The stage of the database update allowing to specify RequestedServiceObjectiveName.
+ */
+ interface WithRequestedServiceObjectiveName {
+ /**
+ * Specifies requestedServiceObjectiveName.
+ */
+ Update withRequestedServiceObjectiveName(ServiceObjectiveName requestedServiceObjectiveName);
+ }
+
+ /**
+ * The stage of the database update allowing to specify RestorePointInTime.
+ */
+ interface WithRestorePointInTime {
+ /**
+ * Specifies restorePointInTime.
+ */
+ Update withRestorePointInTime(DateTime restorePointInTime);
+ }
+
+ /**
+ * The stage of the database update allowing to specify SampleName.
+ */
+ interface WithSampleName {
+ /**
+ * Specifies sampleName.
+ */
+ Update withSampleName(SampleName sampleName);
+ }
+
+ /**
+ * The stage of the database update allowing to specify SourceDatabaseDeletionDate.
+ */
+ interface WithSourceDatabaseDeletionDate {
+ /**
+ * Specifies sourceDatabaseDeletionDate.
+ */
+ Update withSourceDatabaseDeletionDate(DateTime sourceDatabaseDeletionDate);
+ }
+
+ /**
+ * The stage of the database update allowing to specify SourceDatabaseId.
+ */
+ interface WithSourceDatabaseId {
+ /**
+ * Specifies sourceDatabaseId.
+ */
+ Update withSourceDatabaseId(String sourceDatabaseId);
+ }
+
+ /**
+ * The stage of the database update allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ */
+ Update withTags(Map tags);
+ }
+
+ /**
+ * The stage of the database update allowing to specify ZoneRedundant.
+ */
+ interface WithZoneRedundant {
+ /**
+ * Specifies zoneRedundant.
+ */
+ Update withZoneRedundant(Boolean zoneRedundant);
+ }
+
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseAdvisors.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseAdvisors.java
new file mode 100644
index 000000000000..51165c95fa92
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseAdvisors.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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Observable;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.DatabaseAdvisorsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing DatabaseAdvisors.
+ */
+public interface DatabaseAdvisors extends SupportsCreating, HasInner {
+ /**
+ * Returns a list of database advisors.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param databaseName The name of the database.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByDatabaseAsync(String resourceGroupName, String serverName, String databaseName);
+
+ /**
+ * Returns details of a Database Advisor.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param databaseName The name of the database.
+ * @param advisorName The name of the Database Advisor.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serverName, String databaseName, String advisorName);
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseConnectionPolicies.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseConnectionPolicies.java
new file mode 100644
index 000000000000..72a8b1d8f889
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseConnectionPolicies.java
@@ -0,0 +1,31 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Observable;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.DatabaseConnectionPoliciesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing DatabaseConnectionPolicies.
+ */
+public interface DatabaseConnectionPolicies extends SupportsCreating, HasInner {
+ /**
+ * Gets a database's connection policy, which is used with table auditing. Table auditing is deprecated, use blob auditing instead.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param databaseName The name of the database for which the connection policy is defined.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serverName, String databaseName);
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseConnectionPolicy.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseConnectionPolicy.java
new file mode 100644
index 000000000000..0aba6e823968
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseConnectionPolicy.java
@@ -0,0 +1,270 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.DatabaseConnectionPolicyInner;
+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.sql.v2014_04_01.implementation.SqlManager;
+
+/**
+ * Type representing DatabaseConnectionPolicy.
+ */
+public interface DatabaseConnectionPolicy extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the kind value.
+ */
+ String kind();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the proxyDnsName value.
+ */
+ String proxyDnsName();
+
+ /**
+ * @return the proxyPort value.
+ */
+ String proxyPort();
+
+ /**
+ * @return the redirectionState value.
+ */
+ String redirectionState();
+
+ /**
+ * @return the securityEnabledAccess value.
+ */
+ String securityEnabledAccess();
+
+ /**
+ * @return the state value.
+ */
+ String state();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the useServerDefault value.
+ */
+ String useServerDefault();
+
+ /**
+ * @return the visibility value.
+ */
+ String visibility();
+
+ /**
+ * The entirety of the DatabaseConnectionPolicy definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDatabasis, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of DatabaseConnectionPolicy definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a DatabaseConnectionPolicy definition.
+ */
+ interface Blank extends WithDatabasis {
+ }
+
+ /**
+ * The stage of the databaseconnectionpolicy definition allowing to specify Databasis.
+ */
+ interface WithDatabasis {
+ /**
+ * Specifies resourceGroupName, serverName, databaseName.
+ */
+ WithCreate withExistingDatabasis(String resourceGroupName, String serverName, String databaseName);
+ }
+
+ /**
+ * The stage of the databaseconnectionpolicy definition allowing to specify ProxyDnsName.
+ */
+ interface WithProxyDnsName {
+ /**
+ * Specifies proxyDnsName.
+ */
+ WithCreate withProxyDnsName(String proxyDnsName);
+ }
+
+ /**
+ * The stage of the databaseconnectionpolicy definition allowing to specify ProxyPort.
+ */
+ interface WithProxyPort {
+ /**
+ * Specifies proxyPort.
+ */
+ WithCreate withProxyPort(String proxyPort);
+ }
+
+ /**
+ * The stage of the databaseconnectionpolicy definition allowing to specify RedirectionState.
+ */
+ interface WithRedirectionState {
+ /**
+ * Specifies redirectionState.
+ */
+ WithCreate withRedirectionState(String redirectionState);
+ }
+
+ /**
+ * The stage of the databaseconnectionpolicy definition allowing to specify SecurityEnabledAccess.
+ */
+ interface WithSecurityEnabledAccess {
+ /**
+ * Specifies securityEnabledAccess.
+ */
+ WithCreate withSecurityEnabledAccess(String securityEnabledAccess);
+ }
+
+ /**
+ * The stage of the databaseconnectionpolicy definition allowing to specify State.
+ */
+ interface WithState {
+ /**
+ * Specifies state.
+ */
+ WithCreate withState(String state);
+ }
+
+ /**
+ * The stage of the databaseconnectionpolicy definition allowing to specify UseServerDefault.
+ */
+ interface WithUseServerDefault {
+ /**
+ * Specifies useServerDefault.
+ */
+ WithCreate withUseServerDefault(String useServerDefault);
+ }
+
+ /**
+ * The stage of the databaseconnectionpolicy definition allowing to specify Visibility.
+ */
+ interface WithVisibility {
+ /**
+ * Specifies visibility.
+ */
+ WithCreate withVisibility(String visibility);
+ }
+
+ /**
+ * 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.WithProxyDnsName, DefinitionStages.WithProxyPort, DefinitionStages.WithRedirectionState, DefinitionStages.WithSecurityEnabledAccess, DefinitionStages.WithState, DefinitionStages.WithUseServerDefault, DefinitionStages.WithVisibility {
+ }
+ }
+ /**
+ * The template for a DatabaseConnectionPolicy update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithProxyDnsName, UpdateStages.WithProxyPort, UpdateStages.WithRedirectionState, UpdateStages.WithSecurityEnabledAccess, UpdateStages.WithState, UpdateStages.WithUseServerDefault, UpdateStages.WithVisibility {
+ }
+
+ /**
+ * Grouping of DatabaseConnectionPolicy update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the databaseconnectionpolicy update allowing to specify ProxyDnsName.
+ */
+ interface WithProxyDnsName {
+ /**
+ * Specifies proxyDnsName.
+ */
+ Update withProxyDnsName(String proxyDnsName);
+ }
+
+ /**
+ * The stage of the databaseconnectionpolicy update allowing to specify ProxyPort.
+ */
+ interface WithProxyPort {
+ /**
+ * Specifies proxyPort.
+ */
+ Update withProxyPort(String proxyPort);
+ }
+
+ /**
+ * The stage of the databaseconnectionpolicy update allowing to specify RedirectionState.
+ */
+ interface WithRedirectionState {
+ /**
+ * Specifies redirectionState.
+ */
+ Update withRedirectionState(String redirectionState);
+ }
+
+ /**
+ * The stage of the databaseconnectionpolicy update allowing to specify SecurityEnabledAccess.
+ */
+ interface WithSecurityEnabledAccess {
+ /**
+ * Specifies securityEnabledAccess.
+ */
+ Update withSecurityEnabledAccess(String securityEnabledAccess);
+ }
+
+ /**
+ * The stage of the databaseconnectionpolicy update allowing to specify State.
+ */
+ interface WithState {
+ /**
+ * Specifies state.
+ */
+ Update withState(String state);
+ }
+
+ /**
+ * The stage of the databaseconnectionpolicy update allowing to specify UseServerDefault.
+ */
+ interface WithUseServerDefault {
+ /**
+ * Specifies useServerDefault.
+ */
+ Update withUseServerDefault(String useServerDefault);
+ }
+
+ /**
+ * The stage of the databaseconnectionpolicy update allowing to specify Visibility.
+ */
+ interface WithVisibility {
+ /**
+ * Specifies visibility.
+ */
+ Update withVisibility(String visibility);
+ }
+
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseEdition.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseEdition.java
new file mode 100644
index 000000000000..63a8ddfef7e6
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseEdition.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.sql.v2014_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DatabaseEdition.
+ */
+public final class DatabaseEdition extends ExpandableStringEnum {
+ /** Static value Web for DatabaseEdition. */
+ public static final DatabaseEdition WEB = fromString("Web");
+
+ /** Static value Business for DatabaseEdition. */
+ public static final DatabaseEdition BUSINESS = fromString("Business");
+
+ /** Static value Basic for DatabaseEdition. */
+ public static final DatabaseEdition BASIC = fromString("Basic");
+
+ /** Static value Standard for DatabaseEdition. */
+ public static final DatabaseEdition STANDARD = fromString("Standard");
+
+ /** Static value Premium for DatabaseEdition. */
+ public static final DatabaseEdition PREMIUM = fromString("Premium");
+
+ /** Static value PremiumRS for DatabaseEdition. */
+ public static final DatabaseEdition PREMIUM_RS = fromString("PremiumRS");
+
+ /** Static value Free for DatabaseEdition. */
+ public static final DatabaseEdition FREE = fromString("Free");
+
+ /** Static value Stretch for DatabaseEdition. */
+ public static final DatabaseEdition STRETCH = fromString("Stretch");
+
+ /** Static value DataWarehouse for DatabaseEdition. */
+ public static final DatabaseEdition DATA_WAREHOUSE = fromString("DataWarehouse");
+
+ /** Static value System for DatabaseEdition. */
+ public static final DatabaseEdition SYSTEM = fromString("System");
+
+ /** Static value System2 for DatabaseEdition. */
+ public static final DatabaseEdition SYSTEM2 = fromString("System2");
+
+ /**
+ * Creates or finds a DatabaseEdition from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DatabaseEdition
+ */
+ @JsonCreator
+ public static DatabaseEdition fromString(String name) {
+ return fromString(name, DatabaseEdition.class);
+ }
+
+ /**
+ * @return known DatabaseEdition values
+ */
+ public static Collection values() {
+ return values(DatabaseEdition.class);
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseSecurityAlertPolicy.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseSecurityAlertPolicy.java
new file mode 100644
index 000000000000..219419e26a66
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseSecurityAlertPolicy.java
@@ -0,0 +1,305 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.DatabaseSecurityAlertPolicyInner;
+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.sql.v2014_04_01.implementation.SqlManager;
+
+/**
+ * Type representing DatabaseSecurityAlertPolicy.
+ */
+public interface DatabaseSecurityAlertPolicy extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the disabledAlerts value.
+ */
+ String disabledAlerts();
+
+ /**
+ * @return the emailAccountAdmins value.
+ */
+ SecurityAlertPolicyEmailAccountAdmins emailAccountAdmins();
+
+ /**
+ * @return the emailAddresses value.
+ */
+ String emailAddresses();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the kind value.
+ */
+ String kind();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the retentionDays value.
+ */
+ Integer retentionDays();
+
+ /**
+ * @return the state value.
+ */
+ SecurityAlertPolicyState state();
+
+ /**
+ * @return the storageAccountAccessKey value.
+ */
+ String storageAccountAccessKey();
+
+ /**
+ * @return the storageEndpoint value.
+ */
+ String storageEndpoint();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the useServerDefault value.
+ */
+ SecurityAlertPolicyUseServerDefault useServerDefault();
+
+ /**
+ * The entirety of the DatabaseSecurityAlertPolicy definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDatabasis, DefinitionStages.WithState, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of DatabaseSecurityAlertPolicy definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a DatabaseSecurityAlertPolicy definition.
+ */
+ interface Blank extends WithDatabasis {
+ }
+
+ /**
+ * The stage of the databasesecurityalertpolicy definition allowing to specify Databasis.
+ */
+ interface WithDatabasis {
+ /**
+ * Specifies resourceGroupName, serverName, databaseName.
+ */
+ WithState withExistingDatabasis(String resourceGroupName, String serverName, String databaseName);
+ }
+
+ /**
+ * The stage of the databasesecurityalertpolicy definition allowing to specify State.
+ */
+ interface WithState {
+ /**
+ * Specifies state.
+ */
+ WithCreate withState(SecurityAlertPolicyState state);
+ }
+
+ /**
+ * The stage of the databasesecurityalertpolicy definition allowing to specify DisabledAlerts.
+ */
+ interface WithDisabledAlerts {
+ /**
+ * Specifies disabledAlerts.
+ */
+ WithCreate withDisabledAlerts(String disabledAlerts);
+ }
+
+ /**
+ * The stage of the databasesecurityalertpolicy definition allowing to specify EmailAccountAdmins.
+ */
+ interface WithEmailAccountAdmins {
+ /**
+ * Specifies emailAccountAdmins.
+ */
+ WithCreate withEmailAccountAdmins(SecurityAlertPolicyEmailAccountAdmins emailAccountAdmins);
+ }
+
+ /**
+ * The stage of the databasesecurityalertpolicy definition allowing to specify EmailAddresses.
+ */
+ interface WithEmailAddresses {
+ /**
+ * Specifies emailAddresses.
+ */
+ WithCreate withEmailAddresses(String emailAddresses);
+ }
+
+ /**
+ * The stage of the databasesecurityalertpolicy definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ */
+ WithCreate withLocation(String location);
+ }
+
+ /**
+ * The stage of the databasesecurityalertpolicy definition allowing to specify RetentionDays.
+ */
+ interface WithRetentionDays {
+ /**
+ * Specifies retentionDays.
+ */
+ WithCreate withRetentionDays(Integer retentionDays);
+ }
+
+ /**
+ * The stage of the databasesecurityalertpolicy definition allowing to specify StorageAccountAccessKey.
+ */
+ interface WithStorageAccountAccessKey {
+ /**
+ * Specifies storageAccountAccessKey.
+ */
+ WithCreate withStorageAccountAccessKey(String storageAccountAccessKey);
+ }
+
+ /**
+ * The stage of the databasesecurityalertpolicy definition allowing to specify StorageEndpoint.
+ */
+ interface WithStorageEndpoint {
+ /**
+ * Specifies storageEndpoint.
+ */
+ WithCreate withStorageEndpoint(String storageEndpoint);
+ }
+
+ /**
+ * The stage of the databasesecurityalertpolicy definition allowing to specify UseServerDefault.
+ */
+ interface WithUseServerDefault {
+ /**
+ * Specifies useServerDefault.
+ */
+ WithCreate withUseServerDefault(SecurityAlertPolicyUseServerDefault useServerDefault);
+ }
+
+ /**
+ * 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.WithDisabledAlerts, DefinitionStages.WithEmailAccountAdmins, DefinitionStages.WithEmailAddresses, DefinitionStages.WithLocation, DefinitionStages.WithRetentionDays, DefinitionStages.WithStorageAccountAccessKey, DefinitionStages.WithStorageEndpoint, DefinitionStages.WithUseServerDefault {
+ }
+ }
+ /**
+ * The template for a DatabaseSecurityAlertPolicy update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithDisabledAlerts, UpdateStages.WithEmailAccountAdmins, UpdateStages.WithEmailAddresses, UpdateStages.WithLocation, UpdateStages.WithRetentionDays, UpdateStages.WithStorageAccountAccessKey, UpdateStages.WithStorageEndpoint, UpdateStages.WithUseServerDefault {
+ }
+
+ /**
+ * Grouping of DatabaseSecurityAlertPolicy update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the databasesecurityalertpolicy update allowing to specify DisabledAlerts.
+ */
+ interface WithDisabledAlerts {
+ /**
+ * Specifies disabledAlerts.
+ */
+ Update withDisabledAlerts(String disabledAlerts);
+ }
+
+ /**
+ * The stage of the databasesecurityalertpolicy update allowing to specify EmailAccountAdmins.
+ */
+ interface WithEmailAccountAdmins {
+ /**
+ * Specifies emailAccountAdmins.
+ */
+ Update withEmailAccountAdmins(SecurityAlertPolicyEmailAccountAdmins emailAccountAdmins);
+ }
+
+ /**
+ * The stage of the databasesecurityalertpolicy update allowing to specify EmailAddresses.
+ */
+ interface WithEmailAddresses {
+ /**
+ * Specifies emailAddresses.
+ */
+ Update withEmailAddresses(String emailAddresses);
+ }
+
+ /**
+ * The stage of the databasesecurityalertpolicy update allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ */
+ Update withLocation(String location);
+ }
+
+ /**
+ * The stage of the databasesecurityalertpolicy update allowing to specify RetentionDays.
+ */
+ interface WithRetentionDays {
+ /**
+ * Specifies retentionDays.
+ */
+ Update withRetentionDays(Integer retentionDays);
+ }
+
+ /**
+ * The stage of the databasesecurityalertpolicy update allowing to specify StorageAccountAccessKey.
+ */
+ interface WithStorageAccountAccessKey {
+ /**
+ * Specifies storageAccountAccessKey.
+ */
+ Update withStorageAccountAccessKey(String storageAccountAccessKey);
+ }
+
+ /**
+ * The stage of the databasesecurityalertpolicy update allowing to specify StorageEndpoint.
+ */
+ interface WithStorageEndpoint {
+ /**
+ * Specifies storageEndpoint.
+ */
+ Update withStorageEndpoint(String storageEndpoint);
+ }
+
+ /**
+ * The stage of the databasesecurityalertpolicy update allowing to specify UseServerDefault.
+ */
+ interface WithUseServerDefault {
+ /**
+ * Specifies useServerDefault.
+ */
+ Update withUseServerDefault(SecurityAlertPolicyUseServerDefault useServerDefault);
+ }
+
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseTableAuditingPolicies.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseTableAuditingPolicies.java
new file mode 100644
index 000000000000..1d9e5de71027
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseTableAuditingPolicies.java
@@ -0,0 +1,42 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Observable;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.DatabaseTableAuditingPoliciesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing DatabaseTableAuditingPolicies.
+ */
+public interface DatabaseTableAuditingPolicies extends SupportsCreating, HasInner {
+ /**
+ * Lists a database's table auditing policies. Table auditing is deprecated, use blob auditing instead.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param databaseName The name of the database for which the table audit policy is defined.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByDatabaseAsync(String resourceGroupName, String serverName, String databaseName);
+
+ /**
+ * Gets a database's table auditing policy. Table auditing is deprecated, use blob auditing instead.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param databaseName The name of the database for which the table audit policy is defined.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serverName, String databaseName);
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseTableAuditingPolicy.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseTableAuditingPolicy.java
new file mode 100644
index 000000000000..8882682922f4
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseTableAuditingPolicy.java
@@ -0,0 +1,396 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.DatabaseTableAuditingPolicyInner;
+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.sql.v2014_04_01.implementation.SqlManager;
+import java.util.UUID;
+
+/**
+ * Type representing DatabaseTableAuditingPolicy.
+ */
+public interface DatabaseTableAuditingPolicy extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the auditingState value.
+ */
+ String auditingState();
+
+ /**
+ * @return the auditLogsTableName value.
+ */
+ String auditLogsTableName();
+
+ /**
+ * @return the eventTypesToAudit value.
+ */
+ String eventTypesToAudit();
+
+ /**
+ * @return the fullAuditLogsTableName value.
+ */
+ String fullAuditLogsTableName();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the kind value.
+ */
+ String kind();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the retentionDays value.
+ */
+ String retentionDays();
+
+ /**
+ * @return the storageAccountKey value.
+ */
+ String storageAccountKey();
+
+ /**
+ * @return the storageAccountName value.
+ */
+ String storageAccountName();
+
+ /**
+ * @return the storageAccountResourceGroupName value.
+ */
+ String storageAccountResourceGroupName();
+
+ /**
+ * @return the storageAccountSecondaryKey value.
+ */
+ String storageAccountSecondaryKey();
+
+ /**
+ * @return the storageAccountSubscriptionId value.
+ */
+ UUID storageAccountSubscriptionId();
+
+ /**
+ * @return the storageTableEndpoint value.
+ */
+ String storageTableEndpoint();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the useServerDefault value.
+ */
+ String useServerDefault();
+
+ /**
+ * The entirety of the DatabaseTableAuditingPolicy definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDatabasis, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of DatabaseTableAuditingPolicy definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a DatabaseTableAuditingPolicy definition.
+ */
+ interface Blank extends WithDatabasis {
+ }
+
+ /**
+ * The stage of the databasetableauditingpolicy definition allowing to specify Databasis.
+ */
+ interface WithDatabasis {
+ /**
+ * Specifies resourceGroupName, serverName, databaseName.
+ */
+ WithCreate withExistingDatabasis(String resourceGroupName, String serverName, String databaseName);
+ }
+
+ /**
+ * The stage of the databasetableauditingpolicy definition allowing to specify AuditingState.
+ */
+ interface WithAuditingState {
+ /**
+ * Specifies auditingState.
+ */
+ WithCreate withAuditingState(String auditingState);
+ }
+
+ /**
+ * The stage of the databasetableauditingpolicy definition allowing to specify AuditLogsTableName.
+ */
+ interface WithAuditLogsTableName {
+ /**
+ * Specifies auditLogsTableName.
+ */
+ WithCreate withAuditLogsTableName(String auditLogsTableName);
+ }
+
+ /**
+ * The stage of the databasetableauditingpolicy definition allowing to specify EventTypesToAudit.
+ */
+ interface WithEventTypesToAudit {
+ /**
+ * Specifies eventTypesToAudit.
+ */
+ WithCreate withEventTypesToAudit(String eventTypesToAudit);
+ }
+
+ /**
+ * The stage of the databasetableauditingpolicy definition allowing to specify FullAuditLogsTableName.
+ */
+ interface WithFullAuditLogsTableName {
+ /**
+ * Specifies fullAuditLogsTableName.
+ */
+ WithCreate withFullAuditLogsTableName(String fullAuditLogsTableName);
+ }
+
+ /**
+ * The stage of the databasetableauditingpolicy definition allowing to specify RetentionDays.
+ */
+ interface WithRetentionDays {
+ /**
+ * Specifies retentionDays.
+ */
+ WithCreate withRetentionDays(String retentionDays);
+ }
+
+ /**
+ * The stage of the databasetableauditingpolicy definition allowing to specify StorageAccountKey.
+ */
+ interface WithStorageAccountKey {
+ /**
+ * Specifies storageAccountKey.
+ */
+ WithCreate withStorageAccountKey(String storageAccountKey);
+ }
+
+ /**
+ * The stage of the databasetableauditingpolicy definition allowing to specify StorageAccountName.
+ */
+ interface WithStorageAccountName {
+ /**
+ * Specifies storageAccountName.
+ */
+ WithCreate withStorageAccountName(String storageAccountName);
+ }
+
+ /**
+ * The stage of the databasetableauditingpolicy definition allowing to specify StorageAccountResourceGroupName.
+ */
+ interface WithStorageAccountResourceGroupName {
+ /**
+ * Specifies storageAccountResourceGroupName.
+ */
+ WithCreate withStorageAccountResourceGroupName(String storageAccountResourceGroupName);
+ }
+
+ /**
+ * The stage of the databasetableauditingpolicy definition allowing to specify StorageAccountSecondaryKey.
+ */
+ interface WithStorageAccountSecondaryKey {
+ /**
+ * Specifies storageAccountSecondaryKey.
+ */
+ WithCreate withStorageAccountSecondaryKey(String storageAccountSecondaryKey);
+ }
+
+ /**
+ * The stage of the databasetableauditingpolicy definition allowing to specify StorageAccountSubscriptionId.
+ */
+ interface WithStorageAccountSubscriptionId {
+ /**
+ * Specifies storageAccountSubscriptionId.
+ */
+ WithCreate withStorageAccountSubscriptionId(UUID storageAccountSubscriptionId);
+ }
+
+ /**
+ * The stage of the databasetableauditingpolicy definition allowing to specify StorageTableEndpoint.
+ */
+ interface WithStorageTableEndpoint {
+ /**
+ * Specifies storageTableEndpoint.
+ */
+ WithCreate withStorageTableEndpoint(String storageTableEndpoint);
+ }
+
+ /**
+ * The stage of the databasetableauditingpolicy definition allowing to specify UseServerDefault.
+ */
+ interface WithUseServerDefault {
+ /**
+ * Specifies useServerDefault.
+ */
+ WithCreate withUseServerDefault(String useServerDefault);
+ }
+
+ /**
+ * 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.WithAuditingState, DefinitionStages.WithAuditLogsTableName, DefinitionStages.WithEventTypesToAudit, DefinitionStages.WithFullAuditLogsTableName, DefinitionStages.WithRetentionDays, DefinitionStages.WithStorageAccountKey, DefinitionStages.WithStorageAccountName, DefinitionStages.WithStorageAccountResourceGroupName, DefinitionStages.WithStorageAccountSecondaryKey, DefinitionStages.WithStorageAccountSubscriptionId, DefinitionStages.WithStorageTableEndpoint, DefinitionStages.WithUseServerDefault {
+ }
+ }
+ /**
+ * The template for a DatabaseTableAuditingPolicy update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithAuditingState, UpdateStages.WithAuditLogsTableName, UpdateStages.WithEventTypesToAudit, UpdateStages.WithFullAuditLogsTableName, UpdateStages.WithRetentionDays, UpdateStages.WithStorageAccountKey, UpdateStages.WithStorageAccountName, UpdateStages.WithStorageAccountResourceGroupName, UpdateStages.WithStorageAccountSecondaryKey, UpdateStages.WithStorageAccountSubscriptionId, UpdateStages.WithStorageTableEndpoint, UpdateStages.WithUseServerDefault {
+ }
+
+ /**
+ * Grouping of DatabaseTableAuditingPolicy update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the databasetableauditingpolicy update allowing to specify AuditingState.
+ */
+ interface WithAuditingState {
+ /**
+ * Specifies auditingState.
+ */
+ Update withAuditingState(String auditingState);
+ }
+
+ /**
+ * The stage of the databasetableauditingpolicy update allowing to specify AuditLogsTableName.
+ */
+ interface WithAuditLogsTableName {
+ /**
+ * Specifies auditLogsTableName.
+ */
+ Update withAuditLogsTableName(String auditLogsTableName);
+ }
+
+ /**
+ * The stage of the databasetableauditingpolicy update allowing to specify EventTypesToAudit.
+ */
+ interface WithEventTypesToAudit {
+ /**
+ * Specifies eventTypesToAudit.
+ */
+ Update withEventTypesToAudit(String eventTypesToAudit);
+ }
+
+ /**
+ * The stage of the databasetableauditingpolicy update allowing to specify FullAuditLogsTableName.
+ */
+ interface WithFullAuditLogsTableName {
+ /**
+ * Specifies fullAuditLogsTableName.
+ */
+ Update withFullAuditLogsTableName(String fullAuditLogsTableName);
+ }
+
+ /**
+ * The stage of the databasetableauditingpolicy update allowing to specify RetentionDays.
+ */
+ interface WithRetentionDays {
+ /**
+ * Specifies retentionDays.
+ */
+ Update withRetentionDays(String retentionDays);
+ }
+
+ /**
+ * The stage of the databasetableauditingpolicy update allowing to specify StorageAccountKey.
+ */
+ interface WithStorageAccountKey {
+ /**
+ * Specifies storageAccountKey.
+ */
+ Update withStorageAccountKey(String storageAccountKey);
+ }
+
+ /**
+ * The stage of the databasetableauditingpolicy update allowing to specify StorageAccountName.
+ */
+ interface WithStorageAccountName {
+ /**
+ * Specifies storageAccountName.
+ */
+ Update withStorageAccountName(String storageAccountName);
+ }
+
+ /**
+ * The stage of the databasetableauditingpolicy update allowing to specify StorageAccountResourceGroupName.
+ */
+ interface WithStorageAccountResourceGroupName {
+ /**
+ * Specifies storageAccountResourceGroupName.
+ */
+ Update withStorageAccountResourceGroupName(String storageAccountResourceGroupName);
+ }
+
+ /**
+ * The stage of the databasetableauditingpolicy update allowing to specify StorageAccountSecondaryKey.
+ */
+ interface WithStorageAccountSecondaryKey {
+ /**
+ * Specifies storageAccountSecondaryKey.
+ */
+ Update withStorageAccountSecondaryKey(String storageAccountSecondaryKey);
+ }
+
+ /**
+ * The stage of the databasetableauditingpolicy update allowing to specify StorageAccountSubscriptionId.
+ */
+ interface WithStorageAccountSubscriptionId {
+ /**
+ * Specifies storageAccountSubscriptionId.
+ */
+ Update withStorageAccountSubscriptionId(UUID storageAccountSubscriptionId);
+ }
+
+ /**
+ * The stage of the databasetableauditingpolicy update allowing to specify StorageTableEndpoint.
+ */
+ interface WithStorageTableEndpoint {
+ /**
+ * Specifies storageTableEndpoint.
+ */
+ Update withStorageTableEndpoint(String storageTableEndpoint);
+ }
+
+ /**
+ * The stage of the databasetableauditingpolicy update allowing to specify UseServerDefault.
+ */
+ interface WithUseServerDefault {
+ /**
+ * Specifies useServerDefault.
+ */
+ Update withUseServerDefault(String useServerDefault);
+ }
+
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseTableAuditingPolicyListResult.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseTableAuditingPolicyListResult.java
new file mode 100644
index 000000000000..6db9020f4a99
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseTableAuditingPolicyListResult.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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.SqlManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.DatabaseTableAuditingPolicyListResultInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.DatabaseTableAuditingPolicyInner;
+import java.util.List;
+
+/**
+ * Type representing DatabaseTableAuditingPolicyListResult.
+ */
+public interface DatabaseTableAuditingPolicyListResult extends HasInner, HasManager {
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseThreatDetectionPolicies.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseThreatDetectionPolicies.java
new file mode 100644
index 000000000000..a1094193ed71
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseThreatDetectionPolicies.java
@@ -0,0 +1,31 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Observable;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.DatabaseThreatDetectionPoliciesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing DatabaseThreatDetectionPolicies.
+ */
+public interface DatabaseThreatDetectionPolicies extends SupportsCreating, HasInner {
+ /**
+ * Gets a database's threat detection policy.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param databaseName The name of the database for which database Threat Detection policy is defined.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serverName, String databaseName);
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseUpdate.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseUpdate.java
new file mode 100644
index 000000000000..260045924338
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseUpdate.java
@@ -0,0 +1,726 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import java.util.Map;
+import org.joda.time.DateTime;
+import java.util.UUID;
+import java.util.List;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.ServiceTierAdvisorInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.TransparentDataEncryptionInner;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * Represents a database update.
+ */
+@JsonFlatten
+public class DatabaseUpdate extends ProxyResource {
+ /**
+ * Resource tags.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * The collation of the database. If createMode is not Default, this value
+ * is ignored.
+ */
+ @JsonProperty(value = "properties.collation")
+ private String collation;
+
+ /**
+ * The creation date of the database (ISO8601 format).
+ */
+ @JsonProperty(value = "properties.creationDate", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime creationDate;
+
+ /**
+ * The containment state of the database.
+ */
+ @JsonProperty(value = "properties.containmentState", access = JsonProperty.Access.WRITE_ONLY)
+ private Long containmentState;
+
+ /**
+ * The current service level objective ID of the database. This is the ID
+ * of the service level objective that is currently active.
+ */
+ @JsonProperty(value = "properties.currentServiceObjectiveId", access = JsonProperty.Access.WRITE_ONLY)
+ private UUID currentServiceObjectiveId;
+
+ /**
+ * The ID of the database.
+ */
+ @JsonProperty(value = "properties.databaseId", access = JsonProperty.Access.WRITE_ONLY)
+ private UUID databaseId;
+
+ /**
+ * This records the earliest start date and time that restore is available
+ * for this database (ISO8601 format).
+ */
+ @JsonProperty(value = "properties.earliestRestoreDate", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime earliestRestoreDate;
+
+ /**
+ * Specifies the mode of database creation.
+ *
+ * Default: regular database creation.
+ *
+ * Copy: creates a database as a copy of an existing database.
+ * sourceDatabaseId must be specified as the resource ID of the source
+ * database.
+ *
+ * OnlineSecondary/NonReadableSecondary: creates a database as a (readable
+ * or nonreadable) secondary replica of an existing database.
+ * sourceDatabaseId must be specified as the resource ID of the existing
+ * primary database.
+ *
+ * PointInTimeRestore: Creates a database by restoring a point in time
+ * backup of an existing database. sourceDatabaseId must be specified as
+ * the resource ID of the existing database, and restorePointInTime must be
+ * specified.
+ *
+ * Recovery: Creates a database by restoring a geo-replicated backup.
+ * sourceDatabaseId must be specified as the recoverable database resource
+ * ID to restore.
+ *
+ * Restore: Creates a database by restoring a backup of a deleted database.
+ * sourceDatabaseId must be specified. If sourceDatabaseId is the
+ * database's original resource ID, then sourceDatabaseDeletionDate must be
+ * specified. Otherwise sourceDatabaseId must be the restorable dropped
+ * database resource ID and sourceDatabaseDeletionDate is ignored.
+ * restorePointInTime may also be specified to restore from an earlier
+ * point in time.
+ *
+ * RestoreLongTermRetentionBackup: Creates a database by restoring from a
+ * long term retention vault. recoveryServicesRecoveryPointResourceId must
+ * be specified as the recovery point resource ID.
+ *
+ * Copy, NonReadableSecondary, OnlineSecondary and
+ * RestoreLongTermRetentionBackup are not supported for DataWarehouse
+ * edition. Possible values include: 'Copy', 'Default',
+ * 'NonReadableSecondary', 'OnlineSecondary', 'PointInTimeRestore',
+ * 'Recovery', 'Restore', 'RestoreLongTermRetentionBackup'.
+ */
+ @JsonProperty(value = "properties.createMode")
+ private CreateMode createMode;
+
+ /**
+ * Conditional. If createMode is Copy, NonReadableSecondary,
+ * OnlineSecondary, PointInTimeRestore, Recovery, or Restore, then this
+ * value is required. Specifies the resource ID of the source database. If
+ * createMode is NonReadableSecondary or OnlineSecondary, the name of the
+ * source database must be the same as the new database being created.
+ */
+ @JsonProperty(value = "properties.sourceDatabaseId")
+ private String sourceDatabaseId;
+
+ /**
+ * Conditional. If createMode is Restore and sourceDatabaseId is the
+ * deleted database's original resource id when it existed (as opposed to
+ * its current restorable dropped database id), then this value is
+ * required. Specifies the time that the database was deleted.
+ */
+ @JsonProperty(value = "properties.sourceDatabaseDeletionDate")
+ private DateTime sourceDatabaseDeletionDate;
+
+ /**
+ * Conditional. If createMode is PointInTimeRestore, this value is
+ * required. If createMode is Restore, this value is optional. Specifies
+ * the point in time (ISO8601 format) of the source database that will be
+ * restored to create the new database. Must be greater than or equal to
+ * the source database's earliestRestoreDate value.
+ */
+ @JsonProperty(value = "properties.restorePointInTime")
+ private DateTime restorePointInTime;
+
+ /**
+ * Conditional. If createMode is RestoreLongTermRetentionBackup, then this
+ * value is required. Specifies the resource ID of the recovery point to
+ * restore from.
+ */
+ @JsonProperty(value = "properties.recoveryServicesRecoveryPointResourceId")
+ private String recoveryServicesRecoveryPointResourceId;
+
+ /**
+ * The edition of the database. The DatabaseEditions enumeration contains
+ * all the valid editions. If createMode is NonReadableSecondary or
+ * OnlineSecondary, this value is ignored. To see possible values, query
+ * the capabilities API
+ * (/subscriptions/{subscriptionId}/providers/Microsoft.Sql/locations/{locationID}/capabilities)
+ * referred to by operationId: "Capabilities_ListByLocation." or use the
+ * Azure CLI command `az sql db list-editions -l westus --query [].name`.
+ * Possible values include: 'Web', 'Business', 'Basic', 'Standard',
+ * 'Premium', 'PremiumRS', 'Free', 'Stretch', 'DataWarehouse', 'System',
+ * 'System2'.
+ */
+ @JsonProperty(value = "properties.edition")
+ private DatabaseEdition edition;
+
+ /**
+ * The max size of the database expressed in bytes. If createMode is not
+ * Default, this value is ignored. To see possible values, query the
+ * capabilities API
+ * (/subscriptions/{subscriptionId}/providers/Microsoft.Sql/locations/{locationID}/capabilities)
+ * referred to by operationId: "Capabilities_ListByLocation.".
+ */
+ @JsonProperty(value = "properties.maxSizeBytes")
+ private String maxSizeBytes;
+
+ /**
+ * The configured service level objective ID of the database. This is the
+ * service level objective that is in the process of being applied to the
+ * database. Once successfully updated, it will match the value of
+ * currentServiceObjectiveId property. If requestedServiceObjectiveId and
+ * requestedServiceObjectiveName are both updated, the value of
+ * requestedServiceObjectiveId overrides the value of
+ * requestedServiceObjectiveName. To see possible values, query the
+ * capabilities API
+ * (/subscriptions/{subscriptionId}/providers/Microsoft.Sql/locations/{locationID}/capabilities)
+ * referred to by operationId: "Capabilities_ListByLocation." or use the
+ * Azure CLI command `az sql db list-editions --location <location>
+ * --query [].supportedServiceLevelObjectives[].name` .
+ */
+ @JsonProperty(value = "properties.requestedServiceObjectiveId")
+ private UUID requestedServiceObjectiveId;
+
+ /**
+ * The name of the configured service level objective of the database. This
+ * is the service level objective that is in the process of being applied
+ * to the database. Once successfully updated, it will match the value of
+ * serviceLevelObjective property. To see possible values, query the
+ * capabilities API
+ * (/subscriptions/{subscriptionId}/providers/Microsoft.Sql/locations/{locationID}/capabilities)
+ * referred to by operationId: "Capabilities_ListByLocation." or use the
+ * Azure CLI command `az sql db list-editions --location <location>
+ * --query [].supportedServiceLevelObjectives[].name`. Possible values
+ * include: 'System', 'System0', 'System1', 'System2', 'System3',
+ * 'System4', 'System2L', 'System3L', 'System4L', 'Free', 'Basic', 'S0',
+ * 'S1', 'S2', 'S3', 'S4', 'S6', 'S7', 'S9', 'S12', 'P1', 'P2', 'P3', 'P4',
+ * 'P6', 'P11', 'P15', 'PRS1', 'PRS2', 'PRS4', 'PRS6', 'DW100', 'DW200',
+ * 'DW300', 'DW400', 'DW500', 'DW600', 'DW1000', 'DW1200', 'DW1000c',
+ * 'DW1500', 'DW1500c', 'DW2000', 'DW2000c', 'DW3000', 'DW2500c',
+ * 'DW3000c', 'DW6000', 'DW5000c', 'DW6000c', 'DW7500c', 'DW10000c',
+ * 'DW15000c', 'DW30000c', 'DS100', 'DS200', 'DS300', 'DS400', 'DS500',
+ * 'DS600', 'DS1000', 'DS1200', 'DS1500', 'DS2000', 'ElasticPool'.
+ */
+ @JsonProperty(value = "properties.requestedServiceObjectiveName")
+ private ServiceObjectiveName requestedServiceObjectiveName;
+
+ /**
+ * The current service level objective of the database. Possible values
+ * include: 'System', 'System0', 'System1', 'System2', 'System3',
+ * 'System4', 'System2L', 'System3L', 'System4L', 'Free', 'Basic', 'S0',
+ * 'S1', 'S2', 'S3', 'S4', 'S6', 'S7', 'S9', 'S12', 'P1', 'P2', 'P3', 'P4',
+ * 'P6', 'P11', 'P15', 'PRS1', 'PRS2', 'PRS4', 'PRS6', 'DW100', 'DW200',
+ * 'DW300', 'DW400', 'DW500', 'DW600', 'DW1000', 'DW1200', 'DW1000c',
+ * 'DW1500', 'DW1500c', 'DW2000', 'DW2000c', 'DW3000', 'DW2500c',
+ * 'DW3000c', 'DW6000', 'DW5000c', 'DW6000c', 'DW7500c', 'DW10000c',
+ * 'DW15000c', 'DW30000c', 'DS100', 'DS200', 'DS300', 'DS400', 'DS500',
+ * 'DS600', 'DS1000', 'DS1200', 'DS1500', 'DS2000', 'ElasticPool'.
+ */
+ @JsonProperty(value = "properties.serviceLevelObjective", access = JsonProperty.Access.WRITE_ONLY)
+ private ServiceObjectiveName serviceLevelObjective;
+
+ /**
+ * The status of the database.
+ */
+ @JsonProperty(value = "properties.status", access = JsonProperty.Access.WRITE_ONLY)
+ private String status;
+
+ /**
+ * The name of the elastic pool the database is in. If elasticPoolName and
+ * requestedServiceObjectiveName are both updated, the value of
+ * requestedServiceObjectiveName is ignored. Not supported for
+ * DataWarehouse edition.
+ */
+ @JsonProperty(value = "properties.elasticPoolName")
+ private String elasticPoolName;
+
+ /**
+ * The default secondary region for this database.
+ */
+ @JsonProperty(value = "properties.defaultSecondaryLocation", access = JsonProperty.Access.WRITE_ONLY)
+ private String defaultSecondaryLocation;
+
+ /**
+ * The list of service tier advisors for this database. Expanded property.
+ */
+ @JsonProperty(value = "properties.serviceTierAdvisors", access = JsonProperty.Access.WRITE_ONLY)
+ private List serviceTierAdvisors;
+
+ /**
+ * The transparent data encryption info for this database.
+ */
+ @JsonProperty(value = "properties.transparentDataEncryption", access = JsonProperty.Access.WRITE_ONLY)
+ private List transparentDataEncryption;
+
+ /**
+ * The recommended indices for this database.
+ */
+ @JsonProperty(value = "properties.recommendedIndex", access = JsonProperty.Access.WRITE_ONLY)
+ private List recommendedIndex;
+
+ /**
+ * The resource identifier of the failover group containing this database.
+ */
+ @JsonProperty(value = "properties.failoverGroupId", access = JsonProperty.Access.WRITE_ONLY)
+ private String failoverGroupId;
+
+ /**
+ * Conditional. If the database is a geo-secondary, readScale indicates
+ * whether read-only connections are allowed to this database or not. Not
+ * supported for DataWarehouse edition. Possible values include: 'Enabled',
+ * 'Disabled'.
+ */
+ @JsonProperty(value = "properties.readScale")
+ private ReadScale readScale;
+
+ /**
+ * Indicates the name of the sample schema to apply when creating this
+ * database. If createMode is not Default, this value is ignored. Not
+ * supported for DataWarehouse edition. Possible values include:
+ * 'AdventureWorksLT'.
+ */
+ @JsonProperty(value = "properties.sampleName")
+ private SampleName sampleName;
+
+ /**
+ * Whether or not this database is zone redundant, which means the replicas
+ * of this database will be spread across multiple availability zones.
+ */
+ @JsonProperty(value = "properties.zoneRedundant")
+ private Boolean zoneRedundant;
+
+ /**
+ * 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 DatabaseUpdate object itself.
+ */
+ public DatabaseUpdate withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get the collation of the database. If createMode is not Default, this value is ignored.
+ *
+ * @return the collation value
+ */
+ public String collation() {
+ return this.collation;
+ }
+
+ /**
+ * Set the collation of the database. If createMode is not Default, this value is ignored.
+ *
+ * @param collation the collation value to set
+ * @return the DatabaseUpdate object itself.
+ */
+ public DatabaseUpdate withCollation(String collation) {
+ this.collation = collation;
+ return this;
+ }
+
+ /**
+ * Get the creation date of the database (ISO8601 format).
+ *
+ * @return the creationDate value
+ */
+ public DateTime creationDate() {
+ return this.creationDate;
+ }
+
+ /**
+ * Get the containment state of the database.
+ *
+ * @return the containmentState value
+ */
+ public Long containmentState() {
+ return this.containmentState;
+ }
+
+ /**
+ * Get the current service level objective ID of the database. This is the ID of the service level objective that is currently active.
+ *
+ * @return the currentServiceObjectiveId value
+ */
+ public UUID currentServiceObjectiveId() {
+ return this.currentServiceObjectiveId;
+ }
+
+ /**
+ * Get the ID of the database.
+ *
+ * @return the databaseId value
+ */
+ public UUID databaseId() {
+ return this.databaseId;
+ }
+
+ /**
+ * Get this records the earliest start date and time that restore is available for this database (ISO8601 format).
+ *
+ * @return the earliestRestoreDate value
+ */
+ public DateTime earliestRestoreDate() {
+ return this.earliestRestoreDate;
+ }
+
+ /**
+ * Get specifies the mode of database creation.
+ Default: regular database creation.
+ Copy: creates a database as a copy of an existing database. sourceDatabaseId must be specified as the resource ID of the source database.
+ OnlineSecondary/NonReadableSecondary: creates a database as a (readable or nonreadable) secondary replica of an existing database. sourceDatabaseId must be specified as the resource ID of the existing primary database.
+ PointInTimeRestore: Creates a database by restoring a point in time backup of an existing database. sourceDatabaseId must be specified as the resource ID of the existing database, and restorePointInTime must be specified.
+ Recovery: Creates a database by restoring a geo-replicated backup. sourceDatabaseId must be specified as the recoverable database resource ID to restore.
+ Restore: Creates a database by restoring a backup of a deleted database. sourceDatabaseId must be specified. If sourceDatabaseId is the database's original resource ID, then sourceDatabaseDeletionDate must be specified. Otherwise sourceDatabaseId must be the restorable dropped database resource ID and sourceDatabaseDeletionDate is ignored. restorePointInTime may also be specified to restore from an earlier point in time.
+ RestoreLongTermRetentionBackup: Creates a database by restoring from a long term retention vault. recoveryServicesRecoveryPointResourceId must be specified as the recovery point resource ID.
+ Copy, NonReadableSecondary, OnlineSecondary and RestoreLongTermRetentionBackup are not supported for DataWarehouse edition. Possible values include: 'Copy', 'Default', 'NonReadableSecondary', 'OnlineSecondary', 'PointInTimeRestore', 'Recovery', 'Restore', 'RestoreLongTermRetentionBackup'.
+ *
+ * @return the createMode value
+ */
+ public CreateMode createMode() {
+ return this.createMode;
+ }
+
+ /**
+ * Set specifies the mode of database creation.
+ Default: regular database creation.
+ Copy: creates a database as a copy of an existing database. sourceDatabaseId must be specified as the resource ID of the source database.
+ OnlineSecondary/NonReadableSecondary: creates a database as a (readable or nonreadable) secondary replica of an existing database. sourceDatabaseId must be specified as the resource ID of the existing primary database.
+ PointInTimeRestore: Creates a database by restoring a point in time backup of an existing database. sourceDatabaseId must be specified as the resource ID of the existing database, and restorePointInTime must be specified.
+ Recovery: Creates a database by restoring a geo-replicated backup. sourceDatabaseId must be specified as the recoverable database resource ID to restore.
+ Restore: Creates a database by restoring a backup of a deleted database. sourceDatabaseId must be specified. If sourceDatabaseId is the database's original resource ID, then sourceDatabaseDeletionDate must be specified. Otherwise sourceDatabaseId must be the restorable dropped database resource ID and sourceDatabaseDeletionDate is ignored. restorePointInTime may also be specified to restore from an earlier point in time.
+ RestoreLongTermRetentionBackup: Creates a database by restoring from a long term retention vault. recoveryServicesRecoveryPointResourceId must be specified as the recovery point resource ID.
+ Copy, NonReadableSecondary, OnlineSecondary and RestoreLongTermRetentionBackup are not supported for DataWarehouse edition. Possible values include: 'Copy', 'Default', 'NonReadableSecondary', 'OnlineSecondary', 'PointInTimeRestore', 'Recovery', 'Restore', 'RestoreLongTermRetentionBackup'.
+ *
+ * @param createMode the createMode value to set
+ * @return the DatabaseUpdate object itself.
+ */
+ public DatabaseUpdate withCreateMode(CreateMode createMode) {
+ this.createMode = createMode;
+ return this;
+ }
+
+ /**
+ * Get conditional. If createMode is Copy, NonReadableSecondary, OnlineSecondary, PointInTimeRestore, Recovery, or Restore, then this value is required. Specifies the resource ID of the source database. If createMode is NonReadableSecondary or OnlineSecondary, the name of the source database must be the same as the new database being created.
+ *
+ * @return the sourceDatabaseId value
+ */
+ public String sourceDatabaseId() {
+ return this.sourceDatabaseId;
+ }
+
+ /**
+ * Set conditional. If createMode is Copy, NonReadableSecondary, OnlineSecondary, PointInTimeRestore, Recovery, or Restore, then this value is required. Specifies the resource ID of the source database. If createMode is NonReadableSecondary or OnlineSecondary, the name of the source database must be the same as the new database being created.
+ *
+ * @param sourceDatabaseId the sourceDatabaseId value to set
+ * @return the DatabaseUpdate object itself.
+ */
+ public DatabaseUpdate withSourceDatabaseId(String sourceDatabaseId) {
+ this.sourceDatabaseId = sourceDatabaseId;
+ return this;
+ }
+
+ /**
+ * Get conditional. If createMode is Restore and sourceDatabaseId is the deleted database's original resource id when it existed (as opposed to its current restorable dropped database id), then this value is required. Specifies the time that the database was deleted.
+ *
+ * @return the sourceDatabaseDeletionDate value
+ */
+ public DateTime sourceDatabaseDeletionDate() {
+ return this.sourceDatabaseDeletionDate;
+ }
+
+ /**
+ * Set conditional. If createMode is Restore and sourceDatabaseId is the deleted database's original resource id when it existed (as opposed to its current restorable dropped database id), then this value is required. Specifies the time that the database was deleted.
+ *
+ * @param sourceDatabaseDeletionDate the sourceDatabaseDeletionDate value to set
+ * @return the DatabaseUpdate object itself.
+ */
+ public DatabaseUpdate withSourceDatabaseDeletionDate(DateTime sourceDatabaseDeletionDate) {
+ this.sourceDatabaseDeletionDate = sourceDatabaseDeletionDate;
+ return this;
+ }
+
+ /**
+ * Get conditional. If createMode is PointInTimeRestore, this value is required. If createMode is Restore, this value is optional. Specifies the point in time (ISO8601 format) of the source database that will be restored to create the new database. Must be greater than or equal to the source database's earliestRestoreDate value.
+ *
+ * @return the restorePointInTime value
+ */
+ public DateTime restorePointInTime() {
+ return this.restorePointInTime;
+ }
+
+ /**
+ * Set conditional. If createMode is PointInTimeRestore, this value is required. If createMode is Restore, this value is optional. Specifies the point in time (ISO8601 format) of the source database that will be restored to create the new database. Must be greater than or equal to the source database's earliestRestoreDate value.
+ *
+ * @param restorePointInTime the restorePointInTime value to set
+ * @return the DatabaseUpdate object itself.
+ */
+ public DatabaseUpdate withRestorePointInTime(DateTime restorePointInTime) {
+ this.restorePointInTime = restorePointInTime;
+ return this;
+ }
+
+ /**
+ * Get conditional. If createMode is RestoreLongTermRetentionBackup, then this value is required. Specifies the resource ID of the recovery point to restore from.
+ *
+ * @return the recoveryServicesRecoveryPointResourceId value
+ */
+ public String recoveryServicesRecoveryPointResourceId() {
+ return this.recoveryServicesRecoveryPointResourceId;
+ }
+
+ /**
+ * Set conditional. If createMode is RestoreLongTermRetentionBackup, then this value is required. Specifies the resource ID of the recovery point to restore from.
+ *
+ * @param recoveryServicesRecoveryPointResourceId the recoveryServicesRecoveryPointResourceId value to set
+ * @return the DatabaseUpdate object itself.
+ */
+ public DatabaseUpdate withRecoveryServicesRecoveryPointResourceId(String recoveryServicesRecoveryPointResourceId) {
+ this.recoveryServicesRecoveryPointResourceId = recoveryServicesRecoveryPointResourceId;
+ return this;
+ }
+
+ /**
+ * Get the edition of the database. The DatabaseEditions enumeration contains all the valid editions. If createMode is NonReadableSecondary or OnlineSecondary, this value is ignored. To see possible values, query the capabilities API (/subscriptions/{subscriptionId}/providers/Microsoft.Sql/locations/{locationID}/capabilities) referred to by operationId: "Capabilities_ListByLocation." or use the Azure CLI command `az sql db list-editions -l westus --query [].name`. Possible values include: 'Web', 'Business', 'Basic', 'Standard', 'Premium', 'PremiumRS', 'Free', 'Stretch', 'DataWarehouse', 'System', 'System2'.
+ *
+ * @return the edition value
+ */
+ public DatabaseEdition edition() {
+ return this.edition;
+ }
+
+ /**
+ * Set the edition of the database. The DatabaseEditions enumeration contains all the valid editions. If createMode is NonReadableSecondary or OnlineSecondary, this value is ignored. To see possible values, query the capabilities API (/subscriptions/{subscriptionId}/providers/Microsoft.Sql/locations/{locationID}/capabilities) referred to by operationId: "Capabilities_ListByLocation." or use the Azure CLI command `az sql db list-editions -l westus --query [].name`. Possible values include: 'Web', 'Business', 'Basic', 'Standard', 'Premium', 'PremiumRS', 'Free', 'Stretch', 'DataWarehouse', 'System', 'System2'.
+ *
+ * @param edition the edition value to set
+ * @return the DatabaseUpdate object itself.
+ */
+ public DatabaseUpdate withEdition(DatabaseEdition edition) {
+ this.edition = edition;
+ return this;
+ }
+
+ /**
+ * Get the max size of the database expressed in bytes. If createMode is not Default, this value is ignored. To see possible values, query the capabilities API (/subscriptions/{subscriptionId}/providers/Microsoft.Sql/locations/{locationID}/capabilities) referred to by operationId: "Capabilities_ListByLocation.".
+ *
+ * @return the maxSizeBytes value
+ */
+ public String maxSizeBytes() {
+ return this.maxSizeBytes;
+ }
+
+ /**
+ * Set the max size of the database expressed in bytes. If createMode is not Default, this value is ignored. To see possible values, query the capabilities API (/subscriptions/{subscriptionId}/providers/Microsoft.Sql/locations/{locationID}/capabilities) referred to by operationId: "Capabilities_ListByLocation.".
+ *
+ * @param maxSizeBytes the maxSizeBytes value to set
+ * @return the DatabaseUpdate object itself.
+ */
+ public DatabaseUpdate withMaxSizeBytes(String maxSizeBytes) {
+ this.maxSizeBytes = maxSizeBytes;
+ return this;
+ }
+
+ /**
+ * Get the configured service level objective ID of the database. This is the service level objective that is in the process of being applied to the database. Once successfully updated, it will match the value of currentServiceObjectiveId property. If requestedServiceObjectiveId and requestedServiceObjectiveName are both updated, the value of requestedServiceObjectiveId overrides the value of requestedServiceObjectiveName. To see possible values, query the capabilities API (/subscriptions/{subscriptionId}/providers/Microsoft.Sql/locations/{locationID}/capabilities) referred to by operationId: "Capabilities_ListByLocation." or use the Azure CLI command `az sql db list-editions --location <location> --query [].supportedServiceLevelObjectives[].name` .
+ *
+ * @return the requestedServiceObjectiveId value
+ */
+ public UUID requestedServiceObjectiveId() {
+ return this.requestedServiceObjectiveId;
+ }
+
+ /**
+ * Set the configured service level objective ID of the database. This is the service level objective that is in the process of being applied to the database. Once successfully updated, it will match the value of currentServiceObjectiveId property. If requestedServiceObjectiveId and requestedServiceObjectiveName are both updated, the value of requestedServiceObjectiveId overrides the value of requestedServiceObjectiveName. To see possible values, query the capabilities API (/subscriptions/{subscriptionId}/providers/Microsoft.Sql/locations/{locationID}/capabilities) referred to by operationId: "Capabilities_ListByLocation." or use the Azure CLI command `az sql db list-editions --location <location> --query [].supportedServiceLevelObjectives[].name` .
+ *
+ * @param requestedServiceObjectiveId the requestedServiceObjectiveId value to set
+ * @return the DatabaseUpdate object itself.
+ */
+ public DatabaseUpdate withRequestedServiceObjectiveId(UUID requestedServiceObjectiveId) {
+ this.requestedServiceObjectiveId = requestedServiceObjectiveId;
+ return this;
+ }
+
+ /**
+ * Get the name of the configured service level objective of the database. This is the service level objective that is in the process of being applied to the database. Once successfully updated, it will match the value of serviceLevelObjective property. To see possible values, query the capabilities API (/subscriptions/{subscriptionId}/providers/Microsoft.Sql/locations/{locationID}/capabilities) referred to by operationId: "Capabilities_ListByLocation." or use the Azure CLI command `az sql db list-editions --location <location> --query [].supportedServiceLevelObjectives[].name`. Possible values include: 'System', 'System0', 'System1', 'System2', 'System3', 'System4', 'System2L', 'System3L', 'System4L', 'Free', 'Basic', 'S0', 'S1', 'S2', 'S3', 'S4', 'S6', 'S7', 'S9', 'S12', 'P1', 'P2', 'P3', 'P4', 'P6', 'P11', 'P15', 'PRS1', 'PRS2', 'PRS4', 'PRS6', 'DW100', 'DW200', 'DW300', 'DW400', 'DW500', 'DW600', 'DW1000', 'DW1200', 'DW1000c', 'DW1500', 'DW1500c', 'DW2000', 'DW2000c', 'DW3000', 'DW2500c', 'DW3000c', 'DW6000', 'DW5000c', 'DW6000c', 'DW7500c', 'DW10000c', 'DW15000c', 'DW30000c', 'DS100', 'DS200', 'DS300', 'DS400', 'DS500', 'DS600', 'DS1000', 'DS1200', 'DS1500', 'DS2000', 'ElasticPool'.
+ *
+ * @return the requestedServiceObjectiveName value
+ */
+ public ServiceObjectiveName requestedServiceObjectiveName() {
+ return this.requestedServiceObjectiveName;
+ }
+
+ /**
+ * Set the name of the configured service level objective of the database. This is the service level objective that is in the process of being applied to the database. Once successfully updated, it will match the value of serviceLevelObjective property. To see possible values, query the capabilities API (/subscriptions/{subscriptionId}/providers/Microsoft.Sql/locations/{locationID}/capabilities) referred to by operationId: "Capabilities_ListByLocation." or use the Azure CLI command `az sql db list-editions --location <location> --query [].supportedServiceLevelObjectives[].name`. Possible values include: 'System', 'System0', 'System1', 'System2', 'System3', 'System4', 'System2L', 'System3L', 'System4L', 'Free', 'Basic', 'S0', 'S1', 'S2', 'S3', 'S4', 'S6', 'S7', 'S9', 'S12', 'P1', 'P2', 'P3', 'P4', 'P6', 'P11', 'P15', 'PRS1', 'PRS2', 'PRS4', 'PRS6', 'DW100', 'DW200', 'DW300', 'DW400', 'DW500', 'DW600', 'DW1000', 'DW1200', 'DW1000c', 'DW1500', 'DW1500c', 'DW2000', 'DW2000c', 'DW3000', 'DW2500c', 'DW3000c', 'DW6000', 'DW5000c', 'DW6000c', 'DW7500c', 'DW10000c', 'DW15000c', 'DW30000c', 'DS100', 'DS200', 'DS300', 'DS400', 'DS500', 'DS600', 'DS1000', 'DS1200', 'DS1500', 'DS2000', 'ElasticPool'.
+ *
+ * @param requestedServiceObjectiveName the requestedServiceObjectiveName value to set
+ * @return the DatabaseUpdate object itself.
+ */
+ public DatabaseUpdate withRequestedServiceObjectiveName(ServiceObjectiveName requestedServiceObjectiveName) {
+ this.requestedServiceObjectiveName = requestedServiceObjectiveName;
+ return this;
+ }
+
+ /**
+ * Get the current service level objective of the database. Possible values include: 'System', 'System0', 'System1', 'System2', 'System3', 'System4', 'System2L', 'System3L', 'System4L', 'Free', 'Basic', 'S0', 'S1', 'S2', 'S3', 'S4', 'S6', 'S7', 'S9', 'S12', 'P1', 'P2', 'P3', 'P4', 'P6', 'P11', 'P15', 'PRS1', 'PRS2', 'PRS4', 'PRS6', 'DW100', 'DW200', 'DW300', 'DW400', 'DW500', 'DW600', 'DW1000', 'DW1200', 'DW1000c', 'DW1500', 'DW1500c', 'DW2000', 'DW2000c', 'DW3000', 'DW2500c', 'DW3000c', 'DW6000', 'DW5000c', 'DW6000c', 'DW7500c', 'DW10000c', 'DW15000c', 'DW30000c', 'DS100', 'DS200', 'DS300', 'DS400', 'DS500', 'DS600', 'DS1000', 'DS1200', 'DS1500', 'DS2000', 'ElasticPool'.
+ *
+ * @return the serviceLevelObjective value
+ */
+ public ServiceObjectiveName serviceLevelObjective() {
+ return this.serviceLevelObjective;
+ }
+
+ /**
+ * Get the status of the database.
+ *
+ * @return the status value
+ */
+ public String status() {
+ return this.status;
+ }
+
+ /**
+ * Get the name of the elastic pool the database is in. If elasticPoolName and requestedServiceObjectiveName are both updated, the value of requestedServiceObjectiveName is ignored. Not supported for DataWarehouse edition.
+ *
+ * @return the elasticPoolName value
+ */
+ public String elasticPoolName() {
+ return this.elasticPoolName;
+ }
+
+ /**
+ * Set the name of the elastic pool the database is in. If elasticPoolName and requestedServiceObjectiveName are both updated, the value of requestedServiceObjectiveName is ignored. Not supported for DataWarehouse edition.
+ *
+ * @param elasticPoolName the elasticPoolName value to set
+ * @return the DatabaseUpdate object itself.
+ */
+ public DatabaseUpdate withElasticPoolName(String elasticPoolName) {
+ this.elasticPoolName = elasticPoolName;
+ return this;
+ }
+
+ /**
+ * Get the default secondary region for this database.
+ *
+ * @return the defaultSecondaryLocation value
+ */
+ public String defaultSecondaryLocation() {
+ return this.defaultSecondaryLocation;
+ }
+
+ /**
+ * Get the list of service tier advisors for this database. Expanded property.
+ *
+ * @return the serviceTierAdvisors value
+ */
+ public List serviceTierAdvisors() {
+ return this.serviceTierAdvisors;
+ }
+
+ /**
+ * Get the transparent data encryption info for this database.
+ *
+ * @return the transparentDataEncryption value
+ */
+ public List transparentDataEncryption() {
+ return this.transparentDataEncryption;
+ }
+
+ /**
+ * Get the recommended indices for this database.
+ *
+ * @return the recommendedIndex value
+ */
+ public List recommendedIndex() {
+ return this.recommendedIndex;
+ }
+
+ /**
+ * Get the resource identifier of the failover group containing this database.
+ *
+ * @return the failoverGroupId value
+ */
+ public String failoverGroupId() {
+ return this.failoverGroupId;
+ }
+
+ /**
+ * Get conditional. If the database is a geo-secondary, readScale indicates whether read-only connections are allowed to this database or not. Not supported for DataWarehouse edition. Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @return the readScale value
+ */
+ public ReadScale readScale() {
+ return this.readScale;
+ }
+
+ /**
+ * Set conditional. If the database is a geo-secondary, readScale indicates whether read-only connections are allowed to this database or not. Not supported for DataWarehouse edition. Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @param readScale the readScale value to set
+ * @return the DatabaseUpdate object itself.
+ */
+ public DatabaseUpdate withReadScale(ReadScale readScale) {
+ this.readScale = readScale;
+ return this;
+ }
+
+ /**
+ * Get indicates the name of the sample schema to apply when creating this database. If createMode is not Default, this value is ignored. Not supported for DataWarehouse edition. Possible values include: 'AdventureWorksLT'.
+ *
+ * @return the sampleName value
+ */
+ public SampleName sampleName() {
+ return this.sampleName;
+ }
+
+ /**
+ * Set indicates the name of the sample schema to apply when creating this database. If createMode is not Default, this value is ignored. Not supported for DataWarehouse edition. Possible values include: 'AdventureWorksLT'.
+ *
+ * @param sampleName the sampleName value to set
+ * @return the DatabaseUpdate object itself.
+ */
+ public DatabaseUpdate withSampleName(SampleName sampleName) {
+ this.sampleName = sampleName;
+ return this;
+ }
+
+ /**
+ * Get whether or not this database is zone redundant, which means the replicas of this database will be spread across multiple availability zones.
+ *
+ * @return the zoneRedundant value
+ */
+ public Boolean zoneRedundant() {
+ return this.zoneRedundant;
+ }
+
+ /**
+ * Set whether or not this database is zone redundant, which means the replicas of this database will be spread across multiple availability zones.
+ *
+ * @param zoneRedundant the zoneRedundant value to set
+ * @return the DatabaseUpdate object itself.
+ */
+ public DatabaseUpdate withZoneRedundant(Boolean zoneRedundant) {
+ this.zoneRedundant = zoneRedundant;
+ return this;
+ }
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseUsage.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseUsage.java
new file mode 100644
index 000000000000..e4b81517f8ac
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseUsage.java
@@ -0,0 +1,56 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.DatabaseUsageInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.SqlManager;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing DatabaseUsage.
+ */
+public interface DatabaseUsage extends HasInner, HasManager {
+ /**
+ * @return the currentValue value.
+ */
+ Double currentValue();
+
+ /**
+ * @return the displayName value.
+ */
+ String displayName();
+
+ /**
+ * @return the limit value.
+ */
+ Double limit();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the nextResetTime value.
+ */
+ DateTime nextResetTime();
+
+ /**
+ * @return the resourceName value.
+ */
+ String resourceName();
+
+ /**
+ * @return the unit value.
+ */
+ String unit();
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseUsages.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseUsages.java
new file mode 100644
index 000000000000..a829ae8f1447
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabaseUsages.java
@@ -0,0 +1,30 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.DatabaseUsagesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing DatabaseUsages.
+ */
+public interface DatabaseUsages extends HasInner {
+ /**
+ * Returns database usages.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param databaseName The name of the database.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByDatabaseAsync(String resourceGroupName, String serverName, String databaseName);
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/Databases.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/Databases.java
new file mode 100644
index 000000000000..525e6ed65571
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/Databases.java
@@ -0,0 +1,176 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.DatabasesInner;
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.sql.v2014_04_01.DatabasisServerMetric;
+import com.microsoft.azure.management.sql.v2014_04_01.DatabasisServerMetricDefinition;
+
+/**
+ * Type representing Databases.
+ */
+public interface Databases extends SupportsCreating, HasInner {
+ /**
+ * Begins definition for a new Extension resource.
+ * @param name resource name.
+ * @return the first stage of the new Extension definition.
+ */
+ ImportExportResponse.DefinitionStages.Blank defineExtension(String name);
+
+ /**
+ * Pauses a data warehouse.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param databaseName The name of the data warehouse to pause.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable pauseAsync(String resourceGroupName, String serverName, String databaseName);
+
+ /**
+ * Resumes a data warehouse.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param databaseName The name of the data warehouse to resume.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable resumeAsync(String resourceGroupName, String serverName, String databaseName);
+
+ /**
+ * Gets a database inside of an elastic pool.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param elasticPoolName The name of the elastic pool to be retrieved.
+ * @param databaseName The name of the database to be retrieved.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByElasticPoolAsync(String resourceGroupName, String serverName, String elasticPoolName, String databaseName);
+
+ /**
+ * Returns a list of databases in an elastic pool.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param elasticPoolName The name of the elastic pool to be retrieved.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByElasticPoolAsync(String resourceGroupName, String serverName, String elasticPoolName);
+
+ /**
+ * Gets a database inside of a recommended elastic pool.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param recommendedElasticPoolName The name of the elastic pool to be retrieved.
+ * @param databaseName The name of the database to be retrieved.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByRecommendedElasticPoolAsync(String resourceGroupName, String serverName, String recommendedElasticPoolName, String databaseName);
+
+ /**
+ * Returns a list of databases inside a recommended elastic pool.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param recommendedElasticPoolName The name of the recommended elastic pool to be retrieved.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByRecommendedElasticPoolAsync(String resourceGroupName, String serverName, String recommendedElasticPoolName);
+
+ /**
+ * Exports a database to a bacpac.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param databaseName The name of the database to be exported.
+ * @param parameters The required parameters for exporting a database.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable exportAsync(String resourceGroupName, String serverName, String databaseName, ExportRequest parameters);
+
+ /**
+ * Gets a database.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param databaseName The name of the database to be retrieved.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serverName, String databaseName);
+
+ /**
+ * Returns a list of databases in a server.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByServerAsync(String resourceGroupName, String serverName);
+
+ /**
+ * Deletes a database.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param databaseName The name of the database to be deleted.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String serverName, String databaseName);
+
+ /**
+ * Imports a bacpac into a new database.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param parameters The required parameters for importing a Bacpac into a database.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable importMethodAsync(String resourceGroupName, String serverName, ImportRequest parameters);
+
+ /**
+ * Returns database metrics.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param databaseName The name of the database.
+ * @param filter An OData filter expression that describes a subset of metrics to return.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricsAsync(String resourceGroupName, String serverName, String databaseName, String filter);
+
+ /**
+ * Returns database metric definitions.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param databaseName The name of the database.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricDefinitionsAsync(String resourceGroupName, String serverName, String databaseName);
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabasisServerAdvisor.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabasisServerAdvisor.java
new file mode 100644
index 000000000000..9a97b9a2a222
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabasisServerAdvisor.java
@@ -0,0 +1,136 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.AdvisorInner;
+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.sql.v2014_04_01.implementation.SqlManager;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing DatabasisServerAdvisor.
+ */
+public interface DatabasisServerAdvisor extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the advisorStatus value.
+ */
+ AdvisorStatus advisorStatus();
+
+ /**
+ * @return the autoExecuteValue value.
+ */
+ AutoExecuteStatus autoExecuteValue();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the kind value.
+ */
+ String kind();
+
+ /**
+ * @return the lastChecked value.
+ */
+ DateTime lastChecked();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the recommendationsStatus value.
+ */
+ String recommendationsStatus();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the DatabasisServerAdvisor definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDatabasis, DefinitionStages.WithAutoExecuteValue, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of DatabasisServerAdvisor definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a DatabasisServerAdvisor definition.
+ */
+ interface Blank extends WithDatabasis {
+ }
+
+ /**
+ * The stage of the databasisserveradvisor definition allowing to specify Databasis.
+ */
+ interface WithDatabasis {
+ /**
+ * Specifies resourceGroupName, serverName, databaseName.
+ */
+ WithAutoExecuteValue withExistingDatabasis(String resourceGroupName, String serverName, String databaseName);
+ }
+
+ /**
+ * The stage of the databasisserveradvisor definition allowing to specify AutoExecuteValue.
+ */
+ interface WithAutoExecuteValue {
+ /**
+ * Specifies autoExecuteValue.
+ */
+ WithCreate withAutoExecuteValue(AutoExecuteStatus autoExecuteValue);
+ }
+
+ /**
+ * 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 {
+ }
+ }
+ /**
+ * The template for a DatabasisServerAdvisor update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithAutoExecuteValue {
+ }
+
+ /**
+ * Grouping of DatabasisServerAdvisor update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the databasisserveradvisor update allowing to specify AutoExecuteValue.
+ */
+ interface WithAutoExecuteValue {
+ /**
+ * Specifies autoExecuteValue.
+ */
+ Update withAutoExecuteValue(AutoExecuteStatus autoExecuteValue);
+ }
+
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabasisServerMetric.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabasisServerMetric.java
new file mode 100644
index 000000000000..4c6acac0324b
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabasisServerMetric.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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.MetricInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.SqlManager;
+import org.joda.time.DateTime;
+import java.util.List;
+
+/**
+ * Type representing DatabasisServerMetric.
+ */
+public interface DatabasisServerMetric extends HasInner, HasManager {
+ /**
+ * @return the endTime value.
+ */
+ DateTime endTime();
+
+ /**
+ * @return the metricValues value.
+ */
+ List metricValues();
+
+ /**
+ * @return the name value.
+ */
+ MetricName name();
+
+ /**
+ * @return the startTime value.
+ */
+ DateTime startTime();
+
+ /**
+ * @return the timeGrain value.
+ */
+ String timeGrain();
+
+ /**
+ * @return the unit value.
+ */
+ UnitType unit();
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabasisServerMetricDefinition.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabasisServerMetricDefinition.java
new file mode 100644
index 000000000000..9f5c705b4ab5
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DatabasisServerMetricDefinition.java
@@ -0,0 +1,46 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.MetricDefinitionInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.SqlManager;
+import java.util.List;
+
+/**
+ * Type representing DatabasisServerMetricDefinition.
+ */
+public interface DatabasisServerMetricDefinition extends HasInner, HasManager {
+ /**
+ * @return the metricAvailabilities value.
+ */
+ List metricAvailabilities();
+
+ /**
+ * @return the name value.
+ */
+ MetricName name();
+
+ /**
+ * @return the primaryAggregationType value.
+ */
+ PrimaryAggregationType primaryAggregationType();
+
+ /**
+ * @return the resourceUri value.
+ */
+ String resourceUri();
+
+ /**
+ * @return the unit value.
+ */
+ UnitDefinitionType unit();
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DisasterRecoveryConfiguration.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DisasterRecoveryConfiguration.java
new file mode 100644
index 000000000000..0231211657df
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DisasterRecoveryConfiguration.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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.SqlManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.DisasterRecoveryConfigurationInner;
+
+/**
+ * Type representing DisasterRecoveryConfiguration.
+ */
+public interface DisasterRecoveryConfiguration extends HasInner, HasManager {
+ /**
+ * @return the autoFailover value.
+ */
+ DisasterRecoveryConfigurationAutoFailover autoFailover();
+
+ /**
+ * @return the failoverPolicy value.
+ */
+ DisasterRecoveryConfigurationFailoverPolicy failoverPolicy();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the logicalServerName value.
+ */
+ String logicalServerName();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the partnerLogicalServerName value.
+ */
+ String partnerLogicalServerName();
+
+ /**
+ * @return the partnerServerId value.
+ */
+ String partnerServerId();
+
+ /**
+ * @return the role value.
+ */
+ DisasterRecoveryConfigurationRole role();
+
+ /**
+ * @return the status value.
+ */
+ DisasterRecoveryConfigurationStatus status();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DisasterRecoveryConfigurationAutoFailover.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DisasterRecoveryConfigurationAutoFailover.java
new file mode 100644
index 000000000000..fb178d466810
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DisasterRecoveryConfigurationAutoFailover.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.sql.v2014_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DisasterRecoveryConfigurationAutoFailover.
+ */
+public final class DisasterRecoveryConfigurationAutoFailover extends ExpandableStringEnum {
+ /** Static value Off for DisasterRecoveryConfigurationAutoFailover. */
+ public static final DisasterRecoveryConfigurationAutoFailover OFF = fromString("Off");
+
+ /** Static value On for DisasterRecoveryConfigurationAutoFailover. */
+ public static final DisasterRecoveryConfigurationAutoFailover ON = fromString("On");
+
+ /**
+ * Creates or finds a DisasterRecoveryConfigurationAutoFailover from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DisasterRecoveryConfigurationAutoFailover
+ */
+ @JsonCreator
+ public static DisasterRecoveryConfigurationAutoFailover fromString(String name) {
+ return fromString(name, DisasterRecoveryConfigurationAutoFailover.class);
+ }
+
+ /**
+ * @return known DisasterRecoveryConfigurationAutoFailover values
+ */
+ public static Collection values() {
+ return values(DisasterRecoveryConfigurationAutoFailover.class);
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DisasterRecoveryConfigurationFailoverPolicy.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DisasterRecoveryConfigurationFailoverPolicy.java
new file mode 100644
index 000000000000..3b1264cfec98
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DisasterRecoveryConfigurationFailoverPolicy.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.sql.v2014_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DisasterRecoveryConfigurationFailoverPolicy.
+ */
+public final class DisasterRecoveryConfigurationFailoverPolicy extends ExpandableStringEnum {
+ /** Static value Manual for DisasterRecoveryConfigurationFailoverPolicy. */
+ public static final DisasterRecoveryConfigurationFailoverPolicy MANUAL = fromString("Manual");
+
+ /** Static value Automatic for DisasterRecoveryConfigurationFailoverPolicy. */
+ public static final DisasterRecoveryConfigurationFailoverPolicy AUTOMATIC = fromString("Automatic");
+
+ /**
+ * Creates or finds a DisasterRecoveryConfigurationFailoverPolicy from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DisasterRecoveryConfigurationFailoverPolicy
+ */
+ @JsonCreator
+ public static DisasterRecoveryConfigurationFailoverPolicy fromString(String name) {
+ return fromString(name, DisasterRecoveryConfigurationFailoverPolicy.class);
+ }
+
+ /**
+ * @return known DisasterRecoveryConfigurationFailoverPolicy values
+ */
+ public static Collection values() {
+ return values(DisasterRecoveryConfigurationFailoverPolicy.class);
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DisasterRecoveryConfigurationRole.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DisasterRecoveryConfigurationRole.java
new file mode 100644
index 000000000000..d75c5bea5320
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DisasterRecoveryConfigurationRole.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.sql.v2014_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DisasterRecoveryConfigurationRole.
+ */
+public final class DisasterRecoveryConfigurationRole extends ExpandableStringEnum {
+ /** Static value None for DisasterRecoveryConfigurationRole. */
+ public static final DisasterRecoveryConfigurationRole NONE = fromString("None");
+
+ /** Static value Primary for DisasterRecoveryConfigurationRole. */
+ public static final DisasterRecoveryConfigurationRole PRIMARY = fromString("Primary");
+
+ /** Static value Secondary for DisasterRecoveryConfigurationRole. */
+ public static final DisasterRecoveryConfigurationRole SECONDARY = fromString("Secondary");
+
+ /**
+ * Creates or finds a DisasterRecoveryConfigurationRole from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DisasterRecoveryConfigurationRole
+ */
+ @JsonCreator
+ public static DisasterRecoveryConfigurationRole fromString(String name) {
+ return fromString(name, DisasterRecoveryConfigurationRole.class);
+ }
+
+ /**
+ * @return known DisasterRecoveryConfigurationRole values
+ */
+ public static Collection values() {
+ return values(DisasterRecoveryConfigurationRole.class);
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DisasterRecoveryConfigurationStatus.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DisasterRecoveryConfigurationStatus.java
new file mode 100644
index 000000000000..0de31ebfac06
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DisasterRecoveryConfigurationStatus.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.sql.v2014_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DisasterRecoveryConfigurationStatus.
+ */
+public final class DisasterRecoveryConfigurationStatus extends ExpandableStringEnum {
+ /** Static value Creating for DisasterRecoveryConfigurationStatus. */
+ public static final DisasterRecoveryConfigurationStatus CREATING = fromString("Creating");
+
+ /** Static value Ready for DisasterRecoveryConfigurationStatus. */
+ public static final DisasterRecoveryConfigurationStatus READY = fromString("Ready");
+
+ /** Static value FailingOver for DisasterRecoveryConfigurationStatus. */
+ public static final DisasterRecoveryConfigurationStatus FAILING_OVER = fromString("FailingOver");
+
+ /** Static value Dropping for DisasterRecoveryConfigurationStatus. */
+ public static final DisasterRecoveryConfigurationStatus DROPPING = fromString("Dropping");
+
+ /**
+ * Creates or finds a DisasterRecoveryConfigurationStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DisasterRecoveryConfigurationStatus
+ */
+ @JsonCreator
+ public static DisasterRecoveryConfigurationStatus fromString(String name) {
+ return fromString(name, DisasterRecoveryConfigurationStatus.class);
+ }
+
+ /**
+ * @return known DisasterRecoveryConfigurationStatus values
+ */
+ public static Collection values() {
+ return values(DisasterRecoveryConfigurationStatus.class);
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DisasterRecoveryConfigurations.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DisasterRecoveryConfigurations.java
new file mode 100644
index 000000000000..5b53385255fb
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/DisasterRecoveryConfigurations.java
@@ -0,0 +1,85 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.DisasterRecoveryConfigurationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing DisasterRecoveryConfigurations.
+ */
+public interface DisasterRecoveryConfigurations extends HasInner {
+ /**
+ * Lists a server's disaster recovery configuration.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(String resourceGroupName, String serverName);
+
+ /**
+ * Deletes a disaster recovery configuration.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param disasterRecoveryConfigurationName The name of the disaster recovery configuration to be deleted.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String serverName, String disasterRecoveryConfigurationName);
+
+ /**
+ * Creates or updates a disaster recovery configuration.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param disasterRecoveryConfigurationName The name of the disaster recovery configuration to be created/updated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable createOrUpdateAsync(String resourceGroupName, String serverName, String disasterRecoveryConfigurationName);
+
+ /**
+ * Gets a disaster recovery configuration.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param disasterRecoveryConfigurationName The name of the disaster recovery configuration.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serverName, String disasterRecoveryConfigurationName);
+
+ /**
+ * Fails over from the current primary server to this server.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param disasterRecoveryConfigurationName The name of the disaster recovery configuration to failover.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable failoverAsync(String resourceGroupName, String serverName, String disasterRecoveryConfigurationName);
+
+ /**
+ * Fails over from the current primary server to this server. This operation might result in data loss.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param disasterRecoveryConfigurationName The name of the disaster recovery configuration to failover forcefully.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable failoverAllowDataLossAsync(String resourceGroupName, String serverName, String disasterRecoveryConfigurationName);
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/EditionCapability.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/EditionCapability.java
new file mode 100644
index 000000000000..c68a018c2995
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/EditionCapability.java
@@ -0,0 +1,79 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The database edition capabilities.
+ */
+public class EditionCapability {
+ /**
+ * The edition name.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /**
+ * The status of the edition. Possible values include: 'Visible',
+ * 'Available', 'Default', 'Disabled'.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private CapabilityStatus status;
+
+ /**
+ * The list of supported service objectives for the edition.
+ */
+ @JsonProperty(value = "supportedServiceLevelObjectives", access = JsonProperty.Access.WRITE_ONLY)
+ private List supportedServiceLevelObjectives;
+
+ /**
+ * Whether or not zone redundancy is supported for the edition.
+ */
+ @JsonProperty(value = "zoneRedundant", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean zoneRedundant;
+
+ /**
+ * Get the edition name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the status of the edition. Possible values include: 'Visible', 'Available', 'Default', 'Disabled'.
+ *
+ * @return the status value
+ */
+ public CapabilityStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Get the list of supported service objectives for the edition.
+ *
+ * @return the supportedServiceLevelObjectives value
+ */
+ public List supportedServiceLevelObjectives() {
+ return this.supportedServiceLevelObjectives;
+ }
+
+ /**
+ * Get whether or not zone redundancy is supported for the edition.
+ *
+ * @return the zoneRedundant value
+ */
+ public Boolean zoneRedundant() {
+ return this.zoneRedundant;
+ }
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPool.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPool.java
new file mode 100644
index 000000000000..3d1ce6a7f16d
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPool.java
@@ -0,0 +1,292 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.ElasticPoolInner;
+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.sql.v2014_04_01.implementation.SqlManager;
+import java.util.Map;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing ElasticPool.
+ */
+public interface ElasticPool extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the creationDate value.
+ */
+ DateTime creationDate();
+
+ /**
+ * @return the databaseDtuMax value.
+ */
+ Integer databaseDtuMax();
+
+ /**
+ * @return the databaseDtuMin value.
+ */
+ Integer databaseDtuMin();
+
+ /**
+ * @return the dtu value.
+ */
+ Integer dtu();
+
+ /**
+ * @return the edition value.
+ */
+ ElasticPoolEdition edition();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the kind value.
+ */
+ String kind();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the state value.
+ */
+ ElasticPoolState state();
+
+ /**
+ * @return the storageMB value.
+ */
+ Integer storageMB();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the zoneRedundant value.
+ */
+ Boolean zoneRedundant();
+
+ /**
+ * The entirety of the ElasticPool definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithServer, DefinitionStages.WithLocation, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ElasticPool definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ElasticPool definition.
+ */
+ interface Blank extends WithServer {
+ }
+
+ /**
+ * The stage of the elasticpool definition allowing to specify Server.
+ */
+ interface WithServer {
+ /**
+ * Specifies resourceGroupName, serverName.
+ */
+ WithLocation withExistingServer(String resourceGroupName, String serverName);
+ }
+
+ /**
+ * The stage of the elasticpool definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ */
+ WithCreate withLocation(String location);
+ }
+
+ /**
+ * The stage of the elasticpool definition allowing to specify DatabaseDtuMax.
+ */
+ interface WithDatabaseDtuMax {
+ /**
+ * Specifies databaseDtuMax.
+ */
+ WithCreate withDatabaseDtuMax(Integer databaseDtuMax);
+ }
+
+ /**
+ * The stage of the elasticpool definition allowing to specify DatabaseDtuMin.
+ */
+ interface WithDatabaseDtuMin {
+ /**
+ * Specifies databaseDtuMin.
+ */
+ WithCreate withDatabaseDtuMin(Integer databaseDtuMin);
+ }
+
+ /**
+ * The stage of the elasticpool definition allowing to specify Dtu.
+ */
+ interface WithDtu {
+ /**
+ * Specifies dtu.
+ */
+ WithCreate withDtu(Integer dtu);
+ }
+
+ /**
+ * The stage of the elasticpool definition allowing to specify Edition.
+ */
+ interface WithEdition {
+ /**
+ * Specifies edition.
+ */
+ WithCreate withEdition(ElasticPoolEdition edition);
+ }
+
+ /**
+ * The stage of the elasticpool definition allowing to specify StorageMB.
+ */
+ interface WithStorageMB {
+ /**
+ * Specifies storageMB.
+ */
+ WithCreate withStorageMB(Integer storageMB);
+ }
+
+ /**
+ * The stage of the elasticpool definition allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ */
+ WithCreate withTags(Map tags);
+ }
+
+ /**
+ * The stage of the elasticpool definition allowing to specify ZoneRedundant.
+ */
+ interface WithZoneRedundant {
+ /**
+ * Specifies zoneRedundant.
+ */
+ WithCreate withZoneRedundant(Boolean zoneRedundant);
+ }
+
+ /**
+ * 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.WithDatabaseDtuMax, DefinitionStages.WithDatabaseDtuMin, DefinitionStages.WithDtu, DefinitionStages.WithEdition, DefinitionStages.WithStorageMB, DefinitionStages.WithTags, DefinitionStages.WithZoneRedundant {
+ }
+ }
+ /**
+ * The template for a ElasticPool update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithDatabaseDtuMax, UpdateStages.WithDatabaseDtuMin, UpdateStages.WithDtu, UpdateStages.WithEdition, UpdateStages.WithStorageMB, UpdateStages.WithTags, UpdateStages.WithZoneRedundant {
+ }
+
+ /**
+ * Grouping of ElasticPool update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the elasticpool update allowing to specify DatabaseDtuMax.
+ */
+ interface WithDatabaseDtuMax {
+ /**
+ * Specifies databaseDtuMax.
+ */
+ Update withDatabaseDtuMax(Integer databaseDtuMax);
+ }
+
+ /**
+ * The stage of the elasticpool update allowing to specify DatabaseDtuMin.
+ */
+ interface WithDatabaseDtuMin {
+ /**
+ * Specifies databaseDtuMin.
+ */
+ Update withDatabaseDtuMin(Integer databaseDtuMin);
+ }
+
+ /**
+ * The stage of the elasticpool update allowing to specify Dtu.
+ */
+ interface WithDtu {
+ /**
+ * Specifies dtu.
+ */
+ Update withDtu(Integer dtu);
+ }
+
+ /**
+ * The stage of the elasticpool update allowing to specify Edition.
+ */
+ interface WithEdition {
+ /**
+ * Specifies edition.
+ */
+ Update withEdition(ElasticPoolEdition edition);
+ }
+
+ /**
+ * The stage of the elasticpool update allowing to specify StorageMB.
+ */
+ interface WithStorageMB {
+ /**
+ * Specifies storageMB.
+ */
+ Update withStorageMB(Integer storageMB);
+ }
+
+ /**
+ * The stage of the elasticpool update allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ */
+ Update withTags(Map tags);
+ }
+
+ /**
+ * The stage of the elasticpool update allowing to specify ZoneRedundant.
+ */
+ interface WithZoneRedundant {
+ /**
+ * Specifies zoneRedundant.
+ */
+ Update withZoneRedundant(Boolean zoneRedundant);
+ }
+
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolActivities.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolActivities.java
new file mode 100644
index 000000000000..28970d3a05d3
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolActivities.java
@@ -0,0 +1,30 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.ElasticPoolActivitiesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ElasticPoolActivities.
+ */
+public interface ElasticPoolActivities extends HasInner {
+ /**
+ * Returns elastic pool activities.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param elasticPoolName The name of the elastic pool for which to get the current activity.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByElasticPoolAsync(String resourceGroupName, String serverName, String elasticPoolName);
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolActivity.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolActivity.java
new file mode 100644
index 000000000000..310b97986c58
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolActivity.java
@@ -0,0 +1,142 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.SqlManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.ElasticPoolActivityInner;
+import org.joda.time.DateTime;
+import java.util.UUID;
+
+/**
+ * Type representing ElasticPoolActivity.
+ */
+public interface ElasticPoolActivity extends HasInner, HasManager {
+ /**
+ * @return the elasticPoolName value.
+ */
+ String elasticPoolName();
+
+ /**
+ * @return the endTime value.
+ */
+ DateTime endTime();
+
+ /**
+ * @return the errorCode value.
+ */
+ Integer errorCode();
+
+ /**
+ * @return the errorMessage value.
+ */
+ String errorMessage();
+
+ /**
+ * @return the errorSeverity value.
+ */
+ Integer errorSeverity();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the operation value.
+ */
+ String operation();
+
+ /**
+ * @return the operationId value.
+ */
+ UUID operationId();
+
+ /**
+ * @return the percentComplete value.
+ */
+ Integer percentComplete();
+
+ /**
+ * @return the requestedDatabaseDtuCap value.
+ */
+ Integer requestedDatabaseDtuCap();
+
+ /**
+ * @return the requestedDatabaseDtuGuarantee value.
+ */
+ Integer requestedDatabaseDtuGuarantee();
+
+ /**
+ * @return the requestedDatabaseDtuMax value.
+ */
+ Integer requestedDatabaseDtuMax();
+
+ /**
+ * @return the requestedDatabaseDtuMin value.
+ */
+ Integer requestedDatabaseDtuMin();
+
+ /**
+ * @return the requestedDtu value.
+ */
+ Integer requestedDtu();
+
+ /**
+ * @return the requestedDtuGuarantee value.
+ */
+ Integer requestedDtuGuarantee();
+
+ /**
+ * @return the requestedElasticPoolName value.
+ */
+ String requestedElasticPoolName();
+
+ /**
+ * @return the requestedStorageLimitInGB value.
+ */
+ Long requestedStorageLimitInGB();
+
+ /**
+ * @return the requestedStorageLimitInMB value.
+ */
+ Integer requestedStorageLimitInMB();
+
+ /**
+ * @return the serverName value.
+ */
+ String serverName();
+
+ /**
+ * @return the startTime value.
+ */
+ DateTime startTime();
+
+ /**
+ * @return the state value.
+ */
+ String state();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolDatabaseActivities.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolDatabaseActivities.java
new file mode 100644
index 000000000000..8ddbf8097bcd
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolDatabaseActivities.java
@@ -0,0 +1,30 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.ElasticPoolDatabaseActivitiesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ElasticPoolDatabaseActivities.
+ */
+public interface ElasticPoolDatabaseActivities extends HasInner {
+ /**
+ * Returns activity on databases inside of an elastic pool.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param elasticPoolName The name of the elastic pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByElasticPoolAsync(String resourceGroupName, String serverName, String elasticPoolName);
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolDatabaseActivity.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolDatabaseActivity.java
new file mode 100644
index 000000000000..e5d68d036bc0
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolDatabaseActivity.java
@@ -0,0 +1,117 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.SqlManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.ElasticPoolDatabaseActivityInner;
+import org.joda.time.DateTime;
+import java.util.UUID;
+
+/**
+ * Type representing ElasticPoolDatabaseActivity.
+ */
+public interface ElasticPoolDatabaseActivity extends HasInner, HasManager {
+ /**
+ * @return the currentElasticPoolName value.
+ */
+ String currentElasticPoolName();
+
+ /**
+ * @return the currentServiceObjective value.
+ */
+ String currentServiceObjective();
+
+ /**
+ * @return the databaseName value.
+ */
+ String databaseName();
+
+ /**
+ * @return the endTime value.
+ */
+ DateTime endTime();
+
+ /**
+ * @return the errorCode value.
+ */
+ Integer errorCode();
+
+ /**
+ * @return the errorMessage value.
+ */
+ String errorMessage();
+
+ /**
+ * @return the errorSeverity value.
+ */
+ Integer errorSeverity();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the operation value.
+ */
+ String operation();
+
+ /**
+ * @return the operationId value.
+ */
+ UUID operationId();
+
+ /**
+ * @return the percentComplete value.
+ */
+ Integer percentComplete();
+
+ /**
+ * @return the requestedElasticPoolName value.
+ */
+ String requestedElasticPoolName();
+
+ /**
+ * @return the requestedServiceObjective value.
+ */
+ String requestedServiceObjective();
+
+ /**
+ * @return the serverName value.
+ */
+ String serverName();
+
+ /**
+ * @return the startTime value.
+ */
+ DateTime startTime();
+
+ /**
+ * @return the state value.
+ */
+ String state();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolDtuCapability.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolDtuCapability.java
new file mode 100644
index 000000000000..0506bea44fe7
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolDtuCapability.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.sql.v2014_04_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The Elastic Pool DTU capability.
+ */
+public class ElasticPoolDtuCapability {
+ /**
+ * The maximum size of the database (see 'unit' for the units).
+ */
+ @JsonProperty(value = "limit", access = JsonProperty.Access.WRITE_ONLY)
+ private Long limit;
+
+ /**
+ * The maximum number of databases supported.
+ */
+ @JsonProperty(value = "maxDatabaseCount", access = JsonProperty.Access.WRITE_ONLY)
+ private Long maxDatabaseCount;
+
+ /**
+ * The status of the capability. Possible values include: 'Visible',
+ * 'Available', 'Default', 'Disabled'.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private CapabilityStatus status;
+
+ /**
+ * The list of supported max sizes.
+ */
+ @JsonProperty(value = "supportedMaxSizes", access = JsonProperty.Access.WRITE_ONLY)
+ private List supportedMaxSizes;
+
+ /**
+ * The included (free) max size for this service level objective.
+ */
+ @JsonProperty(value = "includedMaxSize", access = JsonProperty.Access.WRITE_ONLY)
+ private MaxSizeCapability includedMaxSize;
+
+ /**
+ * The list of supported max database sizes.
+ */
+ @JsonProperty(value = "supportedPerDatabaseMaxSizes", access = JsonProperty.Access.WRITE_ONLY)
+ private List supportedPerDatabaseMaxSizes;
+
+ /**
+ * The list of supported max database DTUs.
+ */
+ @JsonProperty(value = "supportedPerDatabaseMaxDtus", access = JsonProperty.Access.WRITE_ONLY)
+ private List supportedPerDatabaseMaxDtus;
+
+ /**
+ * Get the maximum size of the database (see 'unit' for the units).
+ *
+ * @return the limit value
+ */
+ public Long limit() {
+ return this.limit;
+ }
+
+ /**
+ * Get the maximum number of databases supported.
+ *
+ * @return the maxDatabaseCount value
+ */
+ public Long maxDatabaseCount() {
+ return this.maxDatabaseCount;
+ }
+
+ /**
+ * Get the status of the capability. Possible values include: 'Visible', 'Available', 'Default', 'Disabled'.
+ *
+ * @return the status value
+ */
+ public CapabilityStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Get the list of supported max sizes.
+ *
+ * @return the supportedMaxSizes value
+ */
+ public List supportedMaxSizes() {
+ return this.supportedMaxSizes;
+ }
+
+ /**
+ * Get the included (free) max size for this service level objective.
+ *
+ * @return the includedMaxSize value
+ */
+ public MaxSizeCapability includedMaxSize() {
+ return this.includedMaxSize;
+ }
+
+ /**
+ * Get the list of supported max database sizes.
+ *
+ * @return the supportedPerDatabaseMaxSizes value
+ */
+ public List supportedPerDatabaseMaxSizes() {
+ return this.supportedPerDatabaseMaxSizes;
+ }
+
+ /**
+ * Get the list of supported max database DTUs.
+ *
+ * @return the supportedPerDatabaseMaxDtus value
+ */
+ public List supportedPerDatabaseMaxDtus() {
+ return this.supportedPerDatabaseMaxDtus;
+ }
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolEdition.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolEdition.java
new file mode 100644
index 000000000000..842f33fc9786
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolEdition.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.sql.v2014_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ElasticPoolEdition.
+ */
+public final class ElasticPoolEdition extends ExpandableStringEnum {
+ /** Static value Basic for ElasticPoolEdition. */
+ public static final ElasticPoolEdition BASIC = fromString("Basic");
+
+ /** Static value Standard for ElasticPoolEdition. */
+ public static final ElasticPoolEdition STANDARD = fromString("Standard");
+
+ /** Static value Premium for ElasticPoolEdition. */
+ public static final ElasticPoolEdition PREMIUM = fromString("Premium");
+
+ /**
+ * Creates or finds a ElasticPoolEdition from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ElasticPoolEdition
+ */
+ @JsonCreator
+ public static ElasticPoolEdition fromString(String name) {
+ return fromString(name, ElasticPoolEdition.class);
+ }
+
+ /**
+ * @return known ElasticPoolEdition values
+ */
+ public static Collection values() {
+ return values(ElasticPoolEdition.class);
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolEditionCapability.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolEditionCapability.java
new file mode 100644
index 000000000000..22f706cf6c31
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolEditionCapability.java
@@ -0,0 +1,79 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The elastic pool edition capabilities.
+ */
+public class ElasticPoolEditionCapability {
+ /**
+ * The elastic pool edition name.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /**
+ * The status of the elastic pool edition. Possible values include:
+ * 'Visible', 'Available', 'Default', 'Disabled'.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private CapabilityStatus status;
+
+ /**
+ * The list of supported elastic pool DTU levels for the edition.
+ */
+ @JsonProperty(value = "supportedElasticPoolDtus", access = JsonProperty.Access.WRITE_ONLY)
+ private List supportedElasticPoolDtus;
+
+ /**
+ * Whether or not zone redundancy is supported for the edition.
+ */
+ @JsonProperty(value = "zoneRedundant", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean zoneRedundant;
+
+ /**
+ * Get the elastic pool edition name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the status of the elastic pool edition. Possible values include: 'Visible', 'Available', 'Default', 'Disabled'.
+ *
+ * @return the status value
+ */
+ public CapabilityStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Get the list of supported elastic pool DTU levels for the edition.
+ *
+ * @return the supportedElasticPoolDtus value
+ */
+ public List supportedElasticPoolDtus() {
+ return this.supportedElasticPoolDtus;
+ }
+
+ /**
+ * Get whether or not zone redundancy is supported for the edition.
+ *
+ * @return the zoneRedundant value
+ */
+ public Boolean zoneRedundant() {
+ return this.zoneRedundant;
+ }
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolPerDatabaseMaxDtuCapability.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolPerDatabaseMaxDtuCapability.java
new file mode 100644
index 000000000000..2913c51a8d38
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolPerDatabaseMaxDtuCapability.java
@@ -0,0 +1,64 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.sql.v2014_04_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The max per-database DTU capability.
+ */
+public class ElasticPoolPerDatabaseMaxDtuCapability {
+ /**
+ * The maximum DTUs per database.
+ */
+ @JsonProperty(value = "limit", access = JsonProperty.Access.WRITE_ONLY)
+ private Long limit;
+
+ /**
+ * The status of the capability. Possible values include: 'Visible',
+ * 'Available', 'Default', 'Disabled'.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private CapabilityStatus status;
+
+ /**
+ * The list of supported min database DTUs.
+ */
+ @JsonProperty(value = "supportedPerDatabaseMinDtus", access = JsonProperty.Access.WRITE_ONLY)
+ private List supportedPerDatabaseMinDtus;
+
+ /**
+ * Get the maximum DTUs per database.
+ *
+ * @return the limit value
+ */
+ public Long limit() {
+ return this.limit;
+ }
+
+ /**
+ * Get the status of the capability. Possible values include: 'Visible', 'Available', 'Default', 'Disabled'.
+ *
+ * @return the status value
+ */
+ public CapabilityStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Get the list of supported min database DTUs.
+ *
+ * @return the supportedPerDatabaseMinDtus value
+ */
+ public List supportedPerDatabaseMinDtus() {
+ return this.supportedPerDatabaseMinDtus;
+ }
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolPerDatabaseMinDtuCapability.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolPerDatabaseMinDtuCapability.java
new file mode 100644
index 000000000000..12b7a2730559
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolPerDatabaseMinDtuCapability.java
@@ -0,0 +1,48 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The minimum per-database DTU capability.
+ */
+public class ElasticPoolPerDatabaseMinDtuCapability {
+ /**
+ * The maximum DTUs per database.
+ */
+ @JsonProperty(value = "limit", access = JsonProperty.Access.WRITE_ONLY)
+ private Long limit;
+
+ /**
+ * The status of the capability. Possible values include: 'Visible',
+ * 'Available', 'Default', 'Disabled'.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private CapabilityStatus status;
+
+ /**
+ * Get the maximum DTUs per database.
+ *
+ * @return the limit value
+ */
+ public Long limit() {
+ return this.limit;
+ }
+
+ /**
+ * Get the status of the capability. Possible values include: 'Visible', 'Available', 'Default', 'Disabled'.
+ *
+ * @return the status value
+ */
+ public CapabilityStatus status() {
+ return this.status;
+ }
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolServerMetric.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolServerMetric.java
new file mode 100644
index 000000000000..3610a0689a33
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolServerMetric.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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.MetricInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.SqlManager;
+import org.joda.time.DateTime;
+import java.util.List;
+
+/**
+ * Type representing ElasticPoolServerMetric.
+ */
+public interface ElasticPoolServerMetric extends HasInner, HasManager {
+ /**
+ * @return the endTime value.
+ */
+ DateTime endTime();
+
+ /**
+ * @return the metricValues value.
+ */
+ List metricValues();
+
+ /**
+ * @return the name value.
+ */
+ MetricName name();
+
+ /**
+ * @return the startTime value.
+ */
+ DateTime startTime();
+
+ /**
+ * @return the timeGrain value.
+ */
+ String timeGrain();
+
+ /**
+ * @return the unit value.
+ */
+ UnitType unit();
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolServerMetricDefinition.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolServerMetricDefinition.java
new file mode 100644
index 000000000000..5f72ef180734
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolServerMetricDefinition.java
@@ -0,0 +1,46 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.MetricDefinitionInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.SqlManager;
+import java.util.List;
+
+/**
+ * Type representing ElasticPoolServerMetricDefinition.
+ */
+public interface ElasticPoolServerMetricDefinition extends HasInner, HasManager {
+ /**
+ * @return the metricAvailabilities value.
+ */
+ List metricAvailabilities();
+
+ /**
+ * @return the name value.
+ */
+ MetricName name();
+
+ /**
+ * @return the primaryAggregationType value.
+ */
+ PrimaryAggregationType primaryAggregationType();
+
+ /**
+ * @return the resourceUri value.
+ */
+ String resourceUri();
+
+ /**
+ * @return the unit value.
+ */
+ UnitDefinitionType unit();
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolState.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolState.java
new file mode 100644
index 000000000000..554a6fb93402
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolState.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.sql.v2014_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ElasticPoolState.
+ */
+public final class ElasticPoolState extends ExpandableStringEnum {
+ /** Static value Creating for ElasticPoolState. */
+ public static final ElasticPoolState CREATING = fromString("Creating");
+
+ /** Static value Ready for ElasticPoolState. */
+ public static final ElasticPoolState READY = fromString("Ready");
+
+ /** Static value Disabled for ElasticPoolState. */
+ public static final ElasticPoolState DISABLED = fromString("Disabled");
+
+ /**
+ * Creates or finds a ElasticPoolState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ElasticPoolState
+ */
+ @JsonCreator
+ public static ElasticPoolState fromString(String name) {
+ return fromString(name, ElasticPoolState.class);
+ }
+
+ /**
+ * @return known ElasticPoolState values
+ */
+ public static Collection values() {
+ return values(ElasticPoolState.class);
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolUpdate.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolUpdate.java
new file mode 100644
index 000000000000..ecefd193f0ec
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPoolUpdate.java
@@ -0,0 +1,238 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import java.util.Map;
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * Represents an elastic pool update.
+ */
+@JsonFlatten
+public class ElasticPoolUpdate extends ProxyResource {
+ /**
+ * Resource tags.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * The creation date of the elastic pool (ISO8601 format).
+ */
+ @JsonProperty(value = "properties.creationDate", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime creationDate;
+
+ /**
+ * The state of the elastic pool. Possible values include: 'Creating',
+ * 'Ready', 'Disabled'.
+ */
+ @JsonProperty(value = "properties.state", access = JsonProperty.Access.WRITE_ONLY)
+ private ElasticPoolState state;
+
+ /**
+ * The edition of the elastic pool. Possible values include: 'Basic',
+ * 'Standard', 'Premium'.
+ */
+ @JsonProperty(value = "properties.edition")
+ private ElasticPoolEdition edition;
+
+ /**
+ * The total shared DTU for the database elastic pool.
+ */
+ @JsonProperty(value = "properties.dtu")
+ private Integer dtu;
+
+ /**
+ * The maximum DTU any one database can consume.
+ */
+ @JsonProperty(value = "properties.databaseDtuMax")
+ private Integer databaseDtuMax;
+
+ /**
+ * The minimum DTU all databases are guaranteed.
+ */
+ @JsonProperty(value = "properties.databaseDtuMin")
+ private Integer databaseDtuMin;
+
+ /**
+ * Gets storage limit for the database elastic pool in MB.
+ */
+ @JsonProperty(value = "properties.storageMB")
+ private Integer storageMB;
+
+ /**
+ * Whether or not this database elastic pool is zone redundant, which means
+ * the replicas of this database will be spread across multiple
+ * availability zones.
+ */
+ @JsonProperty(value = "properties.zoneRedundant")
+ private Boolean zoneRedundant;
+
+ /**
+ * 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 ElasticPoolUpdate object itself.
+ */
+ public ElasticPoolUpdate withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+ /**
+ * Get the creation date of the elastic pool (ISO8601 format).
+ *
+ * @return the creationDate value
+ */
+ public DateTime creationDate() {
+ return this.creationDate;
+ }
+
+ /**
+ * Get the state of the elastic pool. Possible values include: 'Creating', 'Ready', 'Disabled'.
+ *
+ * @return the state value
+ */
+ public ElasticPoolState state() {
+ return this.state;
+ }
+
+ /**
+ * Get the edition of the elastic pool. Possible values include: 'Basic', 'Standard', 'Premium'.
+ *
+ * @return the edition value
+ */
+ public ElasticPoolEdition edition() {
+ return this.edition;
+ }
+
+ /**
+ * Set the edition of the elastic pool. Possible values include: 'Basic', 'Standard', 'Premium'.
+ *
+ * @param edition the edition value to set
+ * @return the ElasticPoolUpdate object itself.
+ */
+ public ElasticPoolUpdate withEdition(ElasticPoolEdition edition) {
+ this.edition = edition;
+ return this;
+ }
+
+ /**
+ * Get the total shared DTU for the database elastic pool.
+ *
+ * @return the dtu value
+ */
+ public Integer dtu() {
+ return this.dtu;
+ }
+
+ /**
+ * Set the total shared DTU for the database elastic pool.
+ *
+ * @param dtu the dtu value to set
+ * @return the ElasticPoolUpdate object itself.
+ */
+ public ElasticPoolUpdate withDtu(Integer dtu) {
+ this.dtu = dtu;
+ return this;
+ }
+
+ /**
+ * Get the maximum DTU any one database can consume.
+ *
+ * @return the databaseDtuMax value
+ */
+ public Integer databaseDtuMax() {
+ return this.databaseDtuMax;
+ }
+
+ /**
+ * Set the maximum DTU any one database can consume.
+ *
+ * @param databaseDtuMax the databaseDtuMax value to set
+ * @return the ElasticPoolUpdate object itself.
+ */
+ public ElasticPoolUpdate withDatabaseDtuMax(Integer databaseDtuMax) {
+ this.databaseDtuMax = databaseDtuMax;
+ return this;
+ }
+
+ /**
+ * Get the minimum DTU all databases are guaranteed.
+ *
+ * @return the databaseDtuMin value
+ */
+ public Integer databaseDtuMin() {
+ return this.databaseDtuMin;
+ }
+
+ /**
+ * Set the minimum DTU all databases are guaranteed.
+ *
+ * @param databaseDtuMin the databaseDtuMin value to set
+ * @return the ElasticPoolUpdate object itself.
+ */
+ public ElasticPoolUpdate withDatabaseDtuMin(Integer databaseDtuMin) {
+ this.databaseDtuMin = databaseDtuMin;
+ return this;
+ }
+
+ /**
+ * Get gets storage limit for the database elastic pool in MB.
+ *
+ * @return the storageMB value
+ */
+ public Integer storageMB() {
+ return this.storageMB;
+ }
+
+ /**
+ * Set gets storage limit for the database elastic pool in MB.
+ *
+ * @param storageMB the storageMB value to set
+ * @return the ElasticPoolUpdate object itself.
+ */
+ public ElasticPoolUpdate withStorageMB(Integer storageMB) {
+ this.storageMB = storageMB;
+ return this;
+ }
+
+ /**
+ * Get whether or not this database elastic pool is zone redundant, which means the replicas of this database will be spread across multiple availability zones.
+ *
+ * @return the zoneRedundant value
+ */
+ public Boolean zoneRedundant() {
+ return this.zoneRedundant;
+ }
+
+ /**
+ * Set whether or not this database elastic pool is zone redundant, which means the replicas of this database will be spread across multiple availability zones.
+ *
+ * @param zoneRedundant the zoneRedundant value to set
+ * @return the ElasticPoolUpdate object itself.
+ */
+ public ElasticPoolUpdate withZoneRedundant(Boolean zoneRedundant) {
+ this.zoneRedundant = zoneRedundant;
+ return this;
+ }
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPools.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPools.java
new file mode 100644
index 000000000000..2606239a0130
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ElasticPools.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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.ElasticPoolsInner;
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.sql.v2014_04_01.ElasticPoolServerMetric;
+import com.microsoft.azure.management.sql.v2014_04_01.ElasticPoolServerMetricDefinition;
+
+/**
+ * Type representing ElasticPools.
+ */
+public interface ElasticPools extends SupportsCreating, HasInner {
+ /**
+ * Gets an elastic pool.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param elasticPoolName The name of the elastic pool to be retrieved.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serverName, String elasticPoolName);
+
+ /**
+ * Returns a list of elastic pools in a server.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByServerAsync(String resourceGroupName, String serverName);
+
+ /**
+ * Deletes the elastic pool.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param elasticPoolName The name of the elastic pool to be deleted.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String serverName, String elasticPoolName);
+
+ /**
+ * Returns elastic pool metrics.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param elasticPoolName The name of the elastic pool.
+ * @param filter An OData filter expression that describes a subset of metrics to return.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricsAsync(String resourceGroupName, String serverName, String elasticPoolName, String filter);
+
+ /**
+ * Returns elastic pool metric definitions.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param elasticPoolName The name of the elastic pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricDefinitionsAsync(String resourceGroupName, String serverName, String elasticPoolName);
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ExportRequest.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ExportRequest.java
new file mode 100644
index 000000000000..38754c437f19
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ExportRequest.java
@@ -0,0 +1,175 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Export database parameters.
+ */
+public class ExportRequest {
+ /**
+ * The type of the storage key to use. Possible values include:
+ * 'StorageAccessKey', 'SharedAccessKey'.
+ */
+ @JsonProperty(value = "storageKeyType", required = true)
+ private StorageKeyType storageKeyType;
+
+ /**
+ * The storage key to use. If storage key type is SharedAccessKey, it must
+ * be preceded with a "?.".
+ */
+ @JsonProperty(value = "storageKey", required = true)
+ private String storageKey;
+
+ /**
+ * The storage uri to use.
+ */
+ @JsonProperty(value = "storageUri", required = true)
+ private String storageUri;
+
+ /**
+ * The name of the SQL administrator.
+ */
+ @JsonProperty(value = "administratorLogin", required = true)
+ private String administratorLogin;
+
+ /**
+ * The password of the SQL administrator.
+ */
+ @JsonProperty(value = "administratorLoginPassword", required = true)
+ private String administratorLoginPassword;
+
+ /**
+ * The authentication type. Possible values include: 'SQL', 'ADPassword'.
+ */
+ @JsonProperty(value = "authenticationType")
+ private AuthenticationType authenticationType;
+
+ /**
+ * Get the type of the storage key to use. Possible values include: 'StorageAccessKey', 'SharedAccessKey'.
+ *
+ * @return the storageKeyType value
+ */
+ public StorageKeyType storageKeyType() {
+ return this.storageKeyType;
+ }
+
+ /**
+ * Set the type of the storage key to use. Possible values include: 'StorageAccessKey', 'SharedAccessKey'.
+ *
+ * @param storageKeyType the storageKeyType value to set
+ * @return the ExportRequest object itself.
+ */
+ public ExportRequest withStorageKeyType(StorageKeyType storageKeyType) {
+ this.storageKeyType = storageKeyType;
+ return this;
+ }
+
+ /**
+ * Get the storage key to use. If storage key type is SharedAccessKey, it must be preceded with a "?.".
+ *
+ * @return the storageKey value
+ */
+ public String storageKey() {
+ return this.storageKey;
+ }
+
+ /**
+ * Set the storage key to use. If storage key type is SharedAccessKey, it must be preceded with a "?.".
+ *
+ * @param storageKey the storageKey value to set
+ * @return the ExportRequest object itself.
+ */
+ public ExportRequest withStorageKey(String storageKey) {
+ this.storageKey = storageKey;
+ return this;
+ }
+
+ /**
+ * Get the storage uri to use.
+ *
+ * @return the storageUri value
+ */
+ public String storageUri() {
+ return this.storageUri;
+ }
+
+ /**
+ * Set the storage uri to use.
+ *
+ * @param storageUri the storageUri value to set
+ * @return the ExportRequest object itself.
+ */
+ public ExportRequest withStorageUri(String storageUri) {
+ this.storageUri = storageUri;
+ return this;
+ }
+
+ /**
+ * Get the name of the SQL administrator.
+ *
+ * @return the administratorLogin value
+ */
+ public String administratorLogin() {
+ return this.administratorLogin;
+ }
+
+ /**
+ * Set the name of the SQL administrator.
+ *
+ * @param administratorLogin the administratorLogin value to set
+ * @return the ExportRequest object itself.
+ */
+ public ExportRequest withAdministratorLogin(String administratorLogin) {
+ this.administratorLogin = administratorLogin;
+ return this;
+ }
+
+ /**
+ * Get the password of the SQL administrator.
+ *
+ * @return the administratorLoginPassword value
+ */
+ public String administratorLoginPassword() {
+ return this.administratorLoginPassword;
+ }
+
+ /**
+ * Set the password of the SQL administrator.
+ *
+ * @param administratorLoginPassword the administratorLoginPassword value to set
+ * @return the ExportRequest object itself.
+ */
+ public ExportRequest withAdministratorLoginPassword(String administratorLoginPassword) {
+ this.administratorLoginPassword = administratorLoginPassword;
+ return this;
+ }
+
+ /**
+ * Get the authentication type. Possible values include: 'SQL', 'ADPassword'.
+ *
+ * @return the authenticationType value
+ */
+ public AuthenticationType authenticationType() {
+ return this.authenticationType;
+ }
+
+ /**
+ * Set the authentication type. Possible values include: 'SQL', 'ADPassword'.
+ *
+ * @param authenticationType the authenticationType value to set
+ * @return the ExportRequest object itself.
+ */
+ public ExportRequest withAuthenticationType(AuthenticationType authenticationType) {
+ this.authenticationType = authenticationType;
+ return this;
+ }
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/Extensions.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/Extensions.java
new file mode 100644
index 000000000000..e9930ea24412
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/Extensions.java
@@ -0,0 +1,30 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import rx.Completable;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.ExtensionsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Extensions.
+ */
+public interface Extensions extends HasInner {
+ /**
+ * Gets database extensions.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param databaseName The name of the database to import into
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable listByDatabaseAsync(String resourceGroupName, String serverName, String databaseName);
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/FirewallRule.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/FirewallRule.java
new file mode 100644
index 000000000000..113a3fd162b7
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/FirewallRule.java
@@ -0,0 +1,125 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.FirewallRuleInner;
+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.sql.v2014_04_01.implementation.SqlManager;
+
+/**
+ * Type representing FirewallRule.
+ */
+public interface FirewallRule extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the endIpAddress value.
+ */
+ String endIpAddress();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the kind value.
+ */
+ String kind();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the startIpAddress value.
+ */
+ String startIpAddress();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the FirewallRule definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithServer, DefinitionStages.WithEndIpAddress, DefinitionStages.WithStartIpAddress, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of FirewallRule definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a FirewallRule definition.
+ */
+ interface Blank extends WithServer {
+ }
+
+ /**
+ * The stage of the firewallrule definition allowing to specify Server.
+ */
+ interface WithServer {
+ /**
+ * Specifies resourceGroupName, serverName.
+ */
+ WithEndIpAddress withExistingServer(String resourceGroupName, String serverName);
+ }
+
+ /**
+ * The stage of the firewallrule definition allowing to specify EndIpAddress.
+ */
+ interface WithEndIpAddress {
+ /**
+ * Specifies endIpAddress.
+ */
+ WithStartIpAddress withEndIpAddress(String endIpAddress);
+ }
+
+ /**
+ * The stage of the firewallrule definition allowing to specify StartIpAddress.
+ */
+ interface WithStartIpAddress {
+ /**
+ * Specifies startIpAddress.
+ */
+ WithCreate withStartIpAddress(String startIpAddress);
+ }
+
+ /**
+ * 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 {
+ }
+ }
+ /**
+ * The template for a FirewallRule update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable {
+ }
+
+ /**
+ * Grouping of FirewallRule update stages.
+ */
+ interface UpdateStages {
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/FirewallRules.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/FirewallRules.java
new file mode 100644
index 000000000000..2d064a5027ac
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/FirewallRules.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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.FirewallRulesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing FirewallRules.
+ */
+public interface FirewallRules extends SupportsCreating, HasInner {
+ /**
+ * Gets a firewall rule.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param firewallRuleName The name of the firewall rule.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serverName, String firewallRuleName);
+
+ /**
+ * Returns a list of firewall rules.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByServerAsync(String resourceGroupName, String serverName);
+
+ /**
+ * Deletes a firewall rule.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param firewallRuleName The name of the firewall rule.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String serverName, String firewallRuleName);
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/GeoBackupPolicies.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/GeoBackupPolicies.java
new file mode 100644
index 000000000000..fbe04d31170d
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/GeoBackupPolicies.java
@@ -0,0 +1,42 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Observable;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.GeoBackupPoliciesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing GeoBackupPolicies.
+ */
+public interface GeoBackupPolicies extends SupportsCreating, HasInner {
+ /**
+ * Gets a geo backup policy.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param databaseName The name of the database.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serverName, String databaseName);
+
+ /**
+ * Returns a list of geo backup policies.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param databaseName The name of the database.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByDatabaseAsync(String resourceGroupName, String serverName, String databaseName);
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/GeoBackupPolicy.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/GeoBackupPolicy.java
new file mode 100644
index 000000000000..7fed72971ef3
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/GeoBackupPolicy.java
@@ -0,0 +1,125 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.GeoBackupPolicyInner;
+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.sql.v2014_04_01.implementation.SqlManager;
+
+/**
+ * Type representing GeoBackupPolicy.
+ */
+public interface GeoBackupPolicy extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the kind value.
+ */
+ String kind();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the state value.
+ */
+ GeoBackupPolicyState state();
+
+ /**
+ * @return the storageType value.
+ */
+ String storageType();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the GeoBackupPolicy definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDatabasis, DefinitionStages.WithState, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of GeoBackupPolicy definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a GeoBackupPolicy definition.
+ */
+ interface Blank extends WithDatabasis {
+ }
+
+ /**
+ * The stage of the geobackuppolicy definition allowing to specify Databasis.
+ */
+ interface WithDatabasis {
+ /**
+ * Specifies resourceGroupName, serverName, databaseName.
+ */
+ WithState withExistingDatabasis(String resourceGroupName, String serverName, String databaseName);
+ }
+
+ /**
+ * The stage of the geobackuppolicy definition allowing to specify State.
+ */
+ interface WithState {
+ /**
+ * Specifies state.
+ */
+ WithCreate withState(GeoBackupPolicyState state);
+ }
+
+ /**
+ * 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 {
+ }
+ }
+ /**
+ * The template for a GeoBackupPolicy update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithState {
+ }
+
+ /**
+ * Grouping of GeoBackupPolicy update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the geobackuppolicy update allowing to specify State.
+ */
+ interface WithState {
+ /**
+ * Specifies state.
+ */
+ Update withState(GeoBackupPolicyState state);
+ }
+
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/GeoBackupPolicyState.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/GeoBackupPolicyState.java
new file mode 100644
index 000000000000..f50a498c34f7
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/GeoBackupPolicyState.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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for GeoBackupPolicyState.
+ */
+public enum GeoBackupPolicyState {
+ /** Enum value Disabled. */
+ DISABLED("Disabled"),
+
+ /** Enum value Enabled. */
+ ENABLED("Enabled");
+
+ /** The actual serialized value for a GeoBackupPolicyState instance. */
+ private String value;
+
+ GeoBackupPolicyState(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a GeoBackupPolicyState instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed GeoBackupPolicyState object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static GeoBackupPolicyState fromString(String value) {
+ GeoBackupPolicyState[] items = GeoBackupPolicyState.values();
+ for (GeoBackupPolicyState item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ImportExportResponse.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ImportExportResponse.java
new file mode 100644
index 000000000000..3bfb29fdd51d
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ImportExportResponse.java
@@ -0,0 +1,250 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.ImportExportResponseInner;
+import com.microsoft.azure.arm.model.Indexable;
+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.sql.v2014_04_01.implementation.SqlManager;
+import java.util.UUID;
+
+/**
+ * Type representing ImportExportResponse.
+ */
+public interface ImportExportResponse extends HasInner, Indexable, Updatable, HasManager {
+ /**
+ * @return the blobUri value.
+ */
+ String blobUri();
+
+ /**
+ * @return the databaseName value.
+ */
+ String databaseName();
+
+ /**
+ * @return the errorMessage value.
+ */
+ String errorMessage();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the lastModifiedTime value.
+ */
+ String lastModifiedTime();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the queuedTime value.
+ */
+ String queuedTime();
+
+ /**
+ * @return the requestId value.
+ */
+ UUID requestId();
+
+ /**
+ * @return the requestType value.
+ */
+ String requestType();
+
+ /**
+ * @return the serverName value.
+ */
+ String serverName();
+
+ /**
+ * @return the status value.
+ */
+ String status();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the ImportExportResponse definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDatabasis, DefinitionStages.WithAdministratorLogin, DefinitionStages.WithAdministratorLoginPassword, DefinitionStages.WithOperationMode, DefinitionStages.WithStorageKey, DefinitionStages.WithStorageKeyType, DefinitionStages.WithStorageUri, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ImportExportResponse definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ImportExportResponse definition.
+ */
+ interface Blank extends WithDatabasis {
+ }
+
+ /**
+ * The stage of the importexportresponse definition allowing to specify Databasis.
+ */
+ interface WithDatabasis {
+ /**
+ * Specifies resourceGroupName, serverName, databaseName.
+ */
+ WithAdministratorLogin withExistingDatabasis(String resourceGroupName, String serverName, String databaseName);
+ }
+
+ /**
+ * The stage of the importexportresponse definition allowing to specify AdministratorLogin.
+ */
+ interface WithAdministratorLogin {
+ /**
+ * Specifies administratorLogin.
+ */
+ WithAdministratorLoginPassword withAdministratorLogin(String administratorLogin);
+ }
+
+ /**
+ * The stage of the importexportresponse definition allowing to specify AdministratorLoginPassword.
+ */
+ interface WithAdministratorLoginPassword {
+ /**
+ * Specifies administratorLoginPassword.
+ */
+ WithOperationMode withAdministratorLoginPassword(String administratorLoginPassword);
+ }
+
+ /**
+ * The stage of the importexportresponse definition allowing to specify OperationMode.
+ */
+ interface WithOperationMode {
+ /**
+ * Specifies operationMode.
+ */
+ WithStorageKey withOperationMode(String operationMode);
+ }
+
+ /**
+ * The stage of the importexportresponse definition allowing to specify StorageKey.
+ */
+ interface WithStorageKey {
+ /**
+ * Specifies storageKey.
+ */
+ WithStorageKeyType withStorageKey(String storageKey);
+ }
+
+ /**
+ * The stage of the importexportresponse definition allowing to specify StorageKeyType.
+ */
+ interface WithStorageKeyType {
+ /**
+ * Specifies storageKeyType.
+ */
+ WithStorageUri withStorageKeyType(StorageKeyType storageKeyType);
+ }
+
+ /**
+ * The stage of the importexportresponse definition allowing to specify StorageUri.
+ */
+ interface WithStorageUri {
+ /**
+ * Specifies storageUri.
+ */
+ WithCreate withStorageUri(String storageUri);
+ }
+
+ /**
+ * The stage of the importexportresponse definition allowing to specify AuthenticationType.
+ */
+ interface WithAuthenticationType {
+ /**
+ * Specifies authenticationType.
+ */
+ WithCreate withAuthenticationType(AuthenticationType authenticationType);
+ }
+
+ /**
+ * The stage of the importexportresponse definition allowing to specify Name.
+ */
+ interface WithName {
+ /**
+ * Specifies name.
+ */
+ WithCreate withName(String name);
+ }
+
+ /**
+ * The stage of the importexportresponse definition allowing to specify Type.
+ */
+ interface WithType {
+ /**
+ * Specifies type.
+ */
+ WithCreate withType(String type);
+ }
+
+ /**
+ * 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.WithAuthenticationType, DefinitionStages.WithName, DefinitionStages.WithType {
+ }
+ }
+ /**
+ * The template for a ImportExportResponse update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithAuthenticationType, UpdateStages.WithName, UpdateStages.WithType {
+ }
+
+ /**
+ * Grouping of ImportExportResponse update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the importexportresponse update allowing to specify AuthenticationType.
+ */
+ interface WithAuthenticationType {
+ /**
+ * Specifies authenticationType.
+ */
+ Update withAuthenticationType(AuthenticationType authenticationType);
+ }
+
+ /**
+ * The stage of the importexportresponse update allowing to specify Name.
+ */
+ interface WithName {
+ /**
+ * Specifies name.
+ */
+ Update withName(String name);
+ }
+
+ /**
+ * The stage of the importexportresponse update allowing to specify Type.
+ */
+ interface WithType {
+ /**
+ * Specifies type.
+ */
+ Update withType(String type);
+ }
+
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ImportExtensionRequest.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ImportExtensionRequest.java
new file mode 100644
index 000000000000..c3b0b7d5a3be
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ImportExtensionRequest.java
@@ -0,0 +1,267 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Import database parameters.
+ */
+@JsonFlatten
+public class ImportExtensionRequest {
+ /**
+ * The name of the extension.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * The type of the extension.
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /**
+ * The type of the storage key to use. Possible values include:
+ * 'StorageAccessKey', 'SharedAccessKey'.
+ */
+ @JsonProperty(value = "properties.storageKeyType", required = true)
+ private StorageKeyType storageKeyType;
+
+ /**
+ * The storage key to use. If storage key type is SharedAccessKey, it must
+ * be preceded with a "?.".
+ */
+ @JsonProperty(value = "properties.storageKey", required = true)
+ private String storageKey;
+
+ /**
+ * The storage uri to use.
+ */
+ @JsonProperty(value = "properties.storageUri", required = true)
+ private String storageUri;
+
+ /**
+ * The name of the SQL administrator.
+ */
+ @JsonProperty(value = "properties.administratorLogin", required = true)
+ private String administratorLogin;
+
+ /**
+ * The password of the SQL administrator.
+ */
+ @JsonProperty(value = "properties.administratorLoginPassword", required = true)
+ private String administratorLoginPassword;
+
+ /**
+ * The authentication type. Possible values include: 'SQL', 'ADPassword'.
+ */
+ @JsonProperty(value = "properties.authenticationType")
+ private AuthenticationType authenticationType;
+
+ /**
+ * The type of import operation being performed. This is always Import.
+ */
+ @JsonProperty(value = "properties.operationMode", required = true)
+ private String operationMode;
+
+ /**
+ * Creates an instance of ImportExtensionRequest class.
+ * @param storageKeyType the type of the storage key to use. Possible values include: 'StorageAccessKey', 'SharedAccessKey'.
+ * @param storageKey the storage key to use. If storage key type is SharedAccessKey, it must be preceded with a "?.".
+ * @param storageUri the storage uri to use.
+ * @param administratorLogin the name of the SQL administrator.
+ * @param administratorLoginPassword the password of the SQL administrator.
+ */
+ public ImportExtensionRequest() {
+ operationMode = "Import";
+ }
+
+ /**
+ * Get the name of the extension.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name of the extension.
+ *
+ * @param name the name value to set
+ * @return the ImportExtensionRequest object itself.
+ */
+ public ImportExtensionRequest withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the type of the extension.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set the type of the extension.
+ *
+ * @param type the type value to set
+ * @return the ImportExtensionRequest object itself.
+ */
+ public ImportExtensionRequest withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the type of the storage key to use. Possible values include: 'StorageAccessKey', 'SharedAccessKey'.
+ *
+ * @return the storageKeyType value
+ */
+ public StorageKeyType storageKeyType() {
+ return this.storageKeyType;
+ }
+
+ /**
+ * Set the type of the storage key to use. Possible values include: 'StorageAccessKey', 'SharedAccessKey'.
+ *
+ * @param storageKeyType the storageKeyType value to set
+ * @return the ImportExtensionRequest object itself.
+ */
+ public ImportExtensionRequest withStorageKeyType(StorageKeyType storageKeyType) {
+ this.storageKeyType = storageKeyType;
+ return this;
+ }
+
+ /**
+ * Get the storage key to use. If storage key type is SharedAccessKey, it must be preceded with a "?.".
+ *
+ * @return the storageKey value
+ */
+ public String storageKey() {
+ return this.storageKey;
+ }
+
+ /**
+ * Set the storage key to use. If storage key type is SharedAccessKey, it must be preceded with a "?.".
+ *
+ * @param storageKey the storageKey value to set
+ * @return the ImportExtensionRequest object itself.
+ */
+ public ImportExtensionRequest withStorageKey(String storageKey) {
+ this.storageKey = storageKey;
+ return this;
+ }
+
+ /**
+ * Get the storage uri to use.
+ *
+ * @return the storageUri value
+ */
+ public String storageUri() {
+ return this.storageUri;
+ }
+
+ /**
+ * Set the storage uri to use.
+ *
+ * @param storageUri the storageUri value to set
+ * @return the ImportExtensionRequest object itself.
+ */
+ public ImportExtensionRequest withStorageUri(String storageUri) {
+ this.storageUri = storageUri;
+ return this;
+ }
+
+ /**
+ * Get the name of the SQL administrator.
+ *
+ * @return the administratorLogin value
+ */
+ public String administratorLogin() {
+ return this.administratorLogin;
+ }
+
+ /**
+ * Set the name of the SQL administrator.
+ *
+ * @param administratorLogin the administratorLogin value to set
+ * @return the ImportExtensionRequest object itself.
+ */
+ public ImportExtensionRequest withAdministratorLogin(String administratorLogin) {
+ this.administratorLogin = administratorLogin;
+ return this;
+ }
+
+ /**
+ * Get the password of the SQL administrator.
+ *
+ * @return the administratorLoginPassword value
+ */
+ public String administratorLoginPassword() {
+ return this.administratorLoginPassword;
+ }
+
+ /**
+ * Set the password of the SQL administrator.
+ *
+ * @param administratorLoginPassword the administratorLoginPassword value to set
+ * @return the ImportExtensionRequest object itself.
+ */
+ public ImportExtensionRequest withAdministratorLoginPassword(String administratorLoginPassword) {
+ this.administratorLoginPassword = administratorLoginPassword;
+ return this;
+ }
+
+ /**
+ * Get the authentication type. Possible values include: 'SQL', 'ADPassword'.
+ *
+ * @return the authenticationType value
+ */
+ public AuthenticationType authenticationType() {
+ return this.authenticationType;
+ }
+
+ /**
+ * Set the authentication type. Possible values include: 'SQL', 'ADPassword'.
+ *
+ * @param authenticationType the authenticationType value to set
+ * @return the ImportExtensionRequest object itself.
+ */
+ public ImportExtensionRequest withAuthenticationType(AuthenticationType authenticationType) {
+ this.authenticationType = authenticationType;
+ return this;
+ }
+
+ /**
+ * Get the type of import operation being performed. This is always Import.
+ *
+ * @return the operationMode value
+ */
+ public String operationMode() {
+ return this.operationMode;
+ }
+
+ /**
+ * Set the type of import operation being performed. This is always Import.
+ *
+ * @param operationMode the operationMode value to set
+ * @return the ImportExtensionRequest object itself.
+ */
+ public ImportExtensionRequest withOperationMode(String operationMode) {
+ this.operationMode = operationMode;
+ return this;
+ }
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ImportRequest.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ImportRequest.java
new file mode 100644
index 000000000000..f947a3473e50
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ImportRequest.java
@@ -0,0 +1,132 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Import database parameters.
+ */
+public class ImportRequest extends ExportRequest {
+ /**
+ * The name of the database to import.
+ */
+ @JsonProperty(value = "databaseName", required = true)
+ private String databaseName;
+
+ /**
+ * The edition for the database being created. Possible values include:
+ * 'Web', 'Business', 'Basic', 'Standard', 'Premium', 'PremiumRS', 'Free',
+ * 'Stretch', 'DataWarehouse', 'System', 'System2'.
+ */
+ @JsonProperty(value = "edition", required = true)
+ private DatabaseEdition edition;
+
+ /**
+ * The name of the service objective to assign to the database. Possible
+ * values include: 'System', 'System0', 'System1', 'System2', 'System3',
+ * 'System4', 'System2L', 'System3L', 'System4L', 'Free', 'Basic', 'S0',
+ * 'S1', 'S2', 'S3', 'S4', 'S6', 'S7', 'S9', 'S12', 'P1', 'P2', 'P3', 'P4',
+ * 'P6', 'P11', 'P15', 'PRS1', 'PRS2', 'PRS4', 'PRS6', 'DW100', 'DW200',
+ * 'DW300', 'DW400', 'DW500', 'DW600', 'DW1000', 'DW1200', 'DW1000c',
+ * 'DW1500', 'DW1500c', 'DW2000', 'DW2000c', 'DW3000', 'DW2500c',
+ * 'DW3000c', 'DW6000', 'DW5000c', 'DW6000c', 'DW7500c', 'DW10000c',
+ * 'DW15000c', 'DW30000c', 'DS100', 'DS200', 'DS300', 'DS400', 'DS500',
+ * 'DS600', 'DS1000', 'DS1200', 'DS1500', 'DS2000', 'ElasticPool'.
+ */
+ @JsonProperty(value = "serviceObjectiveName", required = true)
+ private ServiceObjectiveName serviceObjectiveName;
+
+ /**
+ * The maximum size for the newly imported database.
+ */
+ @JsonProperty(value = "maxSizeBytes", required = true)
+ private String maxSizeBytes;
+
+ /**
+ * Get the name of the database to import.
+ *
+ * @return the databaseName value
+ */
+ public String databaseName() {
+ return this.databaseName;
+ }
+
+ /**
+ * Set the name of the database to import.
+ *
+ * @param databaseName the databaseName value to set
+ * @return the ImportRequest object itself.
+ */
+ public ImportRequest withDatabaseName(String databaseName) {
+ this.databaseName = databaseName;
+ return this;
+ }
+
+ /**
+ * Get the edition for the database being created. Possible values include: 'Web', 'Business', 'Basic', 'Standard', 'Premium', 'PremiumRS', 'Free', 'Stretch', 'DataWarehouse', 'System', 'System2'.
+ *
+ * @return the edition value
+ */
+ public DatabaseEdition edition() {
+ return this.edition;
+ }
+
+ /**
+ * Set the edition for the database being created. Possible values include: 'Web', 'Business', 'Basic', 'Standard', 'Premium', 'PremiumRS', 'Free', 'Stretch', 'DataWarehouse', 'System', 'System2'.
+ *
+ * @param edition the edition value to set
+ * @return the ImportRequest object itself.
+ */
+ public ImportRequest withEdition(DatabaseEdition edition) {
+ this.edition = edition;
+ return this;
+ }
+
+ /**
+ * Get the name of the service objective to assign to the database. Possible values include: 'System', 'System0', 'System1', 'System2', 'System3', 'System4', 'System2L', 'System3L', 'System4L', 'Free', 'Basic', 'S0', 'S1', 'S2', 'S3', 'S4', 'S6', 'S7', 'S9', 'S12', 'P1', 'P2', 'P3', 'P4', 'P6', 'P11', 'P15', 'PRS1', 'PRS2', 'PRS4', 'PRS6', 'DW100', 'DW200', 'DW300', 'DW400', 'DW500', 'DW600', 'DW1000', 'DW1200', 'DW1000c', 'DW1500', 'DW1500c', 'DW2000', 'DW2000c', 'DW3000', 'DW2500c', 'DW3000c', 'DW6000', 'DW5000c', 'DW6000c', 'DW7500c', 'DW10000c', 'DW15000c', 'DW30000c', 'DS100', 'DS200', 'DS300', 'DS400', 'DS500', 'DS600', 'DS1000', 'DS1200', 'DS1500', 'DS2000', 'ElasticPool'.
+ *
+ * @return the serviceObjectiveName value
+ */
+ public ServiceObjectiveName serviceObjectiveName() {
+ return this.serviceObjectiveName;
+ }
+
+ /**
+ * Set the name of the service objective to assign to the database. Possible values include: 'System', 'System0', 'System1', 'System2', 'System3', 'System4', 'System2L', 'System3L', 'System4L', 'Free', 'Basic', 'S0', 'S1', 'S2', 'S3', 'S4', 'S6', 'S7', 'S9', 'S12', 'P1', 'P2', 'P3', 'P4', 'P6', 'P11', 'P15', 'PRS1', 'PRS2', 'PRS4', 'PRS6', 'DW100', 'DW200', 'DW300', 'DW400', 'DW500', 'DW600', 'DW1000', 'DW1200', 'DW1000c', 'DW1500', 'DW1500c', 'DW2000', 'DW2000c', 'DW3000', 'DW2500c', 'DW3000c', 'DW6000', 'DW5000c', 'DW6000c', 'DW7500c', 'DW10000c', 'DW15000c', 'DW30000c', 'DS100', 'DS200', 'DS300', 'DS400', 'DS500', 'DS600', 'DS1000', 'DS1200', 'DS1500', 'DS2000', 'ElasticPool'.
+ *
+ * @param serviceObjectiveName the serviceObjectiveName value to set
+ * @return the ImportRequest object itself.
+ */
+ public ImportRequest withServiceObjectiveName(ServiceObjectiveName serviceObjectiveName) {
+ this.serviceObjectiveName = serviceObjectiveName;
+ return this;
+ }
+
+ /**
+ * Get the maximum size for the newly imported database.
+ *
+ * @return the maxSizeBytes value
+ */
+ public String maxSizeBytes() {
+ return this.maxSizeBytes;
+ }
+
+ /**
+ * Set the maximum size for the newly imported database.
+ *
+ * @param maxSizeBytes the maxSizeBytes value to set
+ * @return the ImportRequest object itself.
+ */
+ public ImportRequest withMaxSizeBytes(String maxSizeBytes) {
+ this.maxSizeBytes = maxSizeBytes;
+ return this;
+ }
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/LocationCapabilities.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/LocationCapabilities.java
new file mode 100644
index 000000000000..74a2a3339bdc
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/LocationCapabilities.java
@@ -0,0 +1,36 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.SqlManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.LocationCapabilitiesInner;
+import java.util.List;
+
+/**
+ * Type representing LocationCapabilities.
+ */
+public interface LocationCapabilities extends HasInner, HasManager {
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the status value.
+ */
+ CapabilityStatus status();
+
+ /**
+ * @return the supportedServerVersions value.
+ */
+ List supportedServerVersions();
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/MaxSizeCapability.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/MaxSizeCapability.java
new file mode 100644
index 000000000000..391c65cb0d48
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/MaxSizeCapability.java
@@ -0,0 +1,64 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The maximum size limits for a database.
+ */
+public class MaxSizeCapability {
+ /**
+ * The maximum size of the database (see 'unit' for the units).
+ */
+ @JsonProperty(value = "limit", access = JsonProperty.Access.WRITE_ONLY)
+ private long limit;
+
+ /**
+ * The units that the limit is expressed in. Possible values include:
+ * 'Megabytes', 'Gigabytes', 'Terabytes', 'Petabytes'.
+ */
+ @JsonProperty(value = "unit", access = JsonProperty.Access.WRITE_ONLY)
+ private MaxSizeUnits unit;
+
+ /**
+ * The status of the maximum size capability. Possible values include:
+ * 'Visible', 'Available', 'Default', 'Disabled'.
+ */
+ @JsonProperty(value = "status", access = JsonProperty.Access.WRITE_ONLY)
+ private CapabilityStatus status;
+
+ /**
+ * Get the maximum size of the database (see 'unit' for the units).
+ *
+ * @return the limit value
+ */
+ public long limit() {
+ return this.limit;
+ }
+
+ /**
+ * Get the units that the limit is expressed in. Possible values include: 'Megabytes', 'Gigabytes', 'Terabytes', 'Petabytes'.
+ *
+ * @return the unit value
+ */
+ public MaxSizeUnits unit() {
+ return this.unit;
+ }
+
+ /**
+ * Get the status of the maximum size capability. Possible values include: 'Visible', 'Available', 'Default', 'Disabled'.
+ *
+ * @return the status value
+ */
+ public CapabilityStatus status() {
+ return this.status;
+ }
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/MaxSizeUnits.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/MaxSizeUnits.java
new file mode 100644
index 000000000000..89161b84a1a2
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/MaxSizeUnits.java
@@ -0,0 +1,59 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for MaxSizeUnits.
+ */
+public enum MaxSizeUnits {
+ /** Enum value Megabytes. */
+ MEGABYTES("Megabytes"),
+
+ /** Enum value Gigabytes. */
+ GIGABYTES("Gigabytes"),
+
+ /** Enum value Terabytes. */
+ TERABYTES("Terabytes"),
+
+ /** Enum value Petabytes. */
+ PETABYTES("Petabytes");
+
+ /** The actual serialized value for a MaxSizeUnits instance. */
+ private String value;
+
+ MaxSizeUnits(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a MaxSizeUnits instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed MaxSizeUnits object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static MaxSizeUnits fromString(String value) {
+ MaxSizeUnits[] items = MaxSizeUnits.values();
+ for (MaxSizeUnits item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/MetricAvailability.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/MetricAvailability.java
new file mode 100644
index 000000000000..8ccb729040c5
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/MetricAvailability.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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A metric availability value.
+ */
+public class MetricAvailability {
+ /**
+ * The length of retention for the database metric.
+ */
+ @JsonProperty(value = "retention", access = JsonProperty.Access.WRITE_ONLY)
+ private String retention;
+
+ /**
+ * The granularity of the database metric.
+ */
+ @JsonProperty(value = "timeGrain", access = JsonProperty.Access.WRITE_ONLY)
+ private String timeGrain;
+
+ /**
+ * Get the length of retention for the database metric.
+ *
+ * @return the retention value
+ */
+ public String retention() {
+ return this.retention;
+ }
+
+ /**
+ * Get the granularity of the database metric.
+ *
+ * @return the timeGrain value
+ */
+ public String timeGrain() {
+ return this.timeGrain;
+ }
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/MetricName.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/MetricName.java
new file mode 100644
index 000000000000..8cca4370e35d
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/MetricName.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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A database metric name.
+ */
+public class MetricName {
+ /**
+ * The name of the database metric.
+ */
+ @JsonProperty(value = "value", access = JsonProperty.Access.WRITE_ONLY)
+ private String value;
+
+ /**
+ * The friendly name of the database metric.
+ */
+ @JsonProperty(value = "localizedValue", access = JsonProperty.Access.WRITE_ONLY)
+ private String localizedValue;
+
+ /**
+ * Get the name of the database metric.
+ *
+ * @return the value value
+ */
+ public String value() {
+ return this.value;
+ }
+
+ /**
+ * Get the friendly name of the database metric.
+ *
+ * @return the localizedValue value
+ */
+ public String localizedValue() {
+ return this.localizedValue;
+ }
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/MetricValue.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/MetricValue.java
new file mode 100644
index 000000000000..4eda2dd67311
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/MetricValue.java
@@ -0,0 +1,108 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Represents database metrics.
+ */
+public class MetricValue {
+ /**
+ * The number of values for the metric.
+ */
+ @JsonProperty(value = "count", access = JsonProperty.Access.WRITE_ONLY)
+ private Double count;
+
+ /**
+ * The average value of the metric.
+ */
+ @JsonProperty(value = "average", access = JsonProperty.Access.WRITE_ONLY)
+ private Double average;
+
+ /**
+ * The max value of the metric.
+ */
+ @JsonProperty(value = "maximum", access = JsonProperty.Access.WRITE_ONLY)
+ private Double maximum;
+
+ /**
+ * The min value of the metric.
+ */
+ @JsonProperty(value = "minimum", access = JsonProperty.Access.WRITE_ONLY)
+ private Double minimum;
+
+ /**
+ * The metric timestamp (ISO-8601 format).
+ */
+ @JsonProperty(value = "timestamp", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime timestamp;
+
+ /**
+ * The total value of the metric.
+ */
+ @JsonProperty(value = "total", access = JsonProperty.Access.WRITE_ONLY)
+ private Double total;
+
+ /**
+ * Get the number of values for the metric.
+ *
+ * @return the count value
+ */
+ public Double count() {
+ return this.count;
+ }
+
+ /**
+ * Get the average value of the metric.
+ *
+ * @return the average value
+ */
+ public Double average() {
+ return this.average;
+ }
+
+ /**
+ * Get the max value of the metric.
+ *
+ * @return the maximum value
+ */
+ public Double maximum() {
+ return this.maximum;
+ }
+
+ /**
+ * Get the min value of the metric.
+ *
+ * @return the minimum value
+ */
+ public Double minimum() {
+ return this.minimum;
+ }
+
+ /**
+ * Get the metric timestamp (ISO-8601 format).
+ *
+ * @return the timestamp value
+ */
+ public DateTime timestamp() {
+ return this.timestamp;
+ }
+
+ /**
+ * Get the total value of the metric.
+ *
+ * @return the total value
+ */
+ public Double total() {
+ return this.total;
+ }
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/OperationDisplay.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/OperationDisplay.java
new file mode 100644
index 000000000000..17d69550f43e
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/OperationDisplay.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Display metadata associated with the operation.
+ */
+public class OperationDisplay {
+ /**
+ * Service provider: Microsoft SQL Database.
+ */
+ @JsonProperty(value = "provider")
+ private String provider;
+
+ /**
+ * Resource on which the operation is performed: Server, Database, etc.
+ */
+ @JsonProperty(value = "resource")
+ private String resource;
+
+ /**
+ * Type of operation: get, read, delete, etc.
+ */
+ @JsonProperty(value = "operation")
+ private String operation;
+
+ /**
+ * Get service provider: Microsoft SQL Database.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Set service provider: Microsoft SQL Database.
+ *
+ * @param provider the provider value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withProvider(String provider) {
+ this.provider = provider;
+ return this;
+ }
+
+ /**
+ * Get resource on which the operation is performed: Server, Database, etc.
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set resource on which the operation is performed: Server, Database, etc.
+ *
+ * @param resource the resource value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withResource(String resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get type of operation: get, read, delete, etc.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+ /**
+ * Set type of operation: get, read, delete, etc.
+ *
+ * @param operation the operation value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withOperation(String operation) {
+ this.operation = operation;
+ return this;
+ }
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/OperationImpact.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/OperationImpact.java
new file mode 100644
index 000000000000..89a77c9d8017
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/OperationImpact.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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The impact of an operation, both in absolute and relative terms.
+ */
+public class OperationImpact {
+ /**
+ * The name of the impact dimension.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /**
+ * The unit in which estimated impact to dimension is measured.
+ */
+ @JsonProperty(value = "unit", access = JsonProperty.Access.WRITE_ONLY)
+ private String unit;
+
+ /**
+ * The absolute impact to dimension.
+ */
+ @JsonProperty(value = "changeValueAbsolute", access = JsonProperty.Access.WRITE_ONLY)
+ private Double changeValueAbsolute;
+
+ /**
+ * The relative impact to dimension (null if not applicable).
+ */
+ @JsonProperty(value = "changeValueRelative", access = JsonProperty.Access.WRITE_ONLY)
+ private Double changeValueRelative;
+
+ /**
+ * Get the name of the impact dimension.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the unit in which estimated impact to dimension is measured.
+ *
+ * @return the unit value
+ */
+ public String unit() {
+ return this.unit;
+ }
+
+ /**
+ * Get the absolute impact to dimension.
+ *
+ * @return the changeValueAbsolute value
+ */
+ public Double changeValueAbsolute() {
+ return this.changeValueAbsolute;
+ }
+
+ /**
+ * Get the relative impact to dimension (null if not applicable).
+ *
+ * @return the changeValueRelative value
+ */
+ public Double changeValueRelative() {
+ return this.changeValueRelative;
+ }
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/OperationListResult.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/OperationListResult.java
new file mode 100644
index 000000000000..e856a3cbf4f5
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/OperationListResult.java
@@ -0,0 +1,32 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.SqlManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.OperationListResultInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.OperationInner;
+import java.util.List;
+
+/**
+ * Type representing OperationListResult.
+ */
+public interface OperationListResult extends HasInner, HasManager {
+ /**
+ * @return the nextLink value.
+ */
+ String nextLink();
+
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/Operations.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/Operations.java
new file mode 100644
index 000000000000..080394761796
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/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.sql.v2014_04_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.OperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Operations.
+ */
+public interface Operations extends HasInner {
+ /**
+ * Lists all of the available SQL Rest API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/PerformanceLevelUnit.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/PerformanceLevelUnit.java
new file mode 100644
index 000000000000..34c7636edc73
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/PerformanceLevelUnit.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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for PerformanceLevelUnit.
+ */
+public enum PerformanceLevelUnit {
+ /** Enum value DTU. */
+ DTU("DTU");
+
+ /** The actual serialized value for a PerformanceLevelUnit instance. */
+ private String value;
+
+ PerformanceLevelUnit(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a PerformanceLevelUnit instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed PerformanceLevelUnit object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static PerformanceLevelUnit fromString(String value) {
+ PerformanceLevelUnit[] items = PerformanceLevelUnit.values();
+ for (PerformanceLevelUnit item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/PrimaryAggregationType.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/PrimaryAggregationType.java
new file mode 100644
index 000000000000..ec19ea5224ac
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/PrimaryAggregationType.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.sql.v2014_04_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for PrimaryAggregationType.
+ */
+public final class PrimaryAggregationType extends ExpandableStringEnum {
+ /** Static value None for PrimaryAggregationType. */
+ public static final PrimaryAggregationType NONE = fromString("None");
+
+ /** Static value Average for PrimaryAggregationType. */
+ public static final PrimaryAggregationType AVERAGE = fromString("Average");
+
+ /** Static value Count for PrimaryAggregationType. */
+ public static final PrimaryAggregationType COUNT = fromString("Count");
+
+ /** Static value Minimum for PrimaryAggregationType. */
+ public static final PrimaryAggregationType MINIMUM = fromString("Minimum");
+
+ /** Static value Maximum for PrimaryAggregationType. */
+ public static final PrimaryAggregationType MAXIMUM = fromString("Maximum");
+
+ /** Static value Total for PrimaryAggregationType. */
+ public static final PrimaryAggregationType TOTAL = fromString("Total");
+
+ /**
+ * Creates or finds a PrimaryAggregationType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding PrimaryAggregationType
+ */
+ @JsonCreator
+ public static PrimaryAggregationType fromString(String name) {
+ return fromString(name, PrimaryAggregationType.class);
+ }
+
+ /**
+ * @return known PrimaryAggregationType values
+ */
+ public static Collection values() {
+ return values(PrimaryAggregationType.class);
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/Queries.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/Queries.java
new file mode 100644
index 000000000000..1248b0575e88
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/Queries.java
@@ -0,0 +1,30 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.QueriesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Queries.
+ */
+public interface Queries extends HasInner {
+ /**
+ * Gets a list of top queries by database.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param databaseName The name of the database.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByDatabaseAsync(String resourceGroupName, String serverName, String databaseName);
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryAggregationFunction.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryAggregationFunction.java
new file mode 100644
index 000000000000..7e92c8f9fcde
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryAggregationFunction.java
@@ -0,0 +1,59 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for QueryAggregationFunction.
+ */
+public enum QueryAggregationFunction {
+ /** Enum value min. */
+ MIN("min"),
+
+ /** Enum value max. */
+ MAX("max"),
+
+ /** Enum value avg. */
+ AVG("avg"),
+
+ /** Enum value sum. */
+ SUM("sum");
+
+ /** The actual serialized value for a QueryAggregationFunction instance. */
+ private String value;
+
+ QueryAggregationFunction(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a QueryAggregationFunction instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed QueryAggregationFunction object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static QueryAggregationFunction fromString(String value) {
+ QueryAggregationFunction[] items = QueryAggregationFunction.values();
+ for (QueryAggregationFunction item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryExecutionType.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryExecutionType.java
new file mode 100644
index 000000000000..15450c2be26f
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryExecutionType.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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for QueryExecutionType.
+ */
+public enum QueryExecutionType {
+ /** Enum value any. */
+ ANY("any"),
+
+ /** Enum value regular. */
+ REGULAR("regular"),
+
+ /** Enum value irregular. */
+ IRREGULAR("irregular"),
+
+ /** Enum value aborted. */
+ ABORTED("aborted"),
+
+ /** Enum value exception. */
+ EXCEPTION("exception");
+
+ /** The actual serialized value for a QueryExecutionType instance. */
+ private String value;
+
+ QueryExecutionType(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a QueryExecutionType instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed QueryExecutionType object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static QueryExecutionType fromString(String value) {
+ QueryExecutionType[] items = QueryExecutionType.values();
+ for (QueryExecutionType item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryInterval.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryInterval.java
new file mode 100644
index 000000000000..180b99ab139c
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryInterval.java
@@ -0,0 +1,64 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.sql.v2014_04_01;
+
+import org.joda.time.DateTime;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A database query.
+ */
+public class QueryInterval {
+ /**
+ * The start time of the measurement interval (ISO8601 format).
+ */
+ @JsonProperty(value = "intervalStartTime", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime intervalStartTime;
+
+ /**
+ * The number of times the query was executed during this interval.
+ */
+ @JsonProperty(value = "executionCount", access = JsonProperty.Access.WRITE_ONLY)
+ private Double executionCount;
+
+ /**
+ * The list of query metrics during this interval.
+ */
+ @JsonProperty(value = "metrics", access = JsonProperty.Access.WRITE_ONLY)
+ private List metrics;
+
+ /**
+ * Get the start time of the measurement interval (ISO8601 format).
+ *
+ * @return the intervalStartTime value
+ */
+ public DateTime intervalStartTime() {
+ return this.intervalStartTime;
+ }
+
+ /**
+ * Get the number of times the query was executed during this interval.
+ *
+ * @return the executionCount value
+ */
+ public Double executionCount() {
+ return this.executionCount;
+ }
+
+ /**
+ * Get the list of query metrics during this interval.
+ *
+ * @return the metrics value
+ */
+ public List metrics() {
+ return this.metrics;
+ }
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryMetric.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryMetric.java
new file mode 100644
index 000000000000..085c40d0a4f9
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryMetric.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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A database query.
+ */
+public class QueryMetric {
+ /**
+ * The name of the metric.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /**
+ * The name of the metric for display in user interface.
+ */
+ @JsonProperty(value = "displayName", access = JsonProperty.Access.WRITE_ONLY)
+ private String displayName;
+
+ /**
+ * The unit of measurement. Possible values include: 'percentage', 'KB',
+ * 'microseconds'.
+ */
+ @JsonProperty(value = "unit", access = JsonProperty.Access.WRITE_ONLY)
+ private QueryMetricUnit unit;
+
+ /**
+ * The measured value.
+ */
+ @JsonProperty(value = "value", access = JsonProperty.Access.WRITE_ONLY)
+ private Double value;
+
+ /**
+ * Get the name of the metric.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the name of the metric for display in user interface.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Get the unit of measurement. Possible values include: 'percentage', 'KB', 'microseconds'.
+ *
+ * @return the unit value
+ */
+ public QueryMetricUnit unit() {
+ return this.unit;
+ }
+
+ /**
+ * Get the measured value.
+ *
+ * @return the value value
+ */
+ public Double value() {
+ return this.value;
+ }
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryMetricUnit.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryMetricUnit.java
new file mode 100644
index 000000000000..9c28262c44eb
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryMetricUnit.java
@@ -0,0 +1,56 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for QueryMetricUnit.
+ */
+public enum QueryMetricUnit {
+ /** Enum value percentage. */
+ PERCENTAGE("percentage"),
+
+ /** Enum value KB. */
+ KB("KB"),
+
+ /** Enum value microseconds. */
+ MICROSECONDS("microseconds");
+
+ /** The actual serialized value for a QueryMetricUnit instance. */
+ private String value;
+
+ QueryMetricUnit(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a QueryMetricUnit instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed QueryMetricUnit object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static QueryMetricUnit fromString(String value) {
+ QueryMetricUnit[] items = QueryMetricUnit.values();
+ for (QueryMetricUnit item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryObservedMetricType.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryObservedMetricType.java
new file mode 100644
index 000000000000..d298a8633ebb
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryObservedMetricType.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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for QueryObservedMetricType.
+ */
+public enum QueryObservedMetricType {
+ /** Enum value cpu. */
+ CPU("cpu"),
+
+ /** Enum value io. */
+ IO("io"),
+
+ /** Enum value logio. */
+ LOGIO("logio"),
+
+ /** Enum value duration. */
+ DURATION("duration"),
+
+ /** Enum value executionCount. */
+ EXECUTION_COUNT("executionCount");
+
+ /** The actual serialized value for a QueryObservedMetricType instance. */
+ private String value;
+
+ QueryObservedMetricType(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a QueryObservedMetricType instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed QueryObservedMetricType object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static QueryObservedMetricType fromString(String value) {
+ QueryObservedMetricType[] items = QueryObservedMetricType.values();
+ for (QueryObservedMetricType item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryStatistic.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryStatistic.java
new file mode 100644
index 000000000000..0b77d3346626
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryStatistic.java
@@ -0,0 +1,31 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.QueryStatisticInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.SqlManager;
+import java.util.List;
+
+/**
+ * Type representing QueryStatistic.
+ */
+public interface QueryStatistic extends HasInner, HasManager {
+ /**
+ * @return the intervals value.
+ */
+ List intervals();
+
+ /**
+ * @return the queryId value.
+ */
+ String queryId();
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryStatistics.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryStatistics.java
new file mode 100644
index 000000000000..44b7e99e1eb4
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryStatistics.java
@@ -0,0 +1,31 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.QueryStatisticsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing QueryStatistics.
+ */
+public interface QueryStatistics extends HasInner {
+ /**
+ * Lists a query's statistics.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param databaseName The name of the database.
+ * @param queryId The id of the query
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByQueryAsync(String resourceGroupName, String serverName, String databaseName, String queryId);
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryText.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryText.java
new file mode 100644
index 000000000000..b0bf78819f95
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryText.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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.SqlManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.QueryTextInner;
+
+/**
+ * Type representing QueryText.
+ */
+public interface QueryText extends HasInner, HasManager {
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the queryText value.
+ */
+ String queryText();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryTexts.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryTexts.java
new file mode 100644
index 000000000000..3fc47514262c
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/QueryTexts.java
@@ -0,0 +1,31 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.QueryTextsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing QueryTexts.
+ */
+public interface QueryTexts extends HasInner {
+ /**
+ * Gets a query's text.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param databaseName The name of the database.
+ * @param queryId The id of the query
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByQueryAsync(String resourceGroupName, String serverName, String databaseName, String queryId);
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ReadScale.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ReadScale.java
new file mode 100644
index 000000000000..9547b48f8d2e
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/ReadScale.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.sql.v2014_04_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for ReadScale.
+ */
+public enum ReadScale {
+ /** Enum value Enabled. */
+ ENABLED("Enabled"),
+
+ /** Enum value Disabled. */
+ DISABLED("Disabled");
+
+ /** The actual serialized value for a ReadScale instance. */
+ private String value;
+
+ ReadScale(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a ReadScale instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed ReadScale object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static ReadScale fromString(String value) {
+ ReadScale[] items = ReadScale.values();
+ for (ReadScale item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/RecommendedElasticPool.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/RecommendedElasticPool.java
new file mode 100644
index 000000000000..18fedbd6be7c
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/RecommendedElasticPool.java
@@ -0,0 +1,94 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.RecommendedElasticPoolInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.SqlManager;
+import java.util.List;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing RecommendedElasticPool.
+ */
+public interface RecommendedElasticPool extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the databaseDtuMax value.
+ */
+ Double databaseDtuMax();
+
+ /**
+ * @return the databaseDtuMin value.
+ */
+ Double databaseDtuMin();
+
+ /**
+ * @return the databaseEdition value.
+ */
+ ElasticPoolEdition databaseEdition();
+
+ /**
+ * @return the databases value.
+ */
+ List databases();
+
+ /**
+ * @return the dtu value.
+ */
+ Double dtu();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the maxObservedDtu value.
+ */
+ Double maxObservedDtu();
+
+ /**
+ * @return the maxObservedStorageMB value.
+ */
+ Double maxObservedStorageMB();
+
+ /**
+ * @return the metrics value.
+ */
+ List metrics();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the observationPeriodEnd value.
+ */
+ DateTime observationPeriodEnd();
+
+ /**
+ * @return the observationPeriodStart value.
+ */
+ DateTime observationPeriodStart();
+
+ /**
+ * @return the storageMB value.
+ */
+ Double storageMB();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/RecommendedElasticPoolMetric.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/RecommendedElasticPoolMetric.java
new file mode 100644
index 000000000000..a0a76f2b36db
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/RecommendedElasticPoolMetric.java
@@ -0,0 +1,36 @@
+/**
+ * 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.sql.v2014_04_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.RecommendedElasticPoolMetricInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.SqlManager;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing RecommendedElasticPoolMetric.
+ */
+public interface RecommendedElasticPoolMetric extends HasInner, HasManager {
+ /**
+ * @return the dateTimeProperty value.
+ */
+ DateTime dateTimeProperty();
+
+ /**
+ * @return the dtu value.
+ */
+ Double dtu();
+
+ /**
+ * @return the sizeGB value.
+ */
+ Double sizeGB();
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/RecommendedElasticPools.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/RecommendedElasticPools.java
new file mode 100644
index 000000000000..261e853a53b7
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/RecommendedElasticPools.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.sql.v2014_04_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.sql.v2014_04_01.implementation.RecommendedElasticPoolsInner;
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.sql.v2014_04_01.RecommendedElasticPoolMetric;
+
+/**
+ * Type representing RecommendedElasticPools.
+ */
+public interface RecommendedElasticPools extends HasInner {
+ /**
+ * Gets a recommended elastic pool.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param recommendedElasticPoolName The name of the recommended elastic pool to be retrieved.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serverName, String recommendedElasticPoolName);
+
+ /**
+ * Returns recommended elastic pools.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByServerAsync(String resourceGroupName, String serverName);
+
+ /**
+ * Returns recommended elastic pool metrics.
+ *
+ * @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
+ * @param serverName The name of the server.
+ * @param recommendedElasticPoolName The name of the recommended elastic pool to be retrieved.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMetricsAsync(String resourceGroupName, String serverName, String recommendedElasticPoolName);
+
+}
diff --git a/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/RecommendedIndex.java b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/RecommendedIndex.java
new file mode 100644
index 000000000000..09698ba74e2f
--- /dev/null
+++ b/sql/resource-manager/v2014_04_01/src/main/java/com/microsoft/azure/management/sql/v2014_04_01/RecommendedIndex.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.sql.v2014_04_01;
+
+import org.joda.time.DateTime;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * Represents a database recommended index.
+ */
+@JsonFlatten
+public class RecommendedIndex extends ProxyResource {
+ /**
+ * The proposed index action. You can create a missing index, drop an
+ * unused index, or rebuild an existing index to improve its performance.
+ * Possible values include: 'Create', 'Drop', 'Rebuild'.
+ */
+ @JsonProperty(value = "properties.action", access = JsonProperty.Access.WRITE_ONLY)
+ private RecommendedIndexAction action;
+
+ /**
+ * The current recommendation state. Possible values include: 'Active',
+ * 'Pending', 'Executing', 'Verifying', 'Pending Revert', 'Reverting',
+ * 'Reverted', 'Ignored', 'Expired', 'Blocked', 'Success'.
+ */
+ @JsonProperty(value = "properties.state", access = JsonProperty.Access.WRITE_ONLY)
+ private RecommendedIndexState state;
+
+ /**
+ * The UTC datetime showing when this resource was created (ISO8601
+ * format).
+ */
+ @JsonProperty(value = "properties.created", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime created;
+
+ /**
+ * The UTC datetime of when was this resource last changed (ISO8601
+ * format).
+ */
+ @JsonProperty(value = "properties.lastModified", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime lastModified;
+
+ /**
+ * The type of index (CLUSTERED, NONCLUSTERED, COLUMNSTORE, CLUSTERED
+ * COLUMNSTORE). Possible values include: 'CLUSTERED', 'NONCLUSTERED',
+ * 'COLUMNSTORE', 'CLUSTERED COLUMNSTORE'.
+ */
+ @JsonProperty(value = "properties.indexType", access = JsonProperty.Access.WRITE_ONLY)
+ private RecommendedIndexType indexType;
+
+ /**
+ * The schema where table to build index over resides.
+ */
+ @JsonProperty(value = "properties.schema", access = JsonProperty.Access.WRITE_ONLY)
+ private String schema;
+
+ /**
+ * The table on which to build index.
+ */
+ @JsonProperty(value = "properties.table", access = JsonProperty.Access.WRITE_ONLY)
+ private String table;
+
+ /**
+ * Columns over which to build index.
+ */
+ @JsonProperty(value = "properties.columns", access = JsonProperty.Access.WRITE_ONLY)
+ private List columns;
+
+ /**
+ * The list of column names to be included in the index.
+ */
+ @JsonProperty(value = "properties.includedColumns", access = JsonProperty.Access.WRITE_ONLY)
+ private List