diff --git a/sdk/appservice/mgmt-v2019_08_01/pom.xml b/sdk/appservice/mgmt-v2019_08_01/pom.xml
new file mode 100644
index 0000000000000..f42231b9d4b57
--- /dev/null
+++ b/sdk/appservice/mgmt-v2019_08_01/pom.xml
@@ -0,0 +1,135 @@
+
+
+ 4.0.0
+ com.microsoft.azure.appservice.v2019_08_01
+
+ com.microsoft.azure
+ azure-arm-parent
+ 1.1.0
+ ../../../pom.management.xml
+
+ azure-mgmt-certificateregistration
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for CertificateRegistration Management
+ This package contains Microsoft CertificateRegistration Management SDK.
+ https://github.com/Azure/azure-sdk-for-java
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+ scm:git:https://github.com/Azure/azure-sdk-for-java
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ HEAD
+
+
+ UTF-8
+
+
+
+
+ microsoft
+ Microsoft
+
+
+
+
+ com.microsoft.azure
+ azure-client-runtime
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+
+
+ junit
+ junit
+ test
+
+
+ com.microsoft.azure
+ azure-client-authentication
+ test
+
+
+ com.microsoft.azure
+ azure-mgmt-resources
+ test
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+ test-jar
+ test
+
+ 1.6.5
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ true
+ true
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+
+ 1.7
+
+
+ com.microsoft.azure.management.apigeneration.LangDefinitionProcessor
+
+
+ true
+ true
+
+ true
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.8
+
+ *.implementation.*;*.utils.*;com.microsoft.schemas._2003._10.serialization;*.blob.core.search
+
+
+ /**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ */
+ ]]>
+
+
+
+
+
+
diff --git a/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AbnormalTimePeriod.java b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AbnormalTimePeriod.java
new file mode 100644
index 0000000000000..1ef693e1b7fe0
--- /dev/null
+++ b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AbnormalTimePeriod.java
@@ -0,0 +1,123 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.appservice.v2019_08_01;
+
+import org.joda.time.DateTime;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Class representing Abnormal Time Period identified in diagnosis.
+ */
+public class AbnormalTimePeriod {
+ /**
+ * Start time of the downtime.
+ */
+ @JsonProperty(value = "startTime")
+ private DateTime startTime;
+
+ /**
+ * End time of the downtime.
+ */
+ @JsonProperty(value = "endTime")
+ private DateTime endTime;
+
+ /**
+ * List of Possible Cause of downtime.
+ */
+ @JsonProperty(value = "events")
+ private List events;
+
+ /**
+ * List of proposed solutions.
+ */
+ @JsonProperty(value = "solutions")
+ private List solutions;
+
+ /**
+ * Get start time of the downtime.
+ *
+ * @return the startTime value
+ */
+ public DateTime startTime() {
+ return this.startTime;
+ }
+
+ /**
+ * Set start time of the downtime.
+ *
+ * @param startTime the startTime value to set
+ * @return the AbnormalTimePeriod object itself.
+ */
+ public AbnormalTimePeriod withStartTime(DateTime startTime) {
+ this.startTime = startTime;
+ return this;
+ }
+
+ /**
+ * Get end time of the downtime.
+ *
+ * @return the endTime value
+ */
+ public DateTime endTime() {
+ return this.endTime;
+ }
+
+ /**
+ * Set end time of the downtime.
+ *
+ * @param endTime the endTime value to set
+ * @return the AbnormalTimePeriod object itself.
+ */
+ public AbnormalTimePeriod withEndTime(DateTime endTime) {
+ this.endTime = endTime;
+ return this;
+ }
+
+ /**
+ * Get list of Possible Cause of downtime.
+ *
+ * @return the events value
+ */
+ public List events() {
+ return this.events;
+ }
+
+ /**
+ * Set list of Possible Cause of downtime.
+ *
+ * @param events the events value to set
+ * @return the AbnormalTimePeriod object itself.
+ */
+ public AbnormalTimePeriod withEvents(List events) {
+ this.events = events;
+ return this;
+ }
+
+ /**
+ * Get list of proposed solutions.
+ *
+ * @return the solutions value
+ */
+ public List solutions() {
+ return this.solutions;
+ }
+
+ /**
+ * Set list of proposed solutions.
+ *
+ * @param solutions the solutions value to set
+ * @return the AbnormalTimePeriod object itself.
+ */
+ public AbnormalTimePeriod withSolutions(List solutions) {
+ this.solutions = solutions;
+ return this;
+ }
+
+}
diff --git a/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AccessControlEntryAction.java b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AccessControlEntryAction.java
new file mode 100644
index 0000000000000..fb9bd211d47a7
--- /dev/null
+++ b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AccessControlEntryAction.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.appservice.v2019_08_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for AccessControlEntryAction.
+ */
+public enum AccessControlEntryAction {
+ /** Enum value Permit. */
+ PERMIT("Permit"),
+
+ /** Enum value Deny. */
+ DENY("Deny");
+
+ /** The actual serialized value for a AccessControlEntryAction instance. */
+ private String value;
+
+ AccessControlEntryAction(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a AccessControlEntryAction instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed AccessControlEntryAction object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static AccessControlEntryAction fromString(String value) {
+ AccessControlEntryAction[] items = AccessControlEntryAction.values();
+ for (AccessControlEntryAction item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/Address.java b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/Address.java
new file mode 100644
index 0000000000000..2e63b660b34f3
--- /dev/null
+++ b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/Address.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.appservice.v2019_08_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Address information for domain registration.
+ */
+public class Address {
+ /**
+ * First line of an Address.
+ */
+ @JsonProperty(value = "address1", required = true)
+ private String address1;
+
+ /**
+ * The second line of the Address. Optional.
+ */
+ @JsonProperty(value = "address2")
+ private String address2;
+
+ /**
+ * The city for the address.
+ */
+ @JsonProperty(value = "city", required = true)
+ private String city;
+
+ /**
+ * The country for the address.
+ */
+ @JsonProperty(value = "country", required = true)
+ private String country;
+
+ /**
+ * The postal code for the address.
+ */
+ @JsonProperty(value = "postalCode", required = true)
+ private String postalCode;
+
+ /**
+ * The state or province for the address.
+ */
+ @JsonProperty(value = "state", required = true)
+ private String state;
+
+ /**
+ * Get first line of an Address.
+ *
+ * @return the address1 value
+ */
+ public String address1() {
+ return this.address1;
+ }
+
+ /**
+ * Set first line of an Address.
+ *
+ * @param address1 the address1 value to set
+ * @return the Address object itself.
+ */
+ public Address withAddress1(String address1) {
+ this.address1 = address1;
+ return this;
+ }
+
+ /**
+ * Get the second line of the Address. Optional.
+ *
+ * @return the address2 value
+ */
+ public String address2() {
+ return this.address2;
+ }
+
+ /**
+ * Set the second line of the Address. Optional.
+ *
+ * @param address2 the address2 value to set
+ * @return the Address object itself.
+ */
+ public Address withAddress2(String address2) {
+ this.address2 = address2;
+ return this;
+ }
+
+ /**
+ * Get the city for the address.
+ *
+ * @return the city value
+ */
+ public String city() {
+ return this.city;
+ }
+
+ /**
+ * Set the city for the address.
+ *
+ * @param city the city value to set
+ * @return the Address object itself.
+ */
+ public Address withCity(String city) {
+ this.city = city;
+ return this;
+ }
+
+ /**
+ * Get the country for the address.
+ *
+ * @return the country value
+ */
+ public String country() {
+ return this.country;
+ }
+
+ /**
+ * Set the country for the address.
+ *
+ * @param country the country value to set
+ * @return the Address object itself.
+ */
+ public Address withCountry(String country) {
+ this.country = country;
+ return this;
+ }
+
+ /**
+ * Get the postal code for the address.
+ *
+ * @return the postalCode value
+ */
+ public String postalCode() {
+ return this.postalCode;
+ }
+
+ /**
+ * Set the postal code for the address.
+ *
+ * @param postalCode the postalCode value to set
+ * @return the Address object itself.
+ */
+ public Address withPostalCode(String postalCode) {
+ this.postalCode = postalCode;
+ return this;
+ }
+
+ /**
+ * Get the state or province for the address.
+ *
+ * @return the state value
+ */
+ public String state() {
+ return this.state;
+ }
+
+ /**
+ * Set the state or province for the address.
+ *
+ * @param state the state value to set
+ * @return the Address object itself.
+ */
+ public Address withState(String state) {
+ this.state = state;
+ return this;
+ }
+
+}
diff --git a/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AddressResponse.java b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AddressResponse.java
new file mode 100644
index 0000000000000..6632add7baf1e
--- /dev/null
+++ b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AddressResponse.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.appservice.v2019_08_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.appservice.v2019_08_01.implementation.CertificateRegistrationManager;
+import com.microsoft.azure.management.appservice.v2019_08_01.implementation.AddressResponseInner;
+import java.util.List;
+
+/**
+ * Type representing AddressResponse.
+ */
+public interface AddressResponse extends HasInner, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the internalIpAddress value.
+ */
+ String internalIpAddress();
+
+ /**
+ * @return the kind value.
+ */
+ String kind();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the outboundIpAddresses value.
+ */
+ List outboundIpAddresses();
+
+ /**
+ * @return the serviceIpAddress value.
+ */
+ String serviceIpAddress();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the vipMappings value.
+ */
+ List vipMappings();
+
+}
diff --git a/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AnalysisData.java b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AnalysisData.java
new file mode 100644
index 0000000000000..34adfb6537065
--- /dev/null
+++ b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AnalysisData.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.appservice.v2019_08_01;
+
+import com.microsoft.azure.management.appservice.v2019_08_01.implementation.DetectorDefinitionInner;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Class Representing Detector Evidence used for analysis.
+ */
+public class AnalysisData {
+ /**
+ * Name of the Detector.
+ */
+ @JsonProperty(value = "source")
+ private String source;
+
+ /**
+ * Detector Definition.
+ */
+ @JsonProperty(value = "detectorDefinition")
+ private DetectorDefinitionInner detectorDefinition;
+
+ /**
+ * Source Metrics.
+ */
+ @JsonProperty(value = "metrics")
+ private List metrics;
+
+ /**
+ * Additional Source Data.
+ */
+ @JsonProperty(value = "data")
+ private List> data;
+
+ /**
+ * Detector Meta Data.
+ */
+ @JsonProperty(value = "detectorMetaData")
+ private ResponseMetaData detectorMetaData;
+
+ /**
+ * Get name of the Detector.
+ *
+ * @return the source value
+ */
+ public String source() {
+ return this.source;
+ }
+
+ /**
+ * Set name of the Detector.
+ *
+ * @param source the source value to set
+ * @return the AnalysisData object itself.
+ */
+ public AnalysisData withSource(String source) {
+ this.source = source;
+ return this;
+ }
+
+ /**
+ * Get detector Definition.
+ *
+ * @return the detectorDefinition value
+ */
+ public DetectorDefinitionInner detectorDefinition() {
+ return this.detectorDefinition;
+ }
+
+ /**
+ * Set detector Definition.
+ *
+ * @param detectorDefinition the detectorDefinition value to set
+ * @return the AnalysisData object itself.
+ */
+ public AnalysisData withDetectorDefinition(DetectorDefinitionInner detectorDefinition) {
+ this.detectorDefinition = detectorDefinition;
+ return this;
+ }
+
+ /**
+ * Get source Metrics.
+ *
+ * @return the metrics value
+ */
+ public List metrics() {
+ return this.metrics;
+ }
+
+ /**
+ * Set source Metrics.
+ *
+ * @param metrics the metrics value to set
+ * @return the AnalysisData object itself.
+ */
+ public AnalysisData withMetrics(List metrics) {
+ this.metrics = metrics;
+ return this;
+ }
+
+ /**
+ * Get additional Source Data.
+ *
+ * @return the data value
+ */
+ public List> data() {
+ return this.data;
+ }
+
+ /**
+ * Set additional Source Data.
+ *
+ * @param data the data value to set
+ * @return the AnalysisData object itself.
+ */
+ public AnalysisData withData(List> data) {
+ this.data = data;
+ return this;
+ }
+
+ /**
+ * Get detector Meta Data.
+ *
+ * @return the detectorMetaData value
+ */
+ public ResponseMetaData detectorMetaData() {
+ return this.detectorMetaData;
+ }
+
+ /**
+ * Set detector Meta Data.
+ *
+ * @param detectorMetaData the detectorMetaData value to set
+ * @return the AnalysisData object itself.
+ */
+ public AnalysisData withDetectorMetaData(ResponseMetaData detectorMetaData) {
+ this.detectorMetaData = detectorMetaData;
+ return this;
+ }
+
+}
diff --git a/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AnalysisDefinition.java b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AnalysisDefinition.java
new file mode 100644
index 0000000000000..fc95e28031e98
--- /dev/null
+++ b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AnalysisDefinition.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.appservice.v2019_08_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.appservice.v2019_08_01.implementation.AnalysisDefinitionInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.appservice.v2019_08_01.implementation.CertificateRegistrationManager;
+
+/**
+ * Type representing AnalysisDefinition.
+ */
+public interface AnalysisDefinition extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the description value.
+ */
+ String description();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the kind value.
+ */
+ String kind();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/ApiDefinitionInfo.java b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/ApiDefinitionInfo.java
new file mode 100644
index 0000000000000..2d00f1576df82
--- /dev/null
+++ b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/ApiDefinitionInfo.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.appservice.v2019_08_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Information about the formal API definition for the app.
+ */
+public class ApiDefinitionInfo {
+ /**
+ * The URL of the API definition.
+ */
+ @JsonProperty(value = "url")
+ private String url;
+
+ /**
+ * Get the URL of the API definition.
+ *
+ * @return the url value
+ */
+ public String url() {
+ return this.url;
+ }
+
+ /**
+ * Set the URL of the API definition.
+ *
+ * @param url the url value to set
+ * @return the ApiDefinitionInfo object itself.
+ */
+ public ApiDefinitionInfo withUrl(String url) {
+ this.url = url;
+ return this;
+ }
+
+}
diff --git a/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/ApiKVReference.java b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/ApiKVReference.java
new file mode 100644
index 0000000000000..8fea01ac298cf
--- /dev/null
+++ b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/ApiKVReference.java
@@ -0,0 +1,254 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.appservice.v2019_08_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Description of site key vault references.
+ */
+public class ApiKVReference {
+ /**
+ * The reference property.
+ */
+ @JsonProperty(value = "reference")
+ private String reference;
+
+ /**
+ * Possible values include: 'Initialized', 'Resolved', 'InvalidSyntax',
+ * 'MSINotEnabled', 'VaultNotFound', 'SecretNotFound',
+ * 'SecretVersionNotFound', 'AccessToKeyVaultDenied', 'OtherReasons'.
+ */
+ @JsonProperty(value = "status")
+ private ResolveStatus status;
+
+ /**
+ * The vaultName property.
+ */
+ @JsonProperty(value = "vaultName")
+ private String vaultName;
+
+ /**
+ * The secretName property.
+ */
+ @JsonProperty(value = "secretName")
+ private String secretName;
+
+ /**
+ * The secretVersion property.
+ */
+ @JsonProperty(value = "secretVersion")
+ private String secretVersion;
+
+ /**
+ * Possible values include: 'SystemAssigned', 'UserAssigned',
+ * 'SystemAssigned, UserAssigned', 'None'.
+ */
+ @JsonProperty(value = "identityType")
+ private ManagedServiceIdentityType identityType;
+
+ /**
+ * The details property.
+ */
+ @JsonProperty(value = "details")
+ private String details;
+
+ /**
+ * Possible values include: 'KeyVault'.
+ */
+ @JsonProperty(value = "source")
+ private ConfigReferenceSource source;
+
+ /**
+ * Possible values include: 'ApplicationSetting'.
+ */
+ @JsonProperty(value = "location")
+ private ConfigReferenceLocation location;
+
+ /**
+ * Get the reference value.
+ *
+ * @return the reference value
+ */
+ public String reference() {
+ return this.reference;
+ }
+
+ /**
+ * Set the reference value.
+ *
+ * @param reference the reference value to set
+ * @return the ApiKVReference object itself.
+ */
+ public ApiKVReference withReference(String reference) {
+ this.reference = reference;
+ return this;
+ }
+
+ /**
+ * Get possible values include: 'Initialized', 'Resolved', 'InvalidSyntax', 'MSINotEnabled', 'VaultNotFound', 'SecretNotFound', 'SecretVersionNotFound', 'AccessToKeyVaultDenied', 'OtherReasons'.
+ *
+ * @return the status value
+ */
+ public ResolveStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Set possible values include: 'Initialized', 'Resolved', 'InvalidSyntax', 'MSINotEnabled', 'VaultNotFound', 'SecretNotFound', 'SecretVersionNotFound', 'AccessToKeyVaultDenied', 'OtherReasons'.
+ *
+ * @param status the status value to set
+ * @return the ApiKVReference object itself.
+ */
+ public ApiKVReference withStatus(ResolveStatus status) {
+ this.status = status;
+ return this;
+ }
+
+ /**
+ * Get the vaultName value.
+ *
+ * @return the vaultName value
+ */
+ public String vaultName() {
+ return this.vaultName;
+ }
+
+ /**
+ * Set the vaultName value.
+ *
+ * @param vaultName the vaultName value to set
+ * @return the ApiKVReference object itself.
+ */
+ public ApiKVReference withVaultName(String vaultName) {
+ this.vaultName = vaultName;
+ return this;
+ }
+
+ /**
+ * Get the secretName value.
+ *
+ * @return the secretName value
+ */
+ public String secretName() {
+ return this.secretName;
+ }
+
+ /**
+ * Set the secretName value.
+ *
+ * @param secretName the secretName value to set
+ * @return the ApiKVReference object itself.
+ */
+ public ApiKVReference withSecretName(String secretName) {
+ this.secretName = secretName;
+ return this;
+ }
+
+ /**
+ * Get the secretVersion value.
+ *
+ * @return the secretVersion value
+ */
+ public String secretVersion() {
+ return this.secretVersion;
+ }
+
+ /**
+ * Set the secretVersion value.
+ *
+ * @param secretVersion the secretVersion value to set
+ * @return the ApiKVReference object itself.
+ */
+ public ApiKVReference withSecretVersion(String secretVersion) {
+ this.secretVersion = secretVersion;
+ return this;
+ }
+
+ /**
+ * Get possible values include: 'SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned', 'None'.
+ *
+ * @return the identityType value
+ */
+ public ManagedServiceIdentityType identityType() {
+ return this.identityType;
+ }
+
+ /**
+ * Set possible values include: 'SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned', 'None'.
+ *
+ * @param identityType the identityType value to set
+ * @return the ApiKVReference object itself.
+ */
+ public ApiKVReference withIdentityType(ManagedServiceIdentityType identityType) {
+ this.identityType = identityType;
+ return this;
+ }
+
+ /**
+ * Get the details value.
+ *
+ * @return the details value
+ */
+ public String details() {
+ return this.details;
+ }
+
+ /**
+ * Set the details value.
+ *
+ * @param details the details value to set
+ * @return the ApiKVReference object itself.
+ */
+ public ApiKVReference withDetails(String details) {
+ this.details = details;
+ return this;
+ }
+
+ /**
+ * Get possible values include: 'KeyVault'.
+ *
+ * @return the source value
+ */
+ public ConfigReferenceSource source() {
+ return this.source;
+ }
+
+ /**
+ * Set possible values include: 'KeyVault'.
+ *
+ * @param source the source value to set
+ * @return the ApiKVReference object itself.
+ */
+ public ApiKVReference withSource(ConfigReferenceSource source) {
+ this.source = source;
+ return this;
+ }
+
+ /**
+ * Get possible values include: 'ApplicationSetting'.
+ *
+ * @return the location value
+ */
+ public ConfigReferenceLocation location() {
+ return this.location;
+ }
+
+ /**
+ * Set possible values include: 'ApplicationSetting'.
+ *
+ * @param location the location value to set
+ * @return the ApiKVReference object itself.
+ */
+ public ApiKVReference withLocation(ConfigReferenceLocation location) {
+ this.location = location;
+ return this;
+ }
+
+}
diff --git a/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/ApiManagementConfig.java b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/ApiManagementConfig.java
new file mode 100644
index 0000000000000..9cd66c77ad4d4
--- /dev/null
+++ b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/ApiManagementConfig.java
@@ -0,0 +1,43 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.appservice.v2019_08_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Azure API management (APIM) configuration linked to the app.
+ */
+public class ApiManagementConfig {
+ /**
+ * APIM-Api Identifier.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /**
+ * Get aPIM-Api Identifier.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set aPIM-Api Identifier.
+ *
+ * @param id the id value to set
+ * @return the ApiManagementConfig object itself.
+ */
+ public ApiManagementConfig withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+}
diff --git a/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceCertificate.java b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceCertificate.java
new file mode 100644
index 0000000000000..f257ef545606d
--- /dev/null
+++ b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceCertificate.java
@@ -0,0 +1,89 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.appservice.v2019_08_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Key Vault container for a certificate that is purchased through Azure.
+ */
+public class AppServiceCertificate {
+ /**
+ * Key Vault resource Id.
+ */
+ @JsonProperty(value = "keyVaultId")
+ private String keyVaultId;
+
+ /**
+ * Key Vault secret name.
+ */
+ @JsonProperty(value = "keyVaultSecretName")
+ private String keyVaultSecretName;
+
+ /**
+ * Status of the Key Vault secret. Possible values include: 'Initialized',
+ * 'WaitingOnCertificateOrder', 'Succeeded', 'CertificateOrderFailed',
+ * 'OperationNotPermittedOnKeyVault',
+ * 'AzureServiceUnauthorizedToAccessKeyVault', 'KeyVaultDoesNotExist',
+ * 'KeyVaultSecretDoesNotExist', 'UnknownError', 'ExternalPrivateKey',
+ * 'Unknown'.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private KeyVaultSecretStatus provisioningState;
+
+ /**
+ * Get key Vault resource Id.
+ *
+ * @return the keyVaultId value
+ */
+ public String keyVaultId() {
+ return this.keyVaultId;
+ }
+
+ /**
+ * Set key Vault resource Id.
+ *
+ * @param keyVaultId the keyVaultId value to set
+ * @return the AppServiceCertificate object itself.
+ */
+ public AppServiceCertificate withKeyVaultId(String keyVaultId) {
+ this.keyVaultId = keyVaultId;
+ return this;
+ }
+
+ /**
+ * Get key Vault secret name.
+ *
+ * @return the keyVaultSecretName value
+ */
+ public String keyVaultSecretName() {
+ return this.keyVaultSecretName;
+ }
+
+ /**
+ * Set key Vault secret name.
+ *
+ * @param keyVaultSecretName the keyVaultSecretName value to set
+ * @return the AppServiceCertificate object itself.
+ */
+ public AppServiceCertificate withKeyVaultSecretName(String keyVaultSecretName) {
+ this.keyVaultSecretName = keyVaultSecretName;
+ return this;
+ }
+
+ /**
+ * Get status of the Key Vault secret. Possible values include: 'Initialized', 'WaitingOnCertificateOrder', 'Succeeded', 'CertificateOrderFailed', 'OperationNotPermittedOnKeyVault', 'AzureServiceUnauthorizedToAccessKeyVault', 'KeyVaultDoesNotExist', 'KeyVaultSecretDoesNotExist', 'UnknownError', 'ExternalPrivateKey', 'Unknown'.
+ *
+ * @return the provisioningState value
+ */
+ public KeyVaultSecretStatus provisioningState() {
+ return this.provisioningState;
+ }
+
+}
diff --git a/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceCertificateOrder.java b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceCertificateOrder.java
new file mode 100644
index 0000000000000..21e235c3d4be8
--- /dev/null
+++ b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceCertificateOrder.java
@@ -0,0 +1,351 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.appservice.v2019_08_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.appservice.v2019_08_01.implementation.CertificateRegistrationManager;
+import java.util.Map;
+import org.joda.time.DateTime;
+import java.util.List;
+import com.microsoft.azure.management.appservice.v2019_08_01.implementation.AppServiceCertificateOrderInner;
+
+/**
+ * Type representing AppServiceCertificateOrder.
+ */
+public interface AppServiceCertificateOrder extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the appServiceCertificateNotRenewableReasons value.
+ */
+ List appServiceCertificateNotRenewableReasons();
+
+ /**
+ * @return the autoRenew value.
+ */
+ Boolean autoRenew();
+
+ /**
+ * @return the certificates value.
+ */
+ Map certificates();
+
+ /**
+ * @return the csr value.
+ */
+ String csr();
+
+ /**
+ * @return the distinguishedName value.
+ */
+ String distinguishedName();
+
+ /**
+ * @return the domainVerificationToken value.
+ */
+ String domainVerificationToken();
+
+ /**
+ * @return the expirationTime value.
+ */
+ DateTime expirationTime();
+
+ /**
+ * @return the intermediate value.
+ */
+ CertificateDetails intermediate();
+
+ /**
+ * @return the isPrivateKeyExternal value.
+ */
+ Boolean isPrivateKeyExternal();
+
+ /**
+ * @return the keySize value.
+ */
+ Integer keySize();
+
+ /**
+ * @return the kind value.
+ */
+ String kind();
+
+ /**
+ * @return the lastCertificateIssuanceTime value.
+ */
+ DateTime lastCertificateIssuanceTime();
+
+ /**
+ * @return the nextAutoRenewalTimeStamp value.
+ */
+ DateTime nextAutoRenewalTimeStamp();
+
+ /**
+ * @return the productType value.
+ */
+ CertificateProductType productType();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ProvisioningState provisioningState();
+
+ /**
+ * @return the root value.
+ */
+ CertificateDetails root();
+
+ /**
+ * @return the serialNumber value.
+ */
+ String serialNumber();
+
+ /**
+ * @return the signedCertificate value.
+ */
+ CertificateDetails signedCertificate();
+
+ /**
+ * @return the status value.
+ */
+ CertificateOrderStatus status();
+
+ /**
+ * @return the validityInYears value.
+ */
+ Integer validityInYears();
+
+ /**
+ * The entirety of the AppServiceCertificateOrder definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithProductType, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of AppServiceCertificateOrder definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a AppServiceCertificateOrder definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the AppServiceCertificateOrder definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the appservicecertificateorder definition allowing to specify ProductType.
+ */
+ interface WithProductType {
+ /**
+ * Specifies productType.
+ * @param productType Certificate product type. Possible values include: 'StandardDomainValidatedSsl', 'StandardDomainValidatedWildCardSsl'
+ * @return the next definition stage
+*/
+ WithCreate withProductType(CertificateProductType productType);
+ }
+
+ /**
+ * The stage of the appservicecertificateorder definition allowing to specify AutoRenew.
+ */
+ interface WithAutoRenew {
+ /**
+ * Specifies autoRenew.
+ * @param autoRenew <code>true</code> if the certificate should be automatically renewed when it expires; otherwise, <code>false</code>
+ * @return the next definition stage
+ */
+ WithCreate withAutoRenew(Boolean autoRenew);
+ }
+
+ /**
+ * The stage of the appservicecertificateorder definition allowing to specify Certificates.
+ */
+ interface WithCertificates {
+ /**
+ * Specifies certificates.
+ * @param certificates State of the Key Vault secret
+ * @return the next definition stage
+ */
+ WithCreate withCertificates(Map certificates);
+ }
+
+ /**
+ * The stage of the appservicecertificateorder definition allowing to specify Csr.
+ */
+ interface WithCsr {
+ /**
+ * Specifies csr.
+ * @param csr Last CSR that was created for this order
+ * @return the next definition stage
+ */
+ WithCreate withCsr(String csr);
+ }
+
+ /**
+ * The stage of the appservicecertificateorder definition allowing to specify DistinguishedName.
+ */
+ interface WithDistinguishedName {
+ /**
+ * Specifies distinguishedName.
+ * @param distinguishedName Certificate distinguished name
+ * @return the next definition stage
+ */
+ WithCreate withDistinguishedName(String distinguishedName);
+ }
+
+ /**
+ * The stage of the appservicecertificateorder definition allowing to specify KeySize.
+ */
+ interface WithKeySize {
+ /**
+ * Specifies keySize.
+ * @param keySize Certificate key size
+ * @return the next definition stage
+ */
+ WithCreate withKeySize(Integer keySize);
+ }
+
+ /**
+ * The stage of the appservicecertificateorder definition allowing to specify Kind.
+ */
+ interface WithKind {
+ /**
+ * Specifies kind.
+ * @param kind Kind of resource
+ * @return the next definition stage
+ */
+ WithCreate withKind(String kind);
+ }
+
+ /**
+ * The stage of the appservicecertificateorder definition allowing to specify ValidityInYears.
+ */
+ interface WithValidityInYears {
+ /**
+ * Specifies validityInYears.
+ * @param validityInYears Duration in years (must be between 1 and 3)
+ * @return the next definition stage
+ */
+ WithCreate withValidityInYears(Integer validityInYears);
+ }
+
+ /**
+ * 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.WithAutoRenew, DefinitionStages.WithCertificates, DefinitionStages.WithCsr, DefinitionStages.WithDistinguishedName, DefinitionStages.WithKeySize, DefinitionStages.WithKind, DefinitionStages.WithValidityInYears {
+ }
+ }
+ /**
+ * The template for a AppServiceCertificateOrder update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithAutoRenew, UpdateStages.WithCertificates, UpdateStages.WithCsr, UpdateStages.WithDistinguishedName, UpdateStages.WithKeySize, UpdateStages.WithKind, UpdateStages.WithValidityInYears {
+ }
+
+ /**
+ * Grouping of AppServiceCertificateOrder update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the appservicecertificateorder update allowing to specify AutoRenew.
+ */
+ interface WithAutoRenew {
+ /**
+ * Specifies autoRenew.
+ * @param autoRenew <code>true</code> if the certificate should be automatically renewed when it expires; otherwise, <code>false</code>
+ * @return the next update stage
+ */
+ Update withAutoRenew(Boolean autoRenew);
+ }
+
+ /**
+ * The stage of the appservicecertificateorder update allowing to specify Certificates.
+ */
+ interface WithCertificates {
+ /**
+ * Specifies certificates.
+ * @param certificates State of the Key Vault secret
+ * @return the next update stage
+ */
+ Update withCertificates(Map certificates);
+ }
+
+ /**
+ * The stage of the appservicecertificateorder update allowing to specify Csr.
+ */
+ interface WithCsr {
+ /**
+ * Specifies csr.
+ * @param csr Last CSR that was created for this order
+ * @return the next update stage
+ */
+ Update withCsr(String csr);
+ }
+
+ /**
+ * The stage of the appservicecertificateorder update allowing to specify DistinguishedName.
+ */
+ interface WithDistinguishedName {
+ /**
+ * Specifies distinguishedName.
+ * @param distinguishedName Certificate distinguished name
+ * @return the next update stage
+ */
+ Update withDistinguishedName(String distinguishedName);
+ }
+
+ /**
+ * The stage of the appservicecertificateorder update allowing to specify KeySize.
+ */
+ interface WithKeySize {
+ /**
+ * Specifies keySize.
+ * @param keySize Certificate key size
+ * @return the next update stage
+ */
+ Update withKeySize(Integer keySize);
+ }
+
+ /**
+ * The stage of the appservicecertificateorder update allowing to specify Kind.
+ */
+ interface WithKind {
+ /**
+ * Specifies kind.
+ * @param kind Kind of resource
+ * @return the next update stage
+ */
+ Update withKind(String kind);
+ }
+
+ /**
+ * The stage of the appservicecertificateorder update allowing to specify ValidityInYears.
+ */
+ interface WithValidityInYears {
+ /**
+ * Specifies validityInYears.
+ * @param validityInYears Duration in years (must be between 1 and 3)
+ * @return the next update stage
+ */
+ Update withValidityInYears(Integer validityInYears);
+ }
+
+ }
+}
diff --git a/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceCertificateOrderPatchResource.java b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceCertificateOrderPatchResource.java
new file mode 100644
index 0000000000000..264901cfc08d5
--- /dev/null
+++ b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceCertificateOrderPatchResource.java
@@ -0,0 +1,391 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.appservice.v2019_08_01;
+
+import java.util.Map;
+import org.joda.time.DateTime;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * ARM resource for a certificate order that is purchased through Azure.
+ */
+@JsonFlatten
+public class AppServiceCertificateOrderPatchResource extends ProxyOnlyResource {
+ /**
+ * State of the Key Vault secret.
+ */
+ @JsonProperty(value = "properties.certificates")
+ private Map certificates;
+
+ /**
+ * Certificate distinguished name.
+ */
+ @JsonProperty(value = "properties.distinguishedName")
+ private String distinguishedName;
+
+ /**
+ * Domain verification token.
+ */
+ @JsonProperty(value = "properties.domainVerificationToken", access = JsonProperty.Access.WRITE_ONLY)
+ private String domainVerificationToken;
+
+ /**
+ * Duration in years (must be between 1 and 3).
+ */
+ @JsonProperty(value = "properties.validityInYears")
+ private Integer validityInYears;
+
+ /**
+ * Certificate key size.
+ */
+ @JsonProperty(value = "properties.keySize")
+ private Integer keySize;
+
+ /**
+ * Certificate product type. Possible values include:
+ * 'StandardDomainValidatedSsl', 'StandardDomainValidatedWildCardSsl'.
+ */
+ @JsonProperty(value = "properties.productType", required = true)
+ private CertificateProductType productType;
+
+ /**
+ * <code>true</code> if the certificate should be automatically
+ * renewed when it expires; otherwise, <code>false</code>.
+ */
+ @JsonProperty(value = "properties.autoRenew")
+ private Boolean autoRenew;
+
+ /**
+ * Status of certificate order. Possible values include: 'Succeeded',
+ * 'Failed', 'Canceled', 'InProgress', 'Deleting'.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /**
+ * Current order status. Possible values include: 'Pendingissuance',
+ * 'Issued', 'Revoked', 'Canceled', 'Denied', 'Pendingrevocation',
+ * 'PendingRekey', 'Unused', 'Expired', 'NotSubmitted'.
+ */
+ @JsonProperty(value = "properties.status", access = JsonProperty.Access.WRITE_ONLY)
+ private CertificateOrderStatus status;
+
+ /**
+ * Signed certificate.
+ */
+ @JsonProperty(value = "properties.signedCertificate", access = JsonProperty.Access.WRITE_ONLY)
+ private CertificateDetails signedCertificate;
+
+ /**
+ * Last CSR that was created for this order.
+ */
+ @JsonProperty(value = "properties.csr")
+ private String csr;
+
+ /**
+ * Intermediate certificate.
+ */
+ @JsonProperty(value = "properties.intermediate", access = JsonProperty.Access.WRITE_ONLY)
+ private CertificateDetails intermediate;
+
+ /**
+ * Root certificate.
+ */
+ @JsonProperty(value = "properties.root", access = JsonProperty.Access.WRITE_ONLY)
+ private CertificateDetails root;
+
+ /**
+ * Current serial number of the certificate.
+ */
+ @JsonProperty(value = "properties.serialNumber", access = JsonProperty.Access.WRITE_ONLY)
+ private String serialNumber;
+
+ /**
+ * Certificate last issuance time.
+ */
+ @JsonProperty(value = "properties.lastCertificateIssuanceTime", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime lastCertificateIssuanceTime;
+
+ /**
+ * Certificate expiration time.
+ */
+ @JsonProperty(value = "properties.expirationTime", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime expirationTime;
+
+ /**
+ * <code>true</code> if private key is external; otherwise,
+ * <code>false</code>.
+ */
+ @JsonProperty(value = "properties.isPrivateKeyExternal", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean isPrivateKeyExternal;
+
+ /**
+ * Reasons why App Service Certificate is not renewable at the current
+ * moment.
+ */
+ @JsonProperty(value = "properties.appServiceCertificateNotRenewableReasons", access = JsonProperty.Access.WRITE_ONLY)
+ private List appServiceCertificateNotRenewableReasons;
+
+ /**
+ * Time stamp when the certificate would be auto renewed next.
+ */
+ @JsonProperty(value = "properties.nextAutoRenewalTimeStamp", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime nextAutoRenewalTimeStamp;
+
+ /**
+ * Get state of the Key Vault secret.
+ *
+ * @return the certificates value
+ */
+ public Map certificates() {
+ return this.certificates;
+ }
+
+ /**
+ * Set state of the Key Vault secret.
+ *
+ * @param certificates the certificates value to set
+ * @return the AppServiceCertificateOrderPatchResource object itself.
+ */
+ public AppServiceCertificateOrderPatchResource withCertificates(Map certificates) {
+ this.certificates = certificates;
+ return this;
+ }
+
+ /**
+ * Get certificate distinguished name.
+ *
+ * @return the distinguishedName value
+ */
+ public String distinguishedName() {
+ return this.distinguishedName;
+ }
+
+ /**
+ * Set certificate distinguished name.
+ *
+ * @param distinguishedName the distinguishedName value to set
+ * @return the AppServiceCertificateOrderPatchResource object itself.
+ */
+ public AppServiceCertificateOrderPatchResource withDistinguishedName(String distinguishedName) {
+ this.distinguishedName = distinguishedName;
+ return this;
+ }
+
+ /**
+ * Get domain verification token.
+ *
+ * @return the domainVerificationToken value
+ */
+ public String domainVerificationToken() {
+ return this.domainVerificationToken;
+ }
+
+ /**
+ * Get duration in years (must be between 1 and 3).
+ *
+ * @return the validityInYears value
+ */
+ public Integer validityInYears() {
+ return this.validityInYears;
+ }
+
+ /**
+ * Set duration in years (must be between 1 and 3).
+ *
+ * @param validityInYears the validityInYears value to set
+ * @return the AppServiceCertificateOrderPatchResource object itself.
+ */
+ public AppServiceCertificateOrderPatchResource withValidityInYears(Integer validityInYears) {
+ this.validityInYears = validityInYears;
+ return this;
+ }
+
+ /**
+ * Get certificate key size.
+ *
+ * @return the keySize value
+ */
+ public Integer keySize() {
+ return this.keySize;
+ }
+
+ /**
+ * Set certificate key size.
+ *
+ * @param keySize the keySize value to set
+ * @return the AppServiceCertificateOrderPatchResource object itself.
+ */
+ public AppServiceCertificateOrderPatchResource withKeySize(Integer keySize) {
+ this.keySize = keySize;
+ return this;
+ }
+
+ /**
+ * Get certificate product type. Possible values include: 'StandardDomainValidatedSsl', 'StandardDomainValidatedWildCardSsl'.
+ *
+ * @return the productType value
+ */
+ public CertificateProductType productType() {
+ return this.productType;
+ }
+
+ /**
+ * Set certificate product type. Possible values include: 'StandardDomainValidatedSsl', 'StandardDomainValidatedWildCardSsl'.
+ *
+ * @param productType the productType value to set
+ * @return the AppServiceCertificateOrderPatchResource object itself.
+ */
+ public AppServiceCertificateOrderPatchResource withProductType(CertificateProductType productType) {
+ this.productType = productType;
+ return this;
+ }
+
+ /**
+ * Get <code>true</code> if the certificate should be automatically renewed when it expires; otherwise, <code>false</code>.
+ *
+ * @return the autoRenew value
+ */
+ public Boolean autoRenew() {
+ return this.autoRenew;
+ }
+
+ /**
+ * Set <code>true</code> if the certificate should be automatically renewed when it expires; otherwise, <code>false</code>.
+ *
+ * @param autoRenew the autoRenew value to set
+ * @return the AppServiceCertificateOrderPatchResource object itself.
+ */
+ public AppServiceCertificateOrderPatchResource withAutoRenew(Boolean autoRenew) {
+ this.autoRenew = autoRenew;
+ return this;
+ }
+
+ /**
+ * Get status of certificate order. Possible values include: 'Succeeded', 'Failed', 'Canceled', 'InProgress', 'Deleting'.
+ *
+ * @return the provisioningState value
+ */
+ public ProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get current order status. Possible values include: 'Pendingissuance', 'Issued', 'Revoked', 'Canceled', 'Denied', 'Pendingrevocation', 'PendingRekey', 'Unused', 'Expired', 'NotSubmitted'.
+ *
+ * @return the status value
+ */
+ public CertificateOrderStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Get signed certificate.
+ *
+ * @return the signedCertificate value
+ */
+ public CertificateDetails signedCertificate() {
+ return this.signedCertificate;
+ }
+
+ /**
+ * Get last CSR that was created for this order.
+ *
+ * @return the csr value
+ */
+ public String csr() {
+ return this.csr;
+ }
+
+ /**
+ * Set last CSR that was created for this order.
+ *
+ * @param csr the csr value to set
+ * @return the AppServiceCertificateOrderPatchResource object itself.
+ */
+ public AppServiceCertificateOrderPatchResource withCsr(String csr) {
+ this.csr = csr;
+ return this;
+ }
+
+ /**
+ * Get intermediate certificate.
+ *
+ * @return the intermediate value
+ */
+ public CertificateDetails intermediate() {
+ return this.intermediate;
+ }
+
+ /**
+ * Get root certificate.
+ *
+ * @return the root value
+ */
+ public CertificateDetails root() {
+ return this.root;
+ }
+
+ /**
+ * Get current serial number of the certificate.
+ *
+ * @return the serialNumber value
+ */
+ public String serialNumber() {
+ return this.serialNumber;
+ }
+
+ /**
+ * Get certificate last issuance time.
+ *
+ * @return the lastCertificateIssuanceTime value
+ */
+ public DateTime lastCertificateIssuanceTime() {
+ return this.lastCertificateIssuanceTime;
+ }
+
+ /**
+ * Get certificate expiration time.
+ *
+ * @return the expirationTime value
+ */
+ public DateTime expirationTime() {
+ return this.expirationTime;
+ }
+
+ /**
+ * Get <code>true</code> if private key is external; otherwise, <code>false</code>.
+ *
+ * @return the isPrivateKeyExternal value
+ */
+ public Boolean isPrivateKeyExternal() {
+ return this.isPrivateKeyExternal;
+ }
+
+ /**
+ * Get reasons why App Service Certificate is not renewable at the current moment.
+ *
+ * @return the appServiceCertificateNotRenewableReasons value
+ */
+ public List appServiceCertificateNotRenewableReasons() {
+ return this.appServiceCertificateNotRenewableReasons;
+ }
+
+ /**
+ * Get time stamp when the certificate would be auto renewed next.
+ *
+ * @return the nextAutoRenewalTimeStamp value
+ */
+ public DateTime nextAutoRenewalTimeStamp() {
+ return this.nextAutoRenewalTimeStamp;
+ }
+
+}
diff --git a/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceCertificateOrders.java b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceCertificateOrders.java
new file mode 100644
index 0000000000000..66d127002f4da
--- /dev/null
+++ b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceCertificateOrders.java
@@ -0,0 +1,212 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.appservice.v2019_08_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.appservice.v2019_08_01.AppServiceCertificateOrder;
+import rx.Completable;
+import com.microsoft.azure.management.appservice.v2019_08_01.implementation.AppServiceCertificateOrderInner;
+import com.microsoft.azure.management.appservice.v2019_08_01.AppServiceCertificateResource;
+
+/**
+ * Type representing AppServiceCertificateOrders.
+ */
+public interface AppServiceCertificateOrders {
+ /**
+ * Begins definition for a new CertificateOrder resource.
+ * @param name resource name.
+ * @return the first stage of the new CertificateOrder definition.
+ */
+ AppServiceCertificateOrder.DefinitionStages.Blank defineCertificateOrder(String name);
+
+ /**
+ * Begins definition for a new Certificate resource.
+ * @param name resource name.
+ * @return the first stage of the new Certificate definition.
+ */
+ AppServiceCertificateResource.DefinitionStages.Blank defineCertificate(String name);
+
+ /**
+ * Get a certificate order.
+ * Description for Get a certificate order.
+ *
+ * @param resourceGroupName resource group name
+ * @param name resource name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByResourceGroupAsync(String resourceGroupName, String name);
+
+ /**
+ * Get certificate orders in a resource group.
+ * Description for Get certificate orders in a resource group.
+ *
+ * @param resourceGroupName resource group name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByResourceGroupAsync(String resourceGroupName);
+
+ /**
+ * List all certificate orders in a subscription.
+ * Description for List all certificate orders in a subscription.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+ /**
+ * Delete an existing certificate order.
+ * Description for Delete an existing certificate order.
+ *
+ * @param resourceGroupName resource group name
+ * @param name resource name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String name);
+
+ /**
+ * Reissue an existing certificate order.
+ * Description for Reissue an existing certificate order.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param certificateOrderName Name of the certificate order.
+ * @param reissueCertificateOrderRequest Parameters for the reissue.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable reissueAsync(String resourceGroupName, String certificateOrderName, ReissueCertificateOrderRequest reissueCertificateOrderRequest);
+
+ /**
+ * Renew an existing certificate order.
+ * Description for Renew an existing certificate order.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param certificateOrderName Name of the certificate order.
+ * @param renewCertificateOrderRequest Renew parameters
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable renewAsync(String resourceGroupName, String certificateOrderName, RenewCertificateOrderRequest renewCertificateOrderRequest);
+
+ /**
+ * Resend certificate email.
+ * Description for Resend certificate email.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param certificateOrderName Name of the certificate order.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable resendEmailAsync(String resourceGroupName, String certificateOrderName);
+
+ /**
+ * Verify domain ownership for this certificate order.
+ * Description for Verify domain ownership for this certificate order.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param certificateOrderName Name of the certificate order.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable resendRequestEmailsAsync(String resourceGroupName, String certificateOrderName);
+
+ /**
+ * Verify domain ownership for this certificate order.
+ * Description for Verify domain ownership for this certificate order.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param certificateOrderName Name of the certificate order.
+ * @param siteSealRequest Site seal request.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable retrieveSiteSealAsync(String resourceGroupName, String certificateOrderName, SiteSealRequest siteSealRequest);
+
+ /**
+ * Verify domain ownership for this certificate order.
+ * Description for Verify domain ownership for this certificate order.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param certificateOrderName Name of the certificate order.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable verifyDomainOwnershipAsync(String resourceGroupName, String certificateOrderName);
+
+ /**
+ * Retrieve the list of certificate actions.
+ * Description for Retrieve the list of certificate actions.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the certificate order.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable retrieveCertificateActionsAsync(String resourceGroupName, String name);
+
+ /**
+ * Retrieve email history.
+ * Description for Retrieve email history.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the certificate order.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable retrieveCertificateEmailHistoryAsync(String resourceGroupName, String name);
+
+ /**
+ * Validate information for a certificate order.
+ * Description for Validate information for a certificate order.
+ *
+ * @param appServiceCertificateOrder Information for a certificate order.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable validatePurchaseInformationAsync(AppServiceCertificateOrderInner appServiceCertificateOrder);
+
+ /**
+ * Get the certificate associated with a certificate order.
+ * Description for Get the certificate associated with a certificate order.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param certificateOrderName Name of the certificate order.
+ * @param name Name of the certificate.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getCertificateAsync(String resourceGroupName, String certificateOrderName, String name);
+
+ /**
+ * List all certificates associated with a certificate order.
+ * Description for List all certificates associated with a certificate order.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param certificateOrderName Name of the certificate order.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listCertificatesAsync(final String resourceGroupName, final String certificateOrderName);
+
+ /**
+ * Delete the certificate associated with a certificate order.
+ * Description for Delete the certificate associated with a certificate order.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param certificateOrderName Name of the certificate order.
+ * @param name Name of the certificate.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteCertificateAsync(String resourceGroupName, String certificateOrderName, String name);
+
+}
diff --git a/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceCertificatePatchResource.java b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceCertificatePatchResource.java
new file mode 100644
index 0000000000000..39288f73c4d92
--- /dev/null
+++ b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceCertificatePatchResource.java
@@ -0,0 +1,92 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.appservice.v2019_08_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Key Vault container ARM resource for a certificate that is purchased through
+ * Azure.
+ */
+@JsonFlatten
+public class AppServiceCertificatePatchResource extends ProxyOnlyResource {
+ /**
+ * Key Vault resource Id.
+ */
+ @JsonProperty(value = "properties.keyVaultId")
+ private String keyVaultId;
+
+ /**
+ * Key Vault secret name.
+ */
+ @JsonProperty(value = "properties.keyVaultSecretName")
+ private String keyVaultSecretName;
+
+ /**
+ * Status of the Key Vault secret. Possible values include: 'Initialized',
+ * 'WaitingOnCertificateOrder', 'Succeeded', 'CertificateOrderFailed',
+ * 'OperationNotPermittedOnKeyVault',
+ * 'AzureServiceUnauthorizedToAccessKeyVault', 'KeyVaultDoesNotExist',
+ * 'KeyVaultSecretDoesNotExist', 'UnknownError', 'ExternalPrivateKey',
+ * 'Unknown'.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private KeyVaultSecretStatus provisioningState;
+
+ /**
+ * Get key Vault resource Id.
+ *
+ * @return the keyVaultId value
+ */
+ public String keyVaultId() {
+ return this.keyVaultId;
+ }
+
+ /**
+ * Set key Vault resource Id.
+ *
+ * @param keyVaultId the keyVaultId value to set
+ * @return the AppServiceCertificatePatchResource object itself.
+ */
+ public AppServiceCertificatePatchResource withKeyVaultId(String keyVaultId) {
+ this.keyVaultId = keyVaultId;
+ return this;
+ }
+
+ /**
+ * Get key Vault secret name.
+ *
+ * @return the keyVaultSecretName value
+ */
+ public String keyVaultSecretName() {
+ return this.keyVaultSecretName;
+ }
+
+ /**
+ * Set key Vault secret name.
+ *
+ * @param keyVaultSecretName the keyVaultSecretName value to set
+ * @return the AppServiceCertificatePatchResource object itself.
+ */
+ public AppServiceCertificatePatchResource withKeyVaultSecretName(String keyVaultSecretName) {
+ this.keyVaultSecretName = keyVaultSecretName;
+ return this;
+ }
+
+ /**
+ * Get status of the Key Vault secret. Possible values include: 'Initialized', 'WaitingOnCertificateOrder', 'Succeeded', 'CertificateOrderFailed', 'OperationNotPermittedOnKeyVault', 'AzureServiceUnauthorizedToAccessKeyVault', 'KeyVaultDoesNotExist', 'KeyVaultSecretDoesNotExist', 'UnknownError', 'ExternalPrivateKey', 'Unknown'.
+ *
+ * @return the provisioningState value
+ */
+ public KeyVaultSecretStatus provisioningState() {
+ return this.provisioningState;
+ }
+
+}
diff --git a/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceCertificateResource.java b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceCertificateResource.java
new file mode 100644
index 0000000000000..3440b18144175
--- /dev/null
+++ b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceCertificateResource.java
@@ -0,0 +1,215 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.appservice.v2019_08_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.appservice.v2019_08_01.implementation.AppServiceCertificateResourceInner;
+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.appservice.v2019_08_01.implementation.CertificateRegistrationManager;
+import java.util.Map;
+
+/**
+ * Type representing AppServiceCertificateResource.
+ */
+public interface AppServiceCertificateResource extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the keyVaultId value.
+ */
+ String keyVaultId();
+
+ /**
+ * @return the keyVaultSecretName value.
+ */
+ String keyVaultSecretName();
+
+ /**
+ * @return the kind value.
+ */
+ String kind();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the provisioningState value.
+ */
+ KeyVaultSecretStatus provisioningState();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the AppServiceCertificateResource definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithCertificateOrder, DefinitionStages.WithLocation, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of AppServiceCertificateResource definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a AppServiceCertificateResource definition.
+ */
+ interface Blank extends WithCertificateOrder {
+ }
+
+ /**
+ * The stage of the appservicecertificateresource definition allowing to specify CertificateOrder.
+ */
+ interface WithCertificateOrder {
+ /**
+ * Specifies resourceGroupName, certificateOrderName.
+ * @param resourceGroupName Name of the resource group to which the resource belongs
+ * @param certificateOrderName Name of the certificate order
+ * @return the next definition stage
+ */
+ WithLocation withExistingCertificateOrder(String resourceGroupName, String certificateOrderName);
+ }
+
+ /**
+ * The stage of the appservicecertificateresource definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location Resource Location
+ * @return the next definition stage
+ */
+ WithCreate withLocation(String location);
+ }
+
+ /**
+ * The stage of the appservicecertificateresource definition allowing to specify KeyVaultId.
+ */
+ interface WithKeyVaultId {
+ /**
+ * Specifies keyVaultId.
+ * @param keyVaultId Key Vault resource Id
+ * @return the next definition stage
+ */
+ WithCreate withKeyVaultId(String keyVaultId);
+ }
+
+ /**
+ * The stage of the appservicecertificateresource definition allowing to specify KeyVaultSecretName.
+ */
+ interface WithKeyVaultSecretName {
+ /**
+ * Specifies keyVaultSecretName.
+ * @param keyVaultSecretName Key Vault secret name
+ * @return the next definition stage
+ */
+ WithCreate withKeyVaultSecretName(String keyVaultSecretName);
+ }
+
+ /**
+ * The stage of the appservicecertificateresource definition allowing to specify Kind.
+ */
+ interface WithKind {
+ /**
+ * Specifies kind.
+ * @param kind Kind of resource
+ * @return the next definition stage
+ */
+ WithCreate withKind(String kind);
+ }
+
+ /**
+ * The stage of the appservicecertificateresource definition allowing to specify Tags.
+ */
+ interface WithTags {
+ /**
+ * Specifies tags.
+ * @param tags Resource tags
+ * @return the next definition stage
+ */
+ WithCreate withTags(Map tags);
+ }
+
+ /**
+ * 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.WithKeyVaultId, DefinitionStages.WithKeyVaultSecretName, DefinitionStages.WithKind, DefinitionStages.WithTags {
+ }
+ }
+ /**
+ * The template for a AppServiceCertificateResource update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithKeyVaultId, UpdateStages.WithKeyVaultSecretName, UpdateStages.WithKind {
+ }
+
+ /**
+ * Grouping of AppServiceCertificateResource update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the appservicecertificateresource update allowing to specify KeyVaultId.
+ */
+ interface WithKeyVaultId {
+ /**
+ * Specifies keyVaultId.
+ * @param keyVaultId Key Vault resource Id
+ * @return the next update stage
+ */
+ Update withKeyVaultId(String keyVaultId);
+ }
+
+ /**
+ * The stage of the appservicecertificateresource update allowing to specify KeyVaultSecretName.
+ */
+ interface WithKeyVaultSecretName {
+ /**
+ * Specifies keyVaultSecretName.
+ * @param keyVaultSecretName Key Vault secret name
+ * @return the next update stage
+ */
+ Update withKeyVaultSecretName(String keyVaultSecretName);
+ }
+
+ /**
+ * The stage of the appservicecertificateresource update allowing to specify Kind.
+ */
+ interface WithKind {
+ /**
+ * Specifies kind.
+ * @param kind Kind of resource
+ * @return the next update stage
+ */
+ Update withKind(String kind);
+ }
+
+ }
+}
diff --git a/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceEnvironmentPatchResource.java b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceEnvironmentPatchResource.java
new file mode 100644
index 0000000000000..b7589ba9d0c56
--- /dev/null
+++ b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceEnvironmentPatchResource.java
@@ -0,0 +1,872 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.appservice.v2019_08_01;
+
+import java.util.List;
+import com.microsoft.azure.management.appservice.v2019_08_01.implementation.StampCapacityInner;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * ARM resource for a app service environment.
+ */
+@JsonFlatten
+public class AppServiceEnvironmentPatchResource extends ProxyOnlyResource {
+ /**
+ * Name of the App Service Environment.
+ */
+ @JsonProperty(value = "properties.name", required = true)
+ private String appServiceEnvironmentPatchResourceName;
+
+ /**
+ * Location of the App Service Environment, e.g. "West US".
+ */
+ @JsonProperty(value = "properties.location", required = true)
+ private String location;
+
+ /**
+ * Provisioning state of the App Service Environment. Possible values
+ * include: 'Succeeded', 'Failed', 'Canceled', 'InProgress', 'Deleting'.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /**
+ * Current status of the App Service Environment. Possible values include:
+ * 'Preparing', 'Ready', 'Scaling', 'Deleting'.
+ */
+ @JsonProperty(value = "properties.status", access = JsonProperty.Access.WRITE_ONLY)
+ private HostingEnvironmentStatus status;
+
+ /**
+ * Name of the Virtual Network for the App Service Environment.
+ */
+ @JsonProperty(value = "properties.vnetName")
+ private String vnetName;
+
+ /**
+ * Resource group of the Virtual Network.
+ */
+ @JsonProperty(value = "properties.vnetResourceGroupName")
+ private String vnetResourceGroupName;
+
+ /**
+ * Subnet of the Virtual Network.
+ */
+ @JsonProperty(value = "properties.vnetSubnetName")
+ private String vnetSubnetName;
+
+ /**
+ * Description of the Virtual Network.
+ */
+ @JsonProperty(value = "properties.virtualNetwork", required = true)
+ private VirtualNetworkProfile virtualNetwork;
+
+ /**
+ * Specifies which endpoints to serve internally in the Virtual Network for
+ * the App Service Environment. Possible values include: 'None', 'Web',
+ * 'Publishing'.
+ */
+ @JsonProperty(value = "properties.internalLoadBalancingMode")
+ private InternalLoadBalancingMode internalLoadBalancingMode;
+
+ /**
+ * Front-end VM size, e.g. "Medium", "Large".
+ */
+ @JsonProperty(value = "properties.multiSize")
+ private String multiSize;
+
+ /**
+ * Number of front-end instances.
+ */
+ @JsonProperty(value = "properties.multiRoleCount")
+ private Integer multiRoleCount;
+
+ /**
+ * Description of worker pools with worker size IDs, VM sizes, and number
+ * of workers in each pool.
+ */
+ @JsonProperty(value = "properties.workerPools", required = true)
+ private List workerPools;
+
+ /**
+ * Number of IP SSL addresses reserved for the App Service Environment.
+ */
+ @JsonProperty(value = "properties.ipsslAddressCount")
+ private Integer ipsslAddressCount;
+
+ /**
+ * Edition of the metadata database for the App Service Environment, e.g.
+ * "Standard".
+ */
+ @JsonProperty(value = "properties.databaseEdition", access = JsonProperty.Access.WRITE_ONLY)
+ private String databaseEdition;
+
+ /**
+ * Service objective of the metadata database for the App Service
+ * Environment, e.g. "S0".
+ */
+ @JsonProperty(value = "properties.databaseServiceObjective", access = JsonProperty.Access.WRITE_ONLY)
+ private String databaseServiceObjective;
+
+ /**
+ * Number of upgrade domains of the App Service Environment.
+ */
+ @JsonProperty(value = "properties.upgradeDomains", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer upgradeDomains;
+
+ /**
+ * Subscription of the App Service Environment.
+ */
+ @JsonProperty(value = "properties.subscriptionId", access = JsonProperty.Access.WRITE_ONLY)
+ private String subscriptionId;
+
+ /**
+ * DNS suffix of the App Service Environment.
+ */
+ @JsonProperty(value = "properties.dnsSuffix")
+ private String dnsSuffix;
+
+ /**
+ * Last deployment action on the App Service Environment.
+ */
+ @JsonProperty(value = "properties.lastAction", access = JsonProperty.Access.WRITE_ONLY)
+ private String lastAction;
+
+ /**
+ * Result of the last deployment action on the App Service Environment.
+ */
+ @JsonProperty(value = "properties.lastActionResult", access = JsonProperty.Access.WRITE_ONLY)
+ private String lastActionResult;
+
+ /**
+ * List of comma separated strings describing which VM sizes are allowed
+ * for front-ends.
+ */
+ @JsonProperty(value = "properties.allowedMultiSizes", access = JsonProperty.Access.WRITE_ONLY)
+ private String allowedMultiSizes;
+
+ /**
+ * List of comma separated strings describing which VM sizes are allowed
+ * for workers.
+ */
+ @JsonProperty(value = "properties.allowedWorkerSizes", access = JsonProperty.Access.WRITE_ONLY)
+ private String allowedWorkerSizes;
+
+ /**
+ * Maximum number of VMs in the App Service Environment.
+ */
+ @JsonProperty(value = "properties.maximumNumberOfMachines", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer maximumNumberOfMachines;
+
+ /**
+ * Description of IP SSL mapping for the App Service Environment.
+ */
+ @JsonProperty(value = "properties.vipMappings", access = JsonProperty.Access.WRITE_ONLY)
+ private List vipMappings;
+
+ /**
+ * Current total, used, and available worker capacities.
+ */
+ @JsonProperty(value = "properties.environmentCapacities", access = JsonProperty.Access.WRITE_ONLY)
+ private List environmentCapacities;
+
+ /**
+ * Access control list for controlling traffic to the App Service
+ * Environment.
+ */
+ @JsonProperty(value = "properties.networkAccessControlList")
+ private List networkAccessControlList;
+
+ /**
+ * True/false indicating whether the App Service Environment is healthy.
+ */
+ @JsonProperty(value = "properties.environmentIsHealthy", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean environmentIsHealthy;
+
+ /**
+ * Detailed message about with results of the last check of the App Service
+ * Environment.
+ */
+ @JsonProperty(value = "properties.environmentStatus", access = JsonProperty.Access.WRITE_ONLY)
+ private String environmentStatus;
+
+ /**
+ * Resource group of the App Service Environment.
+ */
+ @JsonProperty(value = "properties.resourceGroup", access = JsonProperty.Access.WRITE_ONLY)
+ private String resourceGroup;
+
+ /**
+ * Scale factor for front-ends.
+ */
+ @JsonProperty(value = "properties.frontEndScaleFactor")
+ private Integer frontEndScaleFactor;
+
+ /**
+ * Default Scale Factor for FrontEnds.
+ */
+ @JsonProperty(value = "properties.defaultFrontEndScaleFactor", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer defaultFrontEndScaleFactor;
+
+ /**
+ * API Management Account associated with the App Service Environment.
+ */
+ @JsonProperty(value = "properties.apiManagementAccountId")
+ private String apiManagementAccountId;
+
+ /**
+ * <code>true</code> if the App Service Environment is
+ * suspended; otherwise, <code>false</code>. The environment
+ * can be suspended, e.g. when the management endpoint is no longer
+ * available
+ * (most likely because NSG blocked the incoming traffic).
+ */
+ @JsonProperty(value = "properties.suspended")
+ private Boolean suspended;
+
+ /**
+ * True/false indicating whether the App Service Environment is suspended.
+ * The environment can be suspended e.g. when the management endpoint is no
+ * longer available
+ * (most likely because NSG blocked the incoming traffic).
+ */
+ @JsonProperty(value = "properties.dynamicCacheEnabled")
+ private Boolean dynamicCacheEnabled;
+
+ /**
+ * Custom settings for changing the behavior of the App Service
+ * Environment.
+ */
+ @JsonProperty(value = "properties.clusterSettings")
+ private List clusterSettings;
+
+ /**
+ * User added ip ranges to whitelist on ASE db.
+ */
+ @JsonProperty(value = "properties.userWhitelistedIpRanges")
+ private List userWhitelistedIpRanges;
+
+ /**
+ * Flag that displays whether an ASE has linux workers or not.
+ */
+ @JsonProperty(value = "properties.hasLinuxWorkers")
+ private Boolean hasLinuxWorkers;
+
+ /**
+ * Key Vault ID for ILB App Service Environment default SSL certificate.
+ */
+ @JsonProperty(value = "properties.sslCertKeyVaultId")
+ private String sslCertKeyVaultId;
+
+ /**
+ * Key Vault Secret Name for ILB App Service Environment default SSL
+ * certificate.
+ */
+ @JsonProperty(value = "properties.sslCertKeyVaultSecretName")
+ private String sslCertKeyVaultSecretName;
+
+ /**
+ * Get name of the App Service Environment.
+ *
+ * @return the appServiceEnvironmentPatchResourceName value
+ */
+ public String appServiceEnvironmentPatchResourceName() {
+ return this.appServiceEnvironmentPatchResourceName;
+ }
+
+ /**
+ * Set name of the App Service Environment.
+ *
+ * @param appServiceEnvironmentPatchResourceName the appServiceEnvironmentPatchResourceName value to set
+ * @return the AppServiceEnvironmentPatchResource object itself.
+ */
+ public AppServiceEnvironmentPatchResource withAppServiceEnvironmentPatchResourceName(String appServiceEnvironmentPatchResourceName) {
+ this.appServiceEnvironmentPatchResourceName = appServiceEnvironmentPatchResourceName;
+ return this;
+ }
+
+ /**
+ * Get location of the App Service Environment, e.g. "West US".
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set location of the App Service Environment, e.g. "West US".
+ *
+ * @param location the location value to set
+ * @return the AppServiceEnvironmentPatchResource object itself.
+ */
+ public AppServiceEnvironmentPatchResource withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get provisioning state of the App Service Environment. Possible values include: 'Succeeded', 'Failed', 'Canceled', 'InProgress', 'Deleting'.
+ *
+ * @return the provisioningState value
+ */
+ public ProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get current status of the App Service Environment. Possible values include: 'Preparing', 'Ready', 'Scaling', 'Deleting'.
+ *
+ * @return the status value
+ */
+ public HostingEnvironmentStatus status() {
+ return this.status;
+ }
+
+ /**
+ * Get name of the Virtual Network for the App Service Environment.
+ *
+ * @return the vnetName value
+ */
+ public String vnetName() {
+ return this.vnetName;
+ }
+
+ /**
+ * Set name of the Virtual Network for the App Service Environment.
+ *
+ * @param vnetName the vnetName value to set
+ * @return the AppServiceEnvironmentPatchResource object itself.
+ */
+ public AppServiceEnvironmentPatchResource withVnetName(String vnetName) {
+ this.vnetName = vnetName;
+ return this;
+ }
+
+ /**
+ * Get resource group of the Virtual Network.
+ *
+ * @return the vnetResourceGroupName value
+ */
+ public String vnetResourceGroupName() {
+ return this.vnetResourceGroupName;
+ }
+
+ /**
+ * Set resource group of the Virtual Network.
+ *
+ * @param vnetResourceGroupName the vnetResourceGroupName value to set
+ * @return the AppServiceEnvironmentPatchResource object itself.
+ */
+ public AppServiceEnvironmentPatchResource withVnetResourceGroupName(String vnetResourceGroupName) {
+ this.vnetResourceGroupName = vnetResourceGroupName;
+ return this;
+ }
+
+ /**
+ * Get subnet of the Virtual Network.
+ *
+ * @return the vnetSubnetName value
+ */
+ public String vnetSubnetName() {
+ return this.vnetSubnetName;
+ }
+
+ /**
+ * Set subnet of the Virtual Network.
+ *
+ * @param vnetSubnetName the vnetSubnetName value to set
+ * @return the AppServiceEnvironmentPatchResource object itself.
+ */
+ public AppServiceEnvironmentPatchResource withVnetSubnetName(String vnetSubnetName) {
+ this.vnetSubnetName = vnetSubnetName;
+ return this;
+ }
+
+ /**
+ * Get description of the Virtual Network.
+ *
+ * @return the virtualNetwork value
+ */
+ public VirtualNetworkProfile virtualNetwork() {
+ return this.virtualNetwork;
+ }
+
+ /**
+ * Set description of the Virtual Network.
+ *
+ * @param virtualNetwork the virtualNetwork value to set
+ * @return the AppServiceEnvironmentPatchResource object itself.
+ */
+ public AppServiceEnvironmentPatchResource withVirtualNetwork(VirtualNetworkProfile virtualNetwork) {
+ this.virtualNetwork = virtualNetwork;
+ return this;
+ }
+
+ /**
+ * Get specifies which endpoints to serve internally in the Virtual Network for the App Service Environment. Possible values include: 'None', 'Web', 'Publishing'.
+ *
+ * @return the internalLoadBalancingMode value
+ */
+ public InternalLoadBalancingMode internalLoadBalancingMode() {
+ return this.internalLoadBalancingMode;
+ }
+
+ /**
+ * Set specifies which endpoints to serve internally in the Virtual Network for the App Service Environment. Possible values include: 'None', 'Web', 'Publishing'.
+ *
+ * @param internalLoadBalancingMode the internalLoadBalancingMode value to set
+ * @return the AppServiceEnvironmentPatchResource object itself.
+ */
+ public AppServiceEnvironmentPatchResource withInternalLoadBalancingMode(InternalLoadBalancingMode internalLoadBalancingMode) {
+ this.internalLoadBalancingMode = internalLoadBalancingMode;
+ return this;
+ }
+
+ /**
+ * Get front-end VM size, e.g. "Medium", "Large".
+ *
+ * @return the multiSize value
+ */
+ public String multiSize() {
+ return this.multiSize;
+ }
+
+ /**
+ * Set front-end VM size, e.g. "Medium", "Large".
+ *
+ * @param multiSize the multiSize value to set
+ * @return the AppServiceEnvironmentPatchResource object itself.
+ */
+ public AppServiceEnvironmentPatchResource withMultiSize(String multiSize) {
+ this.multiSize = multiSize;
+ return this;
+ }
+
+ /**
+ * Get number of front-end instances.
+ *
+ * @return the multiRoleCount value
+ */
+ public Integer multiRoleCount() {
+ return this.multiRoleCount;
+ }
+
+ /**
+ * Set number of front-end instances.
+ *
+ * @param multiRoleCount the multiRoleCount value to set
+ * @return the AppServiceEnvironmentPatchResource object itself.
+ */
+ public AppServiceEnvironmentPatchResource withMultiRoleCount(Integer multiRoleCount) {
+ this.multiRoleCount = multiRoleCount;
+ return this;
+ }
+
+ /**
+ * Get description of worker pools with worker size IDs, VM sizes, and number of workers in each pool.
+ *
+ * @return the workerPools value
+ */
+ public List workerPools() {
+ return this.workerPools;
+ }
+
+ /**
+ * Set description of worker pools with worker size IDs, VM sizes, and number of workers in each pool.
+ *
+ * @param workerPools the workerPools value to set
+ * @return the AppServiceEnvironmentPatchResource object itself.
+ */
+ public AppServiceEnvironmentPatchResource withWorkerPools(List workerPools) {
+ this.workerPools = workerPools;
+ return this;
+ }
+
+ /**
+ * Get number of IP SSL addresses reserved for the App Service Environment.
+ *
+ * @return the ipsslAddressCount value
+ */
+ public Integer ipsslAddressCount() {
+ return this.ipsslAddressCount;
+ }
+
+ /**
+ * Set number of IP SSL addresses reserved for the App Service Environment.
+ *
+ * @param ipsslAddressCount the ipsslAddressCount value to set
+ * @return the AppServiceEnvironmentPatchResource object itself.
+ */
+ public AppServiceEnvironmentPatchResource withIpsslAddressCount(Integer ipsslAddressCount) {
+ this.ipsslAddressCount = ipsslAddressCount;
+ return this;
+ }
+
+ /**
+ * Get edition of the metadata database for the App Service Environment, e.g. "Standard".
+ *
+ * @return the databaseEdition value
+ */
+ public String databaseEdition() {
+ return this.databaseEdition;
+ }
+
+ /**
+ * Get service objective of the metadata database for the App Service Environment, e.g. "S0".
+ *
+ * @return the databaseServiceObjective value
+ */
+ public String databaseServiceObjective() {
+ return this.databaseServiceObjective;
+ }
+
+ /**
+ * Get number of upgrade domains of the App Service Environment.
+ *
+ * @return the upgradeDomains value
+ */
+ public Integer upgradeDomains() {
+ return this.upgradeDomains;
+ }
+
+ /**
+ * Get subscription of the App Service Environment.
+ *
+ * @return the subscriptionId value
+ */
+ public String subscriptionId() {
+ return this.subscriptionId;
+ }
+
+ /**
+ * Get dNS suffix of the App Service Environment.
+ *
+ * @return the dnsSuffix value
+ */
+ public String dnsSuffix() {
+ return this.dnsSuffix;
+ }
+
+ /**
+ * Set dNS suffix of the App Service Environment.
+ *
+ * @param dnsSuffix the dnsSuffix value to set
+ * @return the AppServiceEnvironmentPatchResource object itself.
+ */
+ public AppServiceEnvironmentPatchResource withDnsSuffix(String dnsSuffix) {
+ this.dnsSuffix = dnsSuffix;
+ return this;
+ }
+
+ /**
+ * Get last deployment action on the App Service Environment.
+ *
+ * @return the lastAction value
+ */
+ public String lastAction() {
+ return this.lastAction;
+ }
+
+ /**
+ * Get result of the last deployment action on the App Service Environment.
+ *
+ * @return the lastActionResult value
+ */
+ public String lastActionResult() {
+ return this.lastActionResult;
+ }
+
+ /**
+ * Get list of comma separated strings describing which VM sizes are allowed for front-ends.
+ *
+ * @return the allowedMultiSizes value
+ */
+ public String allowedMultiSizes() {
+ return this.allowedMultiSizes;
+ }
+
+ /**
+ * Get list of comma separated strings describing which VM sizes are allowed for workers.
+ *
+ * @return the allowedWorkerSizes value
+ */
+ public String allowedWorkerSizes() {
+ return this.allowedWorkerSizes;
+ }
+
+ /**
+ * Get maximum number of VMs in the App Service Environment.
+ *
+ * @return the maximumNumberOfMachines value
+ */
+ public Integer maximumNumberOfMachines() {
+ return this.maximumNumberOfMachines;
+ }
+
+ /**
+ * Get description of IP SSL mapping for the App Service Environment.
+ *
+ * @return the vipMappings value
+ */
+ public List vipMappings() {
+ return this.vipMappings;
+ }
+
+ /**
+ * Get current total, used, and available worker capacities.
+ *
+ * @return the environmentCapacities value
+ */
+ public List environmentCapacities() {
+ return this.environmentCapacities;
+ }
+
+ /**
+ * Get access control list for controlling traffic to the App Service Environment.
+ *
+ * @return the networkAccessControlList value
+ */
+ public List networkAccessControlList() {
+ return this.networkAccessControlList;
+ }
+
+ /**
+ * Set access control list for controlling traffic to the App Service Environment.
+ *
+ * @param networkAccessControlList the networkAccessControlList value to set
+ * @return the AppServiceEnvironmentPatchResource object itself.
+ */
+ public AppServiceEnvironmentPatchResource withNetworkAccessControlList(List networkAccessControlList) {
+ this.networkAccessControlList = networkAccessControlList;
+ return this;
+ }
+
+ /**
+ * Get true/false indicating whether the App Service Environment is healthy.
+ *
+ * @return the environmentIsHealthy value
+ */
+ public Boolean environmentIsHealthy() {
+ return this.environmentIsHealthy;
+ }
+
+ /**
+ * Get detailed message about with results of the last check of the App Service Environment.
+ *
+ * @return the environmentStatus value
+ */
+ public String environmentStatus() {
+ return this.environmentStatus;
+ }
+
+ /**
+ * Get resource group of the App Service Environment.
+ *
+ * @return the resourceGroup value
+ */
+ public String resourceGroup() {
+ return this.resourceGroup;
+ }
+
+ /**
+ * Get scale factor for front-ends.
+ *
+ * @return the frontEndScaleFactor value
+ */
+ public Integer frontEndScaleFactor() {
+ return this.frontEndScaleFactor;
+ }
+
+ /**
+ * Set scale factor for front-ends.
+ *
+ * @param frontEndScaleFactor the frontEndScaleFactor value to set
+ * @return the AppServiceEnvironmentPatchResource object itself.
+ */
+ public AppServiceEnvironmentPatchResource withFrontEndScaleFactor(Integer frontEndScaleFactor) {
+ this.frontEndScaleFactor = frontEndScaleFactor;
+ return this;
+ }
+
+ /**
+ * Get default Scale Factor for FrontEnds.
+ *
+ * @return the defaultFrontEndScaleFactor value
+ */
+ public Integer defaultFrontEndScaleFactor() {
+ return this.defaultFrontEndScaleFactor;
+ }
+
+ /**
+ * Get aPI Management Account associated with the App Service Environment.
+ *
+ * @return the apiManagementAccountId value
+ */
+ public String apiManagementAccountId() {
+ return this.apiManagementAccountId;
+ }
+
+ /**
+ * Set aPI Management Account associated with the App Service Environment.
+ *
+ * @param apiManagementAccountId the apiManagementAccountId value to set
+ * @return the AppServiceEnvironmentPatchResource object itself.
+ */
+ public AppServiceEnvironmentPatchResource withApiManagementAccountId(String apiManagementAccountId) {
+ this.apiManagementAccountId = apiManagementAccountId;
+ return this;
+ }
+
+ /**
+ * Get <code>true</code> if the App Service Environment is suspended; otherwise, <code>false</code>. The environment can be suspended, e.g. when the management endpoint is no longer available
+ (most likely because NSG blocked the incoming traffic).
+ *
+ * @return the suspended value
+ */
+ public Boolean suspended() {
+ return this.suspended;
+ }
+
+ /**
+ * Set <code>true</code> if the App Service Environment is suspended; otherwise, <code>false</code>. The environment can be suspended, e.g. when the management endpoint is no longer available
+ (most likely because NSG blocked the incoming traffic).
+ *
+ * @param suspended the suspended value to set
+ * @return the AppServiceEnvironmentPatchResource object itself.
+ */
+ public AppServiceEnvironmentPatchResource withSuspended(Boolean suspended) {
+ this.suspended = suspended;
+ return this;
+ }
+
+ /**
+ * Get true/false indicating whether the App Service Environment is suspended. The environment can be suspended e.g. when the management endpoint is no longer available
+ (most likely because NSG blocked the incoming traffic).
+ *
+ * @return the dynamicCacheEnabled value
+ */
+ public Boolean dynamicCacheEnabled() {
+ return this.dynamicCacheEnabled;
+ }
+
+ /**
+ * Set true/false indicating whether the App Service Environment is suspended. The environment can be suspended e.g. when the management endpoint is no longer available
+ (most likely because NSG blocked the incoming traffic).
+ *
+ * @param dynamicCacheEnabled the dynamicCacheEnabled value to set
+ * @return the AppServiceEnvironmentPatchResource object itself.
+ */
+ public AppServiceEnvironmentPatchResource withDynamicCacheEnabled(Boolean dynamicCacheEnabled) {
+ this.dynamicCacheEnabled = dynamicCacheEnabled;
+ return this;
+ }
+
+ /**
+ * Get custom settings for changing the behavior of the App Service Environment.
+ *
+ * @return the clusterSettings value
+ */
+ public List clusterSettings() {
+ return this.clusterSettings;
+ }
+
+ /**
+ * Set custom settings for changing the behavior of the App Service Environment.
+ *
+ * @param clusterSettings the clusterSettings value to set
+ * @return the AppServiceEnvironmentPatchResource object itself.
+ */
+ public AppServiceEnvironmentPatchResource withClusterSettings(List clusterSettings) {
+ this.clusterSettings = clusterSettings;
+ return this;
+ }
+
+ /**
+ * Get user added ip ranges to whitelist on ASE db.
+ *
+ * @return the userWhitelistedIpRanges value
+ */
+ public List userWhitelistedIpRanges() {
+ return this.userWhitelistedIpRanges;
+ }
+
+ /**
+ * Set user added ip ranges to whitelist on ASE db.
+ *
+ * @param userWhitelistedIpRanges the userWhitelistedIpRanges value to set
+ * @return the AppServiceEnvironmentPatchResource object itself.
+ */
+ public AppServiceEnvironmentPatchResource withUserWhitelistedIpRanges(List userWhitelistedIpRanges) {
+ this.userWhitelistedIpRanges = userWhitelistedIpRanges;
+ return this;
+ }
+
+ /**
+ * Get flag that displays whether an ASE has linux workers or not.
+ *
+ * @return the hasLinuxWorkers value
+ */
+ public Boolean hasLinuxWorkers() {
+ return this.hasLinuxWorkers;
+ }
+
+ /**
+ * Set flag that displays whether an ASE has linux workers or not.
+ *
+ * @param hasLinuxWorkers the hasLinuxWorkers value to set
+ * @return the AppServiceEnvironmentPatchResource object itself.
+ */
+ public AppServiceEnvironmentPatchResource withHasLinuxWorkers(Boolean hasLinuxWorkers) {
+ this.hasLinuxWorkers = hasLinuxWorkers;
+ return this;
+ }
+
+ /**
+ * Get key Vault ID for ILB App Service Environment default SSL certificate.
+ *
+ * @return the sslCertKeyVaultId value
+ */
+ public String sslCertKeyVaultId() {
+ return this.sslCertKeyVaultId;
+ }
+
+ /**
+ * Set key Vault ID for ILB App Service Environment default SSL certificate.
+ *
+ * @param sslCertKeyVaultId the sslCertKeyVaultId value to set
+ * @return the AppServiceEnvironmentPatchResource object itself.
+ */
+ public AppServiceEnvironmentPatchResource withSslCertKeyVaultId(String sslCertKeyVaultId) {
+ this.sslCertKeyVaultId = sslCertKeyVaultId;
+ return this;
+ }
+
+ /**
+ * Get key Vault Secret Name for ILB App Service Environment default SSL certificate.
+ *
+ * @return the sslCertKeyVaultSecretName value
+ */
+ public String sslCertKeyVaultSecretName() {
+ return this.sslCertKeyVaultSecretName;
+ }
+
+ /**
+ * Set key Vault Secret Name for ILB App Service Environment default SSL certificate.
+ *
+ * @param sslCertKeyVaultSecretName the sslCertKeyVaultSecretName value to set
+ * @return the AppServiceEnvironmentPatchResource object itself.
+ */
+ public AppServiceEnvironmentPatchResource withSslCertKeyVaultSecretName(String sslCertKeyVaultSecretName) {
+ this.sslCertKeyVaultSecretName = sslCertKeyVaultSecretName;
+ return this;
+ }
+
+}
diff --git a/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceEnvironmentResource.java b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceEnvironmentResource.java
new file mode 100644
index 0000000000000..5269dbb8ddc25
--- /dev/null
+++ b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceEnvironmentResource.java
@@ -0,0 +1,778 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.appservice.v2019_08_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.appservice.v2019_08_01.implementation.CertificateRegistrationManager;
+import java.util.List;
+import com.microsoft.azure.management.appservice.v2019_08_01.implementation.StampCapacityInner;
+import com.microsoft.azure.management.appservice.v2019_08_01.implementation.AppServiceEnvironmentResourceInner;
+
+/**
+ * Type representing AppServiceEnvironmentResource.
+ */
+public interface AppServiceEnvironmentResource extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the allowedMultiSizes value.
+ */
+ String allowedMultiSizes();
+
+ /**
+ * @return the allowedWorkerSizes value.
+ */
+ String allowedWorkerSizes();
+
+ /**
+ * @return the apiManagementAccountId value.
+ */
+ String apiManagementAccountId();
+
+ /**
+ * @return the appServiceEnvironmentResourceLocation value.
+ */
+ String appServiceEnvironmentResourceLocation();
+
+ /**
+ * @return the appServiceEnvironmentResourceName value.
+ */
+ String appServiceEnvironmentResourceName();
+
+ /**
+ * @return the clusterSettings value.
+ */
+ List clusterSettings();
+
+ /**
+ * @return the databaseEdition value.
+ */
+ String databaseEdition();
+
+ /**
+ * @return the databaseServiceObjective value.
+ */
+ String databaseServiceObjective();
+
+ /**
+ * @return the defaultFrontEndScaleFactor value.
+ */
+ Integer defaultFrontEndScaleFactor();
+
+ /**
+ * @return the dnsSuffix value.
+ */
+ String dnsSuffix();
+
+ /**
+ * @return the dynamicCacheEnabled value.
+ */
+ Boolean dynamicCacheEnabled();
+
+ /**
+ * @return the environmentCapacities value.
+ */
+ List environmentCapacities();
+
+ /**
+ * @return the environmentIsHealthy value.
+ */
+ Boolean environmentIsHealthy();
+
+ /**
+ * @return the environmentStatus value.
+ */
+ String environmentStatus();
+
+ /**
+ * @return the frontEndScaleFactor value.
+ */
+ Integer frontEndScaleFactor();
+
+ /**
+ * @return the hasLinuxWorkers value.
+ */
+ Boolean hasLinuxWorkers();
+
+ /**
+ * @return the internalLoadBalancingMode value.
+ */
+ InternalLoadBalancingMode internalLoadBalancingMode();
+
+ /**
+ * @return the ipsslAddressCount value.
+ */
+ Integer ipsslAddressCount();
+
+ /**
+ * @return the kind value.
+ */
+ String kind();
+
+ /**
+ * @return the lastAction value.
+ */
+ String lastAction();
+
+ /**
+ * @return the lastActionResult value.
+ */
+ String lastActionResult();
+
+ /**
+ * @return the maximumNumberOfMachines value.
+ */
+ Integer maximumNumberOfMachines();
+
+ /**
+ * @return the multiRoleCount value.
+ */
+ Integer multiRoleCount();
+
+ /**
+ * @return the multiSize value.
+ */
+ String multiSize();
+
+ /**
+ * @return the networkAccessControlList value.
+ */
+ List networkAccessControlList();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ProvisioningState provisioningState();
+
+ /**
+ * @return the resourceGroup value.
+ */
+ String resourceGroup();
+
+ /**
+ * @return the sslCertKeyVaultId value.
+ */
+ String sslCertKeyVaultId();
+
+ /**
+ * @return the sslCertKeyVaultSecretName value.
+ */
+ String sslCertKeyVaultSecretName();
+
+ /**
+ * @return the status value.
+ */
+ HostingEnvironmentStatus status();
+
+ /**
+ * @return the subscriptionId value.
+ */
+ String subscriptionId();
+
+ /**
+ * @return the suspended value.
+ */
+ Boolean suspended();
+
+ /**
+ * @return the upgradeDomains value.
+ */
+ Integer upgradeDomains();
+
+ /**
+ * @return the userWhitelistedIpRanges value.
+ */
+ List userWhitelistedIpRanges();
+
+ /**
+ * @return the vipMappings value.
+ */
+ List vipMappings();
+
+ /**
+ * @return the virtualNetwork value.
+ */
+ VirtualNetworkProfile virtualNetwork();
+
+ /**
+ * @return the vnetName value.
+ */
+ String vnetName();
+
+ /**
+ * @return the vnetResourceGroupName value.
+ */
+ String vnetResourceGroupName();
+
+ /**
+ * @return the vnetSubnetName value.
+ */
+ String vnetSubnetName();
+
+ /**
+ * @return the workerPools value.
+ */
+ List workerPools();
+
+ /**
+ * The entirety of the AppServiceEnvironmentResource definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithAppServiceEnvironmentResourceLocation, DefinitionStages.WithAppServiceEnvironmentResourceName, DefinitionStages.WithVirtualNetwork, DefinitionStages.WithWorkerPools, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of AppServiceEnvironmentResource definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a AppServiceEnvironmentResource definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the AppServiceEnvironmentResource definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource definition allowing to specify AppServiceEnvironmentResourceLocation.
+ */
+ interface WithAppServiceEnvironmentResourceLocation {
+ /**
+ * Specifies appServiceEnvironmentResourceLocation.
+ * @param appServiceEnvironmentResourceLocation Location of the App Service Environment, e.g. "West US"
+ * @return the next definition stage
+*/
+ WithAppServiceEnvironmentResourceName withAppServiceEnvironmentResourceLocation(String appServiceEnvironmentResourceLocation);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource definition allowing to specify AppServiceEnvironmentResourceName.
+ */
+ interface WithAppServiceEnvironmentResourceName {
+ /**
+ * Specifies appServiceEnvironmentResourceName.
+ * @param appServiceEnvironmentResourceName Name of the App Service Environment
+ * @return the next definition stage
+*/
+ WithVirtualNetwork withAppServiceEnvironmentResourceName(String appServiceEnvironmentResourceName);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource definition allowing to specify VirtualNetwork.
+ */
+ interface WithVirtualNetwork {
+ /**
+ * Specifies virtualNetwork.
+ * @param virtualNetwork Description of the Virtual Network
+ * @return the next definition stage
+*/
+ WithWorkerPools withVirtualNetwork(VirtualNetworkProfile virtualNetwork);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource definition allowing to specify WorkerPools.
+ */
+ interface WithWorkerPools {
+ /**
+ * Specifies workerPools.
+ * @param workerPools Description of worker pools with worker size IDs, VM sizes, and number of workers in each pool
+ * @return the next definition stage
+*/
+ WithCreate withWorkerPools(List workerPools);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource definition allowing to specify ApiManagementAccountId.
+ */
+ interface WithApiManagementAccountId {
+ /**
+ * Specifies apiManagementAccountId.
+ * @param apiManagementAccountId API Management Account associated with the App Service Environment
+ * @return the next definition stage
+ */
+ WithCreate withApiManagementAccountId(String apiManagementAccountId);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource definition allowing to specify ClusterSettings.
+ */
+ interface WithClusterSettings {
+ /**
+ * Specifies clusterSettings.
+ * @param clusterSettings Custom settings for changing the behavior of the App Service Environment
+ * @return the next definition stage
+ */
+ WithCreate withClusterSettings(List clusterSettings);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource definition allowing to specify DnsSuffix.
+ */
+ interface WithDnsSuffix {
+ /**
+ * Specifies dnsSuffix.
+ * @param dnsSuffix DNS suffix of the App Service Environment
+ * @return the next definition stage
+ */
+ WithCreate withDnsSuffix(String dnsSuffix);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource definition allowing to specify DynamicCacheEnabled.
+ */
+ interface WithDynamicCacheEnabled {
+ /**
+ * Specifies dynamicCacheEnabled.
+ * @param dynamicCacheEnabled True/false indicating whether the App Service Environment is suspended. The environment can be suspended e.g. when the management endpoint is no longer available
+ (most likely because NSG blocked the incoming traffic)
+ * @return the next definition stage
+ */
+ WithCreate withDynamicCacheEnabled(Boolean dynamicCacheEnabled);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource definition allowing to specify FrontEndScaleFactor.
+ */
+ interface WithFrontEndScaleFactor {
+ /**
+ * Specifies frontEndScaleFactor.
+ * @param frontEndScaleFactor Scale factor for front-ends
+ * @return the next definition stage
+ */
+ WithCreate withFrontEndScaleFactor(Integer frontEndScaleFactor);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource definition allowing to specify HasLinuxWorkers.
+ */
+ interface WithHasLinuxWorkers {
+ /**
+ * Specifies hasLinuxWorkers.
+ * @param hasLinuxWorkers Flag that displays whether an ASE has linux workers or not
+ * @return the next definition stage
+ */
+ WithCreate withHasLinuxWorkers(Boolean hasLinuxWorkers);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource definition allowing to specify InternalLoadBalancingMode.
+ */
+ interface WithInternalLoadBalancingMode {
+ /**
+ * Specifies internalLoadBalancingMode.
+ * @param internalLoadBalancingMode Specifies which endpoints to serve internally in the Virtual Network for the App Service Environment. Possible values include: 'None', 'Web', 'Publishing'
+ * @return the next definition stage
+ */
+ WithCreate withInternalLoadBalancingMode(InternalLoadBalancingMode internalLoadBalancingMode);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource definition allowing to specify IpsslAddressCount.
+ */
+ interface WithIpsslAddressCount {
+ /**
+ * Specifies ipsslAddressCount.
+ * @param ipsslAddressCount Number of IP SSL addresses reserved for the App Service Environment
+ * @return the next definition stage
+ */
+ WithCreate withIpsslAddressCount(Integer ipsslAddressCount);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource definition allowing to specify Kind.
+ */
+ interface WithKind {
+ /**
+ * Specifies kind.
+ * @param kind Kind of resource
+ * @return the next definition stage
+ */
+ WithCreate withKind(String kind);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource definition allowing to specify MultiRoleCount.
+ */
+ interface WithMultiRoleCount {
+ /**
+ * Specifies multiRoleCount.
+ * @param multiRoleCount Number of front-end instances
+ * @return the next definition stage
+ */
+ WithCreate withMultiRoleCount(Integer multiRoleCount);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource definition allowing to specify MultiSize.
+ */
+ interface WithMultiSize {
+ /**
+ * Specifies multiSize.
+ * @param multiSize Front-end VM size, e.g. "Medium", "Large"
+ * @return the next definition stage
+ */
+ WithCreate withMultiSize(String multiSize);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource definition allowing to specify NetworkAccessControlList.
+ */
+ interface WithNetworkAccessControlList {
+ /**
+ * Specifies networkAccessControlList.
+ * @param networkAccessControlList Access control list for controlling traffic to the App Service Environment
+ * @return the next definition stage
+ */
+ WithCreate withNetworkAccessControlList(List networkAccessControlList);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource definition allowing to specify SslCertKeyVaultId.
+ */
+ interface WithSslCertKeyVaultId {
+ /**
+ * Specifies sslCertKeyVaultId.
+ * @param sslCertKeyVaultId Key Vault ID for ILB App Service Environment default SSL certificate
+ * @return the next definition stage
+ */
+ WithCreate withSslCertKeyVaultId(String sslCertKeyVaultId);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource definition allowing to specify SslCertKeyVaultSecretName.
+ */
+ interface WithSslCertKeyVaultSecretName {
+ /**
+ * Specifies sslCertKeyVaultSecretName.
+ * @param sslCertKeyVaultSecretName Key Vault Secret Name for ILB App Service Environment default SSL certificate
+ * @return the next definition stage
+ */
+ WithCreate withSslCertKeyVaultSecretName(String sslCertKeyVaultSecretName);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource definition allowing to specify Suspended.
+ */
+ interface WithSuspended {
+ /**
+ * Specifies suspended.
+ * @param suspended <code>true</code> if the App Service Environment is suspended; otherwise, <code>false</code>. The environment can be suspended, e.g. when the management endpoint is no longer available
+ (most likely because NSG blocked the incoming traffic)
+ * @return the next definition stage
+ */
+ WithCreate withSuspended(Boolean suspended);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource definition allowing to specify UserWhitelistedIpRanges.
+ */
+ interface WithUserWhitelistedIpRanges {
+ /**
+ * Specifies userWhitelistedIpRanges.
+ * @param userWhitelistedIpRanges User added ip ranges to whitelist on ASE db
+ * @return the next definition stage
+ */
+ WithCreate withUserWhitelistedIpRanges(List userWhitelistedIpRanges);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource definition allowing to specify VnetName.
+ */
+ interface WithVnetName {
+ /**
+ * Specifies vnetName.
+ * @param vnetName Name of the Virtual Network for the App Service Environment
+ * @return the next definition stage
+ */
+ WithCreate withVnetName(String vnetName);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource definition allowing to specify VnetResourceGroupName.
+ */
+ interface WithVnetResourceGroupName {
+ /**
+ * Specifies vnetResourceGroupName.
+ * @param vnetResourceGroupName Resource group of the Virtual Network
+ * @return the next definition stage
+ */
+ WithCreate withVnetResourceGroupName(String vnetResourceGroupName);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource definition allowing to specify VnetSubnetName.
+ */
+ interface WithVnetSubnetName {
+ /**
+ * Specifies vnetSubnetName.
+ * @param vnetSubnetName Subnet of the Virtual Network
+ * @return the next definition stage
+ */
+ WithCreate withVnetSubnetName(String vnetSubnetName);
+ }
+
+ /**
+ * 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.WithApiManagementAccountId, DefinitionStages.WithClusterSettings, DefinitionStages.WithDnsSuffix, DefinitionStages.WithDynamicCacheEnabled, DefinitionStages.WithFrontEndScaleFactor, DefinitionStages.WithHasLinuxWorkers, DefinitionStages.WithInternalLoadBalancingMode, DefinitionStages.WithIpsslAddressCount, DefinitionStages.WithKind, DefinitionStages.WithMultiRoleCount, DefinitionStages.WithMultiSize, DefinitionStages.WithNetworkAccessControlList, DefinitionStages.WithSslCertKeyVaultId, DefinitionStages.WithSslCertKeyVaultSecretName, DefinitionStages.WithSuspended, DefinitionStages.WithUserWhitelistedIpRanges, DefinitionStages.WithVnetName, DefinitionStages.WithVnetResourceGroupName, DefinitionStages.WithVnetSubnetName {
+ }
+ }
+ /**
+ * The template for a AppServiceEnvironmentResource update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithApiManagementAccountId, UpdateStages.WithClusterSettings, UpdateStages.WithDnsSuffix, UpdateStages.WithDynamicCacheEnabled, UpdateStages.WithFrontEndScaleFactor, UpdateStages.WithHasLinuxWorkers, UpdateStages.WithInternalLoadBalancingMode, UpdateStages.WithIpsslAddressCount, UpdateStages.WithKind, UpdateStages.WithMultiRoleCount, UpdateStages.WithMultiSize, UpdateStages.WithNetworkAccessControlList, UpdateStages.WithSslCertKeyVaultId, UpdateStages.WithSslCertKeyVaultSecretName, UpdateStages.WithSuspended, UpdateStages.WithUserWhitelistedIpRanges, UpdateStages.WithVnetName, UpdateStages.WithVnetResourceGroupName, UpdateStages.WithVnetSubnetName {
+ }
+
+ /**
+ * Grouping of AppServiceEnvironmentResource update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the appserviceenvironmentresource update allowing to specify ApiManagementAccountId.
+ */
+ interface WithApiManagementAccountId {
+ /**
+ * Specifies apiManagementAccountId.
+ * @param apiManagementAccountId API Management Account associated with the App Service Environment
+ * @return the next update stage
+ */
+ Update withApiManagementAccountId(String apiManagementAccountId);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource update allowing to specify ClusterSettings.
+ */
+ interface WithClusterSettings {
+ /**
+ * Specifies clusterSettings.
+ * @param clusterSettings Custom settings for changing the behavior of the App Service Environment
+ * @return the next update stage
+ */
+ Update withClusterSettings(List clusterSettings);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource update allowing to specify DnsSuffix.
+ */
+ interface WithDnsSuffix {
+ /**
+ * Specifies dnsSuffix.
+ * @param dnsSuffix DNS suffix of the App Service Environment
+ * @return the next update stage
+ */
+ Update withDnsSuffix(String dnsSuffix);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource update allowing to specify DynamicCacheEnabled.
+ */
+ interface WithDynamicCacheEnabled {
+ /**
+ * Specifies dynamicCacheEnabled.
+ * @param dynamicCacheEnabled True/false indicating whether the App Service Environment is suspended. The environment can be suspended e.g. when the management endpoint is no longer available
+ (most likely because NSG blocked the incoming traffic)
+ * @return the next update stage
+ */
+ Update withDynamicCacheEnabled(Boolean dynamicCacheEnabled);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource update allowing to specify FrontEndScaleFactor.
+ */
+ interface WithFrontEndScaleFactor {
+ /**
+ * Specifies frontEndScaleFactor.
+ * @param frontEndScaleFactor Scale factor for front-ends
+ * @return the next update stage
+ */
+ Update withFrontEndScaleFactor(Integer frontEndScaleFactor);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource update allowing to specify HasLinuxWorkers.
+ */
+ interface WithHasLinuxWorkers {
+ /**
+ * Specifies hasLinuxWorkers.
+ * @param hasLinuxWorkers Flag that displays whether an ASE has linux workers or not
+ * @return the next update stage
+ */
+ Update withHasLinuxWorkers(Boolean hasLinuxWorkers);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource update allowing to specify InternalLoadBalancingMode.
+ */
+ interface WithInternalLoadBalancingMode {
+ /**
+ * Specifies internalLoadBalancingMode.
+ * @param internalLoadBalancingMode Specifies which endpoints to serve internally in the Virtual Network for the App Service Environment. Possible values include: 'None', 'Web', 'Publishing'
+ * @return the next update stage
+ */
+ Update withInternalLoadBalancingMode(InternalLoadBalancingMode internalLoadBalancingMode);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource update allowing to specify IpsslAddressCount.
+ */
+ interface WithIpsslAddressCount {
+ /**
+ * Specifies ipsslAddressCount.
+ * @param ipsslAddressCount Number of IP SSL addresses reserved for the App Service Environment
+ * @return the next update stage
+ */
+ Update withIpsslAddressCount(Integer ipsslAddressCount);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource update allowing to specify Kind.
+ */
+ interface WithKind {
+ /**
+ * Specifies kind.
+ * @param kind Kind of resource
+ * @return the next update stage
+ */
+ Update withKind(String kind);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource update allowing to specify MultiRoleCount.
+ */
+ interface WithMultiRoleCount {
+ /**
+ * Specifies multiRoleCount.
+ * @param multiRoleCount Number of front-end instances
+ * @return the next update stage
+ */
+ Update withMultiRoleCount(Integer multiRoleCount);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource update allowing to specify MultiSize.
+ */
+ interface WithMultiSize {
+ /**
+ * Specifies multiSize.
+ * @param multiSize Front-end VM size, e.g. "Medium", "Large"
+ * @return the next update stage
+ */
+ Update withMultiSize(String multiSize);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource update allowing to specify NetworkAccessControlList.
+ */
+ interface WithNetworkAccessControlList {
+ /**
+ * Specifies networkAccessControlList.
+ * @param networkAccessControlList Access control list for controlling traffic to the App Service Environment
+ * @return the next update stage
+ */
+ Update withNetworkAccessControlList(List networkAccessControlList);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource update allowing to specify SslCertKeyVaultId.
+ */
+ interface WithSslCertKeyVaultId {
+ /**
+ * Specifies sslCertKeyVaultId.
+ * @param sslCertKeyVaultId Key Vault ID for ILB App Service Environment default SSL certificate
+ * @return the next update stage
+ */
+ Update withSslCertKeyVaultId(String sslCertKeyVaultId);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource update allowing to specify SslCertKeyVaultSecretName.
+ */
+ interface WithSslCertKeyVaultSecretName {
+ /**
+ * Specifies sslCertKeyVaultSecretName.
+ * @param sslCertKeyVaultSecretName Key Vault Secret Name for ILB App Service Environment default SSL certificate
+ * @return the next update stage
+ */
+ Update withSslCertKeyVaultSecretName(String sslCertKeyVaultSecretName);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource update allowing to specify Suspended.
+ */
+ interface WithSuspended {
+ /**
+ * Specifies suspended.
+ * @param suspended <code>true</code> if the App Service Environment is suspended; otherwise, <code>false</code>. The environment can be suspended, e.g. when the management endpoint is no longer available
+ (most likely because NSG blocked the incoming traffic)
+ * @return the next update stage
+ */
+ Update withSuspended(Boolean suspended);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource update allowing to specify UserWhitelistedIpRanges.
+ */
+ interface WithUserWhitelistedIpRanges {
+ /**
+ * Specifies userWhitelistedIpRanges.
+ * @param userWhitelistedIpRanges User added ip ranges to whitelist on ASE db
+ * @return the next update stage
+ */
+ Update withUserWhitelistedIpRanges(List userWhitelistedIpRanges);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource update allowing to specify VnetName.
+ */
+ interface WithVnetName {
+ /**
+ * Specifies vnetName.
+ * @param vnetName Name of the Virtual Network for the App Service Environment
+ * @return the next update stage
+ */
+ Update withVnetName(String vnetName);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource update allowing to specify VnetResourceGroupName.
+ */
+ interface WithVnetResourceGroupName {
+ /**
+ * Specifies vnetResourceGroupName.
+ * @param vnetResourceGroupName Resource group of the Virtual Network
+ * @return the next update stage
+ */
+ Update withVnetResourceGroupName(String vnetResourceGroupName);
+ }
+
+ /**
+ * The stage of the appserviceenvironmentresource update allowing to specify VnetSubnetName.
+ */
+ interface WithVnetSubnetName {
+ /**
+ * Specifies vnetSubnetName.
+ * @param vnetSubnetName Subnet of the Virtual Network
+ * @return the next update stage
+ */
+ Update withVnetSubnetName(String vnetSubnetName);
+ }
+
+ }
+}
diff --git a/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceEnvironments.java b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceEnvironments.java
new file mode 100644
index 0000000000000..7e61244594970
--- /dev/null
+++ b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServiceEnvironments.java
@@ -0,0 +1,403 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.appservice.v2019_08_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.appservice.v2019_08_01.AppServiceEnvironmentResource;
+import rx.Completable;
+import com.microsoft.azure.management.appservice.v2019_08_01.HostingEnvironmentDiagnostics;
+import com.microsoft.azure.management.appservice.v2019_08_01.InboundEnvironmentEndpoint;
+import com.microsoft.azure.management.appservice.v2019_08_01.MultiRolePools;
+import com.microsoft.azure.management.appservice.v2019_08_01.implementation.WorkerPoolResourceInner;
+import com.microsoft.azure.management.appservice.v2019_08_01.ResourceMetricDefinition;
+import com.microsoft.azure.management.appservice.v2019_08_01.Operation;
+import com.microsoft.azure.management.appservice.v2019_08_01.OutboundEnvironmentEndpoint;
+import com.microsoft.azure.management.appservice.v2019_08_01.HostingEnvironmentAppServicePlan;
+import com.microsoft.azure.management.appservice.v2019_08_01.HostingEnvironmentSite;
+import com.microsoft.azure.management.appservice.v2019_08_01.WorkerPools;
+
+/**
+ * Type representing AppServiceEnvironments.
+ */
+public interface AppServiceEnvironments {
+ /**
+ * Begins definition for a new HostingEnvironment resource.
+ * @param name resource name.
+ * @return the first stage of the new HostingEnvironment definition.
+ */
+ AppServiceEnvironmentResource.DefinitionStages.Blank defineHostingEnvironment(String name);
+
+ /**
+ * Begins definition for a new WorkerPool resource.
+ * @param name resource name.
+ * @return the first stage of the new WorkerPool definition.
+ */
+ WorkerPools.DefinitionStages.Blank defineWorkerPool(String name);
+
+ /**
+ * Get the properties of an App Service Environment.
+ * Description for Get the properties of an App Service Environment.
+ *
+ * @param resourceGroupName resource group name
+ * @param name resource name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByResourceGroupAsync(String resourceGroupName, String name);
+
+ /**
+ * Get all App Service Environments in a resource group.
+ * Description for Get all App Service Environments in a resource group.
+ *
+ * @param resourceGroupName resource group name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByResourceGroupAsync(String resourceGroupName);
+
+ /**
+ * Get all App Service Environments for a subscription.
+ * Description for Get all App Service Environments for a subscription.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+ /**
+ * Delete an App Service Environment.
+ * Description for Delete an App Service Environment.
+ *
+ * @param resourceGroupName resource group name
+ * @param name resource name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String name);
+
+ /**
+ * Move an App Service Environment to a different VNET.
+ * Description for Move an App Service Environment to a different VNET.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @param vnetInfo Details for the new virtual network.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable changeVnetAsync(final String resourceGroupName, final String name, final VirtualNetworkProfile vnetInfo);
+
+ /**
+ * Reboot all machines in an App Service Environment.
+ * Description for Reboot all machines in an App Service Environment.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable rebootAsync(String resourceGroupName, String name);
+
+ /**
+ * Resume an App Service Environment.
+ * Description for Resume an App Service Environment.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable resumeAsync(final String resourceGroupName, final String name);
+
+ /**
+ * Suspend an App Service Environment.
+ * Description for Suspend an App Service Environment.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable suspendAsync(final String resourceGroupName, final String name);
+
+ /**
+ * Get the used, available, and total worker capacity an App Service Environment.
+ * Description for Get the used, available, and total worker capacity an App Service Environment.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listCapacitiesAsync(final String resourceGroupName, final String name);
+
+ /**
+ * Get IP addresses assigned to an App Service Environment.
+ * Description for Get IP addresses assigned to an App Service Environment.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getVipInfoAsync(String resourceGroupName, String name);
+
+ /**
+ * Get a diagnostics item for an App Service Environment.
+ * Description for Get a diagnostics item for an App Service Environment.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @param diagnosticsName Name of the diagnostics item.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getDiagnosticsItemAsync(String resourceGroupName, String name, String diagnosticsName);
+
+ /**
+ * Get diagnostic information for an App Service Environment.
+ * Description for Get diagnostic information for an App Service Environment.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listDiagnosticsAsync(String resourceGroupName, String name);
+
+ /**
+ * Get the network endpoints of all inbound dependencies of an App Service Environment.
+ * Description for Get the network endpoints of all inbound dependencies of an App Service Environment.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getInboundNetworkDependenciesEndpointsAsync(final String resourceGroupName, final String name);
+
+ /**
+ * Get all multi-role pools.
+ * Description for Get all multi-role pools.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMultiRolePoolsAsync(final String resourceGroupName, final String name);
+
+ /**
+ * Get properties of a multi-role pool.
+ * Description for Get properties of a multi-role pool.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getMultiRolePoolAsync(String resourceGroupName, String name);
+
+ /**
+ * Create or update a multi-role pool.
+ * Description for Create or update a multi-role pool.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @param multiRolePoolEnvelope Properties of the multi-role pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable createOrUpdateMultiRolePoolAsync(String resourceGroupName, String name, WorkerPoolResourceInner multiRolePoolEnvelope);
+
+ /**
+ * Create or update a multi-role pool.
+ * Description for Create or update a multi-role pool.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @param multiRolePoolEnvelope Properties of the multi-role pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable updateMultiRolePoolAsync(String resourceGroupName, String name, WorkerPoolResourceInner multiRolePoolEnvelope);
+
+ /**
+ * Get metric definitions for a specific instance of a multi-role pool of an App Service Environment.
+ * Description for Get metric definitions for a specific instance of a multi-role pool of an App Service Environment.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @param instance Name of the instance in the multi-role pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMultiRolePoolInstanceMetricDefinitionsAsync(final String resourceGroupName, final String name, final String instance);
+
+ /**
+ * Get metric definitions for a multi-role pool of an App Service Environment.
+ * Description for Get metric definitions for a multi-role pool of an App Service Environment.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMultiRoleMetricDefinitionsAsync(final String resourceGroupName, final String name);
+
+ /**
+ * Get metric definitions for a specific instance of a worker pool of an App Service Environment.
+ * Description for Get metric definitions for a specific instance of a worker pool of an App Service Environment.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @param workerPoolName Name of the worker pool.
+ * @param instance Name of the instance in the worker pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listWorkerPoolInstanceMetricDefinitionsAsync(final String resourceGroupName, final String name, final String workerPoolName, final String instance);
+
+ /**
+ * Get metric definitions for a worker pool of an App Service Environment.
+ * Description for Get metric definitions for a worker pool of an App Service Environment.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @param workerPoolName Name of the worker pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listWebWorkerMetricDefinitionsAsync(final String resourceGroupName, final String name, final String workerPoolName);
+
+ /**
+ * Get available SKUs for scaling a multi-role pool.
+ * Description for Get available SKUs for scaling a multi-role pool.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMultiRolePoolSkusAsync(final String resourceGroupName, final String name);
+
+ /**
+ * Get available SKUs for scaling a worker pool.
+ * Description for Get available SKUs for scaling a worker pool.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @param workerPoolName Name of the worker pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listWorkerPoolSkusAsync(final String resourceGroupName, final String name, final String workerPoolName);
+
+ /**
+ * Get usage metrics for a multi-role pool of an App Service Environment.
+ * Description for Get usage metrics for a multi-role pool of an App Service Environment.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listMultiRoleUsagesAsync(final String resourceGroupName, final String name);
+
+ /**
+ * Get global usage metrics of an App Service Environment.
+ * Description for Get global usage metrics of an App Service Environment.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listUsagesAsync(final String resourceGroupName, final String name);
+
+ /**
+ * Get usage metrics for a worker pool of an App Service Environment.
+ * Description for Get usage metrics for a worker pool of an App Service Environment.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @param workerPoolName Name of the worker pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listWebWorkerUsagesAsync(final String resourceGroupName, final String name, final String workerPoolName);
+
+ /**
+ * List all currently running operations on the App Service Environment.
+ * Description for List all currently running operations on the App Service Environment.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listOperationsAsync(String resourceGroupName, String name);
+
+ /**
+ * Get the network endpoints of all outbound dependencies of an App Service Environment.
+ * Description for Get the network endpoints of all outbound dependencies of an App Service Environment.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getOutboundNetworkDependenciesEndpointsAsync(final String resourceGroupName, final String name);
+
+ /**
+ * Get all App Service plans in an App Service Environment.
+ * Description for Get all App Service plans in an App Service Environment.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAppServicePlansAsync(final String resourceGroupName, final String name);
+
+ /**
+ * Get all apps in an App Service Environment.
+ * Description for Get all apps in an App Service Environment.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listWebAppsAsync(final String resourceGroupName, final String name);
+
+ /**
+ * Get properties of a worker pool.
+ * Description for Get properties of a worker pool.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @param workerPoolName Name of the worker pool.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getWorkerPoolAsync(String resourceGroupName, String name, String workerPoolName);
+
+ /**
+ * Get all worker pools of an App Service Environment.
+ * Description for Get all worker pools of an App Service Environment.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service Environment.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listWorkerPoolsAsync(final String resourceGroupName, final String name);
+
+}
diff --git a/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServicePlan.java b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServicePlan.java
new file mode 100644
index 0000000000000..be77cbe298466
--- /dev/null
+++ b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServicePlan.java
@@ -0,0 +1,500 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.appservice.v2019_08_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.appservice.v2019_08_01.implementation.CertificateRegistrationManager;
+import org.joda.time.DateTime;
+import com.microsoft.azure.management.appservice.v2019_08_01.implementation.AppServicePlanInner;
+
+/**
+ * Type representing AppServicePlan.
+ */
+public interface AppServicePlan extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the freeOfferExpirationTime value.
+ */
+ DateTime freeOfferExpirationTime();
+
+ /**
+ * @return the geoRegion value.
+ */
+ String geoRegion();
+
+ /**
+ * @return the hostingEnvironmentProfile value.
+ */
+ HostingEnvironmentProfile hostingEnvironmentProfile();
+
+ /**
+ * @return the hyperV value.
+ */
+ Boolean hyperV();
+
+ /**
+ * @return the isSpot value.
+ */
+ Boolean isSpot();
+
+ /**
+ * @return the isXenon value.
+ */
+ Boolean isXenon();
+
+ /**
+ * @return the kind value.
+ */
+ String kind();
+
+ /**
+ * @return the maximumElasticWorkerCount value.
+ */
+ Integer maximumElasticWorkerCount();
+
+ /**
+ * @return the maximumNumberOfWorkers value.
+ */
+ Integer maximumNumberOfWorkers();
+
+ /**
+ * @return the numberOfSites value.
+ */
+ Integer numberOfSites();
+
+ /**
+ * @return the perSiteScaling value.
+ */
+ Boolean perSiteScaling();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ProvisioningState provisioningState();
+
+ /**
+ * @return the reserved value.
+ */
+ Boolean reserved();
+
+ /**
+ * @return the resourceGroup value.
+ */
+ String resourceGroup();
+
+ /**
+ * @return the sku value.
+ */
+ SkuDescription sku();
+
+ /**
+ * @return the spotExpirationTime value.
+ */
+ DateTime spotExpirationTime();
+
+ /**
+ * @return the status value.
+ */
+ StatusOptions status();
+
+ /**
+ * @return the subscription value.
+ */
+ String subscription();
+
+ /**
+ * @return the targetWorkerCount value.
+ */
+ Integer targetWorkerCount();
+
+ /**
+ * @return the targetWorkerSizeId value.
+ */
+ Integer targetWorkerSizeId();
+
+ /**
+ * @return the workerTierName value.
+ */
+ String workerTierName();
+
+ /**
+ * The entirety of the AppServicePlan definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of AppServicePlan definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a AppServicePlan definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the AppServicePlan definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the appserviceplan definition allowing to specify FreeOfferExpirationTime.
+ */
+ interface WithFreeOfferExpirationTime {
+ /**
+ * Specifies freeOfferExpirationTime.
+ * @param freeOfferExpirationTime The time when the server farm free offer expires
+ * @return the next definition stage
+ */
+ WithCreate withFreeOfferExpirationTime(DateTime freeOfferExpirationTime);
+ }
+
+ /**
+ * The stage of the appserviceplan definition allowing to specify HostingEnvironmentProfile.
+ */
+ interface WithHostingEnvironmentProfile {
+ /**
+ * Specifies hostingEnvironmentProfile.
+ * @param hostingEnvironmentProfile Specification for the App Service Environment to use for the App Service plan
+ * @return the next definition stage
+ */
+ WithCreate withHostingEnvironmentProfile(HostingEnvironmentProfile hostingEnvironmentProfile);
+ }
+
+ /**
+ * The stage of the appserviceplan definition allowing to specify HyperV.
+ */
+ interface WithHyperV {
+ /**
+ * Specifies hyperV.
+ * @param hyperV If Hyper-V container app service plan <code>true</code>, <code>false</code> otherwise
+ * @return the next definition stage
+ */
+ WithCreate withHyperV(Boolean hyperV);
+ }
+
+ /**
+ * The stage of the appserviceplan definition allowing to specify IsSpot.
+ */
+ interface WithIsSpot {
+ /**
+ * Specifies isSpot.
+ * @param isSpot If <code>true</code>, this App Service Plan owns spot instances
+ * @return the next definition stage
+ */
+ WithCreate withIsSpot(Boolean isSpot);
+ }
+
+ /**
+ * The stage of the appserviceplan definition allowing to specify IsXenon.
+ */
+ interface WithIsXenon {
+ /**
+ * Specifies isXenon.
+ * @param isXenon Obsolete: If Hyper-V container app service plan <code>true</code>, <code>false</code> otherwise
+ * @return the next definition stage
+ */
+ WithCreate withIsXenon(Boolean isXenon);
+ }
+
+ /**
+ * The stage of the appserviceplan definition allowing to specify Kind.
+ */
+ interface WithKind {
+ /**
+ * Specifies kind.
+ * @param kind Kind of resource
+ * @return the next definition stage
+ */
+ WithCreate withKind(String kind);
+ }
+
+ /**
+ * The stage of the appserviceplan definition allowing to specify MaximumElasticWorkerCount.
+ */
+ interface WithMaximumElasticWorkerCount {
+ /**
+ * Specifies maximumElasticWorkerCount.
+ * @param maximumElasticWorkerCount Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan
+ * @return the next definition stage
+ */
+ WithCreate withMaximumElasticWorkerCount(Integer maximumElasticWorkerCount);
+ }
+
+ /**
+ * The stage of the appserviceplan definition allowing to specify PerSiteScaling.
+ */
+ interface WithPerSiteScaling {
+ /**
+ * Specifies perSiteScaling.
+ * @param perSiteScaling If <code>true</code>, apps assigned to this App Service plan can be scaled independently.
+ If <code>false</code>, apps assigned to this App Service plan will scale to all instances of the plan
+ * @return the next definition stage
+ */
+ WithCreate withPerSiteScaling(Boolean perSiteScaling);
+ }
+
+ /**
+ * The stage of the appserviceplan definition allowing to specify Reserved.
+ */
+ interface WithReserved {
+ /**
+ * Specifies reserved.
+ * @param reserved If Linux app service plan <code>true</code>, <code>false</code> otherwise
+ * @return the next definition stage
+ */
+ WithCreate withReserved(Boolean reserved);
+ }
+
+ /**
+ * The stage of the appserviceplan definition allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ * @param sku the sku parameter value
+ * @return the next definition stage
+ */
+ WithCreate withSku(SkuDescription sku);
+ }
+
+ /**
+ * The stage of the appserviceplan definition allowing to specify SpotExpirationTime.
+ */
+ interface WithSpotExpirationTime {
+ /**
+ * Specifies spotExpirationTime.
+ * @param spotExpirationTime The time when the server farm expires. Valid only if it is a spot server farm
+ * @return the next definition stage
+ */
+ WithCreate withSpotExpirationTime(DateTime spotExpirationTime);
+ }
+
+ /**
+ * The stage of the appserviceplan definition allowing to specify TargetWorkerCount.
+ */
+ interface WithTargetWorkerCount {
+ /**
+ * Specifies targetWorkerCount.
+ * @param targetWorkerCount Scaling worker count
+ * @return the next definition stage
+ */
+ WithCreate withTargetWorkerCount(Integer targetWorkerCount);
+ }
+
+ /**
+ * The stage of the appserviceplan definition allowing to specify TargetWorkerSizeId.
+ */
+ interface WithTargetWorkerSizeId {
+ /**
+ * Specifies targetWorkerSizeId.
+ * @param targetWorkerSizeId Scaling worker size ID
+ * @return the next definition stage
+ */
+ WithCreate withTargetWorkerSizeId(Integer targetWorkerSizeId);
+ }
+
+ /**
+ * The stage of the appserviceplan definition allowing to specify WorkerTierName.
+ */
+ interface WithWorkerTierName {
+ /**
+ * Specifies workerTierName.
+ * @param workerTierName Target worker tier assigned to the App Service plan
+ * @return the next definition stage
+ */
+ WithCreate withWorkerTierName(String workerTierName);
+ }
+
+ /**
+ * 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.WithFreeOfferExpirationTime, DefinitionStages.WithHostingEnvironmentProfile, DefinitionStages.WithHyperV, DefinitionStages.WithIsSpot, DefinitionStages.WithIsXenon, DefinitionStages.WithKind, DefinitionStages.WithMaximumElasticWorkerCount, DefinitionStages.WithPerSiteScaling, DefinitionStages.WithReserved, DefinitionStages.WithSku, DefinitionStages.WithSpotExpirationTime, DefinitionStages.WithTargetWorkerCount, DefinitionStages.WithTargetWorkerSizeId, DefinitionStages.WithWorkerTierName {
+ }
+ }
+ /**
+ * The template for a AppServicePlan update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithFreeOfferExpirationTime, UpdateStages.WithHostingEnvironmentProfile, UpdateStages.WithHyperV, UpdateStages.WithIsSpot, UpdateStages.WithIsXenon, UpdateStages.WithKind, UpdateStages.WithMaximumElasticWorkerCount, UpdateStages.WithPerSiteScaling, UpdateStages.WithReserved, UpdateStages.WithSpotExpirationTime, UpdateStages.WithTargetWorkerCount, UpdateStages.WithTargetWorkerSizeId, UpdateStages.WithWorkerTierName {
+ }
+
+ /**
+ * Grouping of AppServicePlan update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the appserviceplan update allowing to specify FreeOfferExpirationTime.
+ */
+ interface WithFreeOfferExpirationTime {
+ /**
+ * Specifies freeOfferExpirationTime.
+ * @param freeOfferExpirationTime The time when the server farm free offer expires
+ * @return the next update stage
+ */
+ Update withFreeOfferExpirationTime(DateTime freeOfferExpirationTime);
+ }
+
+ /**
+ * The stage of the appserviceplan update allowing to specify HostingEnvironmentProfile.
+ */
+ interface WithHostingEnvironmentProfile {
+ /**
+ * Specifies hostingEnvironmentProfile.
+ * @param hostingEnvironmentProfile Specification for the App Service Environment to use for the App Service plan
+ * @return the next update stage
+ */
+ Update withHostingEnvironmentProfile(HostingEnvironmentProfile hostingEnvironmentProfile);
+ }
+
+ /**
+ * The stage of the appserviceplan update allowing to specify HyperV.
+ */
+ interface WithHyperV {
+ /**
+ * Specifies hyperV.
+ * @param hyperV If Hyper-V container app service plan <code>true</code>, <code>false</code> otherwise
+ * @return the next update stage
+ */
+ Update withHyperV(Boolean hyperV);
+ }
+
+ /**
+ * The stage of the appserviceplan update allowing to specify IsSpot.
+ */
+ interface WithIsSpot {
+ /**
+ * Specifies isSpot.
+ * @param isSpot If <code>true</code>, this App Service Plan owns spot instances
+ * @return the next update stage
+ */
+ Update withIsSpot(Boolean isSpot);
+ }
+
+ /**
+ * The stage of the appserviceplan update allowing to specify IsXenon.
+ */
+ interface WithIsXenon {
+ /**
+ * Specifies isXenon.
+ * @param isXenon Obsolete: If Hyper-V container app service plan <code>true</code>, <code>false</code> otherwise
+ * @return the next update stage
+ */
+ Update withIsXenon(Boolean isXenon);
+ }
+
+ /**
+ * The stage of the appserviceplan update allowing to specify Kind.
+ */
+ interface WithKind {
+ /**
+ * Specifies kind.
+ * @param kind Kind of resource
+ * @return the next update stage
+ */
+ Update withKind(String kind);
+ }
+
+ /**
+ * The stage of the appserviceplan update allowing to specify MaximumElasticWorkerCount.
+ */
+ interface WithMaximumElasticWorkerCount {
+ /**
+ * Specifies maximumElasticWorkerCount.
+ * @param maximumElasticWorkerCount Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan
+ * @return the next update stage
+ */
+ Update withMaximumElasticWorkerCount(Integer maximumElasticWorkerCount);
+ }
+
+ /**
+ * The stage of the appserviceplan update allowing to specify PerSiteScaling.
+ */
+ interface WithPerSiteScaling {
+ /**
+ * Specifies perSiteScaling.
+ * @param perSiteScaling If <code>true</code>, apps assigned to this App Service plan can be scaled independently.
+ If <code>false</code>, apps assigned to this App Service plan will scale to all instances of the plan
+ * @return the next update stage
+ */
+ Update withPerSiteScaling(Boolean perSiteScaling);
+ }
+
+ /**
+ * The stage of the appserviceplan update allowing to specify Reserved.
+ */
+ interface WithReserved {
+ /**
+ * Specifies reserved.
+ * @param reserved This needs to set to <code>true</code>Â when creating a Linux App Service Plan, along with <code>kind</code> set to <code>Linux</code>. It should be <code>false</code> otherwise
+ * @return the next update stage
+ */
+ Update withReserved(Boolean reserved);
+ }
+
+ /**
+ * The stage of the appserviceplan update allowing to specify SpotExpirationTime.
+ */
+ interface WithSpotExpirationTime {
+ /**
+ * Specifies spotExpirationTime.
+ * @param spotExpirationTime The time when the server farm expires. Valid only if it is a spot server farm
+ * @return the next update stage
+ */
+ Update withSpotExpirationTime(DateTime spotExpirationTime);
+ }
+
+ /**
+ * The stage of the appserviceplan update allowing to specify TargetWorkerCount.
+ */
+ interface WithTargetWorkerCount {
+ /**
+ * Specifies targetWorkerCount.
+ * @param targetWorkerCount Scaling worker count
+ * @return the next update stage
+ */
+ Update withTargetWorkerCount(Integer targetWorkerCount);
+ }
+
+ /**
+ * The stage of the appserviceplan update allowing to specify TargetWorkerSizeId.
+ */
+ interface WithTargetWorkerSizeId {
+ /**
+ * Specifies targetWorkerSizeId.
+ * @param targetWorkerSizeId Scaling worker size ID
+ * @return the next update stage
+ */
+ Update withTargetWorkerSizeId(Integer targetWorkerSizeId);
+ }
+
+ /**
+ * The stage of the appserviceplan update allowing to specify WorkerTierName.
+ */
+ interface WithWorkerTierName {
+ /**
+ * Specifies workerTierName.
+ * @param workerTierName Target worker tier assigned to the App Service plan
+ * @return the next update stage
+ */
+ Update withWorkerTierName(String workerTierName);
+ }
+
+ }
+}
diff --git a/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServicePlanPatchResource.java b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServicePlanPatchResource.java
new file mode 100644
index 0000000000000..5ef2372984612
--- /dev/null
+++ b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServicePlanPatchResource.java
@@ -0,0 +1,454 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.appservice.v2019_08_01;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * ARM resource for a app service plan.
+ */
+@JsonFlatten
+public class AppServicePlanPatchResource extends ProxyOnlyResource {
+ /**
+ * Target worker tier assigned to the App Service plan.
+ */
+ @JsonProperty(value = "properties.workerTierName")
+ private String workerTierName;
+
+ /**
+ * App Service plan status. Possible values include: 'Ready', 'Pending',
+ * 'Creating'.
+ */
+ @JsonProperty(value = "properties.status", access = JsonProperty.Access.WRITE_ONLY)
+ private StatusOptions status;
+
+ /**
+ * App Service plan subscription.
+ */
+ @JsonProperty(value = "properties.subscription", access = JsonProperty.Access.WRITE_ONLY)
+ private String subscription;
+
+ /**
+ * Specification for the App Service Environment to use for the App Service
+ * plan.
+ */
+ @JsonProperty(value = "properties.hostingEnvironmentProfile")
+ private HostingEnvironmentProfile hostingEnvironmentProfile;
+
+ /**
+ * Maximum number of instances that can be assigned to this App Service
+ * plan.
+ */
+ @JsonProperty(value = "properties.maximumNumberOfWorkers", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer maximumNumberOfWorkers;
+
+ /**
+ * Geographical location for the App Service plan.
+ */
+ @JsonProperty(value = "properties.geoRegion", access = JsonProperty.Access.WRITE_ONLY)
+ private String geoRegion;
+
+ /**
+ * If <code>true</code>, apps assigned to this App Service plan
+ * can be scaled independently.
+ * If <code>false</code>, apps assigned to this App Service
+ * plan will scale to all instances of the plan.
+ */
+ @JsonProperty(value = "properties.perSiteScaling")
+ private Boolean perSiteScaling;
+
+ /**
+ * Maximum number of total workers allowed for this ElasticScaleEnabled App
+ * Service Plan.
+ */
+ @JsonProperty(value = "properties.maximumElasticWorkerCount")
+ private Integer maximumElasticWorkerCount;
+
+ /**
+ * Number of apps assigned to this App Service plan.
+ */
+ @JsonProperty(value = "properties.numberOfSites", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer numberOfSites;
+
+ /**
+ * If <code>true</code>, this App Service Plan owns spot
+ * instances.
+ */
+ @JsonProperty(value = "properties.isSpot")
+ private Boolean isSpot;
+
+ /**
+ * The time when the server farm expires. Valid only if it is a spot server
+ * farm.
+ */
+ @JsonProperty(value = "properties.spotExpirationTime")
+ private DateTime spotExpirationTime;
+
+ /**
+ * The time when the server farm free offer expires.
+ */
+ @JsonProperty(value = "properties.freeOfferExpirationTime")
+ private DateTime freeOfferExpirationTime;
+
+ /**
+ * Resource group of the App Service plan.
+ */
+ @JsonProperty(value = "properties.resourceGroup", access = JsonProperty.Access.WRITE_ONLY)
+ private String resourceGroup;
+
+ /**
+ * This needs to set to <code>true</code>Â when creating a Linux
+ * App Service Plan, along with <code>kind</code> set to
+ * <code>Linux</code>. It should be
+ * <code>false</code> otherwise.
+ */
+ @JsonProperty(value = "properties.reserved")
+ private Boolean reserved;
+
+ /**
+ * Obsolete: If Hyper-V container app service plan
+ * <code>true</code>, <code>false</code> otherwise.
+ */
+ @JsonProperty(value = "properties.isXenon")
+ private Boolean isXenon;
+
+ /**
+ * If Hyper-V container app service plan <code>true</code>,
+ * <code>false</code> otherwise.
+ */
+ @JsonProperty(value = "properties.hyperV")
+ private Boolean hyperV;
+
+ /**
+ * Scaling worker count.
+ */
+ @JsonProperty(value = "properties.targetWorkerCount")
+ private Integer targetWorkerCount;
+
+ /**
+ * Scaling worker size ID.
+ */
+ @JsonProperty(value = "properties.targetWorkerSizeId")
+ private Integer targetWorkerSizeId;
+
+ /**
+ * Provisioning state of the App Service Environment. Possible values
+ * include: 'Succeeded', 'Failed', 'Canceled', 'InProgress', 'Deleting'.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private ProvisioningState provisioningState;
+
+ /**
+ * Get target worker tier assigned to the App Service plan.
+ *
+ * @return the workerTierName value
+ */
+ public String workerTierName() {
+ return this.workerTierName;
+ }
+
+ /**
+ * Set target worker tier assigned to the App Service plan.
+ *
+ * @param workerTierName the workerTierName value to set
+ * @return the AppServicePlanPatchResource object itself.
+ */
+ public AppServicePlanPatchResource withWorkerTierName(String workerTierName) {
+ this.workerTierName = workerTierName;
+ return this;
+ }
+
+ /**
+ * Get app Service plan status. Possible values include: 'Ready', 'Pending', 'Creating'.
+ *
+ * @return the status value
+ */
+ public StatusOptions status() {
+ return this.status;
+ }
+
+ /**
+ * Get app Service plan subscription.
+ *
+ * @return the subscription value
+ */
+ public String subscription() {
+ return this.subscription;
+ }
+
+ /**
+ * Get specification for the App Service Environment to use for the App Service plan.
+ *
+ * @return the hostingEnvironmentProfile value
+ */
+ public HostingEnvironmentProfile hostingEnvironmentProfile() {
+ return this.hostingEnvironmentProfile;
+ }
+
+ /**
+ * Set specification for the App Service Environment to use for the App Service plan.
+ *
+ * @param hostingEnvironmentProfile the hostingEnvironmentProfile value to set
+ * @return the AppServicePlanPatchResource object itself.
+ */
+ public AppServicePlanPatchResource withHostingEnvironmentProfile(HostingEnvironmentProfile hostingEnvironmentProfile) {
+ this.hostingEnvironmentProfile = hostingEnvironmentProfile;
+ return this;
+ }
+
+ /**
+ * Get maximum number of instances that can be assigned to this App Service plan.
+ *
+ * @return the maximumNumberOfWorkers value
+ */
+ public Integer maximumNumberOfWorkers() {
+ return this.maximumNumberOfWorkers;
+ }
+
+ /**
+ * Get geographical location for the App Service plan.
+ *
+ * @return the geoRegion value
+ */
+ public String geoRegion() {
+ return this.geoRegion;
+ }
+
+ /**
+ * Get if <code>true</code>, apps assigned to this App Service plan can be scaled independently.
+ If <code>false</code>, apps assigned to this App Service plan will scale to all instances of the plan.
+ *
+ * @return the perSiteScaling value
+ */
+ public Boolean perSiteScaling() {
+ return this.perSiteScaling;
+ }
+
+ /**
+ * Set if <code>true</code>, apps assigned to this App Service plan can be scaled independently.
+ If <code>false</code>, apps assigned to this App Service plan will scale to all instances of the plan.
+ *
+ * @param perSiteScaling the perSiteScaling value to set
+ * @return the AppServicePlanPatchResource object itself.
+ */
+ public AppServicePlanPatchResource withPerSiteScaling(Boolean perSiteScaling) {
+ this.perSiteScaling = perSiteScaling;
+ return this;
+ }
+
+ /**
+ * Get maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan.
+ *
+ * @return the maximumElasticWorkerCount value
+ */
+ public Integer maximumElasticWorkerCount() {
+ return this.maximumElasticWorkerCount;
+ }
+
+ /**
+ * Set maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan.
+ *
+ * @param maximumElasticWorkerCount the maximumElasticWorkerCount value to set
+ * @return the AppServicePlanPatchResource object itself.
+ */
+ public AppServicePlanPatchResource withMaximumElasticWorkerCount(Integer maximumElasticWorkerCount) {
+ this.maximumElasticWorkerCount = maximumElasticWorkerCount;
+ return this;
+ }
+
+ /**
+ * Get number of apps assigned to this App Service plan.
+ *
+ * @return the numberOfSites value
+ */
+ public Integer numberOfSites() {
+ return this.numberOfSites;
+ }
+
+ /**
+ * Get if <code>true</code>, this App Service Plan owns spot instances.
+ *
+ * @return the isSpot value
+ */
+ public Boolean isSpot() {
+ return this.isSpot;
+ }
+
+ /**
+ * Set if <code>true</code>, this App Service Plan owns spot instances.
+ *
+ * @param isSpot the isSpot value to set
+ * @return the AppServicePlanPatchResource object itself.
+ */
+ public AppServicePlanPatchResource withIsSpot(Boolean isSpot) {
+ this.isSpot = isSpot;
+ return this;
+ }
+
+ /**
+ * Get the time when the server farm expires. Valid only if it is a spot server farm.
+ *
+ * @return the spotExpirationTime value
+ */
+ public DateTime spotExpirationTime() {
+ return this.spotExpirationTime;
+ }
+
+ /**
+ * Set the time when the server farm expires. Valid only if it is a spot server farm.
+ *
+ * @param spotExpirationTime the spotExpirationTime value to set
+ * @return the AppServicePlanPatchResource object itself.
+ */
+ public AppServicePlanPatchResource withSpotExpirationTime(DateTime spotExpirationTime) {
+ this.spotExpirationTime = spotExpirationTime;
+ return this;
+ }
+
+ /**
+ * Get the time when the server farm free offer expires.
+ *
+ * @return the freeOfferExpirationTime value
+ */
+ public DateTime freeOfferExpirationTime() {
+ return this.freeOfferExpirationTime;
+ }
+
+ /**
+ * Set the time when the server farm free offer expires.
+ *
+ * @param freeOfferExpirationTime the freeOfferExpirationTime value to set
+ * @return the AppServicePlanPatchResource object itself.
+ */
+ public AppServicePlanPatchResource withFreeOfferExpirationTime(DateTime freeOfferExpirationTime) {
+ this.freeOfferExpirationTime = freeOfferExpirationTime;
+ return this;
+ }
+
+ /**
+ * Get resource group of the App Service plan.
+ *
+ * @return the resourceGroup value
+ */
+ public String resourceGroup() {
+ return this.resourceGroup;
+ }
+
+ /**
+ * Get this needs to set to <code>true</code>Â when creating a Linux App Service Plan, along with <code>kind</code> set to <code>Linux</code>. It should be <code>false</code> otherwise.
+ *
+ * @return the reserved value
+ */
+ public Boolean reserved() {
+ return this.reserved;
+ }
+
+ /**
+ * Set this needs to set to <code>true</code>Â when creating a Linux App Service Plan, along with <code>kind</code> set to <code>Linux</code>. It should be <code>false</code> otherwise.
+ *
+ * @param reserved the reserved value to set
+ * @return the AppServicePlanPatchResource object itself.
+ */
+ public AppServicePlanPatchResource withReserved(Boolean reserved) {
+ this.reserved = reserved;
+ return this;
+ }
+
+ /**
+ * Get obsolete: If Hyper-V container app service plan <code>true</code>, <code>false</code> otherwise.
+ *
+ * @return the isXenon value
+ */
+ public Boolean isXenon() {
+ return this.isXenon;
+ }
+
+ /**
+ * Set obsolete: If Hyper-V container app service plan <code>true</code>, <code>false</code> otherwise.
+ *
+ * @param isXenon the isXenon value to set
+ * @return the AppServicePlanPatchResource object itself.
+ */
+ public AppServicePlanPatchResource withIsXenon(Boolean isXenon) {
+ this.isXenon = isXenon;
+ return this;
+ }
+
+ /**
+ * Get if Hyper-V container app service plan <code>true</code>, <code>false</code> otherwise.
+ *
+ * @return the hyperV value
+ */
+ public Boolean hyperV() {
+ return this.hyperV;
+ }
+
+ /**
+ * Set if Hyper-V container app service plan <code>true</code>, <code>false</code> otherwise.
+ *
+ * @param hyperV the hyperV value to set
+ * @return the AppServicePlanPatchResource object itself.
+ */
+ public AppServicePlanPatchResource withHyperV(Boolean hyperV) {
+ this.hyperV = hyperV;
+ return this;
+ }
+
+ /**
+ * Get scaling worker count.
+ *
+ * @return the targetWorkerCount value
+ */
+ public Integer targetWorkerCount() {
+ return this.targetWorkerCount;
+ }
+
+ /**
+ * Set scaling worker count.
+ *
+ * @param targetWorkerCount the targetWorkerCount value to set
+ * @return the AppServicePlanPatchResource object itself.
+ */
+ public AppServicePlanPatchResource withTargetWorkerCount(Integer targetWorkerCount) {
+ this.targetWorkerCount = targetWorkerCount;
+ return this;
+ }
+
+ /**
+ * Get scaling worker size ID.
+ *
+ * @return the targetWorkerSizeId value
+ */
+ public Integer targetWorkerSizeId() {
+ return this.targetWorkerSizeId;
+ }
+
+ /**
+ * Set scaling worker size ID.
+ *
+ * @param targetWorkerSizeId the targetWorkerSizeId value to set
+ * @return the AppServicePlanPatchResource object itself.
+ */
+ public AppServicePlanPatchResource withTargetWorkerSizeId(Integer targetWorkerSizeId) {
+ this.targetWorkerSizeId = targetWorkerSizeId;
+ return this;
+ }
+
+ /**
+ * Get provisioning state of the App Service Environment. Possible values include: 'Succeeded', 'Failed', 'Canceled', 'InProgress', 'Deleting'.
+ *
+ * @return the provisioningState value
+ */
+ public ProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+}
diff --git a/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServicePlanRestrictions.java b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServicePlanRestrictions.java
new file mode 100644
index 0000000000000..f72dad2f8656e
--- /dev/null
+++ b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServicePlanRestrictions.java
@@ -0,0 +1,65 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.appservice.v2019_08_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for AppServicePlanRestrictions.
+ */
+public enum AppServicePlanRestrictions {
+ /** Enum value None. */
+ NONE("None"),
+
+ /** Enum value Free. */
+ FREE("Free"),
+
+ /** Enum value Shared. */
+ SHARED("Shared"),
+
+ /** Enum value Basic. */
+ BASIC("Basic"),
+
+ /** Enum value Standard. */
+ STANDARD("Standard"),
+
+ /** Enum value Premium. */
+ PREMIUM("Premium");
+
+ /** The actual serialized value for a AppServicePlanRestrictions instance. */
+ private String value;
+
+ AppServicePlanRestrictions(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a AppServicePlanRestrictions instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed AppServicePlanRestrictions object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static AppServicePlanRestrictions fromString(String value) {
+ AppServicePlanRestrictions[] items = AppServicePlanRestrictions.values();
+ for (AppServicePlanRestrictions item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServicePlans.java b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServicePlans.java
new file mode 100644
index 0000000000000..0e59f1a36d3ae
--- /dev/null
+++ b/sdk/appservice/mgmt-v2019_08_01/src/main/java/com/microsoft/azure/management/appservice/v2019_08_01/AppServicePlans.java
@@ -0,0 +1,295 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.appservice.v2019_08_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.appservice.v2019_08_01.AppServicePlan;
+import rx.Completable;
+import com.microsoft.azure.management.appservice.v2019_08_01.Capability;
+import com.microsoft.azure.management.appservice.v2019_08_01.HybridConnection;
+import com.microsoft.azure.management.appservice.v2019_08_01.ServerfarmSite;
+import com.microsoft.azure.management.appservice.v2019_08_01.ServerfarmCsmUsageQuota;
+import com.microsoft.azure.management.appservice.v2019_08_01.ServerfarmVnetInfo;
+import com.microsoft.azure.management.appservice.v2019_08_01.VnetRoute;
+
+/**
+ * Type representing AppServicePlans.
+ */
+public interface AppServicePlans {
+ /**
+ * Begins definition for a new Serverfarm resource.
+ * @param name resource name.
+ * @return the first stage of the new Serverfarm definition.
+ */
+ AppServicePlan.DefinitionStages.Blank defineServerfarm(String name);
+
+ /**
+ * Begins definition for a new Route resource.
+ * @param name resource name.
+ * @return the first stage of the new Route definition.
+ */
+ VnetRoute.DefinitionStages.Blank defineRoute(String name);
+
+ /**
+ * Get an App Service plan.
+ * Description for Get an App Service plan.
+ *
+ * @param resourceGroupName resource group name
+ * @param name resource name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByResourceGroupAsync(String resourceGroupName, String name);
+
+ /**
+ * Get all App Service plans in a resource group.
+ * Description for Get all App Service plans in a resource group.
+ *
+ * @param resourceGroupName resource group name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByResourceGroupAsync(String resourceGroupName);
+
+ /**
+ * Get all App Service plans for a subscription.
+ * Description for Get all App Service plans for a subscription.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+ /**
+ * Delete an App Service plan.
+ * Description for Delete an App Service plan.
+ *
+ * @param resourceGroupName resource group name
+ * @param name resource name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String name);
+
+ /**
+ * Restart all apps in an App Service plan.
+ * Description for Restart all apps in an App Service plan.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of the App Service plan.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable restartWebAppsAsync(String resourceGroupName, String name);
+
+ /**
+ * Gets all selectable SKUs for a given App Service Plan.
+ * Description for Gets all selectable SKUs for a given App Service Plan.
+ *
+ * @param resourceGroupName Name of the resource group to which the resource belongs.
+ * @param name Name of App Service Plan
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable