diff --git a/mariadb/resource-manager/v2018_06_01/pom.xml b/mariadb/resource-manager/v2018_06_01/pom.xml
new file mode 100644
index 0000000000000..ad39b2dc8e24e
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/pom.xml
@@ -0,0 +1,133 @@
+
+
+ 4.0.0
+ com.microsoft.azure.mariadb.v2018_06_01
+
+ com.microsoft.azure
+ azure-arm-parent
+ 0.0.2-beta
+ ../../../pom.xml
+
+ azure-mgmt-dbformariadb
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for DBforMariaDB Management
+ This package contains Microsoft DBforMariaDB 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
+
+
+ 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/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/CheckNameAvailabilitys.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/CheckNameAvailabilitys.java
new file mode 100644
index 0000000000000..edac73a93bb13
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/CheckNameAvailabilitys.java
@@ -0,0 +1,28 @@
+/**
+ * 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.mariadb.v2018_06_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.CheckNameAvailabilitysInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing CheckNameAvailabilitys.
+ */
+public interface CheckNameAvailabilitys extends HasInner {
+ /**
+ * Check the availability of name for resource.
+ *
+ * @param nameAvailabilityRequest The required parameters for checking if resource name is available.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable executeAsync(NameAvailabilityRequest nameAvailabilityRequest);
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Configuration.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Configuration.java
new file mode 100644
index 0000000000000..c5171f97912c7
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Configuration.java
@@ -0,0 +1,155 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.mariadb.v2018_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.ConfigurationInner;
+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.mariadb.v2018_06_01.implementation.DBforMariaDBManager;
+
+/**
+ * Type representing Configuration.
+ */
+public interface Configuration extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the allowedValues value.
+ */
+ String allowedValues();
+
+ /**
+ * @return the dataType value.
+ */
+ String dataType();
+
+ /**
+ * @return the defaultValue value.
+ */
+ String defaultValue();
+
+ /**
+ * @return the description value.
+ */
+ String description();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the source value.
+ */
+ String source();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the value value.
+ */
+ String value();
+
+ /**
+ * The entirety of the Configuration definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithServer, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Configuration definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Configuration definition.
+ */
+ interface Blank extends WithServer {
+ }
+
+ /**
+ * The stage of the configuration definition allowing to specify Server.
+ */
+ interface WithServer {
+ /**
+ * Specifies resourceGroupName, serverName.
+ */
+ WithCreate withExistingServer(String resourceGroupName, String serverName);
+ }
+
+ /**
+ * The stage of the configuration definition allowing to specify Source.
+ */
+ interface WithSource {
+ /**
+ * Specifies source.
+ */
+ WithCreate withSource(String source);
+ }
+
+ /**
+ * The stage of the configuration definition allowing to specify Value.
+ */
+ interface WithValue {
+ /**
+ * Specifies value.
+ */
+ WithCreate withValue(String value);
+ }
+
+ /**
+ * 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.WithSource, DefinitionStages.WithValue {
+ }
+ }
+ /**
+ * The template for a Configuration update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithSource, UpdateStages.WithValue {
+ }
+
+ /**
+ * Grouping of Configuration update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the configuration update allowing to specify Source.
+ */
+ interface WithSource {
+ /**
+ * Specifies source.
+ */
+ Update withSource(String source);
+ }
+
+ /**
+ * The stage of the configuration update allowing to specify Value.
+ */
+ interface WithValue {
+ /**
+ * Specifies value.
+ */
+ Update withValue(String value);
+ }
+
+ }
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Configurations.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Configurations.java
new file mode 100644
index 0000000000000..4467a872d5d27
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Configurations.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.mariadb.v2018_06_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Observable;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.ConfigurationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Configurations.
+ */
+public interface Configurations extends SupportsCreating, HasInner {
+ /**
+ * Gets information about a configuration of 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 configurationName The name of the server configuration.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serverName, String configurationName);
+
+ /**
+ * List all the configurations in a given 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/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Database.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Database.java
new file mode 100644
index 0000000000000..95f4333188156
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Database.java
@@ -0,0 +1,135 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.mariadb.v2018_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.mariadb.v2018_06_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.mariadb.v2018_06_01.implementation.DBforMariaDBManager;
+
+/**
+ * Type representing Database.
+ */
+public interface Database extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the charset value.
+ */
+ String charset();
+
+ /**
+ * @return the collation value.
+ */
+ String collation();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the Database definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithServer, 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.
+ */
+ WithCreate withExistingServer(String resourceGroupName, String serverName);
+ }
+
+ /**
+ * The stage of the database definition allowing to specify Charset.
+ */
+ interface WithCharset {
+ /**
+ * Specifies charset.
+ */
+ WithCreate withCharset(String charset);
+ }
+
+ /**
+ * The stage of the database definition allowing to specify Collation.
+ */
+ interface WithCollation {
+ /**
+ * Specifies collation.
+ */
+ WithCreate withCollation(String collation);
+ }
+
+ /**
+ * 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.WithCharset, DefinitionStages.WithCollation {
+ }
+ }
+ /**
+ * The template for a Database update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithCharset, UpdateStages.WithCollation {
+ }
+
+ /**
+ * Grouping of Database update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the database update allowing to specify Charset.
+ */
+ interface WithCharset {
+ /**
+ * Specifies charset.
+ */
+ Update withCharset(String charset);
+ }
+
+ /**
+ * The stage of the database update allowing to specify Collation.
+ */
+ interface WithCollation {
+ /**
+ * Specifies collation.
+ */
+ Update withCollation(String collation);
+ }
+
+ }
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Databases.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Databases.java
new file mode 100644
index 0000000000000..fe3b60208e5b9
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Databases.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.mariadb.v2018_06_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.DatabasesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Databases.
+ */
+public interface Databases extends SupportsCreating, HasInner {
+ /**
+ * Gets information about 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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serverName, String databaseName);
+
+ /**
+ * List all the databases in a given 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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String serverName, String databaseName);
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/FirewallRule.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/FirewallRule.java
new file mode 100644
index 0000000000000..f8ce9e0f7eb4e
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/FirewallRule.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.mariadb.v2018_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.mariadb.v2018_06_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.mariadb.v2018_06_01.implementation.DBforMariaDBManager;
+
+/**
+ * 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 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/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/FirewallRules.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/FirewallRules.java
new file mode 100644
index 0000000000000..96126962df351
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_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.mariadb.v2018_06_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.FirewallRulesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing FirewallRules.
+ */
+public interface FirewallRules extends SupportsCreating, HasInner {
+ /**
+ * Gets information about a server 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 server firewall rule.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serverName, String firewallRuleName);
+
+ /**
+ * List all the firewall rules in a given 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 server 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 server 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/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/GeoRedundantBackup.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/GeoRedundantBackup.java
new file mode 100644
index 0000000000000..30b5ed5338cf5
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/GeoRedundantBackup.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.mariadb.v2018_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for GeoRedundantBackup.
+ */
+public final class GeoRedundantBackup extends ExpandableStringEnum {
+ /** Static value Enabled for GeoRedundantBackup. */
+ public static final GeoRedundantBackup ENABLED = fromString("Enabled");
+
+ /** Static value Disabled for GeoRedundantBackup. */
+ public static final GeoRedundantBackup DISABLED = fromString("Disabled");
+
+ /**
+ * Creates or finds a GeoRedundantBackup from its string representation.
+ * @param name a name to look for
+ * @return the corresponding GeoRedundantBackup
+ */
+ @JsonCreator
+ public static GeoRedundantBackup fromString(String name) {
+ return fromString(name, GeoRedundantBackup.class);
+ }
+
+ /**
+ * @return known GeoRedundantBackup values
+ */
+ public static Collection values() {
+ return values(GeoRedundantBackup.class);
+ }
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/LocationBasedPerformanceTiers.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/LocationBasedPerformanceTiers.java
new file mode 100644
index 0000000000000..c65e71aa07eca
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/LocationBasedPerformanceTiers.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.mariadb.v2018_06_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.mariadb.v2018_06_01.PerformanceTierProperties;
+
+/**
+ * Type representing LocationBasedPerformanceTiers.
+ */
+public interface LocationBasedPerformanceTiers {
+ /**
+ * List all the performance tiers at specified location in a given subscription.
+ *
+ * @param locationName The name of the location.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(String locationName);
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/LogFile.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/LogFile.java
new file mode 100644
index 0000000000000..c9cdca6708730
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/LogFile.java
@@ -0,0 +1,61 @@
+/**
+ * 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.mariadb.v2018_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.LogFileInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.DBforMariaDBManager;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing LogFile.
+ */
+public interface LogFile extends HasInner, HasManager {
+ /**
+ * @return the createdTime value.
+ */
+ DateTime createdTime();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the lastModifiedTime value.
+ */
+ DateTime lastModifiedTime();
+
+ /**
+ * @return the logFileType value.
+ */
+ String logFileType();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the sizeInKB value.
+ */
+ Long sizeInKB();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the url value.
+ */
+ String url();
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/LogFiles.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/LogFiles.java
new file mode 100644
index 0000000000000..346784cc5b88c
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/LogFiles.java
@@ -0,0 +1,29 @@
+/**
+ * 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.mariadb.v2018_06_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.LogFilesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing LogFiles.
+ */
+public interface LogFiles extends HasInner {
+ /**
+ * List all the log files in a given 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/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/NameAvailability.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/NameAvailability.java
new file mode 100644
index 0000000000000..174aab056f4eb
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/NameAvailability.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.mariadb.v2018_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.DBforMariaDBManager;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.NameAvailabilityInner;
+
+/**
+ * Type representing NameAvailability.
+ */
+public interface NameAvailability extends HasInner, HasManager {
+ /**
+ * @return the message value.
+ */
+ String message();
+
+ /**
+ * @return the nameAvailable value.
+ */
+ Boolean nameAvailable();
+
+ /**
+ * @return the reason value.
+ */
+ String reason();
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/NameAvailabilityRequest.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/NameAvailabilityRequest.java
new file mode 100644
index 0000000000000..a9169f490cadd
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/NameAvailabilityRequest.java
@@ -0,0 +1,69 @@
+/**
+ * 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.mariadb.v2018_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Request from client to check resource name availability.
+ */
+public class NameAvailabilityRequest {
+ /**
+ * Resource name to verify.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * Resource type used for verification.
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /**
+ * Get resource name to verify.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set resource name to verify.
+ *
+ * @param name the name value to set
+ * @return the NameAvailabilityRequest object itself.
+ */
+ public NameAvailabilityRequest withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get resource type used for verification.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set resource type used for verification.
+ *
+ * @param type the type value to set
+ * @return the NameAvailabilityRequest object itself.
+ */
+ public NameAvailabilityRequest withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/OperationDisplay.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/OperationDisplay.java
new file mode 100644
index 0000000000000..e42bc6b81f4e9
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/OperationDisplay.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.mariadb.v2018_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Display metadata associated with the operation.
+ */
+public class OperationDisplay {
+ /**
+ * Operation resource provider name.
+ */
+ @JsonProperty(value = "provider", access = JsonProperty.Access.WRITE_ONLY)
+ private String provider;
+
+ /**
+ * Resource on which the operation is performed.
+ */
+ @JsonProperty(value = "resource", access = JsonProperty.Access.WRITE_ONLY)
+ private String resource;
+
+ /**
+ * Localized friendly name for the operation.
+ */
+ @JsonProperty(value = "operation", access = JsonProperty.Access.WRITE_ONLY)
+ private String operation;
+
+ /**
+ * Operation description.
+ */
+ @JsonProperty(value = "description", access = JsonProperty.Access.WRITE_ONLY)
+ private String description;
+
+ /**
+ * Get operation resource provider name.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Get resource on which the operation is performed.
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Get localized friendly name for the operation.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+ /**
+ * Get operation description.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/OperationListResult.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/OperationListResult.java
new file mode 100644
index 0000000000000..c5665a77850b0
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/OperationListResult.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.mariadb.v2018_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.DBforMariaDBManager;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.OperationListResultInner;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.OperationInner;
+import java.util.List;
+
+/**
+ * Type representing OperationListResult.
+ */
+public interface OperationListResult extends HasInner, HasManager {
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/OperationOrigin.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/OperationOrigin.java
new file mode 100644
index 0000000000000..c0d8c9a659b4e
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/OperationOrigin.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.mariadb.v2018_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for OperationOrigin.
+ */
+public final class OperationOrigin extends ExpandableStringEnum {
+ /** Static value NotSpecified for OperationOrigin. */
+ public static final OperationOrigin NOT_SPECIFIED = fromString("NotSpecified");
+
+ /** Static value user for OperationOrigin. */
+ public static final OperationOrigin USER = fromString("user");
+
+ /** Static value system for OperationOrigin. */
+ public static final OperationOrigin SYSTEM = fromString("system");
+
+ /**
+ * Creates or finds a OperationOrigin from its string representation.
+ * @param name a name to look for
+ * @return the corresponding OperationOrigin
+ */
+ @JsonCreator
+ public static OperationOrigin fromString(String name) {
+ return fromString(name, OperationOrigin.class);
+ }
+
+ /**
+ * @return known OperationOrigin values
+ */
+ public static Collection values() {
+ return values(OperationOrigin.class);
+ }
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Operations.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Operations.java
new file mode 100644
index 0000000000000..1dc0cc40f6591
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_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.mariadb.v2018_06_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.OperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Operations.
+ */
+public interface Operations extends HasInner {
+ /**
+ * Lists all of the available REST API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/PerformanceTierProperties.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/PerformanceTierProperties.java
new file mode 100644
index 0000000000000..a5ad5747190e4
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/PerformanceTierProperties.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.mariadb.v2018_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.PerformanceTierPropertiesInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.DBforMariaDBManager;
+import java.util.List;
+
+/**
+ * Type representing PerformanceTierProperties.
+ */
+public interface PerformanceTierProperties extends HasInner, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the serviceLevelObjectives value.
+ */
+ List serviceLevelObjectives();
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/PerformanceTierServiceLevelObjectives.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/PerformanceTierServiceLevelObjectives.java
new file mode 100644
index 0000000000000..576cd1560aa7a
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/PerformanceTierServiceLevelObjectives.java
@@ -0,0 +1,225 @@
+/**
+ * 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.mariadb.v2018_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Service level objectives for performance tier.
+ */
+public class PerformanceTierServiceLevelObjectives {
+ /**
+ * ID for the service level objective.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /**
+ * Edition of the performance tier.
+ */
+ @JsonProperty(value = "edition")
+ private String edition;
+
+ /**
+ * vCore associated with the service level objective.
+ */
+ @JsonProperty(value = "vCore")
+ private Integer vCore;
+
+ /**
+ * Hardware generation associated with the service level objective.
+ */
+ @JsonProperty(value = "hardwareGeneration")
+ private String hardwareGeneration;
+
+ /**
+ * Maximum Backup retention in days for the performance tier edition.
+ */
+ @JsonProperty(value = "maxBackupRetentionDays")
+ private Integer maxBackupRetentionDays;
+
+ /**
+ * Minimum Backup retention in days for the performance tier edition.
+ */
+ @JsonProperty(value = "minBackupRetentionDays")
+ private Integer minBackupRetentionDays;
+
+ /**
+ * Max storage allowed for a server.
+ */
+ @JsonProperty(value = "maxStorageMB")
+ private Integer maxStorageMB;
+
+ /**
+ * Max storage allowed for a server.
+ */
+ @JsonProperty(value = "minStorageMB")
+ private Integer minStorageMB;
+
+ /**
+ * Get iD for the service level objective.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set iD for the service level objective.
+ *
+ * @param id the id value to set
+ * @return the PerformanceTierServiceLevelObjectives object itself.
+ */
+ public PerformanceTierServiceLevelObjectives withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get edition of the performance tier.
+ *
+ * @return the edition value
+ */
+ public String edition() {
+ return this.edition;
+ }
+
+ /**
+ * Set edition of the performance tier.
+ *
+ * @param edition the edition value to set
+ * @return the PerformanceTierServiceLevelObjectives object itself.
+ */
+ public PerformanceTierServiceLevelObjectives withEdition(String edition) {
+ this.edition = edition;
+ return this;
+ }
+
+ /**
+ * Get vCore associated with the service level objective.
+ *
+ * @return the vCore value
+ */
+ public Integer vCore() {
+ return this.vCore;
+ }
+
+ /**
+ * Set vCore associated with the service level objective.
+ *
+ * @param vCore the vCore value to set
+ * @return the PerformanceTierServiceLevelObjectives object itself.
+ */
+ public PerformanceTierServiceLevelObjectives withVCore(Integer vCore) {
+ this.vCore = vCore;
+ return this;
+ }
+
+ /**
+ * Get hardware generation associated with the service level objective.
+ *
+ * @return the hardwareGeneration value
+ */
+ public String hardwareGeneration() {
+ return this.hardwareGeneration;
+ }
+
+ /**
+ * Set hardware generation associated with the service level objective.
+ *
+ * @param hardwareGeneration the hardwareGeneration value to set
+ * @return the PerformanceTierServiceLevelObjectives object itself.
+ */
+ public PerformanceTierServiceLevelObjectives withHardwareGeneration(String hardwareGeneration) {
+ this.hardwareGeneration = hardwareGeneration;
+ return this;
+ }
+
+ /**
+ * Get maximum Backup retention in days for the performance tier edition.
+ *
+ * @return the maxBackupRetentionDays value
+ */
+ public Integer maxBackupRetentionDays() {
+ return this.maxBackupRetentionDays;
+ }
+
+ /**
+ * Set maximum Backup retention in days for the performance tier edition.
+ *
+ * @param maxBackupRetentionDays the maxBackupRetentionDays value to set
+ * @return the PerformanceTierServiceLevelObjectives object itself.
+ */
+ public PerformanceTierServiceLevelObjectives withMaxBackupRetentionDays(Integer maxBackupRetentionDays) {
+ this.maxBackupRetentionDays = maxBackupRetentionDays;
+ return this;
+ }
+
+ /**
+ * Get minimum Backup retention in days for the performance tier edition.
+ *
+ * @return the minBackupRetentionDays value
+ */
+ public Integer minBackupRetentionDays() {
+ return this.minBackupRetentionDays;
+ }
+
+ /**
+ * Set minimum Backup retention in days for the performance tier edition.
+ *
+ * @param minBackupRetentionDays the minBackupRetentionDays value to set
+ * @return the PerformanceTierServiceLevelObjectives object itself.
+ */
+ public PerformanceTierServiceLevelObjectives withMinBackupRetentionDays(Integer minBackupRetentionDays) {
+ this.minBackupRetentionDays = minBackupRetentionDays;
+ return this;
+ }
+
+ /**
+ * Get max storage allowed for a server.
+ *
+ * @return the maxStorageMB value
+ */
+ public Integer maxStorageMB() {
+ return this.maxStorageMB;
+ }
+
+ /**
+ * Set max storage allowed for a server.
+ *
+ * @param maxStorageMB the maxStorageMB value to set
+ * @return the PerformanceTierServiceLevelObjectives object itself.
+ */
+ public PerformanceTierServiceLevelObjectives withMaxStorageMB(Integer maxStorageMB) {
+ this.maxStorageMB = maxStorageMB;
+ return this;
+ }
+
+ /**
+ * Get max storage allowed for a server.
+ *
+ * @return the minStorageMB value
+ */
+ public Integer minStorageMB() {
+ return this.minStorageMB;
+ }
+
+ /**
+ * Set max storage allowed for a server.
+ *
+ * @param minStorageMB the minStorageMB value to set
+ * @return the PerformanceTierServiceLevelObjectives object itself.
+ */
+ public PerformanceTierServiceLevelObjectives withMinStorageMB(Integer minStorageMB) {
+ this.minStorageMB = minStorageMB;
+ return this;
+ }
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Replicas.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Replicas.java
new file mode 100644
index 0000000000000..b40a82aefbab1
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Replicas.java
@@ -0,0 +1,29 @@
+/**
+ * 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.mariadb.v2018_06_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.ReplicasInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Replicas.
+ */
+public interface Replicas extends HasInner {
+ /**
+ * List all the replicas for a given 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/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Server.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Server.java
new file mode 100644
index 0000000000000..4d107ad36f81e
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Server.java
@@ -0,0 +1,204 @@
+/**
+ * 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.mariadb.v2018_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.Resource;
+import com.microsoft.azure.arm.resources.models.GroupableResourceCore;
+import com.microsoft.azure.arm.resources.models.HasResourceGroup;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.DBforMariaDBManager;
+import org.joda.time.DateTime;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.ServerInner;
+
+/**
+ * Type representing Server.
+ */
+public interface Server extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the administratorLogin value.
+ */
+ String administratorLogin();
+
+ /**
+ * @return the earliestRestoreDate value.
+ */
+ DateTime earliestRestoreDate();
+
+ /**
+ * @return the fullyQualifiedDomainName value.
+ */
+ String fullyQualifiedDomainName();
+
+ /**
+ * @return the masterServerId value.
+ */
+ String masterServerId();
+
+ /**
+ * @return the replicaCapacity value.
+ */
+ Integer replicaCapacity();
+
+ /**
+ * @return the replicationRole value.
+ */
+ String replicationRole();
+
+ /**
+ * @return the sku value.
+ */
+ Sku sku();
+
+ /**
+ * @return the sslEnforcement value.
+ */
+ SslEnforcementEnum sslEnforcement();
+
+ /**
+ * @return the storageProfile value.
+ */
+ StorageProfile storageProfile();
+
+ /**
+ * @return the userVisibleState value.
+ */
+ ServerState userVisibleState();
+
+ /**
+ * @return the version value.
+ */
+ ServerVersion version();
+
+ /**
+ * The entirety of the Server definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithProperties, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Server definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Server definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the Server definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the server definition allowing to specify Properties.
+ */
+ interface WithProperties {
+ /**
+ * Specifies properties.
+ */
+ WithCreate withProperties(ServerPropertiesForCreate properties);
+ }
+
+ /**
+ * The stage of the server update allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ */
+ WithCreate withSku(Sku sku);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, Resource.DefinitionWithTags, DefinitionStages.WithSku {
+ }
+ }
+ /**
+ * The template for a Server update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithAdministratorLoginPassword, UpdateStages.WithReplicationRole, UpdateStages.WithSku, UpdateStages.WithSslEnforcement, UpdateStages.WithStorageProfile, UpdateStages.WithVersion {
+ }
+
+ /**
+ * Grouping of Server update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the server {0} allowing to specify AdministratorLoginPassword.
+ */
+ interface WithAdministratorLoginPassword {
+ /**
+ * Specifies administratorLoginPassword.
+ */
+ Update withAdministratorLoginPassword(String administratorLoginPassword);
+ }
+
+ /**
+ * The stage of the server {0} allowing to specify ReplicationRole.
+ */
+ interface WithReplicationRole {
+ /**
+ * Specifies replicationRole.
+ */
+ Update withReplicationRole(String replicationRole);
+ }
+
+ /**
+ * The stage of the server {0} allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ */
+ Update withSku(Sku sku);
+ }
+
+ /**
+ * The stage of the server {0} allowing to specify SslEnforcement.
+ */
+ interface WithSslEnforcement {
+ /**
+ * Specifies sslEnforcement.
+ */
+ Update withSslEnforcement(SslEnforcementEnum sslEnforcement);
+ }
+
+ /**
+ * The stage of the server {0} allowing to specify StorageProfile.
+ */
+ interface WithStorageProfile {
+ /**
+ * Specifies storageProfile.
+ */
+ Update withStorageProfile(StorageProfile storageProfile);
+ }
+
+ /**
+ * The stage of the server {0} allowing to specify Version.
+ */
+ interface WithVersion {
+ /**
+ * Specifies version.
+ */
+ Update withVersion(ServerVersion version);
+ }
+
+ }
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerForCreate.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerForCreate.java
new file mode 100644
index 0000000000000..5d88ad425853d
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerForCreate.java
@@ -0,0 +1,122 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.mariadb.v2018_06_01;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Represents a server to be created.
+ */
+public class ServerForCreate {
+ /**
+ * The SKU (pricing tier) of the server.
+ */
+ @JsonProperty(value = "sku")
+ private Sku sku;
+
+ /**
+ * Properties of the server.
+ */
+ @JsonProperty(value = "properties", required = true)
+ private ServerPropertiesForCreate properties;
+
+ /**
+ * The location the resource resides in.
+ */
+ @JsonProperty(value = "location", required = true)
+ private String location;
+
+ /**
+ * Application-specific metadata in the form of key-value pairs.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * Get the SKU (pricing tier) of the server.
+ *
+ * @return the sku value
+ */
+ public Sku sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set the SKU (pricing tier) of the server.
+ *
+ * @param sku the sku value to set
+ * @return the ServerForCreate object itself.
+ */
+ public ServerForCreate withSku(Sku sku) {
+ this.sku = sku;
+ return this;
+ }
+
+ /**
+ * Get properties of the server.
+ *
+ * @return the properties value
+ */
+ public ServerPropertiesForCreate properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set properties of the server.
+ *
+ * @param properties the properties value to set
+ * @return the ServerForCreate object itself.
+ */
+ public ServerForCreate withProperties(ServerPropertiesForCreate properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get the location the resource resides in.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set the location the resource resides in.
+ *
+ * @param location the location value to set
+ * @return the ServerForCreate object itself.
+ */
+ public ServerForCreate withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get application-specific metadata in the form of key-value pairs.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set application-specific metadata in the form of key-value pairs.
+ *
+ * @param tags the tags value to set
+ * @return the ServerForCreate object itself.
+ */
+ public ServerForCreate withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerPropertiesForCreate.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerPropertiesForCreate.java
new file mode 100644
index 0000000000000..ac0b6a154a77c
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerPropertiesForCreate.java
@@ -0,0 +1,107 @@
+/**
+ * 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.mariadb.v2018_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+
+/**
+ * The properties used to create a new server.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "createMode")
+@JsonTypeName("ServerPropertiesForCreate")
+@JsonSubTypes({
+ @JsonSubTypes.Type(name = "Default", value = ServerPropertiesForDefaultCreate.class),
+ @JsonSubTypes.Type(name = "PointInTimeRestore", value = ServerPropertiesForRestore.class),
+ @JsonSubTypes.Type(name = "GeoRestore", value = ServerPropertiesForGeoRestore.class),
+ @JsonSubTypes.Type(name = "Replica", value = ServerPropertiesForReplica.class)
+})
+public class ServerPropertiesForCreate {
+ /**
+ * Server version. Possible values include: '5.6', '5.7'.
+ */
+ @JsonProperty(value = "version")
+ private ServerVersion version;
+
+ /**
+ * Enable ssl enforcement or not when connect to server. Possible values
+ * include: 'Enabled', 'Disabled'.
+ */
+ @JsonProperty(value = "sslEnforcement")
+ private SslEnforcementEnum sslEnforcement;
+
+ /**
+ * Storage profile of a server.
+ */
+ @JsonProperty(value = "storageProfile")
+ private StorageProfile storageProfile;
+
+ /**
+ * Get server version. Possible values include: '5.6', '5.7'.
+ *
+ * @return the version value
+ */
+ public ServerVersion version() {
+ return this.version;
+ }
+
+ /**
+ * Set server version. Possible values include: '5.6', '5.7'.
+ *
+ * @param version the version value to set
+ * @return the ServerPropertiesForCreate object itself.
+ */
+ public ServerPropertiesForCreate withVersion(ServerVersion version) {
+ this.version = version;
+ return this;
+ }
+
+ /**
+ * Get enable ssl enforcement or not when connect to server. Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @return the sslEnforcement value
+ */
+ public SslEnforcementEnum sslEnforcement() {
+ return this.sslEnforcement;
+ }
+
+ /**
+ * Set enable ssl enforcement or not when connect to server. Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @param sslEnforcement the sslEnforcement value to set
+ * @return the ServerPropertiesForCreate object itself.
+ */
+ public ServerPropertiesForCreate withSslEnforcement(SslEnforcementEnum sslEnforcement) {
+ this.sslEnforcement = sslEnforcement;
+ return this;
+ }
+
+ /**
+ * Get storage profile of a server.
+ *
+ * @return the storageProfile value
+ */
+ public StorageProfile storageProfile() {
+ return this.storageProfile;
+ }
+
+ /**
+ * Set storage profile of a server.
+ *
+ * @param storageProfile the storageProfile value to set
+ * @return the ServerPropertiesForCreate object itself.
+ */
+ public ServerPropertiesForCreate withStorageProfile(StorageProfile storageProfile) {
+ this.storageProfile = storageProfile;
+ return this;
+ }
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerPropertiesForDefaultCreate.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerPropertiesForDefaultCreate.java
new file mode 100644
index 0000000000000..06c98e6714740
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerPropertiesForDefaultCreate.java
@@ -0,0 +1,74 @@
+/**
+ * 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.mariadb.v2018_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * The properties used to create a new server.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "createMode")
+@JsonTypeName("Default")
+public class ServerPropertiesForDefaultCreate extends ServerPropertiesForCreate {
+ /**
+ * The administrator's login name of a server. Can only be specified when
+ * the server is being created (and is required for creation).
+ */
+ @JsonProperty(value = "administratorLogin", required = true)
+ private String administratorLogin;
+
+ /**
+ * The password of the administrator login.
+ */
+ @JsonProperty(value = "administratorLoginPassword", required = true)
+ private String administratorLoginPassword;
+
+ /**
+ * Get the administrator's login name of a server. Can only be specified when the server is being created (and is required for creation).
+ *
+ * @return the administratorLogin value
+ */
+ public String administratorLogin() {
+ return this.administratorLogin;
+ }
+
+ /**
+ * Set the administrator's login name of a server. Can only be specified when the server is being created (and is required for creation).
+ *
+ * @param administratorLogin the administratorLogin value to set
+ * @return the ServerPropertiesForDefaultCreate object itself.
+ */
+ public ServerPropertiesForDefaultCreate withAdministratorLogin(String administratorLogin) {
+ this.administratorLogin = administratorLogin;
+ return this;
+ }
+
+ /**
+ * Get the password of the administrator login.
+ *
+ * @return the administratorLoginPassword value
+ */
+ public String administratorLoginPassword() {
+ return this.administratorLoginPassword;
+ }
+
+ /**
+ * Set the password of the administrator login.
+ *
+ * @param administratorLoginPassword the administratorLoginPassword value to set
+ * @return the ServerPropertiesForDefaultCreate object itself.
+ */
+ public ServerPropertiesForDefaultCreate withAdministratorLoginPassword(String administratorLoginPassword) {
+ this.administratorLoginPassword = administratorLoginPassword;
+ return this;
+ }
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerPropertiesForGeoRestore.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerPropertiesForGeoRestore.java
new file mode 100644
index 0000000000000..841db628f5019
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerPropertiesForGeoRestore.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.mariadb.v2018_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * The properties used to create a new server by restoring to a different
+ * region from a geo replicated backup.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "createMode")
+@JsonTypeName("GeoRestore")
+public class ServerPropertiesForGeoRestore extends ServerPropertiesForCreate {
+ /**
+ * The source server id to restore from.
+ */
+ @JsonProperty(value = "sourceServerId", required = true)
+ private String sourceServerId;
+
+ /**
+ * Get the source server id to restore from.
+ *
+ * @return the sourceServerId value
+ */
+ public String sourceServerId() {
+ return this.sourceServerId;
+ }
+
+ /**
+ * Set the source server id to restore from.
+ *
+ * @param sourceServerId the sourceServerId value to set
+ * @return the ServerPropertiesForGeoRestore object itself.
+ */
+ public ServerPropertiesForGeoRestore withSourceServerId(String sourceServerId) {
+ this.sourceServerId = sourceServerId;
+ return this;
+ }
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerPropertiesForReplica.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerPropertiesForReplica.java
new file mode 100644
index 0000000000000..2cc3741ea975c
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerPropertiesForReplica.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.mariadb.v2018_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * The properties to create a new replica.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "createMode")
+@JsonTypeName("Replica")
+public class ServerPropertiesForReplica extends ServerPropertiesForCreate {
+ /**
+ * The master server id to create replica from.
+ */
+ @JsonProperty(value = "sourceServerId", required = true)
+ private String sourceServerId;
+
+ /**
+ * Get the master server id to create replica from.
+ *
+ * @return the sourceServerId value
+ */
+ public String sourceServerId() {
+ return this.sourceServerId;
+ }
+
+ /**
+ * Set the master server id to create replica from.
+ *
+ * @param sourceServerId the sourceServerId value to set
+ * @return the ServerPropertiesForReplica object itself.
+ */
+ public ServerPropertiesForReplica withSourceServerId(String sourceServerId) {
+ this.sourceServerId = sourceServerId;
+ return this;
+ }
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerPropertiesForRestore.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerPropertiesForRestore.java
new file mode 100644
index 0000000000000..6235e5bc2dba7
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerPropertiesForRestore.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.mariadb.v2018_06_01;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+
+/**
+ * The properties used to create a new server by restoring from a backup.
+ */
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "createMode")
+@JsonTypeName("PointInTimeRestore")
+public class ServerPropertiesForRestore extends ServerPropertiesForCreate {
+ /**
+ * The source server id to restore from.
+ */
+ @JsonProperty(value = "sourceServerId", required = true)
+ private String sourceServerId;
+
+ /**
+ * Restore point creation time (ISO8601 format), specifying the time to
+ * restore from.
+ */
+ @JsonProperty(value = "restorePointInTime", required = true)
+ private DateTime restorePointInTime;
+
+ /**
+ * Get the source server id to restore from.
+ *
+ * @return the sourceServerId value
+ */
+ public String sourceServerId() {
+ return this.sourceServerId;
+ }
+
+ /**
+ * Set the source server id to restore from.
+ *
+ * @param sourceServerId the sourceServerId value to set
+ * @return the ServerPropertiesForRestore object itself.
+ */
+ public ServerPropertiesForRestore withSourceServerId(String sourceServerId) {
+ this.sourceServerId = sourceServerId;
+ return this;
+ }
+
+ /**
+ * Get restore point creation time (ISO8601 format), specifying the time to restore from.
+ *
+ * @return the restorePointInTime value
+ */
+ public DateTime restorePointInTime() {
+ return this.restorePointInTime;
+ }
+
+ /**
+ * Set restore point creation time (ISO8601 format), specifying the time to restore from.
+ *
+ * @param restorePointInTime the restorePointInTime value to set
+ * @return the ServerPropertiesForRestore object itself.
+ */
+ public ServerPropertiesForRestore withRestorePointInTime(DateTime restorePointInTime) {
+ this.restorePointInTime = restorePointInTime;
+ return this;
+ }
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerSecurityAlertPolicies.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerSecurityAlertPolicies.java
new file mode 100644
index 0000000000000..80527a8cd2258
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerSecurityAlertPolicies.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.mariadb.v2018_06_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Observable;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.ServerSecurityAlertPoliciesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ServerSecurityAlertPolicies.
+ */
+public interface ServerSecurityAlertPolicies extends SupportsCreating, HasInner {
+ /**
+ * Get a server's security alert 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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serverName);
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerSecurityAlertPolicy.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerSecurityAlertPolicy.java
new file mode 100644
index 0000000000000..45a4c1c3ff731
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerSecurityAlertPolicy.java
@@ -0,0 +1,251 @@
+/**
+ * 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.mariadb.v2018_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.ServerSecurityAlertPolicyInner;
+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.mariadb.v2018_06_01.implementation.DBforMariaDBManager;
+import java.util.List;
+
+/**
+ * Type representing ServerSecurityAlertPolicy.
+ */
+public interface ServerSecurityAlertPolicy extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the disabledAlerts value.
+ */
+ List disabledAlerts();
+
+ /**
+ * @return the emailAccountAdmins value.
+ */
+ Boolean emailAccountAdmins();
+
+ /**
+ * @return the emailAddresses value.
+ */
+ List emailAddresses();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the retentionDays value.
+ */
+ Integer retentionDays();
+
+ /**
+ * @return the state value.
+ */
+ ServerSecurityAlertPolicyState state();
+
+ /**
+ * @return the storageAccountAccessKey value.
+ */
+ String storageAccountAccessKey();
+
+ /**
+ * @return the storageEndpoint value.
+ */
+ String storageEndpoint();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the ServerSecurityAlertPolicy definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithServer, DefinitionStages.WithState, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ServerSecurityAlertPolicy definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ServerSecurityAlertPolicy definition.
+ */
+ interface Blank extends WithServer {
+ }
+
+ /**
+ * The stage of the serversecurityalertpolicy definition allowing to specify Server.
+ */
+ interface WithServer {
+ /**
+ * Specifies resourceGroupName, serverName.
+ */
+ WithState withExistingServer(String resourceGroupName, String serverName);
+ }
+
+ /**
+ * The stage of the serversecurityalertpolicy definition allowing to specify State.
+ */
+ interface WithState {
+ /**
+ * Specifies state.
+ */
+ WithCreate withState(ServerSecurityAlertPolicyState state);
+ }
+
+ /**
+ * The stage of the serversecurityalertpolicy definition allowing to specify DisabledAlerts.
+ */
+ interface WithDisabledAlerts {
+ /**
+ * Specifies disabledAlerts.
+ */
+ WithCreate withDisabledAlerts(List disabledAlerts);
+ }
+
+ /**
+ * The stage of the serversecurityalertpolicy definition allowing to specify EmailAccountAdmins.
+ */
+ interface WithEmailAccountAdmins {
+ /**
+ * Specifies emailAccountAdmins.
+ */
+ WithCreate withEmailAccountAdmins(Boolean emailAccountAdmins);
+ }
+
+ /**
+ * The stage of the serversecurityalertpolicy definition allowing to specify EmailAddresses.
+ */
+ interface WithEmailAddresses {
+ /**
+ * Specifies emailAddresses.
+ */
+ WithCreate withEmailAddresses(List emailAddresses);
+ }
+
+ /**
+ * The stage of the serversecurityalertpolicy definition allowing to specify RetentionDays.
+ */
+ interface WithRetentionDays {
+ /**
+ * Specifies retentionDays.
+ */
+ WithCreate withRetentionDays(Integer retentionDays);
+ }
+
+ /**
+ * The stage of the serversecurityalertpolicy definition allowing to specify StorageAccountAccessKey.
+ */
+ interface WithStorageAccountAccessKey {
+ /**
+ * Specifies storageAccountAccessKey.
+ */
+ WithCreate withStorageAccountAccessKey(String storageAccountAccessKey);
+ }
+
+ /**
+ * The stage of the serversecurityalertpolicy definition allowing to specify StorageEndpoint.
+ */
+ interface WithStorageEndpoint {
+ /**
+ * Specifies storageEndpoint.
+ */
+ WithCreate withStorageEndpoint(String storageEndpoint);
+ }
+
+ /**
+ * 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.WithRetentionDays, DefinitionStages.WithStorageAccountAccessKey, DefinitionStages.WithStorageEndpoint {
+ }
+ }
+ /**
+ * The template for a ServerSecurityAlertPolicy update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithDisabledAlerts, UpdateStages.WithEmailAccountAdmins, UpdateStages.WithEmailAddresses, UpdateStages.WithRetentionDays, UpdateStages.WithStorageAccountAccessKey, UpdateStages.WithStorageEndpoint {
+ }
+
+ /**
+ * Grouping of ServerSecurityAlertPolicy update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the serversecurityalertpolicy update allowing to specify DisabledAlerts.
+ */
+ interface WithDisabledAlerts {
+ /**
+ * Specifies disabledAlerts.
+ */
+ Update withDisabledAlerts(List disabledAlerts);
+ }
+
+ /**
+ * The stage of the serversecurityalertpolicy update allowing to specify EmailAccountAdmins.
+ */
+ interface WithEmailAccountAdmins {
+ /**
+ * Specifies emailAccountAdmins.
+ */
+ Update withEmailAccountAdmins(Boolean emailAccountAdmins);
+ }
+
+ /**
+ * The stage of the serversecurityalertpolicy update allowing to specify EmailAddresses.
+ */
+ interface WithEmailAddresses {
+ /**
+ * Specifies emailAddresses.
+ */
+ Update withEmailAddresses(List emailAddresses);
+ }
+
+ /**
+ * The stage of the serversecurityalertpolicy update allowing to specify RetentionDays.
+ */
+ interface WithRetentionDays {
+ /**
+ * Specifies retentionDays.
+ */
+ Update withRetentionDays(Integer retentionDays);
+ }
+
+ /**
+ * The stage of the serversecurityalertpolicy update allowing to specify StorageAccountAccessKey.
+ */
+ interface WithStorageAccountAccessKey {
+ /**
+ * Specifies storageAccountAccessKey.
+ */
+ Update withStorageAccountAccessKey(String storageAccountAccessKey);
+ }
+
+ /**
+ * The stage of the serversecurityalertpolicy update allowing to specify StorageEndpoint.
+ */
+ interface WithStorageEndpoint {
+ /**
+ * Specifies storageEndpoint.
+ */
+ Update withStorageEndpoint(String storageEndpoint);
+ }
+
+ }
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerSecurityAlertPolicyState.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerSecurityAlertPolicyState.java
new file mode 100644
index 0000000000000..46a74d7d430cf
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerSecurityAlertPolicyState.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.mariadb.v2018_06_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for ServerSecurityAlertPolicyState.
+ */
+public enum ServerSecurityAlertPolicyState {
+ /** Enum value Enabled. */
+ ENABLED("Enabled"),
+
+ /** Enum value Disabled. */
+ DISABLED("Disabled");
+
+ /** The actual serialized value for a ServerSecurityAlertPolicyState instance. */
+ private String value;
+
+ ServerSecurityAlertPolicyState(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a ServerSecurityAlertPolicyState instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed ServerSecurityAlertPolicyState object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static ServerSecurityAlertPolicyState fromString(String value) {
+ ServerSecurityAlertPolicyState[] items = ServerSecurityAlertPolicyState.values();
+ for (ServerSecurityAlertPolicyState item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerServer.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerServer.java
new file mode 100644
index 0000000000000..4c7367751677f
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerServer.java
@@ -0,0 +1,102 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.mariadb.v2018_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.ServerInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.DBforMariaDBManager;
+import org.joda.time.DateTime;
+import java.util.Map;
+
+/**
+ * Type representing ServerServer.
+ */
+public interface ServerServer extends HasInner, HasManager {
+ /**
+ * @return the administratorLogin value.
+ */
+ String administratorLogin();
+
+ /**
+ * @return the earliestRestoreDate value.
+ */
+ DateTime earliestRestoreDate();
+
+ /**
+ * @return the fullyQualifiedDomainName value.
+ */
+ String fullyQualifiedDomainName();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the masterServerId value.
+ */
+ String masterServerId();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the replicaCapacity value.
+ */
+ Integer replicaCapacity();
+
+ /**
+ * @return the replicationRole value.
+ */
+ String replicationRole();
+
+ /**
+ * @return the sku value.
+ */
+ Sku sku();
+
+ /**
+ * @return the sslEnforcement value.
+ */
+ SslEnforcementEnum sslEnforcement();
+
+ /**
+ * @return the storageProfile value.
+ */
+ StorageProfile storageProfile();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the userVisibleState value.
+ */
+ ServerState userVisibleState();
+
+ /**
+ * @return the version value.
+ */
+ ServerVersion version();
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerState.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerState.java
new file mode 100644
index 0000000000000..6a9ef621c3d61
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerState.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.mariadb.v2018_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ServerState.
+ */
+public final class ServerState extends ExpandableStringEnum {
+ /** Static value Ready for ServerState. */
+ public static final ServerState READY = fromString("Ready");
+
+ /** Static value Dropping for ServerState. */
+ public static final ServerState DROPPING = fromString("Dropping");
+
+ /** Static value Disabled for ServerState. */
+ public static final ServerState DISABLED = fromString("Disabled");
+
+ /**
+ * Creates or finds a ServerState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ServerState
+ */
+ @JsonCreator
+ public static ServerState fromString(String name) {
+ return fromString(name, ServerState.class);
+ }
+
+ /**
+ * @return known ServerState values
+ */
+ public static Collection values() {
+ return values(ServerState.class);
+ }
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerUpdateParameters.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerUpdateParameters.java
new file mode 100644
index 0000000000000..b23087b7e7a66
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerUpdateParameters.java
@@ -0,0 +1,203 @@
+/**
+ * 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.mariadb.v2018_06_01;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Parameters allowed to update for a server.
+ */
+@JsonFlatten
+public class ServerUpdateParameters {
+ /**
+ * The SKU (pricing tier) of the server.
+ */
+ @JsonProperty(value = "sku")
+ private Sku sku;
+
+ /**
+ * Storage profile of a server.
+ */
+ @JsonProperty(value = "properties.storageProfile")
+ private StorageProfile storageProfile;
+
+ /**
+ * The password of the administrator login.
+ */
+ @JsonProperty(value = "properties.administratorLoginPassword")
+ private String administratorLoginPassword;
+
+ /**
+ * The version of a server. Possible values include: '5.6', '5.7'.
+ */
+ @JsonProperty(value = "properties.version")
+ private ServerVersion version;
+
+ /**
+ * Enable ssl enforcement or not when connect to server. Possible values
+ * include: 'Enabled', 'Disabled'.
+ */
+ @JsonProperty(value = "properties.sslEnforcement")
+ private SslEnforcementEnum sslEnforcement;
+
+ /**
+ * The replication role of the server.
+ */
+ @JsonProperty(value = "properties.replicationRole")
+ private String replicationRole;
+
+ /**
+ * Application-specific metadata in the form of key-value pairs.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * Get the SKU (pricing tier) of the server.
+ *
+ * @return the sku value
+ */
+ public Sku sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set the SKU (pricing tier) of the server.
+ *
+ * @param sku the sku value to set
+ * @return the ServerUpdateParameters object itself.
+ */
+ public ServerUpdateParameters withSku(Sku sku) {
+ this.sku = sku;
+ return this;
+ }
+
+ /**
+ * Get storage profile of a server.
+ *
+ * @return the storageProfile value
+ */
+ public StorageProfile storageProfile() {
+ return this.storageProfile;
+ }
+
+ /**
+ * Set storage profile of a server.
+ *
+ * @param storageProfile the storageProfile value to set
+ * @return the ServerUpdateParameters object itself.
+ */
+ public ServerUpdateParameters withStorageProfile(StorageProfile storageProfile) {
+ this.storageProfile = storageProfile;
+ return this;
+ }
+
+ /**
+ * Get the password of the administrator login.
+ *
+ * @return the administratorLoginPassword value
+ */
+ public String administratorLoginPassword() {
+ return this.administratorLoginPassword;
+ }
+
+ /**
+ * Set the password of the administrator login.
+ *
+ * @param administratorLoginPassword the administratorLoginPassword value to set
+ * @return the ServerUpdateParameters object itself.
+ */
+ public ServerUpdateParameters withAdministratorLoginPassword(String administratorLoginPassword) {
+ this.administratorLoginPassword = administratorLoginPassword;
+ return this;
+ }
+
+ /**
+ * Get the version of a server. Possible values include: '5.6', '5.7'.
+ *
+ * @return the version value
+ */
+ public ServerVersion version() {
+ return this.version;
+ }
+
+ /**
+ * Set the version of a server. Possible values include: '5.6', '5.7'.
+ *
+ * @param version the version value to set
+ * @return the ServerUpdateParameters object itself.
+ */
+ public ServerUpdateParameters withVersion(ServerVersion version) {
+ this.version = version;
+ return this;
+ }
+
+ /**
+ * Get enable ssl enforcement or not when connect to server. Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @return the sslEnforcement value
+ */
+ public SslEnforcementEnum sslEnforcement() {
+ return this.sslEnforcement;
+ }
+
+ /**
+ * Set enable ssl enforcement or not when connect to server. Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @param sslEnforcement the sslEnforcement value to set
+ * @return the ServerUpdateParameters object itself.
+ */
+ public ServerUpdateParameters withSslEnforcement(SslEnforcementEnum sslEnforcement) {
+ this.sslEnforcement = sslEnforcement;
+ return this;
+ }
+
+ /**
+ * Get the replication role of the server.
+ *
+ * @return the replicationRole value
+ */
+ public String replicationRole() {
+ return this.replicationRole;
+ }
+
+ /**
+ * Set the replication role of the server.
+ *
+ * @param replicationRole the replicationRole value to set
+ * @return the ServerUpdateParameters object itself.
+ */
+ public ServerUpdateParameters withReplicationRole(String replicationRole) {
+ this.replicationRole = replicationRole;
+ return this;
+ }
+
+ /**
+ * Get application-specific metadata in the form of key-value pairs.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set application-specific metadata in the form of key-value pairs.
+ *
+ * @param tags the tags value to set
+ * @return the ServerUpdateParameters object itself.
+ */
+ public ServerUpdateParameters withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerVersion.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerVersion.java
new file mode 100644
index 0000000000000..31854e9fdb480
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/ServerVersion.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.mariadb.v2018_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ServerVersion.
+ */
+public final class ServerVersion extends ExpandableStringEnum {
+ /** Static value 5.6 for ServerVersion. */
+ public static final ServerVersion FIVE_FULL_STOP_SIX = fromString("5.6");
+
+ /** Static value 5.7 for ServerVersion. */
+ public static final ServerVersion FIVE_FULL_STOP_SEVEN = fromString("5.7");
+
+ /**
+ * Creates or finds a ServerVersion from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ServerVersion
+ */
+ @JsonCreator
+ public static ServerVersion fromString(String name) {
+ return fromString(name, ServerVersion.class);
+ }
+
+ /**
+ * @return known ServerVersion values
+ */
+ public static Collection values() {
+ return values(ServerVersion.class);
+ }
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Servers.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Servers.java
new file mode 100644
index 0000000000000..07e3952b94019
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Servers.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.mariadb.v2018_06_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import com.microsoft.azure.arm.resources.collection.SupportsDeletingByResourceGroup;
+import com.microsoft.azure.arm.resources.collection.SupportsBatchDeletion;
+import com.microsoft.azure.arm.resources.collection.SupportsGettingByResourceGroup;
+import rx.Observable;
+import com.microsoft.azure.arm.resources.collection.SupportsListingByResourceGroup;
+import com.microsoft.azure.arm.collection.SupportsListing;
+import rx.Completable;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.ServersInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Servers.
+ */
+public interface Servers extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+ /**
+ * Restarts 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
+ */
+ Completable restartAsync(String resourceGroupName, String serverName);
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Sku.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Sku.java
new file mode 100644
index 0000000000000..73667f59e7fe4
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/Sku.java
@@ -0,0 +1,149 @@
+/**
+ * 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.mariadb.v2018_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Billing information related properties of a server.
+ */
+public class Sku {
+ /**
+ * The name of the sku, typically, tier + family + cores, e.g. B_Gen4_1,
+ * GP_Gen5_8.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * The tier of the particular SKU, e.g. Basic. Possible values include:
+ * 'Basic', 'GeneralPurpose', 'MemoryOptimized'.
+ */
+ @JsonProperty(value = "tier")
+ private SkuTier tier;
+
+ /**
+ * The scale up/out capacity, representing server's compute units.
+ */
+ @JsonProperty(value = "capacity")
+ private Integer capacity;
+
+ /**
+ * The size code, to be interpreted by resource as appropriate.
+ */
+ @JsonProperty(value = "size")
+ private String size;
+
+ /**
+ * The family of hardware.
+ */
+ @JsonProperty(value = "family")
+ private String family;
+
+ /**
+ * Get the name of the sku, typically, tier + family + cores, e.g. B_Gen4_1, GP_Gen5_8.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name of the sku, typically, tier + family + cores, e.g. B_Gen4_1, GP_Gen5_8.
+ *
+ * @param name the name value to set
+ * @return the Sku object itself.
+ */
+ public Sku withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the tier of the particular SKU, e.g. Basic. Possible values include: 'Basic', 'GeneralPurpose', 'MemoryOptimized'.
+ *
+ * @return the tier value
+ */
+ public SkuTier tier() {
+ return this.tier;
+ }
+
+ /**
+ * Set the tier of the particular SKU, e.g. Basic. Possible values include: 'Basic', 'GeneralPurpose', 'MemoryOptimized'.
+ *
+ * @param tier the tier value to set
+ * @return the Sku object itself.
+ */
+ public Sku withTier(SkuTier tier) {
+ this.tier = tier;
+ return this;
+ }
+
+ /**
+ * Get the scale up/out capacity, representing server's compute units.
+ *
+ * @return the capacity value
+ */
+ public Integer capacity() {
+ return this.capacity;
+ }
+
+ /**
+ * Set the scale up/out capacity, representing server's compute units.
+ *
+ * @param capacity the capacity value to set
+ * @return the Sku object itself.
+ */
+ public Sku withCapacity(Integer capacity) {
+ this.capacity = capacity;
+ return this;
+ }
+
+ /**
+ * Get the size code, to be interpreted by resource as appropriate.
+ *
+ * @return the size value
+ */
+ public String size() {
+ return this.size;
+ }
+
+ /**
+ * Set the size code, to be interpreted by resource as appropriate.
+ *
+ * @param size the size value to set
+ * @return the Sku object itself.
+ */
+ public Sku withSize(String size) {
+ this.size = size;
+ return this;
+ }
+
+ /**
+ * Get the family of hardware.
+ *
+ * @return the family value
+ */
+ public String family() {
+ return this.family;
+ }
+
+ /**
+ * Set the family of hardware.
+ *
+ * @param family the family value to set
+ * @return the Sku object itself.
+ */
+ public Sku withFamily(String family) {
+ this.family = family;
+ return this;
+ }
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/SkuTier.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/SkuTier.java
new file mode 100644
index 0000000000000..17a558378fd6f
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/SkuTier.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.mariadb.v2018_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for SkuTier.
+ */
+public final class SkuTier extends ExpandableStringEnum {
+ /** Static value Basic for SkuTier. */
+ public static final SkuTier BASIC = fromString("Basic");
+
+ /** Static value GeneralPurpose for SkuTier. */
+ public static final SkuTier GENERAL_PURPOSE = fromString("GeneralPurpose");
+
+ /** Static value MemoryOptimized for SkuTier. */
+ public static final SkuTier MEMORY_OPTIMIZED = fromString("MemoryOptimized");
+
+ /**
+ * Creates or finds a SkuTier from its string representation.
+ * @param name a name to look for
+ * @return the corresponding SkuTier
+ */
+ @JsonCreator
+ public static SkuTier fromString(String name) {
+ return fromString(name, SkuTier.class);
+ }
+
+ /**
+ * @return known SkuTier values
+ */
+ public static Collection values() {
+ return values(SkuTier.class);
+ }
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/SslEnforcementEnum.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/SslEnforcementEnum.java
new file mode 100644
index 0000000000000..1da73e85d6f59
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/SslEnforcementEnum.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.mariadb.v2018_06_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for SslEnforcementEnum.
+ */
+public enum SslEnforcementEnum {
+ /** Enum value Enabled. */
+ ENABLED("Enabled"),
+
+ /** Enum value Disabled. */
+ DISABLED("Disabled");
+
+ /** The actual serialized value for a SslEnforcementEnum instance. */
+ private String value;
+
+ SslEnforcementEnum(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a SslEnforcementEnum instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed SslEnforcementEnum object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static SslEnforcementEnum fromString(String value) {
+ SslEnforcementEnum[] items = SslEnforcementEnum.values();
+ for (SslEnforcementEnum item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/StorageProfile.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/StorageProfile.java
new file mode 100644
index 0000000000000..96cfee6de9c9b
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/StorageProfile.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.mariadb.v2018_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Storage Profile properties of a server.
+ */
+public class StorageProfile {
+ /**
+ * Backup retention days for the server.
+ */
+ @JsonProperty(value = "backupRetentionDays")
+ private Integer backupRetentionDays;
+
+ /**
+ * Enable Geo-redundant or not for server backup. Possible values include:
+ * 'Enabled', 'Disabled'.
+ */
+ @JsonProperty(value = "geoRedundantBackup")
+ private GeoRedundantBackup geoRedundantBackup;
+
+ /**
+ * Max storage allowed for a server.
+ */
+ @JsonProperty(value = "storageMB")
+ private Integer storageMB;
+
+ /**
+ * Get backup retention days for the server.
+ *
+ * @return the backupRetentionDays value
+ */
+ public Integer backupRetentionDays() {
+ return this.backupRetentionDays;
+ }
+
+ /**
+ * Set backup retention days for the server.
+ *
+ * @param backupRetentionDays the backupRetentionDays value to set
+ * @return the StorageProfile object itself.
+ */
+ public StorageProfile withBackupRetentionDays(Integer backupRetentionDays) {
+ this.backupRetentionDays = backupRetentionDays;
+ return this;
+ }
+
+ /**
+ * Get enable Geo-redundant or not for server backup. Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @return the geoRedundantBackup value
+ */
+ public GeoRedundantBackup geoRedundantBackup() {
+ return this.geoRedundantBackup;
+ }
+
+ /**
+ * Set enable Geo-redundant or not for server backup. Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @param geoRedundantBackup the geoRedundantBackup value to set
+ * @return the StorageProfile object itself.
+ */
+ public StorageProfile withGeoRedundantBackup(GeoRedundantBackup geoRedundantBackup) {
+ this.geoRedundantBackup = geoRedundantBackup;
+ return this;
+ }
+
+ /**
+ * Get max storage allowed for a server.
+ *
+ * @return the storageMB value
+ */
+ public Integer storageMB() {
+ return this.storageMB;
+ }
+
+ /**
+ * Set max storage allowed for a server.
+ *
+ * @param storageMB the storageMB value to set
+ * @return the StorageProfile object itself.
+ */
+ public StorageProfile withStorageMB(Integer storageMB) {
+ this.storageMB = storageMB;
+ return this;
+ }
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/VirtualNetworkRule.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/VirtualNetworkRule.java
new file mode 100644
index 0000000000000..406267d8462fa
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/VirtualNetworkRule.java
@@ -0,0 +1,130 @@
+/**
+ * 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.mariadb.v2018_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.VirtualNetworkRuleInner;
+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.mariadb.v2018_06_01.implementation.DBforMariaDBManager;
+
+/**
+ * Type representing VirtualNetworkRule.
+ */
+public interface VirtualNetworkRule extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the ignoreMissingVnetServiceEndpoint value.
+ */
+ Boolean ignoreMissingVnetServiceEndpoint();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the state value.
+ */
+ VirtualNetworkRuleState state();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the virtualNetworkSubnetId value.
+ */
+ String virtualNetworkSubnetId();
+
+ /**
+ * The entirety of the VirtualNetworkRule definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithServer, DefinitionStages.WithVirtualNetworkSubnetId, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of VirtualNetworkRule definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a VirtualNetworkRule definition.
+ */
+ interface Blank extends WithServer {
+ }
+
+ /**
+ * The stage of the virtualnetworkrule definition allowing to specify Server.
+ */
+ interface WithServer {
+ /**
+ * Specifies resourceGroupName, serverName.
+ */
+ WithVirtualNetworkSubnetId withExistingServer(String resourceGroupName, String serverName);
+ }
+
+ /**
+ * The stage of the virtualnetworkrule definition allowing to specify VirtualNetworkSubnetId.
+ */
+ interface WithVirtualNetworkSubnetId {
+ /**
+ * Specifies virtualNetworkSubnetId.
+ */
+ WithCreate withVirtualNetworkSubnetId(String virtualNetworkSubnetId);
+ }
+
+ /**
+ * The stage of the virtualnetworkrule definition allowing to specify IgnoreMissingVnetServiceEndpoint.
+ */
+ interface WithIgnoreMissingVnetServiceEndpoint {
+ /**
+ * Specifies ignoreMissingVnetServiceEndpoint.
+ */
+ WithCreate withIgnoreMissingVnetServiceEndpoint(Boolean ignoreMissingVnetServiceEndpoint);
+ }
+
+ /**
+ * 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.WithIgnoreMissingVnetServiceEndpoint {
+ }
+ }
+ /**
+ * The template for a VirtualNetworkRule update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithIgnoreMissingVnetServiceEndpoint {
+ }
+
+ /**
+ * Grouping of VirtualNetworkRule update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the virtualnetworkrule update allowing to specify IgnoreMissingVnetServiceEndpoint.
+ */
+ interface WithIgnoreMissingVnetServiceEndpoint {
+ /**
+ * Specifies ignoreMissingVnetServiceEndpoint.
+ */
+ Update withIgnoreMissingVnetServiceEndpoint(Boolean ignoreMissingVnetServiceEndpoint);
+ }
+
+ }
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/VirtualNetworkRuleState.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/VirtualNetworkRuleState.java
new file mode 100644
index 0000000000000..dc01fb003a1f1
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/VirtualNetworkRuleState.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.mariadb.v2018_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for VirtualNetworkRuleState.
+ */
+public final class VirtualNetworkRuleState extends ExpandableStringEnum {
+ /** Static value Initializing for VirtualNetworkRuleState. */
+ public static final VirtualNetworkRuleState INITIALIZING = fromString("Initializing");
+
+ /** Static value InProgress for VirtualNetworkRuleState. */
+ public static final VirtualNetworkRuleState IN_PROGRESS = fromString("InProgress");
+
+ /** Static value Ready for VirtualNetworkRuleState. */
+ public static final VirtualNetworkRuleState READY = fromString("Ready");
+
+ /** Static value Deleting for VirtualNetworkRuleState. */
+ public static final VirtualNetworkRuleState DELETING = fromString("Deleting");
+
+ /** Static value Unknown for VirtualNetworkRuleState. */
+ public static final VirtualNetworkRuleState UNKNOWN = fromString("Unknown");
+
+ /**
+ * Creates or finds a VirtualNetworkRuleState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding VirtualNetworkRuleState
+ */
+ @JsonCreator
+ public static VirtualNetworkRuleState fromString(String name) {
+ return fromString(name, VirtualNetworkRuleState.class);
+ }
+
+ /**
+ * @return known VirtualNetworkRuleState values
+ */
+ public static Collection values() {
+ return values(VirtualNetworkRuleState.class);
+ }
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/VirtualNetworkRules.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/VirtualNetworkRules.java
new file mode 100644
index 0000000000000..b189fc33fa8b5
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/VirtualNetworkRules.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.mariadb.v2018_06_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.mariadb.v2018_06_01.implementation.VirtualNetworkRulesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing VirtualNetworkRules.
+ */
+public interface VirtualNetworkRules extends SupportsCreating, HasInner {
+ /**
+ * Gets a virtual network 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 virtualNetworkRuleName The name of the virtual network rule.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serverName, String virtualNetworkRuleName);
+
+ /**
+ * Gets a list of virtual network rules 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(final String resourceGroupName, final String serverName);
+
+ /**
+ * Deletes the virtual network rule with the given name.
+ *
+ * @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 virtualNetworkRuleName The name of the virtual network rule.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String serverName, String virtualNetworkRuleName);
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/CheckNameAvailabilitysImpl.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/CheckNameAvailabilitysImpl.java
new file mode 100644
index 0000000000000..7a8e1aa14050b
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/CheckNameAvailabilitysImpl.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.
+ * abc
+ */
+
+package com.microsoft.azure.management.mariadb.v2018_06_01.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.mariadb.v2018_06_01.CheckNameAvailabilitys;
+import rx.functions.Func1;
+import rx.Observable;
+import com.microsoft.azure.management.mariadb.v2018_06_01.NameAvailability;
+import com.microsoft.azure.management.mariadb.v2018_06_01.NameAvailabilityRequest;
+
+class CheckNameAvailabilitysImpl extends WrapperImpl implements CheckNameAvailabilitys {
+ private final DBforMariaDBManager manager;
+
+ CheckNameAvailabilitysImpl(DBforMariaDBManager manager) {
+ super(manager.inner().checkNameAvailabilitys());
+ this.manager = manager;
+ }
+
+ public DBforMariaDBManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public Observable executeAsync(NameAvailabilityRequest nameAvailabilityRequest) {
+ CheckNameAvailabilitysInner client = this.inner();
+ return client.executeAsync(nameAvailabilityRequest)
+ .map(new Func1() {
+ @Override
+ public NameAvailability call(NameAvailabilityInner inner) {
+ return new NameAvailabilityImpl(inner, manager());
+ }
+ });
+ }
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/CheckNameAvailabilitysInner.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/CheckNameAvailabilitysInner.java
new file mode 100644
index 0000000000000..626188cd96527
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/CheckNameAvailabilitysInner.java
@@ -0,0 +1,143 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.mariadb.v2018_06_01.implementation;
+
+import retrofit2.Retrofit;
+import com.google.common.reflect.TypeToken;
+import com.microsoft.azure.CloudException;
+import com.microsoft.azure.management.mariadb.v2018_06_01.NameAvailabilityRequest;
+import com.microsoft.rest.ServiceCallback;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import com.microsoft.rest.Validator;
+import java.io.IOException;
+import okhttp3.ResponseBody;
+import retrofit2.http.Body;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.Path;
+import retrofit2.http.POST;
+import retrofit2.http.Query;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in CheckNameAvailabilitys.
+ */
+public class CheckNameAvailabilitysInner {
+ /** The Retrofit service to perform REST calls. */
+ private CheckNameAvailabilitysService service;
+ /** The service client containing this operation class. */
+ private MariaDBManagementClientImpl client;
+
+ /**
+ * Initializes an instance of CheckNameAvailabilitysInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public CheckNameAvailabilitysInner(Retrofit retrofit, MariaDBManagementClientImpl client) {
+ this.service = retrofit.create(CheckNameAvailabilitysService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for CheckNameAvailabilitys to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface CheckNameAvailabilitysService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.mariadb.v2018_06_01.CheckNameAvailabilitys execute" })
+ @POST("subscriptions/{subscriptionId}/providers/Microsoft.DBforMariaDB/checkNameAvailability")
+ Observable> execute(@Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Body NameAvailabilityRequest nameAvailabilityRequest, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * Check the availability of name for resource.
+ *
+ * @param nameAvailabilityRequest The required parameters for checking if resource name is available.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the NameAvailabilityInner object if successful.
+ */
+ public NameAvailabilityInner execute(NameAvailabilityRequest nameAvailabilityRequest) {
+ return executeWithServiceResponseAsync(nameAvailabilityRequest).toBlocking().single().body();
+ }
+
+ /**
+ * Check the availability of name for resource.
+ *
+ * @param nameAvailabilityRequest The required parameters for checking if resource name is available.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture executeAsync(NameAvailabilityRequest nameAvailabilityRequest, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(executeWithServiceResponseAsync(nameAvailabilityRequest), serviceCallback);
+ }
+
+ /**
+ * Check the availability of name for resource.
+ *
+ * @param nameAvailabilityRequest The required parameters for checking if resource name is available.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the NameAvailabilityInner object
+ */
+ public Observable executeAsync(NameAvailabilityRequest nameAvailabilityRequest) {
+ return executeWithServiceResponseAsync(nameAvailabilityRequest).map(new Func1, NameAvailabilityInner>() {
+ @Override
+ public NameAvailabilityInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Check the availability of name for resource.
+ *
+ * @param nameAvailabilityRequest The required parameters for checking if resource name is available.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the NameAvailabilityInner object
+ */
+ public Observable> executeWithServiceResponseAsync(NameAvailabilityRequest nameAvailabilityRequest) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ if (nameAvailabilityRequest == null) {
+ throw new IllegalArgumentException("Parameter nameAvailabilityRequest is required and cannot be null.");
+ }
+ Validator.validate(nameAvailabilityRequest);
+ return service.execute(this.client.subscriptionId(), this.client.apiVersion(), nameAvailabilityRequest, this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = executeDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse executeDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/ConfigurationImpl.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/ConfigurationImpl.java
new file mode 100644
index 0000000000000..0883bdaa4bbaf
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/ConfigurationImpl.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.mariadb.v2018_06_01.implementation;
+
+import com.microsoft.azure.management.mariadb.v2018_06_01.Configuration;
+import com.microsoft.azure.arm.model.implementation.CreatableUpdatableImpl;
+import rx.Observable;
+
+class ConfigurationImpl extends CreatableUpdatableImpl implements Configuration, Configuration.Definition, Configuration.Update {
+ private final DBforMariaDBManager manager;
+ private String resourceGroupName;
+ private String serverName;
+ private String configurationName;
+
+ ConfigurationImpl(String name, DBforMariaDBManager manager) {
+ super(name, new ConfigurationInner());
+ this.manager = manager;
+ // Set resource name
+ this.configurationName = name;
+ //
+ }
+
+ ConfigurationImpl(ConfigurationInner inner, DBforMariaDBManager manager) {
+ super(inner.name(), inner);
+ this.manager = manager;
+ // Set resource name
+ this.configurationName = inner.name();
+ // resource ancestor names
+ this.resourceGroupName = IdParsingUtils.getValueFromIdByName(inner.id(), "resourceGroups");
+ this.serverName = IdParsingUtils.getValueFromIdByName(inner.id(), "servers");
+ this.configurationName = IdParsingUtils.getValueFromIdByName(inner.id(), "configurations");
+ //
+ }
+
+ @Override
+ public DBforMariaDBManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public Observable createResourceAsync() {
+ ConfigurationsInner client = this.manager().inner().configurations();
+ return client.createOrUpdateAsync(this.resourceGroupName, this.serverName, this.configurationName, this.inner())
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ public Observable updateResourceAsync() {
+ ConfigurationsInner client = this.manager().inner().configurations();
+ return client.createOrUpdateAsync(this.resourceGroupName, this.serverName, this.configurationName, this.inner())
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ protected Observable getInnerAsync() {
+ ConfigurationsInner client = this.manager().inner().configurations();
+ return client.getAsync(this.resourceGroupName, this.serverName, this.configurationName);
+ }
+
+ @Override
+ public boolean isInCreateMode() {
+ return this.inner().id() == null;
+ }
+
+
+ @Override
+ public String allowedValues() {
+ return this.inner().allowedValues();
+ }
+
+ @Override
+ public String dataType() {
+ return this.inner().dataType();
+ }
+
+ @Override
+ public String defaultValue() {
+ return this.inner().defaultValue();
+ }
+
+ @Override
+ public String description() {
+ return this.inner().description();
+ }
+
+ @Override
+ public String id() {
+ return this.inner().id();
+ }
+
+ @Override
+ public String name() {
+ return this.inner().name();
+ }
+
+ @Override
+ public String source() {
+ return this.inner().source();
+ }
+
+ @Override
+ public String type() {
+ return this.inner().type();
+ }
+
+ @Override
+ public String value() {
+ return this.inner().value();
+ }
+
+ @Override
+ public ConfigurationImpl withExistingServer(String resourceGroupName, String serverName) {
+ this.resourceGroupName = resourceGroupName;
+ this.serverName = serverName;
+ return this;
+ }
+
+ @Override
+ public ConfigurationImpl withSource(String source) {
+ this.inner().withSource(source);
+ return this;
+ }
+
+ @Override
+ public ConfigurationImpl withValue(String value) {
+ this.inner().withValue(value);
+ return this;
+ }
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/ConfigurationInner.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/ConfigurationInner.java
new file mode 100644
index 0000000000000..702a867ad2391
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/ConfigurationInner.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.mariadb.v2018_06_01.implementation;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * Represents a Configuration.
+ */
+@JsonFlatten
+public class ConfigurationInner extends ProxyResource {
+ /**
+ * Value of the configuration.
+ */
+ @JsonProperty(value = "properties.value")
+ private String value;
+
+ /**
+ * Description of the configuration.
+ */
+ @JsonProperty(value = "properties.description", access = JsonProperty.Access.WRITE_ONLY)
+ private String description;
+
+ /**
+ * Default value of the configuration.
+ */
+ @JsonProperty(value = "properties.defaultValue", access = JsonProperty.Access.WRITE_ONLY)
+ private String defaultValue;
+
+ /**
+ * Data type of the configuration.
+ */
+ @JsonProperty(value = "properties.dataType", access = JsonProperty.Access.WRITE_ONLY)
+ private String dataType;
+
+ /**
+ * Allowed values of the configuration.
+ */
+ @JsonProperty(value = "properties.allowedValues", access = JsonProperty.Access.WRITE_ONLY)
+ private String allowedValues;
+
+ /**
+ * Source of the configuration.
+ */
+ @JsonProperty(value = "properties.source")
+ private String source;
+
+ /**
+ * Get value of the configuration.
+ *
+ * @return the value value
+ */
+ public String value() {
+ return this.value;
+ }
+
+ /**
+ * Set value of the configuration.
+ *
+ * @param value the value value to set
+ * @return the ConfigurationInner object itself.
+ */
+ public ConfigurationInner withValue(String value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Get description of the configuration.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Get default value of the configuration.
+ *
+ * @return the defaultValue value
+ */
+ public String defaultValue() {
+ return this.defaultValue;
+ }
+
+ /**
+ * Get data type of the configuration.
+ *
+ * @return the dataType value
+ */
+ public String dataType() {
+ return this.dataType;
+ }
+
+ /**
+ * Get allowed values of the configuration.
+ *
+ * @return the allowedValues value
+ */
+ public String allowedValues() {
+ return this.allowedValues;
+ }
+
+ /**
+ * Get source of the configuration.
+ *
+ * @return the source value
+ */
+ public String source() {
+ return this.source;
+ }
+
+ /**
+ * Set source of the configuration.
+ *
+ * @param source the source value to set
+ * @return the ConfigurationInner object itself.
+ */
+ public ConfigurationInner withSource(String source) {
+ this.source = source;
+ return this;
+ }
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/ConfigurationsImpl.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/ConfigurationsImpl.java
new file mode 100644
index 0000000000000..1db30895624a8
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/ConfigurationsImpl.java
@@ -0,0 +1,74 @@
+/**
+ * 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.mariadb.v2018_06_01.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.mariadb.v2018_06_01.Configurations;
+import rx.Observable;
+import rx.functions.Func1;
+import java.util.List;
+import com.microsoft.azure.management.mariadb.v2018_06_01.Configuration;
+
+class ConfigurationsImpl extends WrapperImpl implements Configurations {
+ private final DBforMariaDBManager manager;
+
+ ConfigurationsImpl(DBforMariaDBManager manager) {
+ super(manager.inner().configurations());
+ this.manager = manager;
+ }
+
+ public DBforMariaDBManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public ConfigurationImpl define(String name) {
+ return wrapModel(name);
+ }
+
+ private ConfigurationImpl wrapModel(ConfigurationInner inner) {
+ return new ConfigurationImpl(inner, manager());
+ }
+
+ private ConfigurationImpl wrapModel(String name) {
+ return new ConfigurationImpl(name, this.manager());
+ }
+
+ @Override
+ public Observable listByServerAsync(String resourceGroupName, String serverName) {
+ ConfigurationsInner client = this.inner();
+ return client.listByServerAsync(resourceGroupName, serverName)
+ .flatMap(new Func1, Observable>() {
+ @Override
+ public Observable call(List innerList) {
+ return Observable.from(innerList);
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public Configuration call(ConfigurationInner inner) {
+ return wrapModel(inner);
+ }
+ });
+ }
+
+ @Override
+ public Observable getAsync(String resourceGroupName, String serverName, String configurationName) {
+ ConfigurationsInner client = this.inner();
+ return client.getAsync(resourceGroupName, serverName, configurationName)
+ .map(new Func1() {
+ @Override
+ public Configuration call(ConfigurationInner inner) {
+ return wrapModel(inner);
+ }
+ });
+ }
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/ConfigurationsInner.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/ConfigurationsInner.java
new file mode 100644
index 0000000000000..8596165868ddc
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/ConfigurationsInner.java
@@ -0,0 +1,446 @@
+/**
+ * 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.mariadb.v2018_06_01.implementation;
+
+import retrofit2.Retrofit;
+import com.google.common.reflect.TypeToken;
+import com.microsoft.azure.CloudException;
+import com.microsoft.rest.ServiceCallback;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import com.microsoft.rest.Validator;
+import java.io.IOException;
+import java.util.List;
+import okhttp3.ResponseBody;
+import retrofit2.http.Body;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.Path;
+import retrofit2.http.PUT;
+import retrofit2.http.Query;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in Configurations.
+ */
+public class ConfigurationsInner {
+ /** The Retrofit service to perform REST calls. */
+ private ConfigurationsService service;
+ /** The service client containing this operation class. */
+ private MariaDBManagementClientImpl client;
+
+ /**
+ * Initializes an instance of ConfigurationsInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public ConfigurationsInner(Retrofit retrofit, MariaDBManagementClientImpl client) {
+ this.service = retrofit.create(ConfigurationsService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for Configurations to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface ConfigurationsService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.mariadb.v2018_06_01.Configurations createOrUpdate" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMariaDB/servers/{serverName}/configurations/{configurationName}")
+ Observable> createOrUpdate(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("serverName") String serverName, @Path("configurationName") String configurationName, @Query("api-version") String apiVersion, @Body ConfigurationInner parameters, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.mariadb.v2018_06_01.Configurations beginCreateOrUpdate" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMariaDB/servers/{serverName}/configurations/{configurationName}")
+ Observable> beginCreateOrUpdate(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("serverName") String serverName, @Path("configurationName") String configurationName, @Query("api-version") String apiVersion, @Body ConfigurationInner parameters, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.mariadb.v2018_06_01.Configurations get" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMariaDB/servers/{serverName}/configurations/{configurationName}")
+ Observable> get(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("serverName") String serverName, @Path("configurationName") String configurationName, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.mariadb.v2018_06_01.Configurations listByServer" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMariaDB/servers/{serverName}/configurations")
+ Observable> listByServer(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("serverName") String serverName, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * Updates a configuration of 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.
+ * @param configurationName The name of the server configuration.
+ * @param parameters The required parameters for updating a server configuration.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the ConfigurationInner object if successful.
+ */
+ public ConfigurationInner createOrUpdate(String resourceGroupName, String serverName, String configurationName, ConfigurationInner parameters) {
+ return createOrUpdateWithServiceResponseAsync(resourceGroupName, serverName, configurationName, parameters).toBlocking().last().body();
+ }
+
+ /**
+ * Updates a configuration of 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.
+ * @param configurationName The name of the server configuration.
+ * @param parameters The required parameters for updating a server configuration.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture createOrUpdateAsync(String resourceGroupName, String serverName, String configurationName, ConfigurationInner parameters, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(createOrUpdateWithServiceResponseAsync(resourceGroupName, serverName, configurationName, parameters), serviceCallback);
+ }
+
+ /**
+ * Updates a configuration of 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.
+ * @param configurationName The name of the server configuration.
+ * @param parameters The required parameters for updating a server configuration.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ public Observable createOrUpdateAsync(String resourceGroupName, String serverName, String configurationName, ConfigurationInner parameters) {
+ return createOrUpdateWithServiceResponseAsync(resourceGroupName, serverName, configurationName, parameters).map(new Func1, ConfigurationInner>() {
+ @Override
+ public ConfigurationInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Updates a configuration of 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.
+ * @param configurationName The name of the server configuration.
+ * @param parameters The required parameters for updating a server configuration.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ public Observable> createOrUpdateWithServiceResponseAsync(String resourceGroupName, String serverName, String configurationName, ConfigurationInner parameters) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (serverName == null) {
+ throw new IllegalArgumentException("Parameter serverName is required and cannot be null.");
+ }
+ if (configurationName == null) {
+ throw new IllegalArgumentException("Parameter configurationName is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ if (parameters == null) {
+ throw new IllegalArgumentException("Parameter parameters is required and cannot be null.");
+ }
+ Validator.validate(parameters);
+ Observable> observable = service.createOrUpdate(this.client.subscriptionId(), resourceGroupName, serverName, configurationName, this.client.apiVersion(), parameters, this.client.acceptLanguage(), this.client.userAgent());
+ return client.getAzureClient().getPutOrPatchResultAsync(observable, new TypeToken() { }.getType());
+ }
+
+ /**
+ * Updates a configuration of 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.
+ * @param configurationName The name of the server configuration.
+ * @param parameters The required parameters for updating a server configuration.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the ConfigurationInner object if successful.
+ */
+ public ConfigurationInner beginCreateOrUpdate(String resourceGroupName, String serverName, String configurationName, ConfigurationInner parameters) {
+ return beginCreateOrUpdateWithServiceResponseAsync(resourceGroupName, serverName, configurationName, parameters).toBlocking().single().body();
+ }
+
+ /**
+ * Updates a configuration of 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.
+ * @param configurationName The name of the server configuration.
+ * @param parameters The required parameters for updating a server configuration.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture beginCreateOrUpdateAsync(String resourceGroupName, String serverName, String configurationName, ConfigurationInner parameters, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(beginCreateOrUpdateWithServiceResponseAsync(resourceGroupName, serverName, configurationName, parameters), serviceCallback);
+ }
+
+ /**
+ * Updates a configuration of 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.
+ * @param configurationName The name of the server configuration.
+ * @param parameters The required parameters for updating a server configuration.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ConfigurationInner object
+ */
+ public Observable beginCreateOrUpdateAsync(String resourceGroupName, String serverName, String configurationName, ConfigurationInner parameters) {
+ return beginCreateOrUpdateWithServiceResponseAsync(resourceGroupName, serverName, configurationName, parameters).map(new Func1, ConfigurationInner>() {
+ @Override
+ public ConfigurationInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Updates a configuration of 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.
+ * @param configurationName The name of the server configuration.
+ * @param parameters The required parameters for updating a server configuration.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ConfigurationInner object
+ */
+ public Observable> beginCreateOrUpdateWithServiceResponseAsync(String resourceGroupName, String serverName, String configurationName, ConfigurationInner parameters) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (serverName == null) {
+ throw new IllegalArgumentException("Parameter serverName is required and cannot be null.");
+ }
+ if (configurationName == null) {
+ throw new IllegalArgumentException("Parameter configurationName is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ if (parameters == null) {
+ throw new IllegalArgumentException("Parameter parameters is required and cannot be null.");
+ }
+ Validator.validate(parameters);
+ return service.beginCreateOrUpdate(this.client.subscriptionId(), resourceGroupName, serverName, configurationName, this.client.apiVersion(), parameters, this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = beginCreateOrUpdateDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse beginCreateOrUpdateDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .register(202, new TypeToken() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * Gets information about a configuration of 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 configurationName The name of the server configuration.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the ConfigurationInner object if successful.
+ */
+ public ConfigurationInner get(String resourceGroupName, String serverName, String configurationName) {
+ return getWithServiceResponseAsync(resourceGroupName, serverName, configurationName).toBlocking().single().body();
+ }
+
+ /**
+ * Gets information about a configuration of 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 configurationName The name of the server configuration.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture getAsync(String resourceGroupName, String serverName, String configurationName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(getWithServiceResponseAsync(resourceGroupName, serverName, configurationName), serviceCallback);
+ }
+
+ /**
+ * Gets information about a configuration of 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 configurationName The name of the server configuration.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ConfigurationInner object
+ */
+ public Observable getAsync(String resourceGroupName, String serverName, String configurationName) {
+ return getWithServiceResponseAsync(resourceGroupName, serverName, configurationName).map(new Func1, ConfigurationInner>() {
+ @Override
+ public ConfigurationInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Gets information about a configuration of 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 configurationName The name of the server configuration.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the ConfigurationInner object
+ */
+ public Observable> getWithServiceResponseAsync(String resourceGroupName, String serverName, String configurationName) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (serverName == null) {
+ throw new IllegalArgumentException("Parameter serverName is required and cannot be null.");
+ }
+ if (configurationName == null) {
+ throw new IllegalArgumentException("Parameter configurationName is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.get(this.client.subscriptionId(), resourceGroupName, serverName, configurationName, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = getDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse getDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * List all the configurations in a given 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
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the List<ConfigurationInner> object if successful.
+ */
+ public List listByServer(String resourceGroupName, String serverName) {
+ return listByServerWithServiceResponseAsync(resourceGroupName, serverName).toBlocking().single().body();
+ }
+
+ /**
+ * List all the configurations in a given 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 serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture> listByServerAsync(String resourceGroupName, String serverName, final ServiceCallback> serviceCallback) {
+ return ServiceFuture.fromResponse(listByServerWithServiceResponseAsync(resourceGroupName, serverName), serviceCallback);
+ }
+
+ /**
+ * List all the configurations in a given 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 to the List<ConfigurationInner> object
+ */
+ public Observable> listByServerAsync(String resourceGroupName, String serverName) {
+ return listByServerWithServiceResponseAsync(resourceGroupName, serverName).map(new Func1>, List>() {
+ @Override
+ public List call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * List all the configurations in a given 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 to the List<ConfigurationInner> object
+ */
+ public Observable>> listByServerWithServiceResponseAsync(String resourceGroupName, String serverName) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (serverName == null) {
+ throw new IllegalArgumentException("Parameter serverName is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.listByServer(this.client.subscriptionId(), resourceGroupName, serverName, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listByServerDelegate(response);
+ List items = null;
+ if (result.body() != null) {
+ items = result.body().items();
+ }
+ ServiceResponse> clientResponse = new ServiceResponse>(items, result.response());
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse> listByServerDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory()., CloudException>newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken>() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/DBforMariaDBManager.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/DBforMariaDBManager.java
new file mode 100644
index 0000000000000..8701b535b4fb0
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/DBforMariaDBManager.java
@@ -0,0 +1,219 @@
+/**
+ * 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.mariadb.v2018_06_01.implementation;
+
+import com.microsoft.azure.AzureEnvironment;
+import com.microsoft.azure.AzureResponseBuilder;
+import com.microsoft.azure.credentials.AzureTokenCredentials;
+import com.microsoft.azure.management.apigeneration.Beta;
+import com.microsoft.azure.management.apigeneration.Beta.SinceVersion;
+import com.microsoft.azure.arm.resources.AzureConfigurable;
+import com.microsoft.azure.serializer.AzureJacksonAdapter;
+import com.microsoft.rest.RestClient;
+import com.microsoft.azure.management.mariadb.v2018_06_01.Servers;
+import com.microsoft.azure.management.mariadb.v2018_06_01.Replicas;
+import com.microsoft.azure.management.mariadb.v2018_06_01.FirewallRules;
+import com.microsoft.azure.management.mariadb.v2018_06_01.VirtualNetworkRules;
+import com.microsoft.azure.management.mariadb.v2018_06_01.Databases;
+import com.microsoft.azure.management.mariadb.v2018_06_01.Configurations;
+import com.microsoft.azure.management.mariadb.v2018_06_01.LogFiles;
+import com.microsoft.azure.management.mariadb.v2018_06_01.LocationBasedPerformanceTiers;
+import com.microsoft.azure.management.mariadb.v2018_06_01.CheckNameAvailabilitys;
+import com.microsoft.azure.management.mariadb.v2018_06_01.ServerSecurityAlertPolicies;
+import com.microsoft.azure.management.mariadb.v2018_06_01.Operations;
+import com.microsoft.azure.arm.resources.implementation.AzureConfigurableCoreImpl;
+import com.microsoft.azure.arm.resources.implementation.ManagerCore;
+
+/**
+ * Entry point to Azure DBforMariaDB resource management.
+ */
+public final class DBforMariaDBManager extends ManagerCore {
+ private Servers servers;
+ private Replicas replicas;
+ private FirewallRules firewallRules;
+ private VirtualNetworkRules virtualNetworkRules;
+ private Databases databases;
+ private Configurations configurations;
+ private LogFiles logFiles;
+ private LocationBasedPerformanceTiers locationBasedPerformanceTiers;
+ private CheckNameAvailabilitys checkNameAvailabilitys;
+ private ServerSecurityAlertPolicies serverSecurityAlertPolicies;
+ private Operations operations;
+ /**
+ * Get a Configurable instance that can be used to create DBforMariaDBManager with optional configuration.
+ *
+ * @return the instance allowing configurations
+ */
+ public static Configurable configure() {
+ return new DBforMariaDBManager.ConfigurableImpl();
+ }
+ /**
+ * Creates an instance of DBforMariaDBManager that exposes DBforMariaDB resource management API entry points.
+ *
+ * @param credentials the credentials to use
+ * @param subscriptionId the subscription UUID
+ * @return the DBforMariaDBManager
+ */
+ public static DBforMariaDBManager authenticate(AzureTokenCredentials credentials, String subscriptionId) {
+ return new DBforMariaDBManager(new RestClient.Builder()
+ .withBaseUrl(credentials.environment(), AzureEnvironment.Endpoint.RESOURCE_MANAGER)
+ .withCredentials(credentials)
+ .withSerializerAdapter(new AzureJacksonAdapter())
+ .withResponseBuilderFactory(new AzureResponseBuilder.Factory())
+ .build(), subscriptionId);
+ }
+ /**
+ * Creates an instance of DBforMariaDBManager that exposes DBforMariaDB resource management API entry points.
+ *
+ * @param restClient the RestClient to be used for API calls.
+ * @param subscriptionId the subscription UUID
+ * @return the DBforMariaDBManager
+ */
+ public static DBforMariaDBManager authenticate(RestClient restClient, String subscriptionId) {
+ return new DBforMariaDBManager(restClient, subscriptionId);
+ }
+ /**
+ * The interface allowing configurations to be set.
+ */
+ public interface Configurable extends AzureConfigurable {
+ /**
+ * Creates an instance of DBforMariaDBManager that exposes DBforMariaDB management API entry points.
+ *
+ * @param credentials the credentials to use
+ * @param subscriptionId the subscription UUID
+ * @return the interface exposing DBforMariaDB management API entry points that work across subscriptions
+ */
+ DBforMariaDBManager authenticate(AzureTokenCredentials credentials, String subscriptionId);
+ }
+
+ /**
+ * @return Entry point to manage Servers.
+ */
+ public Servers servers() {
+ if (this.servers == null) {
+ this.servers = new ServersImpl(this);
+ }
+ return this.servers;
+ }
+
+ /**
+ * @return Entry point to manage Replicas.
+ */
+ public Replicas replicas() {
+ if (this.replicas == null) {
+ this.replicas = new ReplicasImpl(this);
+ }
+ return this.replicas;
+ }
+
+ /**
+ * @return Entry point to manage FirewallRules.
+ */
+ public FirewallRules firewallRules() {
+ if (this.firewallRules == null) {
+ this.firewallRules = new FirewallRulesImpl(this);
+ }
+ return this.firewallRules;
+ }
+
+ /**
+ * @return Entry point to manage VirtualNetworkRules.
+ */
+ public VirtualNetworkRules virtualNetworkRules() {
+ if (this.virtualNetworkRules == null) {
+ this.virtualNetworkRules = new VirtualNetworkRulesImpl(this);
+ }
+ return this.virtualNetworkRules;
+ }
+
+ /**
+ * @return Entry point to manage Databases.
+ */
+ public Databases databases() {
+ if (this.databases == null) {
+ this.databases = new DatabasesImpl(this);
+ }
+ return this.databases;
+ }
+
+ /**
+ * @return Entry point to manage Configurations.
+ */
+ public Configurations configurations() {
+ if (this.configurations == null) {
+ this.configurations = new ConfigurationsImpl(this);
+ }
+ return this.configurations;
+ }
+
+ /**
+ * @return Entry point to manage LogFiles.
+ */
+ public LogFiles logFiles() {
+ if (this.logFiles == null) {
+ this.logFiles = new LogFilesImpl(this);
+ }
+ return this.logFiles;
+ }
+
+ /**
+ * @return Entry point to manage LocationBasedPerformanceTiers.
+ */
+ public LocationBasedPerformanceTiers locationBasedPerformanceTiers() {
+ if (this.locationBasedPerformanceTiers == null) {
+ this.locationBasedPerformanceTiers = new LocationBasedPerformanceTiersImpl(this);
+ }
+ return this.locationBasedPerformanceTiers;
+ }
+
+ /**
+ * @return Entry point to manage CheckNameAvailabilitys.
+ */
+ public CheckNameAvailabilitys checkNameAvailabilitys() {
+ if (this.checkNameAvailabilitys == null) {
+ this.checkNameAvailabilitys = new CheckNameAvailabilitysImpl(this);
+ }
+ return this.checkNameAvailabilitys;
+ }
+
+ /**
+ * @return Entry point to manage ServerSecurityAlertPolicies.
+ */
+ public ServerSecurityAlertPolicies serverSecurityAlertPolicies() {
+ if (this.serverSecurityAlertPolicies == null) {
+ this.serverSecurityAlertPolicies = new ServerSecurityAlertPoliciesImpl(this);
+ }
+ return this.serverSecurityAlertPolicies;
+ }
+
+ /**
+ * @return Entry point to manage Operations.
+ */
+ public Operations operations() {
+ if (this.operations == null) {
+ this.operations = new OperationsImpl(this);
+ }
+ return this.operations;
+ }
+
+ /**
+ * The implementation for Configurable interface.
+ */
+ private static final class ConfigurableImpl extends AzureConfigurableCoreImpl implements Configurable {
+ public DBforMariaDBManager authenticate(AzureTokenCredentials credentials, String subscriptionId) {
+ return DBforMariaDBManager.authenticate(buildRestClient(credentials), subscriptionId);
+ }
+ }
+ private DBforMariaDBManager(RestClient restClient, String subscriptionId) {
+ super(
+ restClient,
+ subscriptionId,
+ new MariaDBManagementClientImpl(restClient).withSubscriptionId(subscriptionId));
+ }
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/DatabaseImpl.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/DatabaseImpl.java
new file mode 100644
index 0000000000000..1dbee668afa84
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/DatabaseImpl.java
@@ -0,0 +1,116 @@
+/**
+ * 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.mariadb.v2018_06_01.implementation;
+
+import com.microsoft.azure.management.mariadb.v2018_06_01.Database;
+import com.microsoft.azure.arm.model.implementation.CreatableUpdatableImpl;
+import rx.Observable;
+
+class DatabaseImpl extends CreatableUpdatableImpl implements Database, Database.Definition, Database.Update {
+ private final DBforMariaDBManager manager;
+ private String resourceGroupName;
+ private String serverName;
+ private String databaseName;
+
+ DatabaseImpl(String name, DBforMariaDBManager manager) {
+ super(name, new DatabaseInner());
+ this.manager = manager;
+ // Set resource name
+ this.databaseName = name;
+ //
+ }
+
+ DatabaseImpl(DatabaseInner inner, DBforMariaDBManager manager) {
+ super(inner.name(), inner);
+ this.manager = manager;
+ // Set resource name
+ this.databaseName = inner.name();
+ // resource ancestor names
+ this.resourceGroupName = IdParsingUtils.getValueFromIdByName(inner.id(), "resourceGroups");
+ this.serverName = IdParsingUtils.getValueFromIdByName(inner.id(), "servers");
+ this.databaseName = IdParsingUtils.getValueFromIdByName(inner.id(), "databases");
+ //
+ }
+
+ @Override
+ public DBforMariaDBManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public Observable createResourceAsync() {
+ DatabasesInner client = this.manager().inner().databases();
+ return client.createOrUpdateAsync(this.resourceGroupName, this.serverName, this.databaseName, this.inner())
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ public Observable updateResourceAsync() {
+ DatabasesInner client = this.manager().inner().databases();
+ return client.createOrUpdateAsync(this.resourceGroupName, this.serverName, this.databaseName, this.inner())
+ .map(innerToFluentMap(this));
+ }
+
+ @Override
+ protected Observable getInnerAsync() {
+ DatabasesInner client = this.manager().inner().databases();
+ return client.getAsync(this.resourceGroupName, this.serverName, this.databaseName);
+ }
+
+ @Override
+ public boolean isInCreateMode() {
+ return this.inner().id() == null;
+ }
+
+
+ @Override
+ public String charset() {
+ return this.inner().charset();
+ }
+
+ @Override
+ public String collation() {
+ return this.inner().collation();
+ }
+
+ @Override
+ public String id() {
+ return this.inner().id();
+ }
+
+ @Override
+ public String name() {
+ return this.inner().name();
+ }
+
+ @Override
+ public String type() {
+ return this.inner().type();
+ }
+
+ @Override
+ public DatabaseImpl withExistingServer(String resourceGroupName, String serverName) {
+ this.resourceGroupName = resourceGroupName;
+ this.serverName = serverName;
+ return this;
+ }
+
+ @Override
+ public DatabaseImpl withCharset(String charset) {
+ this.inner().withCharset(charset);
+ return this;
+ }
+
+ @Override
+ public DatabaseImpl withCollation(String collation) {
+ this.inner().withCollation(collation);
+ return this;
+ }
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/DatabaseInner.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/DatabaseInner.java
new file mode 100644
index 0000000000000..5371750d9f69f
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/DatabaseInner.java
@@ -0,0 +1,72 @@
+/**
+ * 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.mariadb.v2018_06_01.implementation;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * Represents a Database.
+ */
+@JsonFlatten
+public class DatabaseInner extends ProxyResource {
+ /**
+ * The charset of the database.
+ */
+ @JsonProperty(value = "properties.charset")
+ private String charset;
+
+ /**
+ * The collation of the database.
+ */
+ @JsonProperty(value = "properties.collation")
+ private String collation;
+
+ /**
+ * Get the charset of the database.
+ *
+ * @return the charset value
+ */
+ public String charset() {
+ return this.charset;
+ }
+
+ /**
+ * Set the charset of the database.
+ *
+ * @param charset the charset value to set
+ * @return the DatabaseInner object itself.
+ */
+ public DatabaseInner withCharset(String charset) {
+ this.charset = charset;
+ return this;
+ }
+
+ /**
+ * Get the collation of the database.
+ *
+ * @return the collation value
+ */
+ public String collation() {
+ return this.collation;
+ }
+
+ /**
+ * Set the collation of the database.
+ *
+ * @param collation the collation value to set
+ * @return the DatabaseInner object itself.
+ */
+ public DatabaseInner withCollation(String collation) {
+ this.collation = collation;
+ return this;
+ }
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/DatabasesImpl.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/DatabasesImpl.java
new file mode 100644
index 0000000000000..4385c8fb1c260
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/DatabasesImpl.java
@@ -0,0 +1,81 @@
+/**
+ * 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.mariadb.v2018_06_01.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.mariadb.v2018_06_01.Databases;
+import rx.Completable;
+import rx.Observable;
+import rx.functions.Func1;
+import java.util.List;
+import com.microsoft.azure.management.mariadb.v2018_06_01.Database;
+
+class DatabasesImpl extends WrapperImpl implements Databases {
+ private final DBforMariaDBManager manager;
+
+ DatabasesImpl(DBforMariaDBManager manager) {
+ super(manager.inner().databases());
+ this.manager = manager;
+ }
+
+ public DBforMariaDBManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public DatabaseImpl define(String name) {
+ return wrapModel(name);
+ }
+
+ private DatabaseImpl wrapModel(DatabaseInner inner) {
+ return new DatabaseImpl(inner, manager());
+ }
+
+ private DatabaseImpl wrapModel(String name) {
+ return new DatabaseImpl(name, this.manager());
+ }
+
+ @Override
+ public Observable listByServerAsync(String resourceGroupName, String serverName) {
+ DatabasesInner client = this.inner();
+ return client.listByServerAsync(resourceGroupName, serverName)
+ .flatMap(new Func1, Observable>() {
+ @Override
+ public Observable call(List innerList) {
+ return Observable.from(innerList);
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public Database call(DatabaseInner inner) {
+ return wrapModel(inner);
+ }
+ });
+ }
+
+ @Override
+ public Observable getAsync(String resourceGroupName, String serverName, String databaseName) {
+ DatabasesInner client = this.inner();
+ return client.getAsync(resourceGroupName, serverName, databaseName)
+ .map(new Func1() {
+ @Override
+ public Database call(DatabaseInner inner) {
+ return wrapModel(inner);
+ }
+ });
+ }
+
+ @Override
+ public Completable deleteAsync(String resourceGroupName, String serverName, String databaseName) {
+ DatabasesInner client = this.inner();
+ return client.deleteAsync(resourceGroupName, serverName, databaseName).toCompletable();
+ }
+
+}
diff --git a/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/DatabasesInner.java b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/DatabasesInner.java
new file mode 100644
index 0000000000000..ea418c9d00242
--- /dev/null
+++ b/mariadb/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/mariadb/v2018_06_01/implementation/DatabasesInner.java
@@ -0,0 +1,625 @@
+/**
+ * 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.mariadb.v2018_06_01.implementation;
+
+import retrofit2.Retrofit;
+import com.google.common.reflect.TypeToken;
+import com.microsoft.azure.CloudException;
+import com.microsoft.rest.ServiceCallback;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import com.microsoft.rest.Validator;
+import java.io.IOException;
+import java.util.List;
+import okhttp3.ResponseBody;
+import retrofit2.http.Body;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.HTTP;
+import retrofit2.http.Path;
+import retrofit2.http.PUT;
+import retrofit2.http.Query;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in Databases.
+ */
+public class DatabasesInner {
+ /** The Retrofit service to perform REST calls. */
+ private DatabasesService service;
+ /** The service client containing this operation class. */
+ private MariaDBManagementClientImpl client;
+
+ /**
+ * Initializes an instance of DatabasesInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public DatabasesInner(Retrofit retrofit, MariaDBManagementClientImpl client) {
+ this.service = retrofit.create(DatabasesService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for Databases to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface DatabasesService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.mariadb.v2018_06_01.Databases createOrUpdate" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMariaDB/servers/{serverName}/databases/{databaseName}")
+ Observable> createOrUpdate(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("serverName") String serverName, @Path("databaseName") String databaseName, @Query("api-version") String apiVersion, @Body DatabaseInner parameters, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.mariadb.v2018_06_01.Databases beginCreateOrUpdate" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMariaDB/servers/{serverName}/databases/{databaseName}")
+ Observable> beginCreateOrUpdate(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("serverName") String serverName, @Path("databaseName") String databaseName, @Query("api-version") String apiVersion, @Body DatabaseInner parameters, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.mariadb.v2018_06_01.Databases delete" })
+ @HTTP(path = "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMariaDB/servers/{serverName}/databases/{databaseName}", method = "DELETE", hasBody = true)
+ Observable> delete(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("serverName") String serverName, @Path("databaseName") String databaseName, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.mariadb.v2018_06_01.Databases beginDelete" })
+ @HTTP(path = "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMariaDB/servers/{serverName}/databases/{databaseName}", method = "DELETE", hasBody = true)
+ Observable> beginDelete(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("serverName") String serverName, @Path("databaseName") String databaseName, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.mariadb.v2018_06_01.Databases get" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMariaDB/servers/{serverName}/databases/{databaseName}")
+ Observable> get(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("serverName") String serverName, @Path("databaseName") String databaseName, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.mariadb.v2018_06_01.Databases listByServer" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMariaDB/servers/{serverName}/databases")
+ Observable> listByServer(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("serverName") String serverName, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * Creates a new database or updates an existing 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.
+ * @param parameters The required parameters for creating or updating a database.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the DatabaseInner object if successful.
+ */
+ public DatabaseInner createOrUpdate(String resourceGroupName, String serverName, String databaseName, DatabaseInner parameters) {
+ return createOrUpdateWithServiceResponseAsync(resourceGroupName, serverName, databaseName, parameters).toBlocking().last().body();
+ }
+
+ /**
+ * Creates a new database or updates an existing 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.
+ * @param parameters The required parameters for creating or updating a database.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture createOrUpdateAsync(String resourceGroupName, String serverName, String databaseName, DatabaseInner parameters, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(createOrUpdateWithServiceResponseAsync(resourceGroupName, serverName, databaseName, parameters), serviceCallback);
+ }
+
+ /**
+ * Creates a new database or updates an existing 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.
+ * @param parameters The required parameters for creating or updating a database.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ public Observable createOrUpdateAsync(String resourceGroupName, String serverName, String databaseName, DatabaseInner parameters) {
+ return createOrUpdateWithServiceResponseAsync(resourceGroupName, serverName, databaseName, parameters).map(new Func1, DatabaseInner>() {
+ @Override
+ public DatabaseInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Creates a new database or updates an existing 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.
+ * @param parameters The required parameters for creating or updating a database.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ public Observable> createOrUpdateWithServiceResponseAsync(String resourceGroupName, String serverName, String databaseName, DatabaseInner parameters) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (serverName == null) {
+ throw new IllegalArgumentException("Parameter serverName is required and cannot be null.");
+ }
+ if (databaseName == null) {
+ throw new IllegalArgumentException("Parameter databaseName is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ if (parameters == null) {
+ throw new IllegalArgumentException("Parameter parameters is required and cannot be null.");
+ }
+ Validator.validate(parameters);
+ Observable> observable = service.createOrUpdate(this.client.subscriptionId(), resourceGroupName, serverName, databaseName, this.client.apiVersion(), parameters, this.client.acceptLanguage(), this.client.userAgent());
+ return client.getAzureClient().getPutOrPatchResultAsync(observable, new TypeToken() { }.getType());
+ }
+
+ /**
+ * Creates a new database or updates an existing 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.
+ * @param parameters The required parameters for creating or updating a database.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the DatabaseInner object if successful.
+ */
+ public DatabaseInner beginCreateOrUpdate(String resourceGroupName, String serverName, String databaseName, DatabaseInner parameters) {
+ return beginCreateOrUpdateWithServiceResponseAsync(resourceGroupName, serverName, databaseName, parameters).toBlocking().single().body();
+ }
+
+ /**
+ * Creates a new database or updates an existing 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.
+ * @param parameters The required parameters for creating or updating a database.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture beginCreateOrUpdateAsync(String resourceGroupName, String serverName, String databaseName, DatabaseInner parameters, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(beginCreateOrUpdateWithServiceResponseAsync(resourceGroupName, serverName, databaseName, parameters), serviceCallback);
+ }
+
+ /**
+ * Creates a new database or updates an existing 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.
+ * @param parameters The required parameters for creating or updating a database.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the DatabaseInner object
+ */
+ public Observable beginCreateOrUpdateAsync(String resourceGroupName, String serverName, String databaseName, DatabaseInner parameters) {
+ return beginCreateOrUpdateWithServiceResponseAsync(resourceGroupName, serverName, databaseName, parameters).map(new Func1, DatabaseInner>() {
+ @Override
+ public DatabaseInner call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Creates a new database or updates an existing 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.
+ * @param parameters The required parameters for creating or updating a database.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the DatabaseInner object
+ */
+ public Observable> beginCreateOrUpdateWithServiceResponseAsync(String resourceGroupName, String serverName, String databaseName, DatabaseInner parameters) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (serverName == null) {
+ throw new IllegalArgumentException("Parameter serverName is required and cannot be null.");
+ }
+ if (databaseName == null) {
+ throw new IllegalArgumentException("Parameter databaseName is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ if (parameters == null) {
+ throw new IllegalArgumentException("Parameter parameters is required and cannot be null.");
+ }
+ Validator.validate(parameters);
+ return service.beginCreateOrUpdate(this.client.subscriptionId(), resourceGroupName, serverName, databaseName, this.client.apiVersion(), parameters, this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = beginCreateOrUpdateDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse beginCreateOrUpdateDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .register(201, new TypeToken() { }.getType())
+ .register(202, new TypeToken() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * 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.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ */
+ public void delete(String resourceGroupName, String serverName, String databaseName) {
+ deleteWithServiceResponseAsync(resourceGroupName, serverName, databaseName).toBlocking().last().body();
+ }
+
+ /**
+ * 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.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture