diff --git a/api-specs.json b/api-specs.json
index 0c55cc6838b44..178c752c776ec 100644
--- a/api-specs.json
+++ b/api-specs.json
@@ -1,4 +1,8 @@
{
+ "apimanagement/resource-manager": {
+ "source": "specification/apimanagement/resource-manager/readme.md",
+ "args": "--multiapi --fluent"
+ },
"applicationinsights/resource-manager": {
"source": "specification/applicationinsights/resource-manager/readme.md",
"args": "--multiapi --fluent"
diff --git a/apimanagement/resource-manager/v2019_01_01/pom.xml b/apimanagement/resource-manager/v2019_01_01/pom.xml
new file mode 100644
index 0000000000000..f1423daab003c
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/pom.xml
@@ -0,0 +1,133 @@
+
+
+ 4.0.0
+ com.microsoft.azure.apimanagement.v2019_01_01
+
+ com.microsoft.azure
+ azure-arm-parent
+ 0.0.3-beta
+ ../../../pom.xml
+
+ azure-mgmt-apimanagement
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for ApiManagement Management
+ This package contains Microsoft ApiManagement 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
+
+
+
+
+
+ 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/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AccessInformationContract.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AccessInformationContract.java
new file mode 100644
index 0000000000000..92039b57896fc
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AccessInformationContract.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiManagementManager;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.AccessInformationContractInner;
+
+/**
+ * Type representing AccessInformationContract.
+ */
+public interface AccessInformationContract extends HasInner, HasManager {
+ /**
+ * @return the enabled value.
+ */
+ Boolean enabled();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the primaryKey value.
+ */
+ String primaryKey();
+
+ /**
+ * @return the secondaryKey value.
+ */
+ String secondaryKey();
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AccessInformationUpdateParameters.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AccessInformationUpdateParameters.java
new file mode 100644
index 0000000000000..b963b259865fa
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AccessInformationUpdateParameters.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Tenant access information update parameters.
+ */
+@JsonFlatten
+public class AccessInformationUpdateParameters {
+ /**
+ * Determines whether direct access is enabled.
+ */
+ @JsonProperty(value = "properties.enabled")
+ private Boolean enabled;
+
+ /**
+ * Get determines whether direct access is enabled.
+ *
+ * @return the enabled value
+ */
+ public Boolean enabled() {
+ return this.enabled;
+ }
+
+ /**
+ * Set determines whether direct access is enabled.
+ *
+ * @param enabled the enabled value to set
+ * @return the AccessInformationUpdateParameters object itself.
+ */
+ public AccessInformationUpdateParameters withEnabled(Boolean enabled) {
+ this.enabled = enabled;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AdditionalLocation.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AdditionalLocation.java
new file mode 100644
index 0000000000000..b70baabb30702
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AdditionalLocation.java
@@ -0,0 +1,146 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Description of an additional API Management resource location.
+ */
+public class AdditionalLocation {
+ /**
+ * The location name of the additional region among Azure Data center
+ * regions.
+ */
+ @JsonProperty(value = "location", required = true)
+ private String location;
+
+ /**
+ * SKU properties of the API Management service.
+ */
+ @JsonProperty(value = "sku", required = true)
+ private ApiManagementServiceSkuProperties sku;
+
+ /**
+ * Public Static Load Balanced IP addresses of the API Management service
+ * in the additional location. Available only for Basic, Standard and
+ * Premium SKU.
+ */
+ @JsonProperty(value = "publicIPAddresses", access = JsonProperty.Access.WRITE_ONLY)
+ private List publicIPAddresses;
+
+ /**
+ * Private Static Load Balanced IP addresses of the API Management service
+ * which is deployed in an Internal Virtual Network in a particular
+ * additional location. Available only for Basic, Standard and Premium SKU.
+ */
+ @JsonProperty(value = "privateIPAddresses", access = JsonProperty.Access.WRITE_ONLY)
+ private List privateIPAddresses;
+
+ /**
+ * Virtual network configuration for the location.
+ */
+ @JsonProperty(value = "virtualNetworkConfiguration")
+ private VirtualNetworkConfiguration virtualNetworkConfiguration;
+
+ /**
+ * Gateway URL of the API Management service in the Region.
+ */
+ @JsonProperty(value = "gatewayRegionalUrl", access = JsonProperty.Access.WRITE_ONLY)
+ private String gatewayRegionalUrl;
+
+ /**
+ * Get the location name of the additional region among Azure Data center regions.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set the location name of the additional region among Azure Data center regions.
+ *
+ * @param location the location value to set
+ * @return the AdditionalLocation object itself.
+ */
+ public AdditionalLocation withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+ /**
+ * Get sKU properties of the API Management service.
+ *
+ * @return the sku value
+ */
+ public ApiManagementServiceSkuProperties sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set sKU properties of the API Management service.
+ *
+ * @param sku the sku value to set
+ * @return the AdditionalLocation object itself.
+ */
+ public AdditionalLocation withSku(ApiManagementServiceSkuProperties sku) {
+ this.sku = sku;
+ return this;
+ }
+
+ /**
+ * Get public Static Load Balanced IP addresses of the API Management service in the additional location. Available only for Basic, Standard and Premium SKU.
+ *
+ * @return the publicIPAddresses value
+ */
+ public List publicIPAddresses() {
+ return this.publicIPAddresses;
+ }
+
+ /**
+ * Get private Static Load Balanced IP addresses of the API Management service which is deployed in an Internal Virtual Network in a particular additional location. Available only for Basic, Standard and Premium SKU.
+ *
+ * @return the privateIPAddresses value
+ */
+ public List privateIPAddresses() {
+ return this.privateIPAddresses;
+ }
+
+ /**
+ * Get virtual network configuration for the location.
+ *
+ * @return the virtualNetworkConfiguration value
+ */
+ public VirtualNetworkConfiguration virtualNetworkConfiguration() {
+ return this.virtualNetworkConfiguration;
+ }
+
+ /**
+ * Set virtual network configuration for the location.
+ *
+ * @param virtualNetworkConfiguration the virtualNetworkConfiguration value to set
+ * @return the AdditionalLocation object itself.
+ */
+ public AdditionalLocation withVirtualNetworkConfiguration(VirtualNetworkConfiguration virtualNetworkConfiguration) {
+ this.virtualNetworkConfiguration = virtualNetworkConfiguration;
+ return this;
+ }
+
+ /**
+ * Get gateway URL of the API Management service in the Region.
+ *
+ * @return the gatewayRegionalUrl value
+ */
+ public String gatewayRegionalUrl() {
+ return this.gatewayRegionalUrl;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AlwaysLog.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AlwaysLog.java
new file mode 100644
index 0000000000000..e4461900c8b35
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AlwaysLog.java
@@ -0,0 +1,38 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for AlwaysLog.
+ */
+public final class AlwaysLog extends ExpandableStringEnum {
+ /** Static value allErrors for AlwaysLog. */
+ public static final AlwaysLog ALL_ERRORS = fromString("allErrors");
+
+ /**
+ * Creates or finds a AlwaysLog from its string representation.
+ * @param name a name to look for
+ * @return the corresponding AlwaysLog
+ */
+ @JsonCreator
+ public static AlwaysLog fromString(String name) {
+ return fromString(name, AlwaysLog.class);
+ }
+
+ /**
+ * @return known AlwaysLog values
+ */
+ public static Collection values() {
+ return values(AlwaysLog.class);
+ }
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiContract.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiContract.java
new file mode 100644
index 0000000000000..bde99692f9963
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiContract.java
@@ -0,0 +1,709 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiContractInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiManagementManager;
+import java.util.List;
+
+/**
+ * Type representing ApiContract.
+ */
+public interface ApiContract extends HasInner, Indexable, Updatable, HasManager {
+ /**
+ * @return the apiRevision value.
+ */
+ String apiRevision();
+
+ /**
+ * @return the apiRevisionDescription value.
+ */
+ String apiRevisionDescription();
+
+ /**
+ * @return the apiType value.
+ */
+ ApiType apiType();
+
+ /**
+ * @return the apiVersion value.
+ */
+ String apiVersion();
+
+ /**
+ * @return the apiVersionDescription value.
+ */
+ String apiVersionDescription();
+
+ /**
+ * @return the apiVersionSet value.
+ */
+ ApiVersionSetContractDetails apiVersionSet();
+
+ /**
+ * @return the apiVersionSetId value.
+ */
+ String apiVersionSetId();
+
+ /**
+ * @return the authenticationSettings value.
+ */
+ AuthenticationSettingsContract authenticationSettings();
+
+ /**
+ * @return the description value.
+ */
+ String description();
+
+ /**
+ * @return the displayName value.
+ */
+ String displayName();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the isCurrent value.
+ */
+ Boolean isCurrent();
+
+ /**
+ * @return the isOnline value.
+ */
+ Boolean isOnline();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the path value.
+ */
+ String path();
+
+ /**
+ * @return the protocols value.
+ */
+ List protocols();
+
+ /**
+ * @return the serviceUrl value.
+ */
+ String serviceUrl();
+
+ /**
+ * @return the sourceApiId value.
+ */
+ String sourceApiId();
+
+ /**
+ * @return the subscriptionKeyParameterNames value.
+ */
+ SubscriptionKeyParameterNamesContract subscriptionKeyParameterNames();
+
+ /**
+ * @return the subscriptionRequired value.
+ */
+ Boolean subscriptionRequired();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the ApiContract definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithResourceGroupName, DefinitionStages.WithServiceName, DefinitionStages.WithIfMatch, DefinitionStages.WithPath, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ApiContract definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ApiContract definition.
+ */
+ interface Blank extends WithResourceGroupName {
+ }
+
+ /**
+ * The stage of the apicontract definition allowing to specify ResourceGroupName.
+ */
+ interface WithResourceGroupName {
+ /**
+ * Specifies resourceGroupName.
+ * @param resourceGroupName The name of the resource group
+ * @return the next definition stage
+ */
+ WithServiceName withResourceGroupName(String resourceGroupName);
+ }
+
+ /**
+ * The stage of the apicontract definition allowing to specify ServiceName.
+ */
+ interface WithServiceName {
+ /**
+ * Specifies serviceName.
+ * @param serviceName The name of the API Management service
+ * @return the next definition stage
+ */
+ WithIfMatch withServiceName(String serviceName);
+ }
+
+ /**
+ * The stage of the apicontract definition allowing to specify IfMatch.
+ */
+ interface WithIfMatch {
+ /**
+ * Specifies ifMatch.
+ * @param ifMatch ETag of the Entity. Not required when creating an entity, but required when updating an entity
+ * @return the next definition stage
+ */
+ WithPath withIfMatch(String ifMatch);
+ }
+
+ /**
+ * The stage of the apicontract definition allowing to specify Path.
+ */
+ interface WithPath {
+ /**
+ * Specifies path.
+ * @param path Relative URL uniquely identifying this API and all of its resource paths within the API Management service instance. It is appended to the API endpoint base URL specified during the service instance creation to form a public URL for this API
+ * @return the next definition stage
+ */
+ WithCreate withPath(String path);
+ }
+
+ /**
+ * The stage of the apicontract definition allowing to specify ApiRevision.
+ */
+ interface WithApiRevision {
+ /**
+ * Specifies apiRevision.
+ * @param apiRevision Describes the Revision of the Api. If no value is provided, default revision 1 is created
+ * @return the next definition stage
+ */
+ WithCreate withApiRevision(String apiRevision);
+ }
+
+ /**
+ * The stage of the apicontract definition allowing to specify ApiRevisionDescription.
+ */
+ interface WithApiRevisionDescription {
+ /**
+ * Specifies apiRevisionDescription.
+ * @param apiRevisionDescription Description of the Api Revision
+ * @return the next definition stage
+ */
+ WithCreate withApiRevisionDescription(String apiRevisionDescription);
+ }
+
+ /**
+ * The stage of the apicontract definition allowing to specify ApiType.
+ */
+ interface WithApiType {
+ /**
+ * Specifies apiType.
+ * @param apiType Type of API. Possible values include: 'http', 'soap'
+ * @return the next definition stage
+ */
+ WithCreate withApiType(ApiType apiType);
+ }
+
+ /**
+ * The stage of the apicontract definition allowing to specify ApiVersion.
+ */
+ interface WithApiVersion {
+ /**
+ * Specifies apiVersion.
+ * @param apiVersion Indicates the Version identifier of the API if the API is versioned
+ * @return the next definition stage
+ */
+ WithCreate withApiVersion(String apiVersion);
+ }
+
+ /**
+ * The stage of the apicontract definition allowing to specify ApiVersionDescription.
+ */
+ interface WithApiVersionDescription {
+ /**
+ * Specifies apiVersionDescription.
+ * @param apiVersionDescription Description of the Api Version
+ * @return the next definition stage
+ */
+ WithCreate withApiVersionDescription(String apiVersionDescription);
+ }
+
+ /**
+ * The stage of the apicontract definition allowing to specify ApiVersionSet.
+ */
+ interface WithApiVersionSet {
+ /**
+ * Specifies apiVersionSet.
+ * @param apiVersionSet Version set details
+ * @return the next definition stage
+ */
+ WithCreate withApiVersionSet(ApiVersionSetContractDetails apiVersionSet);
+ }
+
+ /**
+ * The stage of the apicontract definition allowing to specify ApiVersionSetId.
+ */
+ interface WithApiVersionSetId {
+ /**
+ * Specifies apiVersionSetId.
+ * @param apiVersionSetId A resource identifier for the related ApiVersionSet
+ * @return the next definition stage
+ */
+ WithCreate withApiVersionSetId(String apiVersionSetId);
+ }
+
+ /**
+ * The stage of the apicontract definition allowing to specify AuthenticationSettings.
+ */
+ interface WithAuthenticationSettings {
+ /**
+ * Specifies authenticationSettings.
+ * @param authenticationSettings Collection of authentication settings included into this API
+ * @return the next definition stage
+ */
+ WithCreate withAuthenticationSettings(AuthenticationSettingsContract authenticationSettings);
+ }
+
+ /**
+ * The stage of the apicontract definition allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description Description of the API. May include HTML formatting tags
+ * @return the next definition stage
+ */
+ WithCreate withDescription(String description);
+ }
+
+ /**
+ * The stage of the apicontract definition allowing to specify DisplayName.
+ */
+ interface WithDisplayName {
+ /**
+ * Specifies displayName.
+ * @param displayName API name. Must be 1 to 300 characters long
+ * @return the next definition stage
+ */
+ WithCreate withDisplayName(String displayName);
+ }
+
+ /**
+ * The stage of the apicontract definition allowing to specify Format.
+ */
+ interface WithFormat {
+ /**
+ * Specifies format.
+ * @param format Format of the Content in which the API is getting imported. Possible values include: 'wadl-xml', 'wadl-link-json', 'swagger-json', 'swagger-link-json', 'wsdl', 'wsdl-link', 'openapi', 'openapi+json', 'openapi-link'
+ * @return the next definition stage
+ */
+ WithCreate withFormat(ContentFormat format);
+ }
+
+ /**
+ * The stage of the apicontract definition allowing to specify IsCurrent.
+ */
+ interface WithIsCurrent {
+ /**
+ * Specifies isCurrent.
+ * @param isCurrent Indicates if API revision is current api revision
+ * @return the next definition stage
+ */
+ WithCreate withIsCurrent(Boolean isCurrent);
+ }
+
+ /**
+ * The stage of the apicontract definition allowing to specify Protocols.
+ */
+ interface WithProtocols {
+ /**
+ * Specifies protocols.
+ * @param protocols Describes on which protocols the operations in this API can be invoked
+ * @return the next definition stage
+ */
+ WithCreate withProtocols(List protocols);
+ }
+
+ /**
+ * The stage of the apicontract definition allowing to specify ServiceUrl.
+ */
+ interface WithServiceUrl {
+ /**
+ * Specifies serviceUrl.
+ * @param serviceUrl Absolute URL of the backend service implementing this API. Cannot be more than 2000 characters long
+ * @return the next definition stage
+ */
+ WithCreate withServiceUrl(String serviceUrl);
+ }
+
+ /**
+ * The stage of the apicontract definition allowing to specify SoapApiType.
+ */
+ interface WithSoapApiType {
+ /**
+ * Specifies soapApiType.
+ * @param soapApiType Type of Api to create.
+ * `http` creates a SOAP to REST API
+ * `soap` creates a SOAP pass-through API. Possible values include: 'SoapToRest', 'SoapPassThrough'
+ * @return the next definition stage
+ */
+ WithCreate withSoapApiType(SoapApiType soapApiType);
+ }
+
+ /**
+ * The stage of the apicontract definition allowing to specify SourceApiId.
+ */
+ interface WithSourceApiId {
+ /**
+ * Specifies sourceApiId.
+ * @param sourceApiId API identifier of the source API
+ * @return the next definition stage
+ */
+ WithCreate withSourceApiId(String sourceApiId);
+ }
+
+ /**
+ * The stage of the apicontract definition allowing to specify SubscriptionKeyParameterNames.
+ */
+ interface WithSubscriptionKeyParameterNames {
+ /**
+ * Specifies subscriptionKeyParameterNames.
+ * @param subscriptionKeyParameterNames Protocols over which API is made available
+ * @return the next definition stage
+ */
+ WithCreate withSubscriptionKeyParameterNames(SubscriptionKeyParameterNamesContract subscriptionKeyParameterNames);
+ }
+
+ /**
+ * The stage of the apicontract definition allowing to specify SubscriptionRequired.
+ */
+ interface WithSubscriptionRequired {
+ /**
+ * Specifies subscriptionRequired.
+ * @param subscriptionRequired Specifies whether an API or Product subscription is required for accessing the API
+ * @return the next definition stage
+ */
+ WithCreate withSubscriptionRequired(Boolean subscriptionRequired);
+ }
+
+ /**
+ * The stage of the apicontract definition allowing to specify Value.
+ */
+ interface WithValue {
+ /**
+ * Specifies value.
+ * @param value Content value when Importing an API
+ * @return the next definition stage
+ */
+ WithCreate withValue(String value);
+ }
+
+ /**
+ * The stage of the apicontract definition allowing to specify WsdlSelector.
+ */
+ interface WithWsdlSelector {
+ /**
+ * Specifies wsdlSelector.
+ * @param wsdlSelector Criteria to limit import of WSDL to a subset of the document
+ * @return the next definition stage
+ */
+ WithCreate withWsdlSelector(ApiCreateOrUpdatePropertiesWsdlSelector wsdlSelector);
+ }
+
+ /**
+ * 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.WithApiRevision, DefinitionStages.WithApiRevisionDescription, DefinitionStages.WithApiType, DefinitionStages.WithApiVersion, DefinitionStages.WithApiVersionDescription, DefinitionStages.WithApiVersionSet, DefinitionStages.WithApiVersionSetId, DefinitionStages.WithAuthenticationSettings, DefinitionStages.WithDescription, DefinitionStages.WithDisplayName, DefinitionStages.WithFormat, DefinitionStages.WithIsCurrent, DefinitionStages.WithProtocols, DefinitionStages.WithServiceUrl, DefinitionStages.WithSoapApiType, DefinitionStages.WithSourceApiId, DefinitionStages.WithSubscriptionKeyParameterNames, DefinitionStages.WithSubscriptionRequired, DefinitionStages.WithValue, DefinitionStages.WithWsdlSelector {
+ }
+ }
+ /**
+ * The template for a ApiContract update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithIfMatch, UpdateStages.WithApiRevision, UpdateStages.WithApiRevisionDescription, UpdateStages.WithApiType, UpdateStages.WithApiVersion, UpdateStages.WithApiVersionDescription, UpdateStages.WithApiVersionSet, UpdateStages.WithApiVersionSetId, UpdateStages.WithAuthenticationSettings, UpdateStages.WithDescription, UpdateStages.WithDisplayName, UpdateStages.WithFormat, UpdateStages.WithIsCurrent, UpdateStages.WithProtocols, UpdateStages.WithServiceUrl, UpdateStages.WithSoapApiType, UpdateStages.WithSourceApiId, UpdateStages.WithSubscriptionKeyParameterNames, UpdateStages.WithSubscriptionRequired, UpdateStages.WithValue, UpdateStages.WithWsdlSelector {
+ }
+
+ /**
+ * Grouping of ApiContract update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the apicontract update allowing to specify IfMatch.
+ */
+ interface WithIfMatch {
+ /**
+ * Specifies ifMatch.
+ * @param ifMatch ETag of the Entity. Not required when creating an entity, but required when updating an entity
+ * @return the next update stage
+ */
+ Update withIfMatch(String ifMatch);
+ }
+
+ /**
+ * The stage of the apicontract update allowing to specify ApiRevision.
+ */
+ interface WithApiRevision {
+ /**
+ * Specifies apiRevision.
+ * @param apiRevision Describes the Revision of the Api. If no value is provided, default revision 1 is created
+ * @return the next update stage
+ */
+ Update withApiRevision(String apiRevision);
+ }
+
+ /**
+ * The stage of the apicontract update allowing to specify ApiRevisionDescription.
+ */
+ interface WithApiRevisionDescription {
+ /**
+ * Specifies apiRevisionDescription.
+ * @param apiRevisionDescription Description of the Api Revision
+ * @return the next update stage
+ */
+ Update withApiRevisionDescription(String apiRevisionDescription);
+ }
+
+ /**
+ * The stage of the apicontract update allowing to specify ApiType.
+ */
+ interface WithApiType {
+ /**
+ * Specifies apiType.
+ * @param apiType Type of API. Possible values include: 'http', 'soap'
+ * @return the next update stage
+ */
+ Update withApiType(ApiType apiType);
+ }
+
+ /**
+ * The stage of the apicontract update allowing to specify ApiVersion.
+ */
+ interface WithApiVersion {
+ /**
+ * Specifies apiVersion.
+ * @param apiVersion Indicates the Version identifier of the API if the API is versioned
+ * @return the next update stage
+ */
+ Update withApiVersion(String apiVersion);
+ }
+
+ /**
+ * The stage of the apicontract update allowing to specify ApiVersionDescription.
+ */
+ interface WithApiVersionDescription {
+ /**
+ * Specifies apiVersionDescription.
+ * @param apiVersionDescription Description of the Api Version
+ * @return the next update stage
+ */
+ Update withApiVersionDescription(String apiVersionDescription);
+ }
+
+ /**
+ * The stage of the apicontract update allowing to specify ApiVersionSet.
+ */
+ interface WithApiVersionSet {
+ /**
+ * Specifies apiVersionSet.
+ * @param apiVersionSet Version set details
+ * @return the next update stage
+ */
+ Update withApiVersionSet(ApiVersionSetContractDetails apiVersionSet);
+ }
+
+ /**
+ * The stage of the apicontract update allowing to specify ApiVersionSetId.
+ */
+ interface WithApiVersionSetId {
+ /**
+ * Specifies apiVersionSetId.
+ * @param apiVersionSetId A resource identifier for the related ApiVersionSet
+ * @return the next update stage
+ */
+ Update withApiVersionSetId(String apiVersionSetId);
+ }
+
+ /**
+ * The stage of the apicontract update allowing to specify AuthenticationSettings.
+ */
+ interface WithAuthenticationSettings {
+ /**
+ * Specifies authenticationSettings.
+ * @param authenticationSettings Collection of authentication settings included into this API
+ * @return the next update stage
+ */
+ Update withAuthenticationSettings(AuthenticationSettingsContract authenticationSettings);
+ }
+
+ /**
+ * The stage of the apicontract update allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description Description of the API. May include HTML formatting tags
+ * @return the next update stage
+ */
+ Update withDescription(String description);
+ }
+
+ /**
+ * The stage of the apicontract update allowing to specify DisplayName.
+ */
+ interface WithDisplayName {
+ /**
+ * Specifies displayName.
+ * @param displayName API name. Must be 1 to 300 characters long
+ * @return the next update stage
+ */
+ Update withDisplayName(String displayName);
+ }
+
+ /**
+ * The stage of the apicontract update allowing to specify Format.
+ */
+ interface WithFormat {
+ /**
+ * Specifies format.
+ * @param format Format of the Content in which the API is getting imported. Possible values include: 'wadl-xml', 'wadl-link-json', 'swagger-json', 'swagger-link-json', 'wsdl', 'wsdl-link', 'openapi', 'openapi+json', 'openapi-link'
+ * @return the next update stage
+ */
+ Update withFormat(ContentFormat format);
+ }
+
+ /**
+ * The stage of the apicontract update allowing to specify IsCurrent.
+ */
+ interface WithIsCurrent {
+ /**
+ * Specifies isCurrent.
+ * @param isCurrent Indicates if API revision is current api revision
+ * @return the next update stage
+ */
+ Update withIsCurrent(Boolean isCurrent);
+ }
+
+ /**
+ * The stage of the apicontract update allowing to specify Protocols.
+ */
+ interface WithProtocols {
+ /**
+ * Specifies protocols.
+ * @param protocols Describes on which protocols the operations in this API can be invoked
+ * @return the next update stage
+ */
+ Update withProtocols(List protocols);
+ }
+
+ /**
+ * The stage of the apicontract update allowing to specify ServiceUrl.
+ */
+ interface WithServiceUrl {
+ /**
+ * Specifies serviceUrl.
+ * @param serviceUrl Absolute URL of the backend service implementing this API. Cannot be more than 2000 characters long
+ * @return the next update stage
+ */
+ Update withServiceUrl(String serviceUrl);
+ }
+
+ /**
+ * The stage of the apicontract update allowing to specify SoapApiType.
+ */
+ interface WithSoapApiType {
+ /**
+ * Specifies soapApiType.
+ * @param soapApiType Type of Api to create.
+ * `http` creates a SOAP to REST API
+ * `soap` creates a SOAP pass-through API. Possible values include: 'SoapToRest', 'SoapPassThrough'
+ * @return the next update stage
+ */
+ Update withSoapApiType(SoapApiType soapApiType);
+ }
+
+ /**
+ * The stage of the apicontract update allowing to specify SourceApiId.
+ */
+ interface WithSourceApiId {
+ /**
+ * Specifies sourceApiId.
+ * @param sourceApiId API identifier of the source API
+ * @return the next update stage
+ */
+ Update withSourceApiId(String sourceApiId);
+ }
+
+ /**
+ * The stage of the apicontract update allowing to specify SubscriptionKeyParameterNames.
+ */
+ interface WithSubscriptionKeyParameterNames {
+ /**
+ * Specifies subscriptionKeyParameterNames.
+ * @param subscriptionKeyParameterNames Protocols over which API is made available
+ * @return the next update stage
+ */
+ Update withSubscriptionKeyParameterNames(SubscriptionKeyParameterNamesContract subscriptionKeyParameterNames);
+ }
+
+ /**
+ * The stage of the apicontract update allowing to specify SubscriptionRequired.
+ */
+ interface WithSubscriptionRequired {
+ /**
+ * Specifies subscriptionRequired.
+ * @param subscriptionRequired Specifies whether an API or Product subscription is required for accessing the API
+ * @return the next update stage
+ */
+ Update withSubscriptionRequired(Boolean subscriptionRequired);
+ }
+
+ /**
+ * The stage of the apicontract update allowing to specify Value.
+ */
+ interface WithValue {
+ /**
+ * Specifies value.
+ * @param value Content value when Importing an API
+ * @return the next update stage
+ */
+ Update withValue(String value);
+ }
+
+ /**
+ * The stage of the apicontract update allowing to specify WsdlSelector.
+ */
+ interface WithWsdlSelector {
+ /**
+ * Specifies wsdlSelector.
+ * @param wsdlSelector Criteria to limit import of WSDL to a subset of the document
+ * @return the next update stage
+ */
+ Update withWsdlSelector(ApiCreateOrUpdatePropertiesWsdlSelector wsdlSelector);
+ }
+
+ }
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiContractProperties.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiContractProperties.java
new file mode 100644
index 0000000000000..5073200429d2f
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiContractProperties.java
@@ -0,0 +1,178 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Api Entity Properties.
+ */
+public class ApiContractProperties extends ApiEntityBaseContract {
+ /**
+ * API identifier of the source API.
+ */
+ @JsonProperty(value = "sourceApiId")
+ private String sourceApiId;
+
+ /**
+ * API name. Must be 1 to 300 characters long.
+ */
+ @JsonProperty(value = "displayName")
+ private String displayName;
+
+ /**
+ * Absolute URL of the backend service implementing this API. Cannot be
+ * more than 2000 characters long.
+ */
+ @JsonProperty(value = "serviceUrl")
+ private String serviceUrl;
+
+ /**
+ * Relative URL uniquely identifying this API and all of its resource paths
+ * within the API Management service instance. It is appended to the API
+ * endpoint base URL specified during the service instance creation to form
+ * a public URL for this API.
+ */
+ @JsonProperty(value = "path", required = true)
+ private String path;
+
+ /**
+ * Describes on which protocols the operations in this API can be invoked.
+ */
+ @JsonProperty(value = "protocols")
+ private List protocols;
+
+ /**
+ * Version set details.
+ */
+ @JsonProperty(value = "apiVersionSet")
+ private ApiVersionSetContractDetails apiVersionSet;
+
+ /**
+ * Get aPI identifier of the source API.
+ *
+ * @return the sourceApiId value
+ */
+ public String sourceApiId() {
+ return this.sourceApiId;
+ }
+
+ /**
+ * Set aPI identifier of the source API.
+ *
+ * @param sourceApiId the sourceApiId value to set
+ * @return the ApiContractProperties object itself.
+ */
+ public ApiContractProperties withSourceApiId(String sourceApiId) {
+ this.sourceApiId = sourceApiId;
+ return this;
+ }
+
+ /**
+ * Get aPI name. Must be 1 to 300 characters long.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set aPI name. Must be 1 to 300 characters long.
+ *
+ * @param displayName the displayName value to set
+ * @return the ApiContractProperties object itself.
+ */
+ public ApiContractProperties withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get absolute URL of the backend service implementing this API. Cannot be more than 2000 characters long.
+ *
+ * @return the serviceUrl value
+ */
+ public String serviceUrl() {
+ return this.serviceUrl;
+ }
+
+ /**
+ * Set absolute URL of the backend service implementing this API. Cannot be more than 2000 characters long.
+ *
+ * @param serviceUrl the serviceUrl value to set
+ * @return the ApiContractProperties object itself.
+ */
+ public ApiContractProperties withServiceUrl(String serviceUrl) {
+ this.serviceUrl = serviceUrl;
+ return this;
+ }
+
+ /**
+ * Get relative URL uniquely identifying this API and all of its resource paths within the API Management service instance. It is appended to the API endpoint base URL specified during the service instance creation to form a public URL for this API.
+ *
+ * @return the path value
+ */
+ public String path() {
+ return this.path;
+ }
+
+ /**
+ * Set relative URL uniquely identifying this API and all of its resource paths within the API Management service instance. It is appended to the API endpoint base URL specified during the service instance creation to form a public URL for this API.
+ *
+ * @param path the path value to set
+ * @return the ApiContractProperties object itself.
+ */
+ public ApiContractProperties withPath(String path) {
+ this.path = path;
+ return this;
+ }
+
+ /**
+ * Get describes on which protocols the operations in this API can be invoked.
+ *
+ * @return the protocols value
+ */
+ public List protocols() {
+ return this.protocols;
+ }
+
+ /**
+ * Set describes on which protocols the operations in this API can be invoked.
+ *
+ * @param protocols the protocols value to set
+ * @return the ApiContractProperties object itself.
+ */
+ public ApiContractProperties withProtocols(List protocols) {
+ this.protocols = protocols;
+ return this;
+ }
+
+ /**
+ * Get version set details.
+ *
+ * @return the apiVersionSet value
+ */
+ public ApiVersionSetContractDetails apiVersionSet() {
+ return this.apiVersionSet;
+ }
+
+ /**
+ * Set version set details.
+ *
+ * @param apiVersionSet the apiVersionSet value to set
+ * @return the ApiContractProperties object itself.
+ */
+ public ApiContractProperties withApiVersionSet(ApiVersionSetContractDetails apiVersionSet) {
+ this.apiVersionSet = apiVersionSet;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiCreateOrUpdateHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiCreateOrUpdateHeaders.java
new file mode 100644
index 0000000000000..a8b0be32359a6
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiCreateOrUpdateHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for CreateOrUpdate operation.
+ */
+public class ApiCreateOrUpdateHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiCreateOrUpdateHeaders object itself.
+ */
+ public ApiCreateOrUpdateHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiCreateOrUpdateParameter.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiCreateOrUpdateParameter.java
new file mode 100644
index 0000000000000..d7fdb328637b2
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiCreateOrUpdateParameter.java
@@ -0,0 +1,597 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * API Create or Update Parameters.
+ */
+@JsonFlatten
+public class ApiCreateOrUpdateParameter {
+ /**
+ * Description of the API. May include HTML formatting tags.
+ */
+ @JsonProperty(value = "properties.description")
+ private String description;
+
+ /**
+ * Collection of authentication settings included into this API.
+ */
+ @JsonProperty(value = "properties.authenticationSettings")
+ private AuthenticationSettingsContract authenticationSettings;
+
+ /**
+ * Protocols over which API is made available.
+ */
+ @JsonProperty(value = "properties.subscriptionKeyParameterNames")
+ private SubscriptionKeyParameterNamesContract subscriptionKeyParameterNames;
+
+ /**
+ * Type of API. Possible values include: 'http', 'soap'.
+ */
+ @JsonProperty(value = "properties.type")
+ private ApiType apiType;
+
+ /**
+ * Describes the Revision of the Api. If no value is provided, default
+ * revision 1 is created.
+ */
+ @JsonProperty(value = "properties.apiRevision")
+ private String apiRevision;
+
+ /**
+ * Indicates the Version identifier of the API if the API is versioned.
+ */
+ @JsonProperty(value = "properties.apiVersion")
+ private String apiVersion;
+
+ /**
+ * Indicates if API revision is current api revision.
+ */
+ @JsonProperty(value = "properties.isCurrent")
+ private Boolean isCurrent;
+
+ /**
+ * Indicates if API revision is accessible via the gateway.
+ */
+ @JsonProperty(value = "properties.isOnline", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean isOnline;
+
+ /**
+ * Description of the Api Revision.
+ */
+ @JsonProperty(value = "properties.apiRevisionDescription")
+ private String apiRevisionDescription;
+
+ /**
+ * Description of the Api Version.
+ */
+ @JsonProperty(value = "properties.apiVersionDescription")
+ private String apiVersionDescription;
+
+ /**
+ * A resource identifier for the related ApiVersionSet.
+ */
+ @JsonProperty(value = "properties.apiVersionSetId")
+ private String apiVersionSetId;
+
+ /**
+ * Specifies whether an API or Product subscription is required for
+ * accessing the API.
+ */
+ @JsonProperty(value = "properties.subscriptionRequired")
+ private Boolean subscriptionRequired;
+
+ /**
+ * API identifier of the source API.
+ */
+ @JsonProperty(value = "properties.sourceApiId")
+ private String sourceApiId;
+
+ /**
+ * API name. Must be 1 to 300 characters long.
+ */
+ @JsonProperty(value = "properties.displayName")
+ private String displayName;
+
+ /**
+ * Absolute URL of the backend service implementing this API. Cannot be
+ * more than 2000 characters long.
+ */
+ @JsonProperty(value = "properties.serviceUrl")
+ private String serviceUrl;
+
+ /**
+ * Relative URL uniquely identifying this API and all of its resource paths
+ * within the API Management service instance. It is appended to the API
+ * endpoint base URL specified during the service instance creation to form
+ * a public URL for this API.
+ */
+ @JsonProperty(value = "properties.path", required = true)
+ private String path;
+
+ /**
+ * Describes on which protocols the operations in this API can be invoked.
+ */
+ @JsonProperty(value = "properties.protocols")
+ private List protocols;
+
+ /**
+ * Version set details.
+ */
+ @JsonProperty(value = "properties.apiVersionSet")
+ private ApiVersionSetContractDetails apiVersionSet;
+
+ /**
+ * Content value when Importing an API.
+ */
+ @JsonProperty(value = "properties.value")
+ private String value;
+
+ /**
+ * Format of the Content in which the API is getting imported. Possible
+ * values include: 'wadl-xml', 'wadl-link-json', 'swagger-json',
+ * 'swagger-link-json', 'wsdl', 'wsdl-link', 'openapi', 'openapi+json',
+ * 'openapi-link'.
+ */
+ @JsonProperty(value = "properties.format")
+ private ContentFormat format;
+
+ /**
+ * Criteria to limit import of WSDL to a subset of the document.
+ */
+ @JsonProperty(value = "properties.wsdlSelector")
+ private ApiCreateOrUpdatePropertiesWsdlSelector wsdlSelector;
+
+ /**
+ * Type of Api to create.
+ * * `http` creates a SOAP to REST API
+ * * `soap` creates a SOAP pass-through API. Possible values include:
+ * 'SoapToRest', 'SoapPassThrough'.
+ */
+ @JsonProperty(value = "properties.apiType")
+ private SoapApiType soapApiType;
+
+ /**
+ * Get description of the API. May include HTML formatting tags.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set description of the API. May include HTML formatting tags.
+ *
+ * @param description the description value to set
+ * @return the ApiCreateOrUpdateParameter object itself.
+ */
+ public ApiCreateOrUpdateParameter withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get collection of authentication settings included into this API.
+ *
+ * @return the authenticationSettings value
+ */
+ public AuthenticationSettingsContract authenticationSettings() {
+ return this.authenticationSettings;
+ }
+
+ /**
+ * Set collection of authentication settings included into this API.
+ *
+ * @param authenticationSettings the authenticationSettings value to set
+ * @return the ApiCreateOrUpdateParameter object itself.
+ */
+ public ApiCreateOrUpdateParameter withAuthenticationSettings(AuthenticationSettingsContract authenticationSettings) {
+ this.authenticationSettings = authenticationSettings;
+ return this;
+ }
+
+ /**
+ * Get protocols over which API is made available.
+ *
+ * @return the subscriptionKeyParameterNames value
+ */
+ public SubscriptionKeyParameterNamesContract subscriptionKeyParameterNames() {
+ return this.subscriptionKeyParameterNames;
+ }
+
+ /**
+ * Set protocols over which API is made available.
+ *
+ * @param subscriptionKeyParameterNames the subscriptionKeyParameterNames value to set
+ * @return the ApiCreateOrUpdateParameter object itself.
+ */
+ public ApiCreateOrUpdateParameter withSubscriptionKeyParameterNames(SubscriptionKeyParameterNamesContract subscriptionKeyParameterNames) {
+ this.subscriptionKeyParameterNames = subscriptionKeyParameterNames;
+ return this;
+ }
+
+ /**
+ * Get type of API. Possible values include: 'http', 'soap'.
+ *
+ * @return the apiType value
+ */
+ public ApiType apiType() {
+ return this.apiType;
+ }
+
+ /**
+ * Set type of API. Possible values include: 'http', 'soap'.
+ *
+ * @param apiType the apiType value to set
+ * @return the ApiCreateOrUpdateParameter object itself.
+ */
+ public ApiCreateOrUpdateParameter withApiType(ApiType apiType) {
+ this.apiType = apiType;
+ return this;
+ }
+
+ /**
+ * Get describes the Revision of the Api. If no value is provided, default revision 1 is created.
+ *
+ * @return the apiRevision value
+ */
+ public String apiRevision() {
+ return this.apiRevision;
+ }
+
+ /**
+ * Set describes the Revision of the Api. If no value is provided, default revision 1 is created.
+ *
+ * @param apiRevision the apiRevision value to set
+ * @return the ApiCreateOrUpdateParameter object itself.
+ */
+ public ApiCreateOrUpdateParameter withApiRevision(String apiRevision) {
+ this.apiRevision = apiRevision;
+ return this;
+ }
+
+ /**
+ * Get indicates the Version identifier of the API if the API is versioned.
+ *
+ * @return the apiVersion value
+ */
+ public String apiVersion() {
+ return this.apiVersion;
+ }
+
+ /**
+ * Set indicates the Version identifier of the API if the API is versioned.
+ *
+ * @param apiVersion the apiVersion value to set
+ * @return the ApiCreateOrUpdateParameter object itself.
+ */
+ public ApiCreateOrUpdateParameter withApiVersion(String apiVersion) {
+ this.apiVersion = apiVersion;
+ return this;
+ }
+
+ /**
+ * Get indicates if API revision is current api revision.
+ *
+ * @return the isCurrent value
+ */
+ public Boolean isCurrent() {
+ return this.isCurrent;
+ }
+
+ /**
+ * Set indicates if API revision is current api revision.
+ *
+ * @param isCurrent the isCurrent value to set
+ * @return the ApiCreateOrUpdateParameter object itself.
+ */
+ public ApiCreateOrUpdateParameter withIsCurrent(Boolean isCurrent) {
+ this.isCurrent = isCurrent;
+ return this;
+ }
+
+ /**
+ * Get indicates if API revision is accessible via the gateway.
+ *
+ * @return the isOnline value
+ */
+ public Boolean isOnline() {
+ return this.isOnline;
+ }
+
+ /**
+ * Get description of the Api Revision.
+ *
+ * @return the apiRevisionDescription value
+ */
+ public String apiRevisionDescription() {
+ return this.apiRevisionDescription;
+ }
+
+ /**
+ * Set description of the Api Revision.
+ *
+ * @param apiRevisionDescription the apiRevisionDescription value to set
+ * @return the ApiCreateOrUpdateParameter object itself.
+ */
+ public ApiCreateOrUpdateParameter withApiRevisionDescription(String apiRevisionDescription) {
+ this.apiRevisionDescription = apiRevisionDescription;
+ return this;
+ }
+
+ /**
+ * Get description of the Api Version.
+ *
+ * @return the apiVersionDescription value
+ */
+ public String apiVersionDescription() {
+ return this.apiVersionDescription;
+ }
+
+ /**
+ * Set description of the Api Version.
+ *
+ * @param apiVersionDescription the apiVersionDescription value to set
+ * @return the ApiCreateOrUpdateParameter object itself.
+ */
+ public ApiCreateOrUpdateParameter withApiVersionDescription(String apiVersionDescription) {
+ this.apiVersionDescription = apiVersionDescription;
+ return this;
+ }
+
+ /**
+ * Get a resource identifier for the related ApiVersionSet.
+ *
+ * @return the apiVersionSetId value
+ */
+ public String apiVersionSetId() {
+ return this.apiVersionSetId;
+ }
+
+ /**
+ * Set a resource identifier for the related ApiVersionSet.
+ *
+ * @param apiVersionSetId the apiVersionSetId value to set
+ * @return the ApiCreateOrUpdateParameter object itself.
+ */
+ public ApiCreateOrUpdateParameter withApiVersionSetId(String apiVersionSetId) {
+ this.apiVersionSetId = apiVersionSetId;
+ return this;
+ }
+
+ /**
+ * Get specifies whether an API or Product subscription is required for accessing the API.
+ *
+ * @return the subscriptionRequired value
+ */
+ public Boolean subscriptionRequired() {
+ return this.subscriptionRequired;
+ }
+
+ /**
+ * Set specifies whether an API or Product subscription is required for accessing the API.
+ *
+ * @param subscriptionRequired the subscriptionRequired value to set
+ * @return the ApiCreateOrUpdateParameter object itself.
+ */
+ public ApiCreateOrUpdateParameter withSubscriptionRequired(Boolean subscriptionRequired) {
+ this.subscriptionRequired = subscriptionRequired;
+ return this;
+ }
+
+ /**
+ * Get aPI identifier of the source API.
+ *
+ * @return the sourceApiId value
+ */
+ public String sourceApiId() {
+ return this.sourceApiId;
+ }
+
+ /**
+ * Set aPI identifier of the source API.
+ *
+ * @param sourceApiId the sourceApiId value to set
+ * @return the ApiCreateOrUpdateParameter object itself.
+ */
+ public ApiCreateOrUpdateParameter withSourceApiId(String sourceApiId) {
+ this.sourceApiId = sourceApiId;
+ return this;
+ }
+
+ /**
+ * Get aPI name. Must be 1 to 300 characters long.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set aPI name. Must be 1 to 300 characters long.
+ *
+ * @param displayName the displayName value to set
+ * @return the ApiCreateOrUpdateParameter object itself.
+ */
+ public ApiCreateOrUpdateParameter withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get absolute URL of the backend service implementing this API. Cannot be more than 2000 characters long.
+ *
+ * @return the serviceUrl value
+ */
+ public String serviceUrl() {
+ return this.serviceUrl;
+ }
+
+ /**
+ * Set absolute URL of the backend service implementing this API. Cannot be more than 2000 characters long.
+ *
+ * @param serviceUrl the serviceUrl value to set
+ * @return the ApiCreateOrUpdateParameter object itself.
+ */
+ public ApiCreateOrUpdateParameter withServiceUrl(String serviceUrl) {
+ this.serviceUrl = serviceUrl;
+ return this;
+ }
+
+ /**
+ * Get relative URL uniquely identifying this API and all of its resource paths within the API Management service instance. It is appended to the API endpoint base URL specified during the service instance creation to form a public URL for this API.
+ *
+ * @return the path value
+ */
+ public String path() {
+ return this.path;
+ }
+
+ /**
+ * Set relative URL uniquely identifying this API and all of its resource paths within the API Management service instance. It is appended to the API endpoint base URL specified during the service instance creation to form a public URL for this API.
+ *
+ * @param path the path value to set
+ * @return the ApiCreateOrUpdateParameter object itself.
+ */
+ public ApiCreateOrUpdateParameter withPath(String path) {
+ this.path = path;
+ return this;
+ }
+
+ /**
+ * Get describes on which protocols the operations in this API can be invoked.
+ *
+ * @return the protocols value
+ */
+ public List protocols() {
+ return this.protocols;
+ }
+
+ /**
+ * Set describes on which protocols the operations in this API can be invoked.
+ *
+ * @param protocols the protocols value to set
+ * @return the ApiCreateOrUpdateParameter object itself.
+ */
+ public ApiCreateOrUpdateParameter withProtocols(List protocols) {
+ this.protocols = protocols;
+ return this;
+ }
+
+ /**
+ * Get version set details.
+ *
+ * @return the apiVersionSet value
+ */
+ public ApiVersionSetContractDetails apiVersionSet() {
+ return this.apiVersionSet;
+ }
+
+ /**
+ * Set version set details.
+ *
+ * @param apiVersionSet the apiVersionSet value to set
+ * @return the ApiCreateOrUpdateParameter object itself.
+ */
+ public ApiCreateOrUpdateParameter withApiVersionSet(ApiVersionSetContractDetails apiVersionSet) {
+ this.apiVersionSet = apiVersionSet;
+ return this;
+ }
+
+ /**
+ * Get content value when Importing an API.
+ *
+ * @return the value value
+ */
+ public String value() {
+ return this.value;
+ }
+
+ /**
+ * Set content value when Importing an API.
+ *
+ * @param value the value value to set
+ * @return the ApiCreateOrUpdateParameter object itself.
+ */
+ public ApiCreateOrUpdateParameter withValue(String value) {
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Get format of the Content in which the API is getting imported. Possible values include: 'wadl-xml', 'wadl-link-json', 'swagger-json', 'swagger-link-json', 'wsdl', 'wsdl-link', 'openapi', 'openapi+json', 'openapi-link'.
+ *
+ * @return the format value
+ */
+ public ContentFormat format() {
+ return this.format;
+ }
+
+ /**
+ * Set format of the Content in which the API is getting imported. Possible values include: 'wadl-xml', 'wadl-link-json', 'swagger-json', 'swagger-link-json', 'wsdl', 'wsdl-link', 'openapi', 'openapi+json', 'openapi-link'.
+ *
+ * @param format the format value to set
+ * @return the ApiCreateOrUpdateParameter object itself.
+ */
+ public ApiCreateOrUpdateParameter withFormat(ContentFormat format) {
+ this.format = format;
+ return this;
+ }
+
+ /**
+ * Get criteria to limit import of WSDL to a subset of the document.
+ *
+ * @return the wsdlSelector value
+ */
+ public ApiCreateOrUpdatePropertiesWsdlSelector wsdlSelector() {
+ return this.wsdlSelector;
+ }
+
+ /**
+ * Set criteria to limit import of WSDL to a subset of the document.
+ *
+ * @param wsdlSelector the wsdlSelector value to set
+ * @return the ApiCreateOrUpdateParameter object itself.
+ */
+ public ApiCreateOrUpdateParameter withWsdlSelector(ApiCreateOrUpdatePropertiesWsdlSelector wsdlSelector) {
+ this.wsdlSelector = wsdlSelector;
+ return this;
+ }
+
+ /**
+ * Get type of Api to create.
+ * `http` creates a SOAP to REST API
+ * `soap` creates a SOAP pass-through API. Possible values include: 'SoapToRest', 'SoapPassThrough'.
+ *
+ * @return the soapApiType value
+ */
+ public SoapApiType soapApiType() {
+ return this.soapApiType;
+ }
+
+ /**
+ * Set type of Api to create.
+ * `http` creates a SOAP to REST API
+ * `soap` creates a SOAP pass-through API. Possible values include: 'SoapToRest', 'SoapPassThrough'.
+ *
+ * @param soapApiType the soapApiType value to set
+ * @return the ApiCreateOrUpdateParameter object itself.
+ */
+ public ApiCreateOrUpdateParameter withSoapApiType(SoapApiType soapApiType) {
+ this.soapApiType = soapApiType;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiCreateOrUpdatePropertiesWsdlSelector.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiCreateOrUpdatePropertiesWsdlSelector.java
new file mode 100644
index 0000000000000..e24fd107f7c95
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiCreateOrUpdatePropertiesWsdlSelector.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Criteria to limit import of WSDL to a subset of the document.
+ */
+public class ApiCreateOrUpdatePropertiesWsdlSelector {
+ /**
+ * Name of service to import from WSDL.
+ */
+ @JsonProperty(value = "wsdlServiceName")
+ private String wsdlServiceName;
+
+ /**
+ * Name of endpoint(port) to import from WSDL.
+ */
+ @JsonProperty(value = "wsdlEndpointName")
+ private String wsdlEndpointName;
+
+ /**
+ * Get name of service to import from WSDL.
+ *
+ * @return the wsdlServiceName value
+ */
+ public String wsdlServiceName() {
+ return this.wsdlServiceName;
+ }
+
+ /**
+ * Set name of service to import from WSDL.
+ *
+ * @param wsdlServiceName the wsdlServiceName value to set
+ * @return the ApiCreateOrUpdatePropertiesWsdlSelector object itself.
+ */
+ public ApiCreateOrUpdatePropertiesWsdlSelector withWsdlServiceName(String wsdlServiceName) {
+ this.wsdlServiceName = wsdlServiceName;
+ return this;
+ }
+
+ /**
+ * Get name of endpoint(port) to import from WSDL.
+ *
+ * @return the wsdlEndpointName value
+ */
+ public String wsdlEndpointName() {
+ return this.wsdlEndpointName;
+ }
+
+ /**
+ * Set name of endpoint(port) to import from WSDL.
+ *
+ * @param wsdlEndpointName the wsdlEndpointName value to set
+ * @return the ApiCreateOrUpdatePropertiesWsdlSelector object itself.
+ */
+ public ApiCreateOrUpdatePropertiesWsdlSelector withWsdlEndpointName(String wsdlEndpointName) {
+ this.wsdlEndpointName = wsdlEndpointName;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiDiagnosticContract.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiDiagnosticContract.java
new file mode 100644
index 0000000000000..2d54503c31f0f
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiDiagnosticContract.java
@@ -0,0 +1,275 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.DiagnosticContractInner;
+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.apimanagement.v2019_01_01.implementation.ApiManagementManager;
+
+/**
+ * Type representing ApiDiagnosticContract.
+ */
+public interface ApiDiagnosticContract extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the alwaysLog value.
+ */
+ AlwaysLog alwaysLog();
+
+ /**
+ * @return the backend value.
+ */
+ PipelineDiagnosticSettings backend();
+
+ /**
+ * @return the enableHttpCorrelationHeaders value.
+ */
+ Boolean enableHttpCorrelationHeaders();
+
+ /**
+ * @return the frontend value.
+ */
+ PipelineDiagnosticSettings frontend();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the loggerId value.
+ */
+ String loggerId();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the sampling value.
+ */
+ SamplingSettings sampling();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the ApiDiagnosticContract definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithApi, DefinitionStages.WithIfMatch, DefinitionStages.WithLoggerId, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ApiDiagnosticContract definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ApiDiagnosticContract definition.
+ */
+ interface Blank extends WithApi {
+ }
+
+ /**
+ * The stage of the apidiagnosticcontract definition allowing to specify Api.
+ */
+ interface WithApi {
+ /**
+ * Specifies resourceGroupName, serviceName, apiId.
+ * @param resourceGroupName The name of the resource group
+ * @param serviceName The name of the API Management service
+ * @param apiId API identifier. Must be unique in the current API Management service instance
+ * @return the next definition stage
+ */
+ WithIfMatch withExistingApi(String resourceGroupName, String serviceName, String apiId);
+ }
+
+ /**
+ * The stage of the apidiagnosticcontract definition allowing to specify IfMatch.
+ */
+ interface WithIfMatch {
+ /**
+ * Specifies ifMatch.
+ * @param ifMatch ETag of the Entity. Not required when creating an entity, but required when updating an entity
+ * @return the next definition stage
+ */
+ WithLoggerId withIfMatch(String ifMatch);
+ }
+
+ /**
+ * The stage of the apidiagnosticcontract definition allowing to specify LoggerId.
+ */
+ interface WithLoggerId {
+ /**
+ * Specifies loggerId.
+ * @param loggerId Resource Id of a target logger
+ * @return the next definition stage
+ */
+ WithCreate withLoggerId(String loggerId);
+ }
+
+ /**
+ * The stage of the apidiagnosticcontract definition allowing to specify AlwaysLog.
+ */
+ interface WithAlwaysLog {
+ /**
+ * Specifies alwaysLog.
+ * @param alwaysLog Specifies for what type of messages sampling settings should not apply. Possible values include: 'allErrors'
+ * @return the next definition stage
+ */
+ WithCreate withAlwaysLog(AlwaysLog alwaysLog);
+ }
+
+ /**
+ * The stage of the apidiagnosticcontract definition allowing to specify Backend.
+ */
+ interface WithBackend {
+ /**
+ * Specifies backend.
+ * @param backend Diagnostic settings for incoming/outgoing HTTP messages to the Backend
+ * @return the next definition stage
+ */
+ WithCreate withBackend(PipelineDiagnosticSettings backend);
+ }
+
+ /**
+ * The stage of the apidiagnosticcontract definition allowing to specify EnableHttpCorrelationHeaders.
+ */
+ interface WithEnableHttpCorrelationHeaders {
+ /**
+ * Specifies enableHttpCorrelationHeaders.
+ * @param enableHttpCorrelationHeaders Whether to process Correlation Headers coming to Api Management Service. Only applicable to Application Insights diagnostics. Default is true
+ * @return the next definition stage
+ */
+ WithCreate withEnableHttpCorrelationHeaders(Boolean enableHttpCorrelationHeaders);
+ }
+
+ /**
+ * The stage of the apidiagnosticcontract definition allowing to specify Frontend.
+ */
+ interface WithFrontend {
+ /**
+ * Specifies frontend.
+ * @param frontend Diagnostic settings for incoming/outgoing HTTP messages to the Gateway
+ * @return the next definition stage
+ */
+ WithCreate withFrontend(PipelineDiagnosticSettings frontend);
+ }
+
+ /**
+ * The stage of the apidiagnosticcontract definition allowing to specify Sampling.
+ */
+ interface WithSampling {
+ /**
+ * Specifies sampling.
+ * @param sampling Sampling settings for Diagnostic
+ * @return the next definition stage
+ */
+ WithCreate withSampling(SamplingSettings sampling);
+ }
+
+ /**
+ * 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.WithAlwaysLog, DefinitionStages.WithBackend, DefinitionStages.WithEnableHttpCorrelationHeaders, DefinitionStages.WithFrontend, DefinitionStages.WithSampling {
+ }
+ }
+ /**
+ * The template for a ApiDiagnosticContract update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithIfMatch, UpdateStages.WithAlwaysLog, UpdateStages.WithBackend, UpdateStages.WithEnableHttpCorrelationHeaders, UpdateStages.WithFrontend, UpdateStages.WithSampling {
+ }
+
+ /**
+ * Grouping of ApiDiagnosticContract update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the apidiagnosticcontract update allowing to specify IfMatch.
+ */
+ interface WithIfMatch {
+ /**
+ * Specifies ifMatch.
+ * @param ifMatch ETag of the Entity. Not required when creating an entity, but required when updating an entity
+ * @return the next update stage
+ */
+ Update withIfMatch(String ifMatch);
+ }
+
+ /**
+ * The stage of the apidiagnosticcontract update allowing to specify AlwaysLog.
+ */
+ interface WithAlwaysLog {
+ /**
+ * Specifies alwaysLog.
+ * @param alwaysLog Specifies for what type of messages sampling settings should not apply. Possible values include: 'allErrors'
+ * @return the next update stage
+ */
+ Update withAlwaysLog(AlwaysLog alwaysLog);
+ }
+
+ /**
+ * The stage of the apidiagnosticcontract update allowing to specify Backend.
+ */
+ interface WithBackend {
+ /**
+ * Specifies backend.
+ * @param backend Diagnostic settings for incoming/outgoing HTTP messages to the Backend
+ * @return the next update stage
+ */
+ Update withBackend(PipelineDiagnosticSettings backend);
+ }
+
+ /**
+ * The stage of the apidiagnosticcontract update allowing to specify EnableHttpCorrelationHeaders.
+ */
+ interface WithEnableHttpCorrelationHeaders {
+ /**
+ * Specifies enableHttpCorrelationHeaders.
+ * @param enableHttpCorrelationHeaders Whether to process Correlation Headers coming to Api Management Service. Only applicable to Application Insights diagnostics. Default is true
+ * @return the next update stage
+ */
+ Update withEnableHttpCorrelationHeaders(Boolean enableHttpCorrelationHeaders);
+ }
+
+ /**
+ * The stage of the apidiagnosticcontract update allowing to specify Frontend.
+ */
+ interface WithFrontend {
+ /**
+ * Specifies frontend.
+ * @param frontend Diagnostic settings for incoming/outgoing HTTP messages to the Gateway
+ * @return the next update stage
+ */
+ Update withFrontend(PipelineDiagnosticSettings frontend);
+ }
+
+ /**
+ * The stage of the apidiagnosticcontract update allowing to specify Sampling.
+ */
+ interface WithSampling {
+ /**
+ * Specifies sampling.
+ * @param sampling Sampling settings for Diagnostic
+ * @return the next update stage
+ */
+ Update withSampling(SamplingSettings sampling);
+ }
+
+ }
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiDiagnosticCreateOrUpdateHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiDiagnosticCreateOrUpdateHeaders.java
new file mode 100644
index 0000000000000..e1a51485cc4fa
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiDiagnosticCreateOrUpdateHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for CreateOrUpdate operation.
+ */
+public class ApiDiagnosticCreateOrUpdateHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiDiagnosticCreateOrUpdateHeaders object itself.
+ */
+ public ApiDiagnosticCreateOrUpdateHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiDiagnosticGetEntityTagHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiDiagnosticGetEntityTagHeaders.java
new file mode 100644
index 0000000000000..675ba56f54cf9
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiDiagnosticGetEntityTagHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for GetEntityTag operation.
+ */
+public class ApiDiagnosticGetEntityTagHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiDiagnosticGetEntityTagHeaders object itself.
+ */
+ public ApiDiagnosticGetEntityTagHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiDiagnosticGetHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiDiagnosticGetHeaders.java
new file mode 100644
index 0000000000000..c0281abf85668
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiDiagnosticGetHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for Get operation.
+ */
+public class ApiDiagnosticGetHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiDiagnosticGetHeaders object itself.
+ */
+ public ApiDiagnosticGetHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiDiagnostics.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiDiagnostics.java
new file mode 100644
index 0000000000000..9b238487912c8
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiDiagnostics.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiDiagnosticsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ApiDiagnostics.
+ */
+public interface ApiDiagnostics extends SupportsCreating, HasInner {
+ /**
+ * Gets the entity state (Etag) version of the Diagnostic for an API specified by its identifier.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API identifier. Must be unique in the current API Management service instance.
+ * @param diagnosticId Diagnostic identifier. Must be unique in the current API Management service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable getEntityTagAsync(String resourceGroupName, String serviceName, String apiId, String diagnosticId);
+
+ /**
+ * Gets the details of the Diagnostic for an API specified by its identifier.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API identifier. Must be unique in the current API Management service instance.
+ * @param diagnosticId Diagnostic identifier. Must be unique in the current API Management service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serviceName, String apiId, String diagnosticId);
+
+ /**
+ * Lists all diagnostics of an API.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API identifier. Must be unique in the current API Management service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByServiceAsync(final String resourceGroupName, final String serviceName, final String apiId);
+
+ /**
+ * Deletes the specified Diagnostic from an API.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API identifier. Must be unique in the current API Management service instance.
+ * @param diagnosticId Diagnostic identifier. Must be unique in the current API Management service instance.
+ * @param ifMatch ETag of the Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String serviceName, String apiId, String diagnosticId, String ifMatch);
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiEntityBaseContract.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiEntityBaseContract.java
new file mode 100644
index 0000000000000..9e571acd42853
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiEntityBaseContract.java
@@ -0,0 +1,320 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * API base contract details.
+ */
+public class ApiEntityBaseContract {
+ /**
+ * Description of the API. May include HTML formatting tags.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * Collection of authentication settings included into this API.
+ */
+ @JsonProperty(value = "authenticationSettings")
+ private AuthenticationSettingsContract authenticationSettings;
+
+ /**
+ * Protocols over which API is made available.
+ */
+ @JsonProperty(value = "subscriptionKeyParameterNames")
+ private SubscriptionKeyParameterNamesContract subscriptionKeyParameterNames;
+
+ /**
+ * Type of API. Possible values include: 'http', 'soap'.
+ */
+ @JsonProperty(value = "type")
+ private ApiType apiType;
+
+ /**
+ * Describes the Revision of the Api. If no value is provided, default
+ * revision 1 is created.
+ */
+ @JsonProperty(value = "apiRevision")
+ private String apiRevision;
+
+ /**
+ * Indicates the Version identifier of the API if the API is versioned.
+ */
+ @JsonProperty(value = "apiVersion")
+ private String apiVersion;
+
+ /**
+ * Indicates if API revision is current api revision.
+ */
+ @JsonProperty(value = "isCurrent")
+ private Boolean isCurrent;
+
+ /**
+ * Indicates if API revision is accessible via the gateway.
+ */
+ @JsonProperty(value = "isOnline", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean isOnline;
+
+ /**
+ * Description of the Api Revision.
+ */
+ @JsonProperty(value = "apiRevisionDescription")
+ private String apiRevisionDescription;
+
+ /**
+ * Description of the Api Version.
+ */
+ @JsonProperty(value = "apiVersionDescription")
+ private String apiVersionDescription;
+
+ /**
+ * A resource identifier for the related ApiVersionSet.
+ */
+ @JsonProperty(value = "apiVersionSetId")
+ private String apiVersionSetId;
+
+ /**
+ * Specifies whether an API or Product subscription is required for
+ * accessing the API.
+ */
+ @JsonProperty(value = "subscriptionRequired")
+ private Boolean subscriptionRequired;
+
+ /**
+ * Get description of the API. May include HTML formatting tags.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set description of the API. May include HTML formatting tags.
+ *
+ * @param description the description value to set
+ * @return the ApiEntityBaseContract object itself.
+ */
+ public ApiEntityBaseContract withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get collection of authentication settings included into this API.
+ *
+ * @return the authenticationSettings value
+ */
+ public AuthenticationSettingsContract authenticationSettings() {
+ return this.authenticationSettings;
+ }
+
+ /**
+ * Set collection of authentication settings included into this API.
+ *
+ * @param authenticationSettings the authenticationSettings value to set
+ * @return the ApiEntityBaseContract object itself.
+ */
+ public ApiEntityBaseContract withAuthenticationSettings(AuthenticationSettingsContract authenticationSettings) {
+ this.authenticationSettings = authenticationSettings;
+ return this;
+ }
+
+ /**
+ * Get protocols over which API is made available.
+ *
+ * @return the subscriptionKeyParameterNames value
+ */
+ public SubscriptionKeyParameterNamesContract subscriptionKeyParameterNames() {
+ return this.subscriptionKeyParameterNames;
+ }
+
+ /**
+ * Set protocols over which API is made available.
+ *
+ * @param subscriptionKeyParameterNames the subscriptionKeyParameterNames value to set
+ * @return the ApiEntityBaseContract object itself.
+ */
+ public ApiEntityBaseContract withSubscriptionKeyParameterNames(SubscriptionKeyParameterNamesContract subscriptionKeyParameterNames) {
+ this.subscriptionKeyParameterNames = subscriptionKeyParameterNames;
+ return this;
+ }
+
+ /**
+ * Get type of API. Possible values include: 'http', 'soap'.
+ *
+ * @return the apiType value
+ */
+ public ApiType apiType() {
+ return this.apiType;
+ }
+
+ /**
+ * Set type of API. Possible values include: 'http', 'soap'.
+ *
+ * @param apiType the apiType value to set
+ * @return the ApiEntityBaseContract object itself.
+ */
+ public ApiEntityBaseContract withApiType(ApiType apiType) {
+ this.apiType = apiType;
+ return this;
+ }
+
+ /**
+ * Get describes the Revision of the Api. If no value is provided, default revision 1 is created.
+ *
+ * @return the apiRevision value
+ */
+ public String apiRevision() {
+ return this.apiRevision;
+ }
+
+ /**
+ * Set describes the Revision of the Api. If no value is provided, default revision 1 is created.
+ *
+ * @param apiRevision the apiRevision value to set
+ * @return the ApiEntityBaseContract object itself.
+ */
+ public ApiEntityBaseContract withApiRevision(String apiRevision) {
+ this.apiRevision = apiRevision;
+ return this;
+ }
+
+ /**
+ * Get indicates the Version identifier of the API if the API is versioned.
+ *
+ * @return the apiVersion value
+ */
+ public String apiVersion() {
+ return this.apiVersion;
+ }
+
+ /**
+ * Set indicates the Version identifier of the API if the API is versioned.
+ *
+ * @param apiVersion the apiVersion value to set
+ * @return the ApiEntityBaseContract object itself.
+ */
+ public ApiEntityBaseContract withApiVersion(String apiVersion) {
+ this.apiVersion = apiVersion;
+ return this;
+ }
+
+ /**
+ * Get indicates if API revision is current api revision.
+ *
+ * @return the isCurrent value
+ */
+ public Boolean isCurrent() {
+ return this.isCurrent;
+ }
+
+ /**
+ * Set indicates if API revision is current api revision.
+ *
+ * @param isCurrent the isCurrent value to set
+ * @return the ApiEntityBaseContract object itself.
+ */
+ public ApiEntityBaseContract withIsCurrent(Boolean isCurrent) {
+ this.isCurrent = isCurrent;
+ return this;
+ }
+
+ /**
+ * Get indicates if API revision is accessible via the gateway.
+ *
+ * @return the isOnline value
+ */
+ public Boolean isOnline() {
+ return this.isOnline;
+ }
+
+ /**
+ * Get description of the Api Revision.
+ *
+ * @return the apiRevisionDescription value
+ */
+ public String apiRevisionDescription() {
+ return this.apiRevisionDescription;
+ }
+
+ /**
+ * Set description of the Api Revision.
+ *
+ * @param apiRevisionDescription the apiRevisionDescription value to set
+ * @return the ApiEntityBaseContract object itself.
+ */
+ public ApiEntityBaseContract withApiRevisionDescription(String apiRevisionDescription) {
+ this.apiRevisionDescription = apiRevisionDescription;
+ return this;
+ }
+
+ /**
+ * Get description of the Api Version.
+ *
+ * @return the apiVersionDescription value
+ */
+ public String apiVersionDescription() {
+ return this.apiVersionDescription;
+ }
+
+ /**
+ * Set description of the Api Version.
+ *
+ * @param apiVersionDescription the apiVersionDescription value to set
+ * @return the ApiEntityBaseContract object itself.
+ */
+ public ApiEntityBaseContract withApiVersionDescription(String apiVersionDescription) {
+ this.apiVersionDescription = apiVersionDescription;
+ return this;
+ }
+
+ /**
+ * Get a resource identifier for the related ApiVersionSet.
+ *
+ * @return the apiVersionSetId value
+ */
+ public String apiVersionSetId() {
+ return this.apiVersionSetId;
+ }
+
+ /**
+ * Set a resource identifier for the related ApiVersionSet.
+ *
+ * @param apiVersionSetId the apiVersionSetId value to set
+ * @return the ApiEntityBaseContract object itself.
+ */
+ public ApiEntityBaseContract withApiVersionSetId(String apiVersionSetId) {
+ this.apiVersionSetId = apiVersionSetId;
+ return this;
+ }
+
+ /**
+ * Get specifies whether an API or Product subscription is required for accessing the API.
+ *
+ * @return the subscriptionRequired value
+ */
+ public Boolean subscriptionRequired() {
+ return this.subscriptionRequired;
+ }
+
+ /**
+ * Set specifies whether an API or Product subscription is required for accessing the API.
+ *
+ * @param subscriptionRequired the subscriptionRequired value to set
+ * @return the ApiEntityBaseContract object itself.
+ */
+ public ApiEntityBaseContract withSubscriptionRequired(Boolean subscriptionRequired) {
+ this.subscriptionRequired = subscriptionRequired;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiExportResult.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiExportResult.java
new file mode 100644
index 0000000000000..84bcb9b5c64bc
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiExportResult.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiManagementManager;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiExportResultInner;
+
+/**
+ * Type representing ApiExportResult.
+ */
+public interface ApiExportResult extends HasInner, HasManager {
+ /**
+ * @return the exportResultFormat value.
+ */
+ ExportResultFormat exportResultFormat();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the value value.
+ */
+ ApiExportResultValue value();
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiExportResultValue.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiExportResultValue.java
new file mode 100644
index 0000000000000..853cc41c1ae1f
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiExportResultValue.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The object defining the schema of the exported Api Detail.
+ */
+public class ApiExportResultValue {
+ /**
+ * Link to the Storage Blob containing the result of the export operation.
+ * The Blob Uri is only valid for 5 minutes.
+ */
+ @JsonProperty(value = "link")
+ private String link;
+
+ /**
+ * Get link to the Storage Blob containing the result of the export operation. The Blob Uri is only valid for 5 minutes.
+ *
+ * @return the link value
+ */
+ public String link() {
+ return this.link;
+ }
+
+ /**
+ * Set link to the Storage Blob containing the result of the export operation. The Blob Uri is only valid for 5 minutes.
+ *
+ * @param link the link value to set
+ * @return the ApiExportResultValue object itself.
+ */
+ public ApiExportResultValue withLink(String link) {
+ this.link = link;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiExports.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiExports.java
new file mode 100644
index 0000000000000..31357ada91e46
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiExports.java
@@ -0,0 +1,31 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiExportsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ApiExports.
+ */
+public interface ApiExports extends HasInner {
+ /**
+ * Gets the details of the API specified by its identifier in the format specified to the Storage Blob with SAS Key valid for 5 minutes.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
+ * @param format Format in which to export the Api Details to the Storage Blob with Sas Key valid for 5 minutes. Possible values include: 'Swagger', 'Wsdl', 'Wadl', 'Openapi'
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serviceName, String apiId, ExportFormat format);
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiGetEntityTagHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiGetEntityTagHeaders.java
new file mode 100644
index 0000000000000..763a9d5c71458
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiGetEntityTagHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for GetEntityTag operation.
+ */
+public class ApiGetEntityTagHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiGetEntityTagHeaders object itself.
+ */
+ public ApiGetEntityTagHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiGetHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiGetHeaders.java
new file mode 100644
index 0000000000000..967c535ab49d6
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiGetHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for Get operation.
+ */
+public class ApiGetHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiGetHeaders object itself.
+ */
+ public ApiGetHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueAttachmentCreateOrUpdateHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueAttachmentCreateOrUpdateHeaders.java
new file mode 100644
index 0000000000000..1035f9fbcd94b
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueAttachmentCreateOrUpdateHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for CreateOrUpdate operation.
+ */
+public class ApiIssueAttachmentCreateOrUpdateHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiIssueAttachmentCreateOrUpdateHeaders object itself.
+ */
+ public ApiIssueAttachmentCreateOrUpdateHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueAttachmentGetEntityTagHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueAttachmentGetEntityTagHeaders.java
new file mode 100644
index 0000000000000..68104f4c64a94
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueAttachmentGetEntityTagHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for GetEntityTag operation.
+ */
+public class ApiIssueAttachmentGetEntityTagHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiIssueAttachmentGetEntityTagHeaders object itself.
+ */
+ public ApiIssueAttachmentGetEntityTagHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueAttachmentGetHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueAttachmentGetHeaders.java
new file mode 100644
index 0000000000000..409cc7941ffd4
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueAttachmentGetHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for Get operation.
+ */
+public class ApiIssueAttachmentGetHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiIssueAttachmentGetHeaders object itself.
+ */
+ public ApiIssueAttachmentGetHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueAttachments.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueAttachments.java
new file mode 100644
index 0000000000000..8ad91576a0c9a
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueAttachments.java
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiIssueAttachmentsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ApiIssueAttachments.
+ */
+public interface ApiIssueAttachments extends SupportsCreating, HasInner {
+ /**
+ * Gets the entity state (Etag) version of the issue Attachment for an API specified by its identifier.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API identifier. Must be unique in the current API Management service instance.
+ * @param issueId Issue identifier. Must be unique in the current API Management service instance.
+ * @param attachmentId Attachment identifier within an Issue. Must be unique in the current Issue.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable getEntityTagAsync(String resourceGroupName, String serviceName, String apiId, String issueId, String attachmentId);
+
+ /**
+ * Gets the details of the issue Attachment for an API specified by its identifier.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API identifier. Must be unique in the current API Management service instance.
+ * @param issueId Issue identifier. Must be unique in the current API Management service instance.
+ * @param attachmentId Attachment identifier within an Issue. Must be unique in the current Issue.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serviceName, String apiId, String issueId, String attachmentId);
+
+ /**
+ * Lists all attachments for the Issue associated with the specified API.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API identifier. Must be unique in the current API Management service instance.
+ * @param issueId Issue identifier. Must be unique in the current API Management service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByServiceAsync(final String resourceGroupName, final String serviceName, final String apiId, final String issueId);
+
+ /**
+ * Deletes the specified comment from an Issue.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API identifier. Must be unique in the current API Management service instance.
+ * @param issueId Issue identifier. Must be unique in the current API Management service instance.
+ * @param attachmentId Attachment identifier within an Issue. Must be unique in the current Issue.
+ * @param ifMatch ETag of the Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String serviceName, String apiId, String issueId, String attachmentId, String ifMatch);
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueCommentCreateOrUpdateHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueCommentCreateOrUpdateHeaders.java
new file mode 100644
index 0000000000000..4d05cc922c27e
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueCommentCreateOrUpdateHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for CreateOrUpdate operation.
+ */
+public class ApiIssueCommentCreateOrUpdateHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiIssueCommentCreateOrUpdateHeaders object itself.
+ */
+ public ApiIssueCommentCreateOrUpdateHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueCommentGetEntityTagHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueCommentGetEntityTagHeaders.java
new file mode 100644
index 0000000000000..e177ee30765d8
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueCommentGetEntityTagHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for GetEntityTag operation.
+ */
+public class ApiIssueCommentGetEntityTagHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiIssueCommentGetEntityTagHeaders object itself.
+ */
+ public ApiIssueCommentGetEntityTagHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueCommentGetHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueCommentGetHeaders.java
new file mode 100644
index 0000000000000..b8cac8bfd4b8d
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueCommentGetHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for Get operation.
+ */
+public class ApiIssueCommentGetHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiIssueCommentGetHeaders object itself.
+ */
+ public ApiIssueCommentGetHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueComments.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueComments.java
new file mode 100644
index 0000000000000..3e3818aecd82d
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueComments.java
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiIssueCommentsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ApiIssueComments.
+ */
+public interface ApiIssueComments extends SupportsCreating, HasInner {
+ /**
+ * Gets the entity state (Etag) version of the issue Comment for an API specified by its identifier.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API identifier. Must be unique in the current API Management service instance.
+ * @param issueId Issue identifier. Must be unique in the current API Management service instance.
+ * @param commentId Comment identifier within an Issue. Must be unique in the current Issue.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable getEntityTagAsync(String resourceGroupName, String serviceName, String apiId, String issueId, String commentId);
+
+ /**
+ * Gets the details of the issue Comment for an API specified by its identifier.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API identifier. Must be unique in the current API Management service instance.
+ * @param issueId Issue identifier. Must be unique in the current API Management service instance.
+ * @param commentId Comment identifier within an Issue. Must be unique in the current Issue.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serviceName, String apiId, String issueId, String commentId);
+
+ /**
+ * Lists all comments for the Issue associated with the specified API.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API identifier. Must be unique in the current API Management service instance.
+ * @param issueId Issue identifier. Must be unique in the current API Management service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByServiceAsync(final String resourceGroupName, final String serviceName, final String apiId, final String issueId);
+
+ /**
+ * Deletes the specified comment from an Issue.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API identifier. Must be unique in the current API Management service instance.
+ * @param issueId Issue identifier. Must be unique in the current API Management service instance.
+ * @param commentId Comment identifier within an Issue. Must be unique in the current Issue.
+ * @param ifMatch ETag of the Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String serviceName, String apiId, String issueId, String commentId, String ifMatch);
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueCreateOrUpdateHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueCreateOrUpdateHeaders.java
new file mode 100644
index 0000000000000..aaa4a78a720ca
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueCreateOrUpdateHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for CreateOrUpdate operation.
+ */
+public class ApiIssueCreateOrUpdateHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiIssueCreateOrUpdateHeaders object itself.
+ */
+ public ApiIssueCreateOrUpdateHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueGetEntityTagHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueGetEntityTagHeaders.java
new file mode 100644
index 0000000000000..76db9713efc66
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueGetEntityTagHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for GetEntityTag operation.
+ */
+public class ApiIssueGetEntityTagHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiIssueGetEntityTagHeaders object itself.
+ */
+ public ApiIssueGetEntityTagHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueGetHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueGetHeaders.java
new file mode 100644
index 0000000000000..a5adff62d62c2
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssueGetHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for Get operation.
+ */
+public class ApiIssueGetHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiIssueGetHeaders object itself.
+ */
+ public ApiIssueGetHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssues.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssues.java
new file mode 100644
index 0000000000000..763864abb23aa
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiIssues.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiIssuesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ApiIssues.
+ */
+public interface ApiIssues extends SupportsCreating, HasInner {
+ /**
+ * Gets the entity state (Etag) version of the Issue for an API specified by its identifier.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API identifier. Must be unique in the current API Management service instance.
+ * @param issueId Issue identifier. Must be unique in the current API Management service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable getEntityTagAsync(String resourceGroupName, String serviceName, String apiId, String issueId);
+
+ /**
+ * Gets the details of the Issue for an API specified by its identifier.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API identifier. Must be unique in the current API Management service instance.
+ * @param issueId Issue identifier. Must be unique in the current API Management service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serviceName, String apiId, String issueId);
+
+ /**
+ * Lists all issues associated with the specified API.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API identifier. Must be unique in the current API Management service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByServiceAsync(final String resourceGroupName, final String serviceName, final String apiId);
+
+ /**
+ * Deletes the specified Issue from an API.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API identifier. Must be unique in the current API Management service instance.
+ * @param issueId Issue identifier. Must be unique in the current API Management service instance.
+ * @param ifMatch ETag of the Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String serviceName, String apiId, String issueId, String ifMatch);
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementOperations.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementOperations.java
new file mode 100644
index 0000000000000..71c718818788d
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementOperations.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiManagementOperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ApiManagementOperations.
+ */
+public interface ApiManagementOperations extends HasInner {
+ /**
+ * Lists all of the available REST API operations of the Microsoft.ApiManagement provider.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceApplyNetworkConfigurationParameters.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceApplyNetworkConfigurationParameters.java
new file mode 100644
index 0000000000000..2b0775de386a4
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceApplyNetworkConfigurationParameters.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Parameter supplied to the Apply Network configuration operation.
+ */
+public class ApiManagementServiceApplyNetworkConfigurationParameters {
+ /**
+ * Location of the Api Management service to update for a multi-region
+ * service. For a service deployed in a single region, this parameter is
+ * not required.
+ */
+ @JsonProperty(value = "location")
+ private String location;
+
+ /**
+ * Get location of the Api Management service to update for a multi-region service. For a service deployed in a single region, this parameter is not required.
+ *
+ * @return the location value
+ */
+ public String location() {
+ return this.location;
+ }
+
+ /**
+ * Set location of the Api Management service to update for a multi-region service. For a service deployed in a single region, this parameter is not required.
+ *
+ * @param location the location value to set
+ * @return the ApiManagementServiceApplyNetworkConfigurationParameters object itself.
+ */
+ public ApiManagementServiceApplyNetworkConfigurationParameters withLocation(String location) {
+ this.location = location;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceBackupRestoreParameters.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceBackupRestoreParameters.java
new file mode 100644
index 0000000000000..44e371c49cd2b
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceBackupRestoreParameters.java
@@ -0,0 +1,124 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Parameters supplied to the Backup/Restore of an API Management service
+ * operation.
+ */
+public class ApiManagementServiceBackupRestoreParameters {
+ /**
+ * Azure Cloud Storage account (used to place/retrieve the backup) name.
+ */
+ @JsonProperty(value = "storageAccount", required = true)
+ private String storageAccount;
+
+ /**
+ * Azure Cloud Storage account (used to place/retrieve the backup) access
+ * key.
+ */
+ @JsonProperty(value = "accessKey", required = true)
+ private String accessKey;
+
+ /**
+ * Azure Cloud Storage blob container name used to place/retrieve the
+ * backup.
+ */
+ @JsonProperty(value = "containerName", required = true)
+ private String containerName;
+
+ /**
+ * The name of the backup file to create.
+ */
+ @JsonProperty(value = "backupName", required = true)
+ private String backupName;
+
+ /**
+ * Get azure Cloud Storage account (used to place/retrieve the backup) name.
+ *
+ * @return the storageAccount value
+ */
+ public String storageAccount() {
+ return this.storageAccount;
+ }
+
+ /**
+ * Set azure Cloud Storage account (used to place/retrieve the backup) name.
+ *
+ * @param storageAccount the storageAccount value to set
+ * @return the ApiManagementServiceBackupRestoreParameters object itself.
+ */
+ public ApiManagementServiceBackupRestoreParameters withStorageAccount(String storageAccount) {
+ this.storageAccount = storageAccount;
+ return this;
+ }
+
+ /**
+ * Get azure Cloud Storage account (used to place/retrieve the backup) access key.
+ *
+ * @return the accessKey value
+ */
+ public String accessKey() {
+ return this.accessKey;
+ }
+
+ /**
+ * Set azure Cloud Storage account (used to place/retrieve the backup) access key.
+ *
+ * @param accessKey the accessKey value to set
+ * @return the ApiManagementServiceBackupRestoreParameters object itself.
+ */
+ public ApiManagementServiceBackupRestoreParameters withAccessKey(String accessKey) {
+ this.accessKey = accessKey;
+ return this;
+ }
+
+ /**
+ * Get azure Cloud Storage blob container name used to place/retrieve the backup.
+ *
+ * @return the containerName value
+ */
+ public String containerName() {
+ return this.containerName;
+ }
+
+ /**
+ * Set azure Cloud Storage blob container name used to place/retrieve the backup.
+ *
+ * @param containerName the containerName value to set
+ * @return the ApiManagementServiceBackupRestoreParameters object itself.
+ */
+ public ApiManagementServiceBackupRestoreParameters withContainerName(String containerName) {
+ this.containerName = containerName;
+ return this;
+ }
+
+ /**
+ * Get the name of the backup file to create.
+ *
+ * @return the backupName value
+ */
+ public String backupName() {
+ return this.backupName;
+ }
+
+ /**
+ * Set the name of the backup file to create.
+ *
+ * @param backupName the backupName value to set
+ * @return the ApiManagementServiceBackupRestoreParameters object itself.
+ */
+ public ApiManagementServiceBackupRestoreParameters withBackupName(String backupName) {
+ this.backupName = backupName;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceBaseProperties.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceBaseProperties.java
new file mode 100644
index 0000000000000..16e5910230083
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceBaseProperties.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.apimanagement.v2019_01_01;
+
+import org.joda.time.DateTime;
+import java.util.List;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Base Properties of an API Management service resource description.
+ */
+public class ApiManagementServiceBaseProperties {
+ /**
+ * Email address from which the notification will be sent.
+ */
+ @JsonProperty(value = "notificationSenderEmail")
+ private String notificationSenderEmail;
+
+ /**
+ * The current provisioning state of the API Management service which can
+ * be one of the following:
+ * Created/Activating/Succeeded/Updating/Failed/Stopped/Terminating/TerminationFailed/Deleted.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * The provisioning state of the API Management service, which is targeted
+ * by the long running operation started on the service.
+ */
+ @JsonProperty(value = "targetProvisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String targetProvisioningState;
+
+ /**
+ * Creation UTC date of the API Management service.The date conforms to the
+ * following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601
+ * standard.
+ */
+ @JsonProperty(value = "createdAtUtc", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime createdAtUtc;
+
+ /**
+ * Gateway URL of the API Management service.
+ */
+ @JsonProperty(value = "gatewayUrl", access = JsonProperty.Access.WRITE_ONLY)
+ private String gatewayUrl;
+
+ /**
+ * Gateway URL of the API Management service in the Default Region.
+ */
+ @JsonProperty(value = "gatewayRegionalUrl", access = JsonProperty.Access.WRITE_ONLY)
+ private String gatewayRegionalUrl;
+
+ /**
+ * Publisher portal endpoint Url of the API Management service.
+ */
+ @JsonProperty(value = "portalUrl", access = JsonProperty.Access.WRITE_ONLY)
+ private String portalUrl;
+
+ /**
+ * Management API endpoint URL of the API Management service.
+ */
+ @JsonProperty(value = "managementApiUrl", access = JsonProperty.Access.WRITE_ONLY)
+ private String managementApiUrl;
+
+ /**
+ * SCM endpoint URL of the API Management service.
+ */
+ @JsonProperty(value = "scmUrl", access = JsonProperty.Access.WRITE_ONLY)
+ private String scmUrl;
+
+ /**
+ * Custom hostname configuration of the API Management service.
+ */
+ @JsonProperty(value = "hostnameConfigurations")
+ private List hostnameConfigurations;
+
+ /**
+ * Public Static Load Balanced IP addresses of the API Management service
+ * in Primary region. Available only for Basic, Standard and Premium SKU.
+ */
+ @JsonProperty(value = "publicIPAddresses", access = JsonProperty.Access.WRITE_ONLY)
+ private List publicIPAddresses;
+
+ /**
+ * Private Static Load Balanced IP addresses of the API Management service
+ * in Primary region which is deployed in an Internal Virtual Network.
+ * Available only for Basic, Standard and Premium SKU.
+ */
+ @JsonProperty(value = "privateIPAddresses", access = JsonProperty.Access.WRITE_ONLY)
+ private List privateIPAddresses;
+
+ /**
+ * Virtual network configuration of the API Management service.
+ */
+ @JsonProperty(value = "virtualNetworkConfiguration")
+ private VirtualNetworkConfiguration virtualNetworkConfiguration;
+
+ /**
+ * Additional datacenter locations of the API Management service.
+ */
+ @JsonProperty(value = "additionalLocations")
+ private List additionalLocations;
+
+ /**
+ * Custom properties of the API Management service. Setting
+ * `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168`
+ * will disable the cipher TLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0,
+ * 1.1 and 1.2). Setting
+ * `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11`
+ * can be used to disable just TLS 1.1 and setting
+ * `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10`
+ * can be used to disable TLS 1.0 on an API Management service.
+ */
+ @JsonProperty(value = "customProperties")
+ private Map customProperties;
+
+ /**
+ * List of Certificates that need to be installed in the API Management
+ * service. Max supported certificates that can be installed is 10.
+ */
+ @JsonProperty(value = "certificates")
+ private List certificates;
+
+ /**
+ * Property only meant to be used for Consumption SKU Service. This
+ * enforces a client certificate to be presented on each request to the
+ * gateway. This also enables the ability to authenticate the certificate
+ * in the policy on the gateway.
+ */
+ @JsonProperty(value = "enableClientCertificate")
+ private Boolean enableClientCertificate;
+
+ /**
+ * The type of VPN in which API Management service needs to be configured
+ * in. None (Default Value) means the API Management service is not part of
+ * any Virtual Network, External means the API Management deployment is set
+ * up inside a Virtual Network having an Internet Facing Endpoint, and
+ * Internal means that API Management deployment is setup inside a Virtual
+ * Network having an Intranet Facing Endpoint only. Possible values
+ * include: 'None', 'External', 'Internal'.
+ */
+ @JsonProperty(value = "virtualNetworkType")
+ private VirtualNetworkType virtualNetworkType;
+
+ /**
+ * Get email address from which the notification will be sent.
+ *
+ * @return the notificationSenderEmail value
+ */
+ public String notificationSenderEmail() {
+ return this.notificationSenderEmail;
+ }
+
+ /**
+ * Set email address from which the notification will be sent.
+ *
+ * @param notificationSenderEmail the notificationSenderEmail value to set
+ * @return the ApiManagementServiceBaseProperties object itself.
+ */
+ public ApiManagementServiceBaseProperties withNotificationSenderEmail(String notificationSenderEmail) {
+ this.notificationSenderEmail = notificationSenderEmail;
+ return this;
+ }
+
+ /**
+ * Get the current provisioning state of the API Management service which can be one of the following: Created/Activating/Succeeded/Updating/Failed/Stopped/Terminating/TerminationFailed/Deleted.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the provisioning state of the API Management service, which is targeted by the long running operation started on the service.
+ *
+ * @return the targetProvisioningState value
+ */
+ public String targetProvisioningState() {
+ return this.targetProvisioningState;
+ }
+
+ /**
+ * Get creation UTC date of the API Management service.The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.
+ *
+ * @return the createdAtUtc value
+ */
+ public DateTime createdAtUtc() {
+ return this.createdAtUtc;
+ }
+
+ /**
+ * Get gateway URL of the API Management service.
+ *
+ * @return the gatewayUrl value
+ */
+ public String gatewayUrl() {
+ return this.gatewayUrl;
+ }
+
+ /**
+ * Get gateway URL of the API Management service in the Default Region.
+ *
+ * @return the gatewayRegionalUrl value
+ */
+ public String gatewayRegionalUrl() {
+ return this.gatewayRegionalUrl;
+ }
+
+ /**
+ * Get publisher portal endpoint Url of the API Management service.
+ *
+ * @return the portalUrl value
+ */
+ public String portalUrl() {
+ return this.portalUrl;
+ }
+
+ /**
+ * Get management API endpoint URL of the API Management service.
+ *
+ * @return the managementApiUrl value
+ */
+ public String managementApiUrl() {
+ return this.managementApiUrl;
+ }
+
+ /**
+ * Get sCM endpoint URL of the API Management service.
+ *
+ * @return the scmUrl value
+ */
+ public String scmUrl() {
+ return this.scmUrl;
+ }
+
+ /**
+ * Get custom hostname configuration of the API Management service.
+ *
+ * @return the hostnameConfigurations value
+ */
+ public List hostnameConfigurations() {
+ return this.hostnameConfigurations;
+ }
+
+ /**
+ * Set custom hostname configuration of the API Management service.
+ *
+ * @param hostnameConfigurations the hostnameConfigurations value to set
+ * @return the ApiManagementServiceBaseProperties object itself.
+ */
+ public ApiManagementServiceBaseProperties withHostnameConfigurations(List hostnameConfigurations) {
+ this.hostnameConfigurations = hostnameConfigurations;
+ return this;
+ }
+
+ /**
+ * Get public Static Load Balanced IP addresses of the API Management service in Primary region. Available only for Basic, Standard and Premium SKU.
+ *
+ * @return the publicIPAddresses value
+ */
+ public List publicIPAddresses() {
+ return this.publicIPAddresses;
+ }
+
+ /**
+ * Get private Static Load Balanced IP addresses of the API Management service in Primary region which is deployed in an Internal Virtual Network. Available only for Basic, Standard and Premium SKU.
+ *
+ * @return the privateIPAddresses value
+ */
+ public List privateIPAddresses() {
+ return this.privateIPAddresses;
+ }
+
+ /**
+ * Get virtual network configuration of the API Management service.
+ *
+ * @return the virtualNetworkConfiguration value
+ */
+ public VirtualNetworkConfiguration virtualNetworkConfiguration() {
+ return this.virtualNetworkConfiguration;
+ }
+
+ /**
+ * Set virtual network configuration of the API Management service.
+ *
+ * @param virtualNetworkConfiguration the virtualNetworkConfiguration value to set
+ * @return the ApiManagementServiceBaseProperties object itself.
+ */
+ public ApiManagementServiceBaseProperties withVirtualNetworkConfiguration(VirtualNetworkConfiguration virtualNetworkConfiguration) {
+ this.virtualNetworkConfiguration = virtualNetworkConfiguration;
+ return this;
+ }
+
+ /**
+ * Get additional datacenter locations of the API Management service.
+ *
+ * @return the additionalLocations value
+ */
+ public List additionalLocations() {
+ return this.additionalLocations;
+ }
+
+ /**
+ * Set additional datacenter locations of the API Management service.
+ *
+ * @param additionalLocations the additionalLocations value to set
+ * @return the ApiManagementServiceBaseProperties object itself.
+ */
+ public ApiManagementServiceBaseProperties withAdditionalLocations(List additionalLocations) {
+ this.additionalLocations = additionalLocations;
+ return this;
+ }
+
+ /**
+ * Get custom properties of the API Management service. Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168` will disable the cipher TLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0, 1.1 and 1.2). Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11` can be used to disable just TLS 1.1 and setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10` can be used to disable TLS 1.0 on an API Management service.
+ *
+ * @return the customProperties value
+ */
+ public Map customProperties() {
+ return this.customProperties;
+ }
+
+ /**
+ * Set custom properties of the API Management service. Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168` will disable the cipher TLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0, 1.1 and 1.2). Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11` can be used to disable just TLS 1.1 and setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10` can be used to disable TLS 1.0 on an API Management service.
+ *
+ * @param customProperties the customProperties value to set
+ * @return the ApiManagementServiceBaseProperties object itself.
+ */
+ public ApiManagementServiceBaseProperties withCustomProperties(Map customProperties) {
+ this.customProperties = customProperties;
+ return this;
+ }
+
+ /**
+ * Get list of Certificates that need to be installed in the API Management service. Max supported certificates that can be installed is 10.
+ *
+ * @return the certificates value
+ */
+ public List certificates() {
+ return this.certificates;
+ }
+
+ /**
+ * Set list of Certificates that need to be installed in the API Management service. Max supported certificates that can be installed is 10.
+ *
+ * @param certificates the certificates value to set
+ * @return the ApiManagementServiceBaseProperties object itself.
+ */
+ public ApiManagementServiceBaseProperties withCertificates(List certificates) {
+ this.certificates = certificates;
+ return this;
+ }
+
+ /**
+ * Get property only meant to be used for Consumption SKU Service. This enforces a client certificate to be presented on each request to the gateway. This also enables the ability to authenticate the certificate in the policy on the gateway.
+ *
+ * @return the enableClientCertificate value
+ */
+ public Boolean enableClientCertificate() {
+ return this.enableClientCertificate;
+ }
+
+ /**
+ * Set property only meant to be used for Consumption SKU Service. This enforces a client certificate to be presented on each request to the gateway. This also enables the ability to authenticate the certificate in the policy on the gateway.
+ *
+ * @param enableClientCertificate the enableClientCertificate value to set
+ * @return the ApiManagementServiceBaseProperties object itself.
+ */
+ public ApiManagementServiceBaseProperties withEnableClientCertificate(Boolean enableClientCertificate) {
+ this.enableClientCertificate = enableClientCertificate;
+ return this;
+ }
+
+ /**
+ * Get the type of VPN in which API Management service needs to be configured in. None (Default Value) means the API Management service is not part of any Virtual Network, External means the API Management deployment is set up inside a Virtual Network having an Internet Facing Endpoint, and Internal means that API Management deployment is setup inside a Virtual Network having an Intranet Facing Endpoint only. Possible values include: 'None', 'External', 'Internal'.
+ *
+ * @return the virtualNetworkType value
+ */
+ public VirtualNetworkType virtualNetworkType() {
+ return this.virtualNetworkType;
+ }
+
+ /**
+ * Set the type of VPN in which API Management service needs to be configured in. None (Default Value) means the API Management service is not part of any Virtual Network, External means the API Management deployment is set up inside a Virtual Network having an Internet Facing Endpoint, and Internal means that API Management deployment is setup inside a Virtual Network having an Intranet Facing Endpoint only. Possible values include: 'None', 'External', 'Internal'.
+ *
+ * @param virtualNetworkType the virtualNetworkType value to set
+ * @return the ApiManagementServiceBaseProperties object itself.
+ */
+ public ApiManagementServiceBaseProperties withVirtualNetworkType(VirtualNetworkType virtualNetworkType) {
+ this.virtualNetworkType = virtualNetworkType;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceCheckNameAvailabilityParameters.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceCheckNameAvailabilityParameters.java
new file mode 100644
index 0000000000000..9d888d98d5367
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceCheckNameAvailabilityParameters.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.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Parameters supplied to the CheckNameAvailability operation.
+ */
+public class ApiManagementServiceCheckNameAvailabilityParameters {
+ /**
+ * The name to check for availability.
+ */
+ @JsonProperty(value = "name", required = true)
+ private String name;
+
+ /**
+ * Get the name to check for availability.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name to check for availability.
+ *
+ * @param name the name value to set
+ * @return the ApiManagementServiceCheckNameAvailabilityParameters object itself.
+ */
+ public ApiManagementServiceCheckNameAvailabilityParameters withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceGetSsoTokenResult.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceGetSsoTokenResult.java
new file mode 100644
index 0000000000000..fbd7db53b7661
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceGetSsoTokenResult.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiManagementManager;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiManagementServiceGetSsoTokenResultInner;
+
+/**
+ * Type representing ApiManagementServiceGetSsoTokenResult.
+ */
+public interface ApiManagementServiceGetSsoTokenResult extends HasInner, HasManager {
+ /**
+ * @return the redirectUri value.
+ */
+ String redirectUri();
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceIdentity.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceIdentity.java
new file mode 100644
index 0000000000000..a1d039ec7cd6b
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceIdentity.java
@@ -0,0 +1,82 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import java.util.UUID;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Identity properties of the Api Management service resource.
+ */
+public class ApiManagementServiceIdentity {
+ /**
+ * The identity type. Currently the only supported type is
+ * 'SystemAssigned'.
+ */
+ @JsonProperty(value = "type", required = true)
+ private String type;
+
+ /**
+ * The principal id of the identity.
+ */
+ @JsonProperty(value = "principalId", access = JsonProperty.Access.WRITE_ONLY)
+ private UUID principalId;
+
+ /**
+ * The client tenant id of the identity.
+ */
+ @JsonProperty(value = "tenantId", access = JsonProperty.Access.WRITE_ONLY)
+ private UUID tenantId;
+
+ /**
+ * Creates an instance of ApiManagementServiceIdentity class.
+ */
+ public ApiManagementServiceIdentity() {
+ type = "SystemAssigned";
+ }
+
+ /**
+ * Get the identity type. Currently the only supported type is 'SystemAssigned'.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set the identity type. Currently the only supported type is 'SystemAssigned'.
+ *
+ * @param type the type value to set
+ * @return the ApiManagementServiceIdentity object itself.
+ */
+ public ApiManagementServiceIdentity withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the principal id of the identity.
+ *
+ * @return the principalId value
+ */
+ public UUID principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Get the client tenant id of the identity.
+ *
+ * @return the tenantId value
+ */
+ public UUID tenantId() {
+ return this.tenantId;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceNameAvailabilityResult.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceNameAvailabilityResult.java
new file mode 100644
index 0000000000000..af0e3881bbe03
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceNameAvailabilityResult.java
@@ -0,0 +1,35 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiManagementManager;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiManagementServiceNameAvailabilityResultInner;
+
+/**
+ * Type representing ApiManagementServiceNameAvailabilityResult.
+ */
+public interface ApiManagementServiceNameAvailabilityResult extends HasInner, HasManager {
+ /**
+ * @return the message value.
+ */
+ String message();
+
+ /**
+ * @return the nameAvailable value.
+ */
+ Boolean nameAvailable();
+
+ /**
+ * @return the reason value.
+ */
+ NameAvailabilityReason reason();
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceResource.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceResource.java
new file mode 100644
index 0000000000000..a89107bf4b009
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceResource.java
@@ -0,0 +1,163 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiManagementManager;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiManagementServiceResourceInner;
+import java.util.List;
+import org.joda.time.DateTime;
+import java.util.Map;
+
+/**
+ * Type representing ApiManagementServiceResource.
+ */
+public interface ApiManagementServiceResource extends HasInner, HasManager {
+ /**
+ * @return the additionalLocations value.
+ */
+ List additionalLocations();
+
+ /**
+ * @return the certificates value.
+ */
+ List certificates();
+
+ /**
+ * @return the createdAtUtc value.
+ */
+ DateTime createdAtUtc();
+
+ /**
+ * @return the customProperties value.
+ */
+ Map customProperties();
+
+ /**
+ * @return the enableClientCertificate value.
+ */
+ Boolean enableClientCertificate();
+
+ /**
+ * @return the etag value.
+ */
+ String etag();
+
+ /**
+ * @return the gatewayRegionalUrl value.
+ */
+ String gatewayRegionalUrl();
+
+ /**
+ * @return the gatewayUrl value.
+ */
+ String gatewayUrl();
+
+ /**
+ * @return the hostnameConfigurations value.
+ */
+ List hostnameConfigurations();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the identity value.
+ */
+ ApiManagementServiceIdentity identity();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the managementApiUrl value.
+ */
+ String managementApiUrl();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the notificationSenderEmail value.
+ */
+ String notificationSenderEmail();
+
+ /**
+ * @return the portalUrl value.
+ */
+ String portalUrl();
+
+ /**
+ * @return the privateIPAddresses value.
+ */
+ List privateIPAddresses();
+
+ /**
+ * @return the provisioningState value.
+ */
+ String provisioningState();
+
+ /**
+ * @return the publicIPAddresses value.
+ */
+ List publicIPAddresses();
+
+ /**
+ * @return the publisherEmail value.
+ */
+ String publisherEmail();
+
+ /**
+ * @return the publisherName value.
+ */
+ String publisherName();
+
+ /**
+ * @return the scmUrl value.
+ */
+ String scmUrl();
+
+ /**
+ * @return the sku value.
+ */
+ ApiManagementServiceSkuProperties sku();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the targetProvisioningState value.
+ */
+ String targetProvisioningState();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the virtualNetworkConfiguration value.
+ */
+ VirtualNetworkConfiguration virtualNetworkConfiguration();
+
+ /**
+ * @return the virtualNetworkType value.
+ */
+ VirtualNetworkType virtualNetworkType();
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceSkuProperties.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceSkuProperties.java
new file mode 100644
index 0000000000000..296ac8fcb8301
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceSkuProperties.java
@@ -0,0 +1,70 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * API Management service resource SKU properties.
+ */
+public class ApiManagementServiceSkuProperties {
+ /**
+ * Name of the Sku. Possible values include: 'Developer', 'Standard',
+ * 'Premium', 'Basic', 'Consumption'.
+ */
+ @JsonProperty(value = "name", required = true)
+ private SkuType name;
+
+ /**
+ * Capacity of the SKU (number of deployed units of the SKU).
+ */
+ @JsonProperty(value = "capacity")
+ private Integer capacity;
+
+ /**
+ * Get name of the Sku. Possible values include: 'Developer', 'Standard', 'Premium', 'Basic', 'Consumption'.
+ *
+ * @return the name value
+ */
+ public SkuType name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the Sku. Possible values include: 'Developer', 'Standard', 'Premium', 'Basic', 'Consumption'.
+ *
+ * @param name the name value to set
+ * @return the ApiManagementServiceSkuProperties object itself.
+ */
+ public ApiManagementServiceSkuProperties withName(SkuType name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get capacity of the SKU (number of deployed units of the SKU).
+ *
+ * @return the capacity value
+ */
+ public Integer capacity() {
+ return this.capacity;
+ }
+
+ /**
+ * Set capacity of the SKU (number of deployed units of the SKU).
+ *
+ * @param capacity the capacity value to set
+ * @return the ApiManagementServiceSkuProperties object itself.
+ */
+ public ApiManagementServiceSkuProperties withCapacity(Integer capacity) {
+ this.capacity = capacity;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceSkus.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceSkus.java
new file mode 100644
index 0000000000000..691800183c225
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceSkus.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiManagementServiceSkusInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ApiManagementServiceSkus.
+ */
+public interface ApiManagementServiceSkus extends HasInner {
+ /**
+ * Gets available SKUs for API Management service.
+ * Gets all available SKU for a given API Management service.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAvailableServiceSkusAsync(final String resourceGroupName, final String serviceName);
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceUpdateParameters.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceUpdateParameters.java
new file mode 100644
index 0000000000000..e7e342d2943fc
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServiceUpdateParameters.java
@@ -0,0 +1,524 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import org.joda.time.DateTime;
+import java.util.List;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Parameter supplied to Update Api Management Service.
+ */
+@JsonFlatten
+public class ApiManagementServiceUpdateParameters extends ApimResource {
+ /**
+ * Email address from which the notification will be sent.
+ */
+ @JsonProperty(value = "properties.notificationSenderEmail")
+ private String notificationSenderEmail;
+
+ /**
+ * The current provisioning state of the API Management service which can
+ * be one of the following:
+ * Created/Activating/Succeeded/Updating/Failed/Stopped/Terminating/TerminationFailed/Deleted.
+ */
+ @JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * The provisioning state of the API Management service, which is targeted
+ * by the long running operation started on the service.
+ */
+ @JsonProperty(value = "properties.targetProvisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String targetProvisioningState;
+
+ /**
+ * Creation UTC date of the API Management service.The date conforms to the
+ * following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601
+ * standard.
+ */
+ @JsonProperty(value = "properties.createdAtUtc", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime createdAtUtc;
+
+ /**
+ * Gateway URL of the API Management service.
+ */
+ @JsonProperty(value = "properties.gatewayUrl", access = JsonProperty.Access.WRITE_ONLY)
+ private String gatewayUrl;
+
+ /**
+ * Gateway URL of the API Management service in the Default Region.
+ */
+ @JsonProperty(value = "properties.gatewayRegionalUrl", access = JsonProperty.Access.WRITE_ONLY)
+ private String gatewayRegionalUrl;
+
+ /**
+ * Publisher portal endpoint Url of the API Management service.
+ */
+ @JsonProperty(value = "properties.portalUrl", access = JsonProperty.Access.WRITE_ONLY)
+ private String portalUrl;
+
+ /**
+ * Management API endpoint URL of the API Management service.
+ */
+ @JsonProperty(value = "properties.managementApiUrl", access = JsonProperty.Access.WRITE_ONLY)
+ private String managementApiUrl;
+
+ /**
+ * SCM endpoint URL of the API Management service.
+ */
+ @JsonProperty(value = "properties.scmUrl", access = JsonProperty.Access.WRITE_ONLY)
+ private String scmUrl;
+
+ /**
+ * Custom hostname configuration of the API Management service.
+ */
+ @JsonProperty(value = "properties.hostnameConfigurations")
+ private List hostnameConfigurations;
+
+ /**
+ * Public Static Load Balanced IP addresses of the API Management service
+ * in Primary region. Available only for Basic, Standard and Premium SKU.
+ */
+ @JsonProperty(value = "properties.publicIPAddresses", access = JsonProperty.Access.WRITE_ONLY)
+ private List publicIPAddresses;
+
+ /**
+ * Private Static Load Balanced IP addresses of the API Management service
+ * in Primary region which is deployed in an Internal Virtual Network.
+ * Available only for Basic, Standard and Premium SKU.
+ */
+ @JsonProperty(value = "properties.privateIPAddresses", access = JsonProperty.Access.WRITE_ONLY)
+ private List privateIPAddresses;
+
+ /**
+ * Virtual network configuration of the API Management service.
+ */
+ @JsonProperty(value = "properties.virtualNetworkConfiguration")
+ private VirtualNetworkConfiguration virtualNetworkConfiguration;
+
+ /**
+ * Additional datacenter locations of the API Management service.
+ */
+ @JsonProperty(value = "properties.additionalLocations")
+ private List additionalLocations;
+
+ /**
+ * Custom properties of the API Management service. Setting
+ * `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168`
+ * will disable the cipher TLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0,
+ * 1.1 and 1.2). Setting
+ * `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11`
+ * can be used to disable just TLS 1.1 and setting
+ * `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10`
+ * can be used to disable TLS 1.0 on an API Management service.
+ */
+ @JsonProperty(value = "properties.customProperties")
+ private Map customProperties;
+
+ /**
+ * List of Certificates that need to be installed in the API Management
+ * service. Max supported certificates that can be installed is 10.
+ */
+ @JsonProperty(value = "properties.certificates")
+ private List certificates;
+
+ /**
+ * Property only meant to be used for Consumption SKU Service. This
+ * enforces a client certificate to be presented on each request to the
+ * gateway. This also enables the ability to authenticate the certificate
+ * in the policy on the gateway.
+ */
+ @JsonProperty(value = "properties.enableClientCertificate")
+ private Boolean enableClientCertificate;
+
+ /**
+ * The type of VPN in which API Management service needs to be configured
+ * in. None (Default Value) means the API Management service is not part of
+ * any Virtual Network, External means the API Management deployment is set
+ * up inside a Virtual Network having an Internet Facing Endpoint, and
+ * Internal means that API Management deployment is setup inside a Virtual
+ * Network having an Intranet Facing Endpoint only. Possible values
+ * include: 'None', 'External', 'Internal'.
+ */
+ @JsonProperty(value = "properties.virtualNetworkType")
+ private VirtualNetworkType virtualNetworkType;
+
+ /**
+ * Publisher email.
+ */
+ @JsonProperty(value = "properties.publisherEmail")
+ private String publisherEmail;
+
+ /**
+ * Publisher name.
+ */
+ @JsonProperty(value = "properties.publisherName")
+ private String publisherName;
+
+ /**
+ * SKU properties of the API Management service.
+ */
+ @JsonProperty(value = "sku")
+ private ApiManagementServiceSkuProperties sku;
+
+ /**
+ * Managed service identity of the Api Management service.
+ */
+ @JsonProperty(value = "identity")
+ private ApiManagementServiceIdentity identity;
+
+ /**
+ * ETag of the resource.
+ */
+ @JsonProperty(value = "etag", access = JsonProperty.Access.WRITE_ONLY)
+ private String etag;
+
+ /**
+ * Get email address from which the notification will be sent.
+ *
+ * @return the notificationSenderEmail value
+ */
+ public String notificationSenderEmail() {
+ return this.notificationSenderEmail;
+ }
+
+ /**
+ * Set email address from which the notification will be sent.
+ *
+ * @param notificationSenderEmail the notificationSenderEmail value to set
+ * @return the ApiManagementServiceUpdateParameters object itself.
+ */
+ public ApiManagementServiceUpdateParameters withNotificationSenderEmail(String notificationSenderEmail) {
+ this.notificationSenderEmail = notificationSenderEmail;
+ return this;
+ }
+
+ /**
+ * Get the current provisioning state of the API Management service which can be one of the following: Created/Activating/Succeeded/Updating/Failed/Stopped/Terminating/TerminationFailed/Deleted.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the provisioning state of the API Management service, which is targeted by the long running operation started on the service.
+ *
+ * @return the targetProvisioningState value
+ */
+ public String targetProvisioningState() {
+ return this.targetProvisioningState;
+ }
+
+ /**
+ * Get creation UTC date of the API Management service.The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard.
+ *
+ * @return the createdAtUtc value
+ */
+ public DateTime createdAtUtc() {
+ return this.createdAtUtc;
+ }
+
+ /**
+ * Get gateway URL of the API Management service.
+ *
+ * @return the gatewayUrl value
+ */
+ public String gatewayUrl() {
+ return this.gatewayUrl;
+ }
+
+ /**
+ * Get gateway URL of the API Management service in the Default Region.
+ *
+ * @return the gatewayRegionalUrl value
+ */
+ public String gatewayRegionalUrl() {
+ return this.gatewayRegionalUrl;
+ }
+
+ /**
+ * Get publisher portal endpoint Url of the API Management service.
+ *
+ * @return the portalUrl value
+ */
+ public String portalUrl() {
+ return this.portalUrl;
+ }
+
+ /**
+ * Get management API endpoint URL of the API Management service.
+ *
+ * @return the managementApiUrl value
+ */
+ public String managementApiUrl() {
+ return this.managementApiUrl;
+ }
+
+ /**
+ * Get sCM endpoint URL of the API Management service.
+ *
+ * @return the scmUrl value
+ */
+ public String scmUrl() {
+ return this.scmUrl;
+ }
+
+ /**
+ * Get custom hostname configuration of the API Management service.
+ *
+ * @return the hostnameConfigurations value
+ */
+ public List hostnameConfigurations() {
+ return this.hostnameConfigurations;
+ }
+
+ /**
+ * Set custom hostname configuration of the API Management service.
+ *
+ * @param hostnameConfigurations the hostnameConfigurations value to set
+ * @return the ApiManagementServiceUpdateParameters object itself.
+ */
+ public ApiManagementServiceUpdateParameters withHostnameConfigurations(List hostnameConfigurations) {
+ this.hostnameConfigurations = hostnameConfigurations;
+ return this;
+ }
+
+ /**
+ * Get public Static Load Balanced IP addresses of the API Management service in Primary region. Available only for Basic, Standard and Premium SKU.
+ *
+ * @return the publicIPAddresses value
+ */
+ public List publicIPAddresses() {
+ return this.publicIPAddresses;
+ }
+
+ /**
+ * Get private Static Load Balanced IP addresses of the API Management service in Primary region which is deployed in an Internal Virtual Network. Available only for Basic, Standard and Premium SKU.
+ *
+ * @return the privateIPAddresses value
+ */
+ public List privateIPAddresses() {
+ return this.privateIPAddresses;
+ }
+
+ /**
+ * Get virtual network configuration of the API Management service.
+ *
+ * @return the virtualNetworkConfiguration value
+ */
+ public VirtualNetworkConfiguration virtualNetworkConfiguration() {
+ return this.virtualNetworkConfiguration;
+ }
+
+ /**
+ * Set virtual network configuration of the API Management service.
+ *
+ * @param virtualNetworkConfiguration the virtualNetworkConfiguration value to set
+ * @return the ApiManagementServiceUpdateParameters object itself.
+ */
+ public ApiManagementServiceUpdateParameters withVirtualNetworkConfiguration(VirtualNetworkConfiguration virtualNetworkConfiguration) {
+ this.virtualNetworkConfiguration = virtualNetworkConfiguration;
+ return this;
+ }
+
+ /**
+ * Get additional datacenter locations of the API Management service.
+ *
+ * @return the additionalLocations value
+ */
+ public List additionalLocations() {
+ return this.additionalLocations;
+ }
+
+ /**
+ * Set additional datacenter locations of the API Management service.
+ *
+ * @param additionalLocations the additionalLocations value to set
+ * @return the ApiManagementServiceUpdateParameters object itself.
+ */
+ public ApiManagementServiceUpdateParameters withAdditionalLocations(List additionalLocations) {
+ this.additionalLocations = additionalLocations;
+ return this;
+ }
+
+ /**
+ * Get custom properties of the API Management service. Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168` will disable the cipher TLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0, 1.1 and 1.2). Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11` can be used to disable just TLS 1.1 and setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10` can be used to disable TLS 1.0 on an API Management service.
+ *
+ * @return the customProperties value
+ */
+ public Map customProperties() {
+ return this.customProperties;
+ }
+
+ /**
+ * Set custom properties of the API Management service. Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168` will disable the cipher TLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0, 1.1 and 1.2). Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11` can be used to disable just TLS 1.1 and setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10` can be used to disable TLS 1.0 on an API Management service.
+ *
+ * @param customProperties the customProperties value to set
+ * @return the ApiManagementServiceUpdateParameters object itself.
+ */
+ public ApiManagementServiceUpdateParameters withCustomProperties(Map customProperties) {
+ this.customProperties = customProperties;
+ return this;
+ }
+
+ /**
+ * Get list of Certificates that need to be installed in the API Management service. Max supported certificates that can be installed is 10.
+ *
+ * @return the certificates value
+ */
+ public List certificates() {
+ return this.certificates;
+ }
+
+ /**
+ * Set list of Certificates that need to be installed in the API Management service. Max supported certificates that can be installed is 10.
+ *
+ * @param certificates the certificates value to set
+ * @return the ApiManagementServiceUpdateParameters object itself.
+ */
+ public ApiManagementServiceUpdateParameters withCertificates(List certificates) {
+ this.certificates = certificates;
+ return this;
+ }
+
+ /**
+ * Get property only meant to be used for Consumption SKU Service. This enforces a client certificate to be presented on each request to the gateway. This also enables the ability to authenticate the certificate in the policy on the gateway.
+ *
+ * @return the enableClientCertificate value
+ */
+ public Boolean enableClientCertificate() {
+ return this.enableClientCertificate;
+ }
+
+ /**
+ * Set property only meant to be used for Consumption SKU Service. This enforces a client certificate to be presented on each request to the gateway. This also enables the ability to authenticate the certificate in the policy on the gateway.
+ *
+ * @param enableClientCertificate the enableClientCertificate value to set
+ * @return the ApiManagementServiceUpdateParameters object itself.
+ */
+ public ApiManagementServiceUpdateParameters withEnableClientCertificate(Boolean enableClientCertificate) {
+ this.enableClientCertificate = enableClientCertificate;
+ return this;
+ }
+
+ /**
+ * Get the type of VPN in which API Management service needs to be configured in. None (Default Value) means the API Management service is not part of any Virtual Network, External means the API Management deployment is set up inside a Virtual Network having an Internet Facing Endpoint, and Internal means that API Management deployment is setup inside a Virtual Network having an Intranet Facing Endpoint only. Possible values include: 'None', 'External', 'Internal'.
+ *
+ * @return the virtualNetworkType value
+ */
+ public VirtualNetworkType virtualNetworkType() {
+ return this.virtualNetworkType;
+ }
+
+ /**
+ * Set the type of VPN in which API Management service needs to be configured in. None (Default Value) means the API Management service is not part of any Virtual Network, External means the API Management deployment is set up inside a Virtual Network having an Internet Facing Endpoint, and Internal means that API Management deployment is setup inside a Virtual Network having an Intranet Facing Endpoint only. Possible values include: 'None', 'External', 'Internal'.
+ *
+ * @param virtualNetworkType the virtualNetworkType value to set
+ * @return the ApiManagementServiceUpdateParameters object itself.
+ */
+ public ApiManagementServiceUpdateParameters withVirtualNetworkType(VirtualNetworkType virtualNetworkType) {
+ this.virtualNetworkType = virtualNetworkType;
+ return this;
+ }
+
+ /**
+ * Get publisher email.
+ *
+ * @return the publisherEmail value
+ */
+ public String publisherEmail() {
+ return this.publisherEmail;
+ }
+
+ /**
+ * Set publisher email.
+ *
+ * @param publisherEmail the publisherEmail value to set
+ * @return the ApiManagementServiceUpdateParameters object itself.
+ */
+ public ApiManagementServiceUpdateParameters withPublisherEmail(String publisherEmail) {
+ this.publisherEmail = publisherEmail;
+ return this;
+ }
+
+ /**
+ * Get publisher name.
+ *
+ * @return the publisherName value
+ */
+ public String publisherName() {
+ return this.publisherName;
+ }
+
+ /**
+ * Set publisher name.
+ *
+ * @param publisherName the publisherName value to set
+ * @return the ApiManagementServiceUpdateParameters object itself.
+ */
+ public ApiManagementServiceUpdateParameters withPublisherName(String publisherName) {
+ this.publisherName = publisherName;
+ return this;
+ }
+
+ /**
+ * Get sKU properties of the API Management service.
+ *
+ * @return the sku value
+ */
+ public ApiManagementServiceSkuProperties sku() {
+ return this.sku;
+ }
+
+ /**
+ * Set sKU properties of the API Management service.
+ *
+ * @param sku the sku value to set
+ * @return the ApiManagementServiceUpdateParameters object itself.
+ */
+ public ApiManagementServiceUpdateParameters withSku(ApiManagementServiceSkuProperties sku) {
+ this.sku = sku;
+ return this;
+ }
+
+ /**
+ * Get managed service identity of the Api Management service.
+ *
+ * @return the identity value
+ */
+ public ApiManagementServiceIdentity identity() {
+ return this.identity;
+ }
+
+ /**
+ * Set managed service identity of the Api Management service.
+ *
+ * @param identity the identity value to set
+ * @return the ApiManagementServiceUpdateParameters object itself.
+ */
+ public ApiManagementServiceUpdateParameters withIdentity(ApiManagementServiceIdentity identity) {
+ this.identity = identity;
+ return this;
+ }
+
+ /**
+ * Get eTag of the resource.
+ *
+ * @return the etag value
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServices.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServices.java
new file mode 100644
index 0000000000000..c7098b7f118ef
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiManagementServices.java
@@ -0,0 +1,129 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiManagementServiceResourceInner;
+
+/**
+ * Type representing ApiManagementServices.
+ */
+public interface ApiManagementServices {
+ /**
+ * Restores a backup of an API Management service created using the ApiManagementService_Backup operation on the current service. This is a long running operation and could take several minutes to complete.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param parameters Parameters supplied to the Restore API Management service from backup operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable restoreAsync(String resourceGroupName, String serviceName, ApiManagementServiceBackupRestoreParameters parameters);
+
+ /**
+ * Creates a backup of the API Management service to the given Azure Storage Account. This is long running operation and could take several minutes to complete.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param parameters Parameters supplied to the ApiManagementService_Backup operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable backupAsync(String resourceGroupName, String serviceName, ApiManagementServiceBackupRestoreParameters parameters);
+
+ /**
+ * Creates or updates an API Management service. This is long running operation and could take several minutes to complete.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param parameters Parameters supplied to the CreateOrUpdate API Management service operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable createOrUpdateAsync(String resourceGroupName, String serviceName, ApiManagementServiceResourceInner parameters);
+
+ /**
+ * Updates an existing API Management service.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param parameters Parameters supplied to the CreateOrUpdate API Management service operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable updateAsync(String resourceGroupName, String serviceName, ApiManagementServiceUpdateParameters parameters);
+
+ /**
+ * Gets an API Management service resource description.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getByResourceGroupAsync(String resourceGroupName, String serviceName);
+
+ /**
+ * Deletes an existing API Management service.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable deleteAsync(String resourceGroupName, String serviceName);
+
+ /**
+ * Gets the Single-Sign-On token for the API Management Service which is valid for 5 Minutes.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getSsoTokenAsync(String resourceGroupName, String serviceName);
+
+ /**
+ * List all API Management services within a resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByResourceGroupAsync(final String resourceGroupName);
+
+ /**
+ * Lists all API Management services within an Azure subscription.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+ /**
+ * Checks availability and correctness of a name for an API Management service.
+ *
+ * @param name The name to check for availability.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable checkNameAvailabilityAsync(String name);
+
+ /**
+ * Updates the Microsoft.ApiManagement resource running in the Virtual network to pick the updated network settings.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable applyNetworkConfigurationUpdatesAsync(String resourceGroupName, String serviceName);
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiOperationCreateOrUpdateHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiOperationCreateOrUpdateHeaders.java
new file mode 100644
index 0000000000000..6102348f3d002
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiOperationCreateOrUpdateHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for CreateOrUpdate operation.
+ */
+public class ApiOperationCreateOrUpdateHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiOperationCreateOrUpdateHeaders object itself.
+ */
+ public ApiOperationCreateOrUpdateHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiOperationGetEntityTagHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiOperationGetEntityTagHeaders.java
new file mode 100644
index 0000000000000..592ef281c11cc
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiOperationGetEntityTagHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for GetEntityTag operation.
+ */
+public class ApiOperationGetEntityTagHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiOperationGetEntityTagHeaders object itself.
+ */
+ public ApiOperationGetEntityTagHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiOperationGetHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiOperationGetHeaders.java
new file mode 100644
index 0000000000000..144dfb2b84fa8
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiOperationGetHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for Get operation.
+ */
+public class ApiOperationGetHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiOperationGetHeaders object itself.
+ */
+ public ApiOperationGetHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiOperationPolicyCreateOrUpdateHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiOperationPolicyCreateOrUpdateHeaders.java
new file mode 100644
index 0000000000000..5a81ea1c3ffb2
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiOperationPolicyCreateOrUpdateHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for CreateOrUpdate operation.
+ */
+public class ApiOperationPolicyCreateOrUpdateHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiOperationPolicyCreateOrUpdateHeaders object itself.
+ */
+ public ApiOperationPolicyCreateOrUpdateHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiOperationPolicyGetEntityTagHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiOperationPolicyGetEntityTagHeaders.java
new file mode 100644
index 0000000000000..58c876beaa6ab
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiOperationPolicyGetEntityTagHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for GetEntityTag operation.
+ */
+public class ApiOperationPolicyGetEntityTagHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiOperationPolicyGetEntityTagHeaders object itself.
+ */
+ public ApiOperationPolicyGetEntityTagHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiOperationPolicyGetHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiOperationPolicyGetHeaders.java
new file mode 100644
index 0000000000000..58f1202b09626
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiOperationPolicyGetHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for Get operation.
+ */
+public class ApiOperationPolicyGetHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiOperationPolicyGetHeaders object itself.
+ */
+ public ApiOperationPolicyGetHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiOperationPolicys.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiOperationPolicys.java
new file mode 100644
index 0000000000000..da6e98245dfe4
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiOperationPolicys.java
@@ -0,0 +1,70 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiOperationPolicysInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ApiOperationPolicys.
+ */
+public interface ApiOperationPolicys extends SupportsCreating, HasInner {
+ /**
+ * Get the list of policy configuration at the API Operation level.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
+ * @param operationId Operation identifier within an API. Must be unique in the current API Management service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByOperationAsync(String resourceGroupName, String serviceName, String apiId, String operationId);
+
+ /**
+ * Gets the entity state (Etag) version of the API operation policy specified by its identifier.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
+ * @param operationId Operation identifier within an API. Must be unique in the current API Management service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable getEntityTagAsync(String resourceGroupName, String serviceName, String apiId, String operationId);
+
+ /**
+ * Get the policy configuration at the API Operation level.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
+ * @param operationId Operation identifier within an API. Must be unique in the current API Management service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serviceName, String apiId, String operationId);
+
+ /**
+ * Deletes the policy configuration at the Api Operation.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
+ * @param operationId Operation identifier within an API. Must be unique in the current API Management service instance.
+ * @param ifMatch ETag of the Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String serviceName, String apiId, String operationId, String ifMatch);
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiOperations.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiOperations.java
new file mode 100644
index 0000000000000..e1c8134579e46
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiOperations.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiOperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ApiOperations.
+ */
+public interface ApiOperations extends SupportsCreating, HasInner {
+ /**
+ * Gets the entity state (Etag) version of the API operation specified by its identifier.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
+ * @param operationId Operation identifier within an API. Must be unique in the current API Management service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable getEntityTagAsync(String resourceGroupName, String serviceName, String apiId, String operationId);
+
+ /**
+ * Gets the details of the API Operation specified by its identifier.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
+ * @param operationId Operation identifier within an API. Must be unique in the current API Management service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serviceName, String apiId, String operationId);
+
+ /**
+ * Lists a collection of the operations for the specified API.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByApiAsync(final String resourceGroupName, final String serviceName, final String apiId);
+
+ /**
+ * Deletes the specified operation in the API.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
+ * @param operationId Operation identifier within an API. Must be unique in the current API Management service instance.
+ * @param ifMatch ETag of the Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String serviceName, String apiId, String operationId, String ifMatch);
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiPolicyContract.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiPolicyContract.java
new file mode 100644
index 0000000000000..3ed3f0e3a9a61
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiPolicyContract.java
@@ -0,0 +1,159 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.PolicyContractInner;
+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.apimanagement.v2019_01_01.implementation.ApiManagementManager;
+
+/**
+ * Type representing ApiPolicyContract.
+ */
+public interface ApiPolicyContract extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the format value.
+ */
+ PolicyContentFormat format();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the value value.
+ */
+ String value();
+
+ /**
+ * The entirety of the ApiPolicyContract definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithApi, DefinitionStages.WithIfMatch, DefinitionStages.WithValue, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ApiPolicyContract definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ApiPolicyContract definition.
+ */
+ interface Blank extends WithApi {
+ }
+
+ /**
+ * The stage of the apipolicycontract definition allowing to specify Api.
+ */
+ interface WithApi {
+ /**
+ * Specifies resourceGroupName, serviceName, apiId.
+ * @param resourceGroupName The name of the resource group
+ * @param serviceName The name of the API Management service
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number
+ * @return the next definition stage
+ */
+ WithIfMatch withExistingApi(String resourceGroupName, String serviceName, String apiId);
+ }
+
+ /**
+ * The stage of the apipolicycontract definition allowing to specify IfMatch.
+ */
+ interface WithIfMatch {
+ /**
+ * Specifies ifMatch.
+ * @param ifMatch ETag of the Entity. Not required when creating an entity, but required when updating an entity
+ * @return the next definition stage
+ */
+ WithValue withIfMatch(String ifMatch);
+ }
+
+ /**
+ * The stage of the apipolicycontract definition allowing to specify Value.
+ */
+ interface WithValue {
+ /**
+ * Specifies value.
+ * @param value Contents of the Policy as defined by the format
+ * @return the next definition stage
+ */
+ WithCreate withValue(String value);
+ }
+
+ /**
+ * The stage of the apipolicycontract definition allowing to specify Format.
+ */
+ interface WithFormat {
+ /**
+ * Specifies format.
+ * @param format Format of the policyContent. Possible values include: 'xml', 'xml-link', 'rawxml', 'rawxml-link'
+ * @return the next definition stage
+ */
+ WithCreate withFormat(PolicyContentFormat format);
+ }
+
+ /**
+ * 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.WithFormat {
+ }
+ }
+ /**
+ * The template for a ApiPolicyContract update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithIfMatch, UpdateStages.WithFormat {
+ }
+
+ /**
+ * Grouping of ApiPolicyContract update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the apipolicycontract update allowing to specify IfMatch.
+ */
+ interface WithIfMatch {
+ /**
+ * Specifies ifMatch.
+ * @param ifMatch ETag of the Entity. Not required when creating an entity, but required when updating an entity
+ * @return the next update stage
+ */
+ Update withIfMatch(String ifMatch);
+ }
+
+ /**
+ * The stage of the apipolicycontract update allowing to specify Format.
+ */
+ interface WithFormat {
+ /**
+ * Specifies format.
+ * @param format Format of the policyContent. Possible values include: 'xml', 'xml-link', 'rawxml', 'rawxml-link'
+ * @return the next update stage
+ */
+ Update withFormat(PolicyContentFormat format);
+ }
+
+ }
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiPolicyCreateOrUpdateHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiPolicyCreateOrUpdateHeaders.java
new file mode 100644
index 0000000000000..644b675e2e283
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiPolicyCreateOrUpdateHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for CreateOrUpdate operation.
+ */
+public class ApiPolicyCreateOrUpdateHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiPolicyCreateOrUpdateHeaders object itself.
+ */
+ public ApiPolicyCreateOrUpdateHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiPolicyGetEntityTagHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiPolicyGetEntityTagHeaders.java
new file mode 100644
index 0000000000000..8c9b3f618cd4b
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiPolicyGetEntityTagHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for GetEntityTag operation.
+ */
+public class ApiPolicyGetEntityTagHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiPolicyGetEntityTagHeaders object itself.
+ */
+ public ApiPolicyGetEntityTagHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiPolicyGetHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiPolicyGetHeaders.java
new file mode 100644
index 0000000000000..7cc9f31cffa67
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiPolicyGetHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for Get operation.
+ */
+public class ApiPolicyGetHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiPolicyGetHeaders object itself.
+ */
+ public ApiPolicyGetHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiPolicys.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiPolicys.java
new file mode 100644
index 0000000000000..ffae14dcb5cb1
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiPolicys.java
@@ -0,0 +1,66 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiPolicysInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ApiPolicys.
+ */
+public interface ApiPolicys extends SupportsCreating, HasInner {
+ /**
+ * Get the policy configuration at the API level.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByApiAsync(String resourceGroupName, String serviceName, String apiId);
+
+ /**
+ * Gets the entity state (Etag) version of the API policy specified by its identifier.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable getEntityTagAsync(String resourceGroupName, String serviceName, String apiId);
+
+ /**
+ * Get the policy configuration at the API level.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serviceName, String apiId);
+
+ /**
+ * Deletes the policy configuration at the Api.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
+ * @param ifMatch ETag of the Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String serviceName, String apiId, String ifMatch);
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiProductContract.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiProductContract.java
new file mode 100644
index 0000000000000..2e425c56cad7b
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiProductContract.java
@@ -0,0 +1,70 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ProductContractInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiManagementManager;
+
+/**
+ * Type representing ApiProductContract.
+ */
+public interface ApiProductContract extends HasInner, HasManager {
+ /**
+ * @return the approvalRequired value.
+ */
+ Boolean approvalRequired();
+
+ /**
+ * @return the description value.
+ */
+ String description();
+
+ /**
+ * @return the displayName value.
+ */
+ String displayName();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the state value.
+ */
+ ProductState state();
+
+ /**
+ * @return the subscriptionRequired value.
+ */
+ Boolean subscriptionRequired();
+
+ /**
+ * @return the subscriptionsLimit value.
+ */
+ Integer subscriptionsLimit();
+
+ /**
+ * @return the terms value.
+ */
+ String terms();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiProducts.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiProducts.java
new file mode 100644
index 0000000000000..8873983fe500f
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiProducts.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiProductsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ApiProducts.
+ */
+public interface ApiProducts extends HasInner {
+ /**
+ * Lists all Products, which the API is part of.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API identifier. Must be unique in the current API Management service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByApisAsync(final String resourceGroupName, final String serviceName, final String apiId);
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiReleaseContract.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiReleaseContract.java
new file mode 100644
index 0000000000000..868f754adba77
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiReleaseContract.java
@@ -0,0 +1,182 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiReleaseContractInner;
+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.apimanagement.v2019_01_01.implementation.ApiManagementManager;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing ApiReleaseContract.
+ */
+public interface ApiReleaseContract extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the apiId value.
+ */
+ String apiId();
+
+ /**
+ * @return the createdDateTime value.
+ */
+ DateTime createdDateTime();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the notes value.
+ */
+ String notes();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the updatedDateTime value.
+ */
+ DateTime updatedDateTime();
+
+ /**
+ * The entirety of the ApiReleaseContract definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithApi, DefinitionStages.WithIfMatch, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ApiReleaseContract definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ApiReleaseContract definition.
+ */
+ interface Blank extends WithApi {
+ }
+
+ /**
+ * The stage of the apireleasecontract definition allowing to specify Api.
+ */
+ interface WithApi {
+ /**
+ * Specifies resourceGroupName, serviceName, apiId.
+ * @param resourceGroupName The name of the resource group
+ * @param serviceName The name of the API Management service
+ * @param apiId API identifier. Must be unique in the current API Management service instance
+ * @return the next definition stage
+ */
+ WithIfMatch withExistingApi(String resourceGroupName, String serviceName, String apiId);
+ }
+
+ /**
+ * The stage of the apireleasecontract definition allowing to specify IfMatch.
+ */
+ interface WithIfMatch {
+ /**
+ * Specifies ifMatch.
+ * @param ifMatch ETag of the Entity. Not required when creating an entity, but required when updating an entity
+ * @return the next definition stage
+ */
+ WithCreate withIfMatch(String ifMatch);
+ }
+
+ /**
+ * The stage of the apireleasecontract definition allowing to specify ApiId.
+ */
+ interface WithApiId {
+ /**
+ * Specifies apiId.
+ * @param apiId Identifier of the API the release belongs to
+ * @return the next definition stage
+ */
+ WithCreate withApiId(String apiId);
+ }
+
+ /**
+ * The stage of the apireleasecontract definition allowing to specify Notes.
+ */
+ interface WithNotes {
+ /**
+ * Specifies notes.
+ * @param notes Release Notes
+ * @return the next definition stage
+ */
+ WithCreate withNotes(String notes);
+ }
+
+ /**
+ * 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.WithApiId, DefinitionStages.WithNotes {
+ }
+ }
+ /**
+ * The template for a ApiReleaseContract update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithIfMatch, UpdateStages.WithApiId, UpdateStages.WithNotes {
+ }
+
+ /**
+ * Grouping of ApiReleaseContract update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the apireleasecontract update allowing to specify IfMatch.
+ */
+ interface WithIfMatch {
+ /**
+ * Specifies ifMatch.
+ * @param ifMatch ETag of the Entity. Not required when creating an entity, but required when updating an entity
+ * @return the next update stage
+ */
+ Update withIfMatch(String ifMatch);
+ }
+
+ /**
+ * The stage of the apireleasecontract update allowing to specify ApiId.
+ */
+ interface WithApiId {
+ /**
+ * Specifies apiId.
+ * @param apiId Identifier of the API the release belongs to
+ * @return the next update stage
+ */
+ Update withApiId(String apiId);
+ }
+
+ /**
+ * The stage of the apireleasecontract update allowing to specify Notes.
+ */
+ interface WithNotes {
+ /**
+ * Specifies notes.
+ * @param notes Release Notes
+ * @return the next update stage
+ */
+ Update withNotes(String notes);
+ }
+
+ }
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiReleaseCreateOrUpdateHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiReleaseCreateOrUpdateHeaders.java
new file mode 100644
index 0000000000000..d32a2c43d3eae
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiReleaseCreateOrUpdateHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for CreateOrUpdate operation.
+ */
+public class ApiReleaseCreateOrUpdateHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiReleaseCreateOrUpdateHeaders object itself.
+ */
+ public ApiReleaseCreateOrUpdateHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiReleaseGetEntityTagHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiReleaseGetEntityTagHeaders.java
new file mode 100644
index 0000000000000..75feba27cfcdb
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiReleaseGetEntityTagHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for GetEntityTag operation.
+ */
+public class ApiReleaseGetEntityTagHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiReleaseGetEntityTagHeaders object itself.
+ */
+ public ApiReleaseGetEntityTagHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiReleaseGetHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiReleaseGetHeaders.java
new file mode 100644
index 0000000000000..5d026a11adc8e
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiReleaseGetHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for Get operation.
+ */
+public class ApiReleaseGetHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiReleaseGetHeaders object itself.
+ */
+ public ApiReleaseGetHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiReleases.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiReleases.java
new file mode 100644
index 0000000000000..7b7050145338d
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiReleases.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiReleasesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ApiReleases.
+ */
+public interface ApiReleases extends SupportsCreating, HasInner {
+ /**
+ * Returns the etag of an API release.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API identifier. Must be unique in the current API Management service instance.
+ * @param releaseId Release identifier within an API. Must be unique in the current API Management service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable getEntityTagAsync(String resourceGroupName, String serviceName, String apiId, String releaseId);
+
+ /**
+ * Returns the details of an API release.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API identifier. Must be unique in the current API Management service instance.
+ * @param releaseId Release identifier within an API. Must be unique in the current API Management service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serviceName, String apiId, String releaseId);
+
+ /**
+ * Lists all releases of an API. An API release is created when making an API Revision current. Releases are also used to rollback to previous revisions. Results will be paged and can be constrained by the $top and $skip parameters.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API identifier. Must be unique in the current API Management service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByServiceAsync(final String resourceGroupName, final String serviceName, final String apiId);
+
+ /**
+ * Deletes the specified release in the API.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API identifier. Must be unique in the current API Management service instance.
+ * @param releaseId Release identifier within an API. Must be unique in the current API Management service instance.
+ * @param ifMatch ETag of the Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String serviceName, String apiId, String releaseId, String ifMatch);
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiRevisionContract.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiRevisionContract.java
new file mode 100644
index 0000000000000..60415961f0b13
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiRevisionContract.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.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiRevisionContractInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiManagementManager;
+import org.joda.time.DateTime;
+
+/**
+ * Type representing ApiRevisionContract.
+ */
+public interface ApiRevisionContract extends HasInner, HasManager {
+ /**
+ * @return the apiId value.
+ */
+ String apiId();
+
+ /**
+ * @return the apiRevision value.
+ */
+ String apiRevision();
+
+ /**
+ * @return the createdDateTime value.
+ */
+ DateTime createdDateTime();
+
+ /**
+ * @return the description value.
+ */
+ String description();
+
+ /**
+ * @return the isCurrent value.
+ */
+ Boolean isCurrent();
+
+ /**
+ * @return the isOnline value.
+ */
+ Boolean isOnline();
+
+ /**
+ * @return the privateUrl value.
+ */
+ String privateUrl();
+
+ /**
+ * @return the updatedDateTime value.
+ */
+ DateTime updatedDateTime();
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiRevisionInfoContract.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiRevisionInfoContract.java
new file mode 100644
index 0000000000000..8d903750add0a
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiRevisionInfoContract.java
@@ -0,0 +1,122 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Object used to create an API Revision or Version based on an existing API
+ * Revision.
+ */
+public class ApiRevisionInfoContract {
+ /**
+ * Resource identifier of API to be used to create the revision from.
+ */
+ @JsonProperty(value = "sourceApiId")
+ private String sourceApiId;
+
+ /**
+ * Version identifier for the new API Version.
+ */
+ @JsonProperty(value = "apiVersionName")
+ private String apiVersionName;
+
+ /**
+ * Description of new API Revision.
+ */
+ @JsonProperty(value = "apiRevisionDescription")
+ private String apiRevisionDescription;
+
+ /**
+ * Version set details.
+ */
+ @JsonProperty(value = "apiVersionSet")
+ private ApiVersionSetContractDetails apiVersionSet;
+
+ /**
+ * Get resource identifier of API to be used to create the revision from.
+ *
+ * @return the sourceApiId value
+ */
+ public String sourceApiId() {
+ return this.sourceApiId;
+ }
+
+ /**
+ * Set resource identifier of API to be used to create the revision from.
+ *
+ * @param sourceApiId the sourceApiId value to set
+ * @return the ApiRevisionInfoContract object itself.
+ */
+ public ApiRevisionInfoContract withSourceApiId(String sourceApiId) {
+ this.sourceApiId = sourceApiId;
+ return this;
+ }
+
+ /**
+ * Get version identifier for the new API Version.
+ *
+ * @return the apiVersionName value
+ */
+ public String apiVersionName() {
+ return this.apiVersionName;
+ }
+
+ /**
+ * Set version identifier for the new API Version.
+ *
+ * @param apiVersionName the apiVersionName value to set
+ * @return the ApiRevisionInfoContract object itself.
+ */
+ public ApiRevisionInfoContract withApiVersionName(String apiVersionName) {
+ this.apiVersionName = apiVersionName;
+ return this;
+ }
+
+ /**
+ * Get description of new API Revision.
+ *
+ * @return the apiRevisionDescription value
+ */
+ public String apiRevisionDescription() {
+ return this.apiRevisionDescription;
+ }
+
+ /**
+ * Set description of new API Revision.
+ *
+ * @param apiRevisionDescription the apiRevisionDescription value to set
+ * @return the ApiRevisionInfoContract object itself.
+ */
+ public ApiRevisionInfoContract withApiRevisionDescription(String apiRevisionDescription) {
+ this.apiRevisionDescription = apiRevisionDescription;
+ return this;
+ }
+
+ /**
+ * Get version set details.
+ *
+ * @return the apiVersionSet value
+ */
+ public ApiVersionSetContractDetails apiVersionSet() {
+ return this.apiVersionSet;
+ }
+
+ /**
+ * Set version set details.
+ *
+ * @param apiVersionSet the apiVersionSet value to set
+ * @return the ApiRevisionInfoContract object itself.
+ */
+ public ApiRevisionInfoContract withApiVersionSet(ApiVersionSetContractDetails apiVersionSet) {
+ this.apiVersionSet = apiVersionSet;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiRevisions.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiRevisions.java
new file mode 100644
index 0000000000000..a19c0273169e2
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiRevisions.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiRevisionsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ApiRevisions.
+ */
+public interface ApiRevisions extends HasInner {
+ /**
+ * Lists all revisions of an API.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API identifier. Must be unique in the current API Management service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByServiceAsync(final String resourceGroupName, final String serviceName, final String apiId);
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiSchemaCreateOrUpdateHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiSchemaCreateOrUpdateHeaders.java
new file mode 100644
index 0000000000000..afce3cafa67fe
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiSchemaCreateOrUpdateHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for CreateOrUpdate operation.
+ */
+public class ApiSchemaCreateOrUpdateHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiSchemaCreateOrUpdateHeaders object itself.
+ */
+ public ApiSchemaCreateOrUpdateHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiSchemaGetEntityTagHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiSchemaGetEntityTagHeaders.java
new file mode 100644
index 0000000000000..3756556b71ceb
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiSchemaGetEntityTagHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for GetEntityTag operation.
+ */
+public class ApiSchemaGetEntityTagHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiSchemaGetEntityTagHeaders object itself.
+ */
+ public ApiSchemaGetEntityTagHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiSchemaGetHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiSchemaGetHeaders.java
new file mode 100644
index 0000000000000..a477ea4df6f28
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiSchemaGetHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for Get operation.
+ */
+public class ApiSchemaGetHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiSchemaGetHeaders object itself.
+ */
+ public ApiSchemaGetHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiSchemas.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiSchemas.java
new file mode 100644
index 0000000000000..801b9b1d73f38
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiSchemas.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiSchemasInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ApiSchemas.
+ */
+public interface ApiSchemas extends SupportsCreating, HasInner {
+ /**
+ * Gets the entity state (Etag) version of the schema specified by its identifier.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
+ * @param schemaId Schema identifier within an API. Must be unique in the current API Management service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable getEntityTagAsync(String resourceGroupName, String serviceName, String apiId, String schemaId);
+
+ /**
+ * Get the schema configuration at the API level.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
+ * @param schemaId Schema identifier within an API. Must be unique in the current API Management service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serviceName, String apiId, String schemaId);
+
+ /**
+ * Get the schema configuration at the API level.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByApiAsync(final String resourceGroupName, final String serviceName, final String apiId);
+
+ /**
+ * Deletes the schema configuration at the Api.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
+ * @param schemaId Schema identifier within an API. Must be unique in the current API Management service instance.
+ * @param ifMatch ETag of the Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String serviceName, String apiId, String schemaId, String ifMatch);
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiTagDescriptionCreateOrUpdateHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiTagDescriptionCreateOrUpdateHeaders.java
new file mode 100644
index 0000000000000..ea10ce8027377
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiTagDescriptionCreateOrUpdateHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for CreateOrUpdate operation.
+ */
+public class ApiTagDescriptionCreateOrUpdateHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiTagDescriptionCreateOrUpdateHeaders object itself.
+ */
+ public ApiTagDescriptionCreateOrUpdateHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiTagDescriptionGetEntityTagHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiTagDescriptionGetEntityTagHeaders.java
new file mode 100644
index 0000000000000..042f0b7b5945d
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiTagDescriptionGetEntityTagHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for GetEntityTag operation.
+ */
+public class ApiTagDescriptionGetEntityTagHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiTagDescriptionGetEntityTagHeaders object itself.
+ */
+ public ApiTagDescriptionGetEntityTagHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiTagDescriptionGetHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiTagDescriptionGetHeaders.java
new file mode 100644
index 0000000000000..bf3f3fb63bcb3
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiTagDescriptionGetHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for Get operation.
+ */
+public class ApiTagDescriptionGetHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiTagDescriptionGetHeaders object itself.
+ */
+ public ApiTagDescriptionGetHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiTagDescriptions.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiTagDescriptions.java
new file mode 100644
index 0000000000000..560c713e66466
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiTagDescriptions.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiTagDescriptionsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ApiTagDescriptions.
+ */
+public interface ApiTagDescriptions extends SupportsCreating, HasInner {
+ /**
+ * Gets the entity state version of the tag specified by its identifier.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
+ * @param tagId Tag identifier. Must be unique in the current API Management service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable getEntityTagAsync(String resourceGroupName, String serviceName, String apiId, String tagId);
+
+ /**
+ * Get Tag description in scope of API.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
+ * @param tagId Tag identifier. Must be unique in the current API Management service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serviceName, String apiId, String tagId);
+
+ /**
+ * Lists all Tags descriptions in scope of API. Model similar to swagger - tagDescription is defined on API level but tag may be assigned to the Operations.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByServiceAsync(final String resourceGroupName, final String serviceName, final String apiId);
+
+ /**
+ * Delete tag description for the Api.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
+ * @param tagId Tag identifier. Must be unique in the current API Management service instance.
+ * @param ifMatch ETag of the Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String serviceName, String apiId, String tagId, String ifMatch);
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiTagResourceContractProperties.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiTagResourceContractProperties.java
new file mode 100644
index 0000000000000..3a8bf4f2aee3f
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiTagResourceContractProperties.java
@@ -0,0 +1,151 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * API contract properties for the Tag Resources.
+ */
+public class ApiTagResourceContractProperties extends ApiEntityBaseContract {
+ /**
+ * API identifier in the form /apis/{apiId}.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /**
+ * API name.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Absolute URL of the backend service implementing this API.
+ */
+ @JsonProperty(value = "serviceUrl")
+ private String serviceUrl;
+
+ /**
+ * Relative URL uniquely identifying this API and all of its resource paths
+ * within the API Management service instance. It is appended to the API
+ * endpoint base URL specified during the service instance creation to form
+ * a public URL for this API.
+ */
+ @JsonProperty(value = "path")
+ private String path;
+
+ /**
+ * Describes on which protocols the operations in this API can be invoked.
+ */
+ @JsonProperty(value = "protocols")
+ private List protocols;
+
+ /**
+ * Get aPI identifier in the form /apis/{apiId}.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set aPI identifier in the form /apis/{apiId}.
+ *
+ * @param id the id value to set
+ * @return the ApiTagResourceContractProperties object itself.
+ */
+ public ApiTagResourceContractProperties withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get aPI name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set aPI name.
+ *
+ * @param name the name value to set
+ * @return the ApiTagResourceContractProperties object itself.
+ */
+ public ApiTagResourceContractProperties withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get absolute URL of the backend service implementing this API.
+ *
+ * @return the serviceUrl value
+ */
+ public String serviceUrl() {
+ return this.serviceUrl;
+ }
+
+ /**
+ * Set absolute URL of the backend service implementing this API.
+ *
+ * @param serviceUrl the serviceUrl value to set
+ * @return the ApiTagResourceContractProperties object itself.
+ */
+ public ApiTagResourceContractProperties withServiceUrl(String serviceUrl) {
+ this.serviceUrl = serviceUrl;
+ return this;
+ }
+
+ /**
+ * Get relative URL uniquely identifying this API and all of its resource paths within the API Management service instance. It is appended to the API endpoint base URL specified during the service instance creation to form a public URL for this API.
+ *
+ * @return the path value
+ */
+ public String path() {
+ return this.path;
+ }
+
+ /**
+ * Set relative URL uniquely identifying this API and all of its resource paths within the API Management service instance. It is appended to the API endpoint base URL specified during the service instance creation to form a public URL for this API.
+ *
+ * @param path the path value to set
+ * @return the ApiTagResourceContractProperties object itself.
+ */
+ public ApiTagResourceContractProperties withPath(String path) {
+ this.path = path;
+ return this;
+ }
+
+ /**
+ * Get describes on which protocols the operations in this API can be invoked.
+ *
+ * @return the protocols value
+ */
+ public List protocols() {
+ return this.protocols;
+ }
+
+ /**
+ * Set describes on which protocols the operations in this API can be invoked.
+ *
+ * @param protocols the protocols value to set
+ * @return the ApiTagResourceContractProperties object itself.
+ */
+ public ApiTagResourceContractProperties withProtocols(List protocols) {
+ this.protocols = protocols;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiType.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiType.java
new file mode 100644
index 0000000000000..90968020ee068
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiType.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ApiType.
+ */
+public final class ApiType extends ExpandableStringEnum {
+ /** Static value http for ApiType. */
+ public static final ApiType HTTP = fromString("http");
+
+ /** Static value soap for ApiType. */
+ public static final ApiType SOAP = fromString("soap");
+
+ /**
+ * Creates or finds a ApiType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ApiType
+ */
+ @JsonCreator
+ public static ApiType fromString(String name) {
+ return fromString(name, ApiType.class);
+ }
+
+ /**
+ * @return known ApiType values
+ */
+ public static Collection values() {
+ return values(ApiType.class);
+ }
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiUpdateContract.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiUpdateContract.java
new file mode 100644
index 0000000000000..f233b77ea0aad
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiUpdateContract.java
@@ -0,0 +1,430 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * API update contract details.
+ */
+@JsonFlatten
+public class ApiUpdateContract {
+ /**
+ * Description of the API. May include HTML formatting tags.
+ */
+ @JsonProperty(value = "properties.description")
+ private String description;
+
+ /**
+ * Collection of authentication settings included into this API.
+ */
+ @JsonProperty(value = "properties.authenticationSettings")
+ private AuthenticationSettingsContract authenticationSettings;
+
+ /**
+ * Protocols over which API is made available.
+ */
+ @JsonProperty(value = "properties.subscriptionKeyParameterNames")
+ private SubscriptionKeyParameterNamesContract subscriptionKeyParameterNames;
+
+ /**
+ * Type of API. Possible values include: 'http', 'soap'.
+ */
+ @JsonProperty(value = "properties.type")
+ private ApiType apiType;
+
+ /**
+ * Describes the Revision of the Api. If no value is provided, default
+ * revision 1 is created.
+ */
+ @JsonProperty(value = "properties.apiRevision")
+ private String apiRevision;
+
+ /**
+ * Indicates the Version identifier of the API if the API is versioned.
+ */
+ @JsonProperty(value = "properties.apiVersion")
+ private String apiVersion;
+
+ /**
+ * Indicates if API revision is current api revision.
+ */
+ @JsonProperty(value = "properties.isCurrent")
+ private Boolean isCurrent;
+
+ /**
+ * Indicates if API revision is accessible via the gateway.
+ */
+ @JsonProperty(value = "properties.isOnline", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean isOnline;
+
+ /**
+ * Description of the Api Revision.
+ */
+ @JsonProperty(value = "properties.apiRevisionDescription")
+ private String apiRevisionDescription;
+
+ /**
+ * Description of the Api Version.
+ */
+ @JsonProperty(value = "properties.apiVersionDescription")
+ private String apiVersionDescription;
+
+ /**
+ * A resource identifier for the related ApiVersionSet.
+ */
+ @JsonProperty(value = "properties.apiVersionSetId")
+ private String apiVersionSetId;
+
+ /**
+ * Specifies whether an API or Product subscription is required for
+ * accessing the API.
+ */
+ @JsonProperty(value = "properties.subscriptionRequired")
+ private Boolean subscriptionRequired;
+
+ /**
+ * API name.
+ */
+ @JsonProperty(value = "properties.displayName")
+ private String displayName;
+
+ /**
+ * Absolute URL of the backend service implementing this API.
+ */
+ @JsonProperty(value = "properties.serviceUrl")
+ private String serviceUrl;
+
+ /**
+ * Relative URL uniquely identifying this API and all of its resource paths
+ * within the API Management service instance. It is appended to the API
+ * endpoint base URL specified during the service instance creation to form
+ * a public URL for this API.
+ */
+ @JsonProperty(value = "properties.path")
+ private String path;
+
+ /**
+ * Describes on which protocols the operations in this API can be invoked.
+ */
+ @JsonProperty(value = "properties.protocols")
+ private List protocols;
+
+ /**
+ * Get description of the API. May include HTML formatting tags.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set description of the API. May include HTML formatting tags.
+ *
+ * @param description the description value to set
+ * @return the ApiUpdateContract object itself.
+ */
+ public ApiUpdateContract withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get collection of authentication settings included into this API.
+ *
+ * @return the authenticationSettings value
+ */
+ public AuthenticationSettingsContract authenticationSettings() {
+ return this.authenticationSettings;
+ }
+
+ /**
+ * Set collection of authentication settings included into this API.
+ *
+ * @param authenticationSettings the authenticationSettings value to set
+ * @return the ApiUpdateContract object itself.
+ */
+ public ApiUpdateContract withAuthenticationSettings(AuthenticationSettingsContract authenticationSettings) {
+ this.authenticationSettings = authenticationSettings;
+ return this;
+ }
+
+ /**
+ * Get protocols over which API is made available.
+ *
+ * @return the subscriptionKeyParameterNames value
+ */
+ public SubscriptionKeyParameterNamesContract subscriptionKeyParameterNames() {
+ return this.subscriptionKeyParameterNames;
+ }
+
+ /**
+ * Set protocols over which API is made available.
+ *
+ * @param subscriptionKeyParameterNames the subscriptionKeyParameterNames value to set
+ * @return the ApiUpdateContract object itself.
+ */
+ public ApiUpdateContract withSubscriptionKeyParameterNames(SubscriptionKeyParameterNamesContract subscriptionKeyParameterNames) {
+ this.subscriptionKeyParameterNames = subscriptionKeyParameterNames;
+ return this;
+ }
+
+ /**
+ * Get type of API. Possible values include: 'http', 'soap'.
+ *
+ * @return the apiType value
+ */
+ public ApiType apiType() {
+ return this.apiType;
+ }
+
+ /**
+ * Set type of API. Possible values include: 'http', 'soap'.
+ *
+ * @param apiType the apiType value to set
+ * @return the ApiUpdateContract object itself.
+ */
+ public ApiUpdateContract withApiType(ApiType apiType) {
+ this.apiType = apiType;
+ return this;
+ }
+
+ /**
+ * Get describes the Revision of the Api. If no value is provided, default revision 1 is created.
+ *
+ * @return the apiRevision value
+ */
+ public String apiRevision() {
+ return this.apiRevision;
+ }
+
+ /**
+ * Set describes the Revision of the Api. If no value is provided, default revision 1 is created.
+ *
+ * @param apiRevision the apiRevision value to set
+ * @return the ApiUpdateContract object itself.
+ */
+ public ApiUpdateContract withApiRevision(String apiRevision) {
+ this.apiRevision = apiRevision;
+ return this;
+ }
+
+ /**
+ * Get indicates the Version identifier of the API if the API is versioned.
+ *
+ * @return the apiVersion value
+ */
+ public String apiVersion() {
+ return this.apiVersion;
+ }
+
+ /**
+ * Set indicates the Version identifier of the API if the API is versioned.
+ *
+ * @param apiVersion the apiVersion value to set
+ * @return the ApiUpdateContract object itself.
+ */
+ public ApiUpdateContract withApiVersion(String apiVersion) {
+ this.apiVersion = apiVersion;
+ return this;
+ }
+
+ /**
+ * Get indicates if API revision is current api revision.
+ *
+ * @return the isCurrent value
+ */
+ public Boolean isCurrent() {
+ return this.isCurrent;
+ }
+
+ /**
+ * Set indicates if API revision is current api revision.
+ *
+ * @param isCurrent the isCurrent value to set
+ * @return the ApiUpdateContract object itself.
+ */
+ public ApiUpdateContract withIsCurrent(Boolean isCurrent) {
+ this.isCurrent = isCurrent;
+ return this;
+ }
+
+ /**
+ * Get indicates if API revision is accessible via the gateway.
+ *
+ * @return the isOnline value
+ */
+ public Boolean isOnline() {
+ return this.isOnline;
+ }
+
+ /**
+ * Get description of the Api Revision.
+ *
+ * @return the apiRevisionDescription value
+ */
+ public String apiRevisionDescription() {
+ return this.apiRevisionDescription;
+ }
+
+ /**
+ * Set description of the Api Revision.
+ *
+ * @param apiRevisionDescription the apiRevisionDescription value to set
+ * @return the ApiUpdateContract object itself.
+ */
+ public ApiUpdateContract withApiRevisionDescription(String apiRevisionDescription) {
+ this.apiRevisionDescription = apiRevisionDescription;
+ return this;
+ }
+
+ /**
+ * Get description of the Api Version.
+ *
+ * @return the apiVersionDescription value
+ */
+ public String apiVersionDescription() {
+ return this.apiVersionDescription;
+ }
+
+ /**
+ * Set description of the Api Version.
+ *
+ * @param apiVersionDescription the apiVersionDescription value to set
+ * @return the ApiUpdateContract object itself.
+ */
+ public ApiUpdateContract withApiVersionDescription(String apiVersionDescription) {
+ this.apiVersionDescription = apiVersionDescription;
+ return this;
+ }
+
+ /**
+ * Get a resource identifier for the related ApiVersionSet.
+ *
+ * @return the apiVersionSetId value
+ */
+ public String apiVersionSetId() {
+ return this.apiVersionSetId;
+ }
+
+ /**
+ * Set a resource identifier for the related ApiVersionSet.
+ *
+ * @param apiVersionSetId the apiVersionSetId value to set
+ * @return the ApiUpdateContract object itself.
+ */
+ public ApiUpdateContract withApiVersionSetId(String apiVersionSetId) {
+ this.apiVersionSetId = apiVersionSetId;
+ return this;
+ }
+
+ /**
+ * Get specifies whether an API or Product subscription is required for accessing the API.
+ *
+ * @return the subscriptionRequired value
+ */
+ public Boolean subscriptionRequired() {
+ return this.subscriptionRequired;
+ }
+
+ /**
+ * Set specifies whether an API or Product subscription is required for accessing the API.
+ *
+ * @param subscriptionRequired the subscriptionRequired value to set
+ * @return the ApiUpdateContract object itself.
+ */
+ public ApiUpdateContract withSubscriptionRequired(Boolean subscriptionRequired) {
+ this.subscriptionRequired = subscriptionRequired;
+ return this;
+ }
+
+ /**
+ * Get aPI name.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set aPI name.
+ *
+ * @param displayName the displayName value to set
+ * @return the ApiUpdateContract object itself.
+ */
+ public ApiUpdateContract withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get absolute URL of the backend service implementing this API.
+ *
+ * @return the serviceUrl value
+ */
+ public String serviceUrl() {
+ return this.serviceUrl;
+ }
+
+ /**
+ * Set absolute URL of the backend service implementing this API.
+ *
+ * @param serviceUrl the serviceUrl value to set
+ * @return the ApiUpdateContract object itself.
+ */
+ public ApiUpdateContract withServiceUrl(String serviceUrl) {
+ this.serviceUrl = serviceUrl;
+ return this;
+ }
+
+ /**
+ * Get relative URL uniquely identifying this API and all of its resource paths within the API Management service instance. It is appended to the API endpoint base URL specified during the service instance creation to form a public URL for this API.
+ *
+ * @return the path value
+ */
+ public String path() {
+ return this.path;
+ }
+
+ /**
+ * Set relative URL uniquely identifying this API and all of its resource paths within the API Management service instance. It is appended to the API endpoint base URL specified during the service instance creation to form a public URL for this API.
+ *
+ * @param path the path value to set
+ * @return the ApiUpdateContract object itself.
+ */
+ public ApiUpdateContract withPath(String path) {
+ this.path = path;
+ return this;
+ }
+
+ /**
+ * Get describes on which protocols the operations in this API can be invoked.
+ *
+ * @return the protocols value
+ */
+ public List protocols() {
+ return this.protocols;
+ }
+
+ /**
+ * Set describes on which protocols the operations in this API can be invoked.
+ *
+ * @param protocols the protocols value to set
+ * @return the ApiUpdateContract object itself.
+ */
+ public ApiUpdateContract withProtocols(List protocols) {
+ this.protocols = protocols;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiVersionSetContract.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiVersionSetContract.java
new file mode 100644
index 0000000000000..1efeea7bd354d
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiVersionSetContract.java
@@ -0,0 +1,243 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiVersionSetContractInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiManagementManager;
+
+/**
+ * Type representing ApiVersionSetContract.
+ */
+public interface ApiVersionSetContract extends HasInner, Indexable, Updatable, HasManager {
+ /**
+ * @return the description value.
+ */
+ String description();
+
+ /**
+ * @return the displayName value.
+ */
+ String displayName();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the versionHeaderName value.
+ */
+ String versionHeaderName();
+
+ /**
+ * @return the versioningScheme value.
+ */
+ VersioningScheme versioningScheme();
+
+ /**
+ * @return the versionQueryName value.
+ */
+ String versionQueryName();
+
+ /**
+ * The entirety of the ApiVersionSetContract definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithResourceGroupName, DefinitionStages.WithServiceName, DefinitionStages.WithIfMatch, DefinitionStages.WithDisplayName, DefinitionStages.WithVersioningScheme, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ApiVersionSetContract definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ApiVersionSetContract definition.
+ */
+ interface Blank extends WithResourceGroupName {
+ }
+
+ /**
+ * The stage of the apiversionsetcontract definition allowing to specify ResourceGroupName.
+ */
+ interface WithResourceGroupName {
+ /**
+ * Specifies resourceGroupName.
+ * @param resourceGroupName The name of the resource group
+ * @return the next definition stage
+ */
+ WithServiceName withResourceGroupName(String resourceGroupName);
+ }
+
+ /**
+ * The stage of the apiversionsetcontract definition allowing to specify ServiceName.
+ */
+ interface WithServiceName {
+ /**
+ * Specifies serviceName.
+ * @param serviceName The name of the API Management service
+ * @return the next definition stage
+ */
+ WithIfMatch withServiceName(String serviceName);
+ }
+
+ /**
+ * The stage of the apiversionsetcontract definition allowing to specify IfMatch.
+ */
+ interface WithIfMatch {
+ /**
+ * Specifies ifMatch.
+ * @param ifMatch ETag of the Entity. Not required when creating an entity, but required when updating an entity
+ * @return the next definition stage
+ */
+ WithDisplayName withIfMatch(String ifMatch);
+ }
+
+ /**
+ * The stage of the apiversionsetcontract definition allowing to specify DisplayName.
+ */
+ interface WithDisplayName {
+ /**
+ * Specifies displayName.
+ * @param displayName Name of API Version Set
+ * @return the next definition stage
+ */
+ WithVersioningScheme withDisplayName(String displayName);
+ }
+
+ /**
+ * The stage of the apiversionsetcontract definition allowing to specify VersioningScheme.
+ */
+ interface WithVersioningScheme {
+ /**
+ * Specifies versioningScheme.
+ * @param versioningScheme An value that determines where the API Version identifer will be located in a HTTP request. Possible values include: 'Segment', 'Query', 'Header'
+ * @return the next definition stage
+ */
+ WithCreate withVersioningScheme(VersioningScheme versioningScheme);
+ }
+
+ /**
+ * The stage of the apiversionsetcontract definition allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description Description of API Version Set
+ * @return the next definition stage
+ */
+ WithCreate withDescription(String description);
+ }
+
+ /**
+ * The stage of the apiversionsetcontract definition allowing to specify VersionHeaderName.
+ */
+ interface WithVersionHeaderName {
+ /**
+ * Specifies versionHeaderName.
+ * @param versionHeaderName Name of HTTP header parameter that indicates the API Version if versioningScheme is set to `header`
+ * @return the next definition stage
+ */
+ WithCreate withVersionHeaderName(String versionHeaderName);
+ }
+
+ /**
+ * The stage of the apiversionsetcontract definition allowing to specify VersionQueryName.
+ */
+ interface WithVersionQueryName {
+ /**
+ * Specifies versionQueryName.
+ * @param versionQueryName Name of query parameter that indicates the API Version if versioningScheme is set to `query`
+ * @return the next definition stage
+ */
+ WithCreate withVersionQueryName(String versionQueryName);
+ }
+
+ /**
+ * 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.WithDescription, DefinitionStages.WithVersionHeaderName, DefinitionStages.WithVersionQueryName {
+ }
+ }
+ /**
+ * The template for a ApiVersionSetContract update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithIfMatch, UpdateStages.WithDescription, UpdateStages.WithVersionHeaderName, UpdateStages.WithVersionQueryName {
+ }
+
+ /**
+ * Grouping of ApiVersionSetContract update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the apiversionsetcontract update allowing to specify IfMatch.
+ */
+ interface WithIfMatch {
+ /**
+ * Specifies ifMatch.
+ * @param ifMatch ETag of the Entity. Not required when creating an entity, but required when updating an entity
+ * @return the next update stage
+ */
+ Update withIfMatch(String ifMatch);
+ }
+
+ /**
+ * The stage of the apiversionsetcontract update allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description Description of API Version Set
+ * @return the next update stage
+ */
+ Update withDescription(String description);
+ }
+
+ /**
+ * The stage of the apiversionsetcontract update allowing to specify VersionHeaderName.
+ */
+ interface WithVersionHeaderName {
+ /**
+ * Specifies versionHeaderName.
+ * @param versionHeaderName Name of HTTP header parameter that indicates the API Version if versioningScheme is set to `header`
+ * @return the next update stage
+ */
+ Update withVersionHeaderName(String versionHeaderName);
+ }
+
+ /**
+ * The stage of the apiversionsetcontract update allowing to specify VersionQueryName.
+ */
+ interface WithVersionQueryName {
+ /**
+ * Specifies versionQueryName.
+ * @param versionQueryName Name of query parameter that indicates the API Version if versioningScheme is set to `query`
+ * @return the next update stage
+ */
+ Update withVersionQueryName(String versionQueryName);
+ }
+
+ }
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiVersionSetContractDetails.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiVersionSetContractDetails.java
new file mode 100644
index 0000000000000..17d99dd16c644
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiVersionSetContractDetails.java
@@ -0,0 +1,179 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * An API Version Set contains the common configuration for a set of API
+ * Versions relating.
+ */
+public class ApiVersionSetContractDetails {
+ /**
+ * Identifier for existing API Version Set. Omit this value to create a new
+ * Version Set.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /**
+ * The display Name of the API Version Set.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * Description of API Version Set.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * An value that determines where the API Version identifer will be located
+ * in a HTTP request. Possible values include: 'Segment', 'Query',
+ * 'Header'.
+ */
+ @JsonProperty(value = "versioningScheme")
+ private String versioningScheme;
+
+ /**
+ * Name of query parameter that indicates the API Version if
+ * versioningScheme is set to `query`.
+ */
+ @JsonProperty(value = "versionQueryName")
+ private String versionQueryName;
+
+ /**
+ * Name of HTTP header parameter that indicates the API Version if
+ * versioningScheme is set to `header`.
+ */
+ @JsonProperty(value = "versionHeaderName")
+ private String versionHeaderName;
+
+ /**
+ * Get identifier for existing API Version Set. Omit this value to create a new Version Set.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set identifier for existing API Version Set. Omit this value to create a new Version Set.
+ *
+ * @param id the id value to set
+ * @return the ApiVersionSetContractDetails object itself.
+ */
+ public ApiVersionSetContractDetails withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get the display Name of the API Version Set.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the display Name of the API Version Set.
+ *
+ * @param name the name value to set
+ * @return the ApiVersionSetContractDetails object itself.
+ */
+ public ApiVersionSetContractDetails withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get description of API Version Set.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set description of API Version Set.
+ *
+ * @param description the description value to set
+ * @return the ApiVersionSetContractDetails object itself.
+ */
+ public ApiVersionSetContractDetails withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get an value that determines where the API Version identifer will be located in a HTTP request. Possible values include: 'Segment', 'Query', 'Header'.
+ *
+ * @return the versioningScheme value
+ */
+ public String versioningScheme() {
+ return this.versioningScheme;
+ }
+
+ /**
+ * Set an value that determines where the API Version identifer will be located in a HTTP request. Possible values include: 'Segment', 'Query', 'Header'.
+ *
+ * @param versioningScheme the versioningScheme value to set
+ * @return the ApiVersionSetContractDetails object itself.
+ */
+ public ApiVersionSetContractDetails withVersioningScheme(String versioningScheme) {
+ this.versioningScheme = versioningScheme;
+ return this;
+ }
+
+ /**
+ * Get name of query parameter that indicates the API Version if versioningScheme is set to `query`.
+ *
+ * @return the versionQueryName value
+ */
+ public String versionQueryName() {
+ return this.versionQueryName;
+ }
+
+ /**
+ * Set name of query parameter that indicates the API Version if versioningScheme is set to `query`.
+ *
+ * @param versionQueryName the versionQueryName value to set
+ * @return the ApiVersionSetContractDetails object itself.
+ */
+ public ApiVersionSetContractDetails withVersionQueryName(String versionQueryName) {
+ this.versionQueryName = versionQueryName;
+ return this;
+ }
+
+ /**
+ * Get name of HTTP header parameter that indicates the API Version if versioningScheme is set to `header`.
+ *
+ * @return the versionHeaderName value
+ */
+ public String versionHeaderName() {
+ return this.versionHeaderName;
+ }
+
+ /**
+ * Set name of HTTP header parameter that indicates the API Version if versioningScheme is set to `header`.
+ *
+ * @param versionHeaderName the versionHeaderName value to set
+ * @return the ApiVersionSetContractDetails object itself.
+ */
+ public ApiVersionSetContractDetails withVersionHeaderName(String versionHeaderName) {
+ this.versionHeaderName = versionHeaderName;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiVersionSetCreateOrUpdateHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiVersionSetCreateOrUpdateHeaders.java
new file mode 100644
index 0000000000000..4b697ab3f1eed
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiVersionSetCreateOrUpdateHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for CreateOrUpdate operation.
+ */
+public class ApiVersionSetCreateOrUpdateHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiVersionSetCreateOrUpdateHeaders object itself.
+ */
+ public ApiVersionSetCreateOrUpdateHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiVersionSetEntityBase.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiVersionSetEntityBase.java
new file mode 100644
index 0000000000000..e12d661283c7b
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiVersionSetEntityBase.java
@@ -0,0 +1,97 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Api Version set base parameters.
+ */
+public class ApiVersionSetEntityBase {
+ /**
+ * Description of API Version Set.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * Name of query parameter that indicates the API Version if
+ * versioningScheme is set to `query`.
+ */
+ @JsonProperty(value = "versionQueryName")
+ private String versionQueryName;
+
+ /**
+ * Name of HTTP header parameter that indicates the API Version if
+ * versioningScheme is set to `header`.
+ */
+ @JsonProperty(value = "versionHeaderName")
+ private String versionHeaderName;
+
+ /**
+ * Get description of API Version Set.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set description of API Version Set.
+ *
+ * @param description the description value to set
+ * @return the ApiVersionSetEntityBase object itself.
+ */
+ public ApiVersionSetEntityBase withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get name of query parameter that indicates the API Version if versioningScheme is set to `query`.
+ *
+ * @return the versionQueryName value
+ */
+ public String versionQueryName() {
+ return this.versionQueryName;
+ }
+
+ /**
+ * Set name of query parameter that indicates the API Version if versioningScheme is set to `query`.
+ *
+ * @param versionQueryName the versionQueryName value to set
+ * @return the ApiVersionSetEntityBase object itself.
+ */
+ public ApiVersionSetEntityBase withVersionQueryName(String versionQueryName) {
+ this.versionQueryName = versionQueryName;
+ return this;
+ }
+
+ /**
+ * Get name of HTTP header parameter that indicates the API Version if versioningScheme is set to `header`.
+ *
+ * @return the versionHeaderName value
+ */
+ public String versionHeaderName() {
+ return this.versionHeaderName;
+ }
+
+ /**
+ * Set name of HTTP header parameter that indicates the API Version if versioningScheme is set to `header`.
+ *
+ * @param versionHeaderName the versionHeaderName value to set
+ * @return the ApiVersionSetEntityBase object itself.
+ */
+ public ApiVersionSetEntityBase withVersionHeaderName(String versionHeaderName) {
+ this.versionHeaderName = versionHeaderName;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiVersionSetGetEntityTagHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiVersionSetGetEntityTagHeaders.java
new file mode 100644
index 0000000000000..3fd2e74be3a5b
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiVersionSetGetEntityTagHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for GetEntityTag operation.
+ */
+public class ApiVersionSetGetEntityTagHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiVersionSetGetEntityTagHeaders object itself.
+ */
+ public ApiVersionSetGetEntityTagHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiVersionSetGetHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiVersionSetGetHeaders.java
new file mode 100644
index 0000000000000..f5f4d25f04c12
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiVersionSetGetHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for Get operation.
+ */
+public class ApiVersionSetGetHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the ApiVersionSetGetHeaders object itself.
+ */
+ public ApiVersionSetGetHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiVersionSetUpdateParameters.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiVersionSetUpdateParameters.java
new file mode 100644
index 0000000000000..8fe0d2adb24ff
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiVersionSetUpdateParameters.java
@@ -0,0 +1,153 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Parameters to update or create an Api Version Set Contract.
+ */
+@JsonFlatten
+public class ApiVersionSetUpdateParameters {
+ /**
+ * Description of API Version Set.
+ */
+ @JsonProperty(value = "properties.description")
+ private String description;
+
+ /**
+ * Name of query parameter that indicates the API Version if
+ * versioningScheme is set to `query`.
+ */
+ @JsonProperty(value = "properties.versionQueryName")
+ private String versionQueryName;
+
+ /**
+ * Name of HTTP header parameter that indicates the API Version if
+ * versioningScheme is set to `header`.
+ */
+ @JsonProperty(value = "properties.versionHeaderName")
+ private String versionHeaderName;
+
+ /**
+ * Name of API Version Set.
+ */
+ @JsonProperty(value = "properties.displayName")
+ private String displayName;
+
+ /**
+ * An value that determines where the API Version identifer will be located
+ * in a HTTP request. Possible values include: 'Segment', 'Query',
+ * 'Header'.
+ */
+ @JsonProperty(value = "properties.versioningScheme")
+ private VersioningScheme versioningScheme;
+
+ /**
+ * Get description of API Version Set.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set description of API Version Set.
+ *
+ * @param description the description value to set
+ * @return the ApiVersionSetUpdateParameters object itself.
+ */
+ public ApiVersionSetUpdateParameters withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get name of query parameter that indicates the API Version if versioningScheme is set to `query`.
+ *
+ * @return the versionQueryName value
+ */
+ public String versionQueryName() {
+ return this.versionQueryName;
+ }
+
+ /**
+ * Set name of query parameter that indicates the API Version if versioningScheme is set to `query`.
+ *
+ * @param versionQueryName the versionQueryName value to set
+ * @return the ApiVersionSetUpdateParameters object itself.
+ */
+ public ApiVersionSetUpdateParameters withVersionQueryName(String versionQueryName) {
+ this.versionQueryName = versionQueryName;
+ return this;
+ }
+
+ /**
+ * Get name of HTTP header parameter that indicates the API Version if versioningScheme is set to `header`.
+ *
+ * @return the versionHeaderName value
+ */
+ public String versionHeaderName() {
+ return this.versionHeaderName;
+ }
+
+ /**
+ * Set name of HTTP header parameter that indicates the API Version if versioningScheme is set to `header`.
+ *
+ * @param versionHeaderName the versionHeaderName value to set
+ * @return the ApiVersionSetUpdateParameters object itself.
+ */
+ public ApiVersionSetUpdateParameters withVersionHeaderName(String versionHeaderName) {
+ this.versionHeaderName = versionHeaderName;
+ return this;
+ }
+
+ /**
+ * Get name of API Version Set.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set name of API Version Set.
+ *
+ * @param displayName the displayName value to set
+ * @return the ApiVersionSetUpdateParameters object itself.
+ */
+ public ApiVersionSetUpdateParameters withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get an value that determines where the API Version identifer will be located in a HTTP request. Possible values include: 'Segment', 'Query', 'Header'.
+ *
+ * @return the versioningScheme value
+ */
+ public VersioningScheme versioningScheme() {
+ return this.versioningScheme;
+ }
+
+ /**
+ * Set an value that determines where the API Version identifer will be located in a HTTP request. Possible values include: 'Segment', 'Query', 'Header'.
+ *
+ * @param versioningScheme the versioningScheme value to set
+ * @return the ApiVersionSetUpdateParameters object itself.
+ */
+ public ApiVersionSetUpdateParameters withVersioningScheme(VersioningScheme versioningScheme) {
+ this.versioningScheme = versioningScheme;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiVersionSets.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiVersionSets.java
new file mode 100644
index 0000000000000..ad4c098e7f4e9
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApiVersionSets.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.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiVersionSetsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ApiVersionSets.
+ */
+public interface ApiVersionSets extends SupportsCreating, HasInner {
+ /**
+ * Lists a collection of API Version Sets in the specified service instance.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByServiceAsync(final String resourceGroupName, final String serviceName);
+
+ /**
+ * Gets the entity state (Etag) version of the Api Version Set specified by its identifier.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param versionSetId Api Version Set identifier. Must be unique in the current API Management service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable getEntityTagAsync(String resourceGroupName, String serviceName, String versionSetId);
+
+ /**
+ * Gets the details of the Api Version Set specified by its identifier.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param versionSetId Api Version Set identifier. Must be unique in the current API Management service instance.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serviceName, String versionSetId);
+
+ /**
+ * Deletes specific Api Version Set.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param versionSetId Api Version Set identifier. Must be unique in the current API Management service instance.
+ * @param ifMatch ETag of the Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String serviceName, String versionSetId, String ifMatch);
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApimResource.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApimResource.java
new file mode 100644
index 0000000000000..d4883dd497f71
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/ApimResource.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * The Resource definition.
+ */
+public class ApimResource extends ProxyResource {
+ /**
+ * Resource tags.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * Get resource tags.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set resource tags.
+ *
+ * @param tags the tags value to set
+ * @return the ApimResource object itself.
+ */
+ public ApimResource withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/Apis.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/Apis.java
new file mode 100644
index 0000000000000..ba359567dd06c
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/Apis.java
@@ -0,0 +1,75 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApisInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Apis.
+ */
+public interface Apis extends SupportsCreating, HasInner {
+ /**
+ * Lists all APIs of the API Management service instance.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByServiceAsync(final String resourceGroupName, final String serviceName);
+
+ /**
+ * Gets the entity state (Etag) version of the API specified by its identifier.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable getEntityTagAsync(String resourceGroupName, String serviceName, String apiId);
+
+ /**
+ * Gets the details of the API specified by its identifier.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serviceName, String apiId);
+
+ /**
+ * Deletes the specified API of the API Management service instance.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param apiId API revision identifier. Must be unique in the current API Management service instance. Non-current revision has ;rev=n as a suffix where n is the revision number.
+ * @param ifMatch ETag of the Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String serviceName, String apiId, String ifMatch);
+
+ /**
+ * Lists a collection of apis associated with tags.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByTagsAsync(final String resourceGroupName, final String serviceName);
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AsyncOperationStatus.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AsyncOperationStatus.java
new file mode 100644
index 0000000000000..74f6b04b3cf2d
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AsyncOperationStatus.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for AsyncOperationStatus.
+ */
+public enum AsyncOperationStatus {
+ /** Enum value Started. */
+ STARTED("Started"),
+
+ /** Enum value InProgress. */
+ IN_PROGRESS("InProgress"),
+
+ /** Enum value Succeeded. */
+ SUCCEEDED("Succeeded"),
+
+ /** Enum value Failed. */
+ FAILED("Failed");
+
+ /** The actual serialized value for a AsyncOperationStatus instance. */
+ private String value;
+
+ AsyncOperationStatus(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a AsyncOperationStatus instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed AsyncOperationStatus object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static AsyncOperationStatus fromString(String value) {
+ AsyncOperationStatus[] items = AsyncOperationStatus.values();
+ for (AsyncOperationStatus item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthenticationSettingsContract.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthenticationSettingsContract.java
new file mode 100644
index 0000000000000..46f05245725c3
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthenticationSettingsContract.java
@@ -0,0 +1,97 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * API Authentication Settings.
+ */
+public class AuthenticationSettingsContract {
+ /**
+ * OAuth2 Authentication settings.
+ */
+ @JsonProperty(value = "oAuth2")
+ private OAuth2AuthenticationSettingsContract oAuth2;
+
+ /**
+ * OpenID Connect Authentication Settings.
+ */
+ @JsonProperty(value = "openid")
+ private OpenIdAuthenticationSettingsContract openid;
+
+ /**
+ * Specifies whether subscription key is required during call to this API,
+ * true - API is included into closed products only, false - API is
+ * included into open products alone, null - there is a mix of products.
+ */
+ @JsonProperty(value = "subscriptionKeyRequired")
+ private Boolean subscriptionKeyRequired;
+
+ /**
+ * Get oAuth2 Authentication settings.
+ *
+ * @return the oAuth2 value
+ */
+ public OAuth2AuthenticationSettingsContract oAuth2() {
+ return this.oAuth2;
+ }
+
+ /**
+ * Set oAuth2 Authentication settings.
+ *
+ * @param oAuth2 the oAuth2 value to set
+ * @return the AuthenticationSettingsContract object itself.
+ */
+ public AuthenticationSettingsContract withOAuth2(OAuth2AuthenticationSettingsContract oAuth2) {
+ this.oAuth2 = oAuth2;
+ return this;
+ }
+
+ /**
+ * Get openID Connect Authentication Settings.
+ *
+ * @return the openid value
+ */
+ public OpenIdAuthenticationSettingsContract openid() {
+ return this.openid;
+ }
+
+ /**
+ * Set openID Connect Authentication Settings.
+ *
+ * @param openid the openid value to set
+ * @return the AuthenticationSettingsContract object itself.
+ */
+ public AuthenticationSettingsContract withOpenid(OpenIdAuthenticationSettingsContract openid) {
+ this.openid = openid;
+ return this;
+ }
+
+ /**
+ * Get specifies whether subscription key is required during call to this API, true - API is included into closed products only, false - API is included into open products alone, null - there is a mix of products.
+ *
+ * @return the subscriptionKeyRequired value
+ */
+ public Boolean subscriptionKeyRequired() {
+ return this.subscriptionKeyRequired;
+ }
+
+ /**
+ * Set specifies whether subscription key is required during call to this API, true - API is included into closed products only, false - API is included into open products alone, null - there is a mix of products.
+ *
+ * @param subscriptionKeyRequired the subscriptionKeyRequired value to set
+ * @return the AuthenticationSettingsContract object itself.
+ */
+ public AuthenticationSettingsContract withSubscriptionKeyRequired(Boolean subscriptionKeyRequired) {
+ this.subscriptionKeyRequired = subscriptionKeyRequired;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthorizationMethod.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthorizationMethod.java
new file mode 100644
index 0000000000000..72aafa5ab0954
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthorizationMethod.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for AuthorizationMethod.
+ */
+public enum AuthorizationMethod {
+ /** Enum value HEAD. */
+ HEAD("HEAD"),
+
+ /** Enum value OPTIONS. */
+ OPTIONS("OPTIONS"),
+
+ /** Enum value TRACE. */
+ TRACE("TRACE"),
+
+ /** Enum value GET. */
+ GET("GET"),
+
+ /** Enum value POST. */
+ POST("POST"),
+
+ /** Enum value PUT. */
+ PUT("PUT"),
+
+ /** Enum value PATCH. */
+ PATCH("PATCH"),
+
+ /** Enum value DELETE. */
+ DELETE("DELETE");
+
+ /** The actual serialized value for a AuthorizationMethod instance. */
+ private String value;
+
+ AuthorizationMethod(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a AuthorizationMethod instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed AuthorizationMethod object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static AuthorizationMethod fromString(String value) {
+ AuthorizationMethod[] items = AuthorizationMethod.values();
+ for (AuthorizationMethod item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthorizationServerContract.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthorizationServerContract.java
new file mode 100644
index 0000000000000..edf3892a4192d
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthorizationServerContract.java
@@ -0,0 +1,527 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.AuthorizationServerContractInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiManagementManager;
+import java.util.List;
+
+/**
+ * Type representing AuthorizationServerContract.
+ */
+public interface AuthorizationServerContract extends HasInner, Indexable, Updatable, HasManager {
+ /**
+ * @return the authorizationEndpoint value.
+ */
+ String authorizationEndpoint();
+
+ /**
+ * @return the authorizationMethods value.
+ */
+ List authorizationMethods();
+
+ /**
+ * @return the bearerTokenSendingMethods value.
+ */
+ List bearerTokenSendingMethods();
+
+ /**
+ * @return the clientAuthenticationMethod value.
+ */
+ List clientAuthenticationMethod();
+
+ /**
+ * @return the clientId value.
+ */
+ String clientId();
+
+ /**
+ * @return the clientRegistrationEndpoint value.
+ */
+ String clientRegistrationEndpoint();
+
+ /**
+ * @return the clientSecret value.
+ */
+ String clientSecret();
+
+ /**
+ * @return the defaultScope value.
+ */
+ String defaultScope();
+
+ /**
+ * @return the description value.
+ */
+ String description();
+
+ /**
+ * @return the displayName value.
+ */
+ String displayName();
+
+ /**
+ * @return the grantTypes value.
+ */
+ List grantTypes();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the resourceOwnerPassword value.
+ */
+ String resourceOwnerPassword();
+
+ /**
+ * @return the resourceOwnerUsername value.
+ */
+ String resourceOwnerUsername();
+
+ /**
+ * @return the supportState value.
+ */
+ Boolean supportState();
+
+ /**
+ * @return the tokenBodyParameters value.
+ */
+ List tokenBodyParameters();
+
+ /**
+ * @return the tokenEndpoint value.
+ */
+ String tokenEndpoint();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the AuthorizationServerContract definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithResourceGroupName, DefinitionStages.WithServiceName, DefinitionStages.WithIfMatch, DefinitionStages.WithAuthorizationEndpoint, DefinitionStages.WithClientId, DefinitionStages.WithClientRegistrationEndpoint, DefinitionStages.WithDisplayName, DefinitionStages.WithGrantTypes, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of AuthorizationServerContract definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a AuthorizationServerContract definition.
+ */
+ interface Blank extends WithResourceGroupName {
+ }
+
+ /**
+ * The stage of the authorizationservercontract definition allowing to specify ResourceGroupName.
+ */
+ interface WithResourceGroupName {
+ /**
+ * Specifies resourceGroupName.
+ * @param resourceGroupName The name of the resource group
+ * @return the next definition stage
+ */
+ WithServiceName withResourceGroupName(String resourceGroupName);
+ }
+
+ /**
+ * The stage of the authorizationservercontract definition allowing to specify ServiceName.
+ */
+ interface WithServiceName {
+ /**
+ * Specifies serviceName.
+ * @param serviceName The name of the API Management service
+ * @return the next definition stage
+ */
+ WithIfMatch withServiceName(String serviceName);
+ }
+
+ /**
+ * The stage of the authorizationservercontract definition allowing to specify IfMatch.
+ */
+ interface WithIfMatch {
+ /**
+ * Specifies ifMatch.
+ * @param ifMatch ETag of the Entity. Not required when creating an entity, but required when updating an entity
+ * @return the next definition stage
+ */
+ WithAuthorizationEndpoint withIfMatch(String ifMatch);
+ }
+
+ /**
+ * The stage of the authorizationservercontract definition allowing to specify AuthorizationEndpoint.
+ */
+ interface WithAuthorizationEndpoint {
+ /**
+ * Specifies authorizationEndpoint.
+ * @param authorizationEndpoint OAuth authorization endpoint. See http://tools.ietf.org/html/rfc6749#section-3.2
+ * @return the next definition stage
+ */
+ WithClientId withAuthorizationEndpoint(String authorizationEndpoint);
+ }
+
+ /**
+ * The stage of the authorizationservercontract definition allowing to specify ClientId.
+ */
+ interface WithClientId {
+ /**
+ * Specifies clientId.
+ * @param clientId Client or app id registered with this authorization server
+ * @return the next definition stage
+ */
+ WithClientRegistrationEndpoint withClientId(String clientId);
+ }
+
+ /**
+ * The stage of the authorizationservercontract definition allowing to specify ClientRegistrationEndpoint.
+ */
+ interface WithClientRegistrationEndpoint {
+ /**
+ * Specifies clientRegistrationEndpoint.
+ * @param clientRegistrationEndpoint Optional reference to a page where client or app registration for this authorization server is performed. Contains absolute URL to entity being referenced
+ * @return the next definition stage
+ */
+ WithDisplayName withClientRegistrationEndpoint(String clientRegistrationEndpoint);
+ }
+
+ /**
+ * The stage of the authorizationservercontract definition allowing to specify DisplayName.
+ */
+ interface WithDisplayName {
+ /**
+ * Specifies displayName.
+ * @param displayName User-friendly authorization server name
+ * @return the next definition stage
+ */
+ WithGrantTypes withDisplayName(String displayName);
+ }
+
+ /**
+ * The stage of the authorizationservercontract definition allowing to specify GrantTypes.
+ */
+ interface WithGrantTypes {
+ /**
+ * Specifies grantTypes.
+ * @param grantTypes Form of an authorization grant, which the client uses to request the access token
+ * @return the next definition stage
+ */
+ WithCreate withGrantTypes(List grantTypes);
+ }
+
+ /**
+ * The stage of the authorizationservercontract definition allowing to specify AuthorizationMethods.
+ */
+ interface WithAuthorizationMethods {
+ /**
+ * Specifies authorizationMethods.
+ * @param authorizationMethods HTTP verbs supported by the authorization endpoint. GET must be always present. POST is optional
+ * @return the next definition stage
+ */
+ WithCreate withAuthorizationMethods(List authorizationMethods);
+ }
+
+ /**
+ * The stage of the authorizationservercontract definition allowing to specify BearerTokenSendingMethods.
+ */
+ interface WithBearerTokenSendingMethods {
+ /**
+ * Specifies bearerTokenSendingMethods.
+ * @param bearerTokenSendingMethods Specifies the mechanism by which access token is passed to the API
+ * @return the next definition stage
+ */
+ WithCreate withBearerTokenSendingMethods(List bearerTokenSendingMethods);
+ }
+
+ /**
+ * The stage of the authorizationservercontract definition allowing to specify ClientAuthenticationMethod.
+ */
+ interface WithClientAuthenticationMethod {
+ /**
+ * Specifies clientAuthenticationMethod.
+ * @param clientAuthenticationMethod Method of authentication supported by the token endpoint of this authorization server. Possible values are Basic and/or Body. When Body is specified, client credentials and other parameters are passed within the request body in the application/x-www-form-urlencoded format
+ * @return the next definition stage
+ */
+ WithCreate withClientAuthenticationMethod(List clientAuthenticationMethod);
+ }
+
+ /**
+ * The stage of the authorizationservercontract definition allowing to specify ClientSecret.
+ */
+ interface WithClientSecret {
+ /**
+ * Specifies clientSecret.
+ * @param clientSecret Client or app secret registered with this authorization server
+ * @return the next definition stage
+ */
+ WithCreate withClientSecret(String clientSecret);
+ }
+
+ /**
+ * The stage of the authorizationservercontract definition allowing to specify DefaultScope.
+ */
+ interface WithDefaultScope {
+ /**
+ * Specifies defaultScope.
+ * @param defaultScope Access token scope that is going to be requested by default. Can be overridden at the API level. Should be provided in the form of a string containing space-delimited values
+ * @return the next definition stage
+ */
+ WithCreate withDefaultScope(String defaultScope);
+ }
+
+ /**
+ * The stage of the authorizationservercontract definition allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description Description of the authorization server. Can contain HTML formatting tags
+ * @return the next definition stage
+ */
+ WithCreate withDescription(String description);
+ }
+
+ /**
+ * The stage of the authorizationservercontract definition allowing to specify ResourceOwnerPassword.
+ */
+ interface WithResourceOwnerPassword {
+ /**
+ * Specifies resourceOwnerPassword.
+ * @param resourceOwnerPassword Can be optionally specified when resource owner password grant type is supported by this authorization server. Default resource owner password
+ * @return the next definition stage
+ */
+ WithCreate withResourceOwnerPassword(String resourceOwnerPassword);
+ }
+
+ /**
+ * The stage of the authorizationservercontract definition allowing to specify ResourceOwnerUsername.
+ */
+ interface WithResourceOwnerUsername {
+ /**
+ * Specifies resourceOwnerUsername.
+ * @param resourceOwnerUsername Can be optionally specified when resource owner password grant type is supported by this authorization server. Default resource owner username
+ * @return the next definition stage
+ */
+ WithCreate withResourceOwnerUsername(String resourceOwnerUsername);
+ }
+
+ /**
+ * The stage of the authorizationservercontract definition allowing to specify SupportState.
+ */
+ interface WithSupportState {
+ /**
+ * Specifies supportState.
+ * @param supportState If true, authorization server will include state parameter from the authorization request to its response. Client may use state parameter to raise protocol security
+ * @return the next definition stage
+ */
+ WithCreate withSupportState(Boolean supportState);
+ }
+
+ /**
+ * The stage of the authorizationservercontract definition allowing to specify TokenBodyParameters.
+ */
+ interface WithTokenBodyParameters {
+ /**
+ * Specifies tokenBodyParameters.
+ * @param tokenBodyParameters Additional parameters required by the token endpoint of this authorization server represented as an array of JSON objects with name and value string properties, i.e. {"name" : "name value", "value": "a value"}
+ * @return the next definition stage
+ */
+ WithCreate withTokenBodyParameters(List tokenBodyParameters);
+ }
+
+ /**
+ * The stage of the authorizationservercontract definition allowing to specify TokenEndpoint.
+ */
+ interface WithTokenEndpoint {
+ /**
+ * Specifies tokenEndpoint.
+ * @param tokenEndpoint OAuth token endpoint. Contains absolute URI to entity being referenced
+ * @return the next definition stage
+ */
+ WithCreate withTokenEndpoint(String tokenEndpoint);
+ }
+
+ /**
+ * 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.WithAuthorizationMethods, DefinitionStages.WithBearerTokenSendingMethods, DefinitionStages.WithClientAuthenticationMethod, DefinitionStages.WithClientSecret, DefinitionStages.WithDefaultScope, DefinitionStages.WithDescription, DefinitionStages.WithResourceOwnerPassword, DefinitionStages.WithResourceOwnerUsername, DefinitionStages.WithSupportState, DefinitionStages.WithTokenBodyParameters, DefinitionStages.WithTokenEndpoint {
+ }
+ }
+ /**
+ * The template for a AuthorizationServerContract update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithIfMatch, UpdateStages.WithAuthorizationMethods, UpdateStages.WithBearerTokenSendingMethods, UpdateStages.WithClientAuthenticationMethod, UpdateStages.WithClientSecret, UpdateStages.WithDefaultScope, UpdateStages.WithDescription, UpdateStages.WithResourceOwnerPassword, UpdateStages.WithResourceOwnerUsername, UpdateStages.WithSupportState, UpdateStages.WithTokenBodyParameters, UpdateStages.WithTokenEndpoint {
+ }
+
+ /**
+ * Grouping of AuthorizationServerContract update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the authorizationservercontract update allowing to specify IfMatch.
+ */
+ interface WithIfMatch {
+ /**
+ * Specifies ifMatch.
+ * @param ifMatch ETag of the Entity. Not required when creating an entity, but required when updating an entity
+ * @return the next update stage
+ */
+ Update withIfMatch(String ifMatch);
+ }
+
+ /**
+ * The stage of the authorizationservercontract update allowing to specify AuthorizationMethods.
+ */
+ interface WithAuthorizationMethods {
+ /**
+ * Specifies authorizationMethods.
+ * @param authorizationMethods HTTP verbs supported by the authorization endpoint. GET must be always present. POST is optional
+ * @return the next update stage
+ */
+ Update withAuthorizationMethods(List authorizationMethods);
+ }
+
+ /**
+ * The stage of the authorizationservercontract update allowing to specify BearerTokenSendingMethods.
+ */
+ interface WithBearerTokenSendingMethods {
+ /**
+ * Specifies bearerTokenSendingMethods.
+ * @param bearerTokenSendingMethods Specifies the mechanism by which access token is passed to the API
+ * @return the next update stage
+ */
+ Update withBearerTokenSendingMethods(List bearerTokenSendingMethods);
+ }
+
+ /**
+ * The stage of the authorizationservercontract update allowing to specify ClientAuthenticationMethod.
+ */
+ interface WithClientAuthenticationMethod {
+ /**
+ * Specifies clientAuthenticationMethod.
+ * @param clientAuthenticationMethod Method of authentication supported by the token endpoint of this authorization server. Possible values are Basic and/or Body. When Body is specified, client credentials and other parameters are passed within the request body in the application/x-www-form-urlencoded format
+ * @return the next update stage
+ */
+ Update withClientAuthenticationMethod(List clientAuthenticationMethod);
+ }
+
+ /**
+ * The stage of the authorizationservercontract update allowing to specify ClientSecret.
+ */
+ interface WithClientSecret {
+ /**
+ * Specifies clientSecret.
+ * @param clientSecret Client or app secret registered with this authorization server
+ * @return the next update stage
+ */
+ Update withClientSecret(String clientSecret);
+ }
+
+ /**
+ * The stage of the authorizationservercontract update allowing to specify DefaultScope.
+ */
+ interface WithDefaultScope {
+ /**
+ * Specifies defaultScope.
+ * @param defaultScope Access token scope that is going to be requested by default. Can be overridden at the API level. Should be provided in the form of a string containing space-delimited values
+ * @return the next update stage
+ */
+ Update withDefaultScope(String defaultScope);
+ }
+
+ /**
+ * The stage of the authorizationservercontract update allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description Description of the authorization server. Can contain HTML formatting tags
+ * @return the next update stage
+ */
+ Update withDescription(String description);
+ }
+
+ /**
+ * The stage of the authorizationservercontract update allowing to specify ResourceOwnerPassword.
+ */
+ interface WithResourceOwnerPassword {
+ /**
+ * Specifies resourceOwnerPassword.
+ * @param resourceOwnerPassword Can be optionally specified when resource owner password grant type is supported by this authorization server. Default resource owner password
+ * @return the next update stage
+ */
+ Update withResourceOwnerPassword(String resourceOwnerPassword);
+ }
+
+ /**
+ * The stage of the authorizationservercontract update allowing to specify ResourceOwnerUsername.
+ */
+ interface WithResourceOwnerUsername {
+ /**
+ * Specifies resourceOwnerUsername.
+ * @param resourceOwnerUsername Can be optionally specified when resource owner password grant type is supported by this authorization server. Default resource owner username
+ * @return the next update stage
+ */
+ Update withResourceOwnerUsername(String resourceOwnerUsername);
+ }
+
+ /**
+ * The stage of the authorizationservercontract update allowing to specify SupportState.
+ */
+ interface WithSupportState {
+ /**
+ * Specifies supportState.
+ * @param supportState If true, authorization server will include state parameter from the authorization request to its response. Client may use state parameter to raise protocol security
+ * @return the next update stage
+ */
+ Update withSupportState(Boolean supportState);
+ }
+
+ /**
+ * The stage of the authorizationservercontract update allowing to specify TokenBodyParameters.
+ */
+ interface WithTokenBodyParameters {
+ /**
+ * Specifies tokenBodyParameters.
+ * @param tokenBodyParameters Additional parameters required by the token endpoint of this authorization server represented as an array of JSON objects with name and value string properties, i.e. {"name" : "name value", "value": "a value"}
+ * @return the next update stage
+ */
+ Update withTokenBodyParameters(List tokenBodyParameters);
+ }
+
+ /**
+ * The stage of the authorizationservercontract update allowing to specify TokenEndpoint.
+ */
+ interface WithTokenEndpoint {
+ /**
+ * Specifies tokenEndpoint.
+ * @param tokenEndpoint OAuth token endpoint. Contains absolute URI to entity being referenced
+ * @return the next update stage
+ */
+ Update withTokenEndpoint(String tokenEndpoint);
+ }
+
+ }
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthorizationServerContractBaseProperties.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthorizationServerContractBaseProperties.java
new file mode 100644
index 0000000000000..d2ba8eaf0ac71
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthorizationServerContractBaseProperties.java
@@ -0,0 +1,318 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * External OAuth authorization server Update settings contract.
+ */
+public class AuthorizationServerContractBaseProperties {
+ /**
+ * Description of the authorization server. Can contain HTML formatting
+ * tags.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * HTTP verbs supported by the authorization endpoint. GET must be always
+ * present. POST is optional.
+ */
+ @JsonProperty(value = "authorizationMethods")
+ private List authorizationMethods;
+
+ /**
+ * Method of authentication supported by the token endpoint of this
+ * authorization server. Possible values are Basic and/or Body. When Body
+ * is specified, client credentials and other parameters are passed within
+ * the request body in the application/x-www-form-urlencoded format.
+ */
+ @JsonProperty(value = "clientAuthenticationMethod")
+ private List clientAuthenticationMethod;
+
+ /**
+ * Additional parameters required by the token endpoint of this
+ * authorization server represented as an array of JSON objects with name
+ * and value string properties, i.e. {"name" : "name value", "value": "a
+ * value"}.
+ */
+ @JsonProperty(value = "tokenBodyParameters")
+ private List tokenBodyParameters;
+
+ /**
+ * OAuth token endpoint. Contains absolute URI to entity being referenced.
+ */
+ @JsonProperty(value = "tokenEndpoint")
+ private String tokenEndpoint;
+
+ /**
+ * If true, authorization server will include state parameter from the
+ * authorization request to its response. Client may use state parameter to
+ * raise protocol security.
+ */
+ @JsonProperty(value = "supportState")
+ private Boolean supportState;
+
+ /**
+ * Access token scope that is going to be requested by default. Can be
+ * overridden at the API level. Should be provided in the form of a string
+ * containing space-delimited values.
+ */
+ @JsonProperty(value = "defaultScope")
+ private String defaultScope;
+
+ /**
+ * Specifies the mechanism by which access token is passed to the API.
+ */
+ @JsonProperty(value = "bearerTokenSendingMethods")
+ private List bearerTokenSendingMethods;
+
+ /**
+ * Client or app secret registered with this authorization server.
+ */
+ @JsonProperty(value = "clientSecret")
+ private String clientSecret;
+
+ /**
+ * Can be optionally specified when resource owner password grant type is
+ * supported by this authorization server. Default resource owner username.
+ */
+ @JsonProperty(value = "resourceOwnerUsername")
+ private String resourceOwnerUsername;
+
+ /**
+ * Can be optionally specified when resource owner password grant type is
+ * supported by this authorization server. Default resource owner password.
+ */
+ @JsonProperty(value = "resourceOwnerPassword")
+ private String resourceOwnerPassword;
+
+ /**
+ * Get description of the authorization server. Can contain HTML formatting tags.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set description of the authorization server. Can contain HTML formatting tags.
+ *
+ * @param description the description value to set
+ * @return the AuthorizationServerContractBaseProperties object itself.
+ */
+ public AuthorizationServerContractBaseProperties withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get hTTP verbs supported by the authorization endpoint. GET must be always present. POST is optional.
+ *
+ * @return the authorizationMethods value
+ */
+ public List authorizationMethods() {
+ return this.authorizationMethods;
+ }
+
+ /**
+ * Set hTTP verbs supported by the authorization endpoint. GET must be always present. POST is optional.
+ *
+ * @param authorizationMethods the authorizationMethods value to set
+ * @return the AuthorizationServerContractBaseProperties object itself.
+ */
+ public AuthorizationServerContractBaseProperties withAuthorizationMethods(List authorizationMethods) {
+ this.authorizationMethods = authorizationMethods;
+ return this;
+ }
+
+ /**
+ * Get method of authentication supported by the token endpoint of this authorization server. Possible values are Basic and/or Body. When Body is specified, client credentials and other parameters are passed within the request body in the application/x-www-form-urlencoded format.
+ *
+ * @return the clientAuthenticationMethod value
+ */
+ public List clientAuthenticationMethod() {
+ return this.clientAuthenticationMethod;
+ }
+
+ /**
+ * Set method of authentication supported by the token endpoint of this authorization server. Possible values are Basic and/or Body. When Body is specified, client credentials and other parameters are passed within the request body in the application/x-www-form-urlencoded format.
+ *
+ * @param clientAuthenticationMethod the clientAuthenticationMethod value to set
+ * @return the AuthorizationServerContractBaseProperties object itself.
+ */
+ public AuthorizationServerContractBaseProperties withClientAuthenticationMethod(List clientAuthenticationMethod) {
+ this.clientAuthenticationMethod = clientAuthenticationMethod;
+ return this;
+ }
+
+ /**
+ * Get additional parameters required by the token endpoint of this authorization server represented as an array of JSON objects with name and value string properties, i.e. {"name" : "name value", "value": "a value"}.
+ *
+ * @return the tokenBodyParameters value
+ */
+ public List tokenBodyParameters() {
+ return this.tokenBodyParameters;
+ }
+
+ /**
+ * Set additional parameters required by the token endpoint of this authorization server represented as an array of JSON objects with name and value string properties, i.e. {"name" : "name value", "value": "a value"}.
+ *
+ * @param tokenBodyParameters the tokenBodyParameters value to set
+ * @return the AuthorizationServerContractBaseProperties object itself.
+ */
+ public AuthorizationServerContractBaseProperties withTokenBodyParameters(List tokenBodyParameters) {
+ this.tokenBodyParameters = tokenBodyParameters;
+ return this;
+ }
+
+ /**
+ * Get oAuth token endpoint. Contains absolute URI to entity being referenced.
+ *
+ * @return the tokenEndpoint value
+ */
+ public String tokenEndpoint() {
+ return this.tokenEndpoint;
+ }
+
+ /**
+ * Set oAuth token endpoint. Contains absolute URI to entity being referenced.
+ *
+ * @param tokenEndpoint the tokenEndpoint value to set
+ * @return the AuthorizationServerContractBaseProperties object itself.
+ */
+ public AuthorizationServerContractBaseProperties withTokenEndpoint(String tokenEndpoint) {
+ this.tokenEndpoint = tokenEndpoint;
+ return this;
+ }
+
+ /**
+ * Get if true, authorization server will include state parameter from the authorization request to its response. Client may use state parameter to raise protocol security.
+ *
+ * @return the supportState value
+ */
+ public Boolean supportState() {
+ return this.supportState;
+ }
+
+ /**
+ * Set if true, authorization server will include state parameter from the authorization request to its response. Client may use state parameter to raise protocol security.
+ *
+ * @param supportState the supportState value to set
+ * @return the AuthorizationServerContractBaseProperties object itself.
+ */
+ public AuthorizationServerContractBaseProperties withSupportState(Boolean supportState) {
+ this.supportState = supportState;
+ return this;
+ }
+
+ /**
+ * Get access token scope that is going to be requested by default. Can be overridden at the API level. Should be provided in the form of a string containing space-delimited values.
+ *
+ * @return the defaultScope value
+ */
+ public String defaultScope() {
+ return this.defaultScope;
+ }
+
+ /**
+ * Set access token scope that is going to be requested by default. Can be overridden at the API level. Should be provided in the form of a string containing space-delimited values.
+ *
+ * @param defaultScope the defaultScope value to set
+ * @return the AuthorizationServerContractBaseProperties object itself.
+ */
+ public AuthorizationServerContractBaseProperties withDefaultScope(String defaultScope) {
+ this.defaultScope = defaultScope;
+ return this;
+ }
+
+ /**
+ * Get specifies the mechanism by which access token is passed to the API.
+ *
+ * @return the bearerTokenSendingMethods value
+ */
+ public List bearerTokenSendingMethods() {
+ return this.bearerTokenSendingMethods;
+ }
+
+ /**
+ * Set specifies the mechanism by which access token is passed to the API.
+ *
+ * @param bearerTokenSendingMethods the bearerTokenSendingMethods value to set
+ * @return the AuthorizationServerContractBaseProperties object itself.
+ */
+ public AuthorizationServerContractBaseProperties withBearerTokenSendingMethods(List bearerTokenSendingMethods) {
+ this.bearerTokenSendingMethods = bearerTokenSendingMethods;
+ return this;
+ }
+
+ /**
+ * Get client or app secret registered with this authorization server.
+ *
+ * @return the clientSecret value
+ */
+ public String clientSecret() {
+ return this.clientSecret;
+ }
+
+ /**
+ * Set client or app secret registered with this authorization server.
+ *
+ * @param clientSecret the clientSecret value to set
+ * @return the AuthorizationServerContractBaseProperties object itself.
+ */
+ public AuthorizationServerContractBaseProperties withClientSecret(String clientSecret) {
+ this.clientSecret = clientSecret;
+ return this;
+ }
+
+ /**
+ * Get can be optionally specified when resource owner password grant type is supported by this authorization server. Default resource owner username.
+ *
+ * @return the resourceOwnerUsername value
+ */
+ public String resourceOwnerUsername() {
+ return this.resourceOwnerUsername;
+ }
+
+ /**
+ * Set can be optionally specified when resource owner password grant type is supported by this authorization server. Default resource owner username.
+ *
+ * @param resourceOwnerUsername the resourceOwnerUsername value to set
+ * @return the AuthorizationServerContractBaseProperties object itself.
+ */
+ public AuthorizationServerContractBaseProperties withResourceOwnerUsername(String resourceOwnerUsername) {
+ this.resourceOwnerUsername = resourceOwnerUsername;
+ return this;
+ }
+
+ /**
+ * Get can be optionally specified when resource owner password grant type is supported by this authorization server. Default resource owner password.
+ *
+ * @return the resourceOwnerPassword value
+ */
+ public String resourceOwnerPassword() {
+ return this.resourceOwnerPassword;
+ }
+
+ /**
+ * Set can be optionally specified when resource owner password grant type is supported by this authorization server. Default resource owner password.
+ *
+ * @param resourceOwnerPassword the resourceOwnerPassword value to set
+ * @return the AuthorizationServerContractBaseProperties object itself.
+ */
+ public AuthorizationServerContractBaseProperties withResourceOwnerPassword(String resourceOwnerPassword) {
+ this.resourceOwnerPassword = resourceOwnerPassword;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthorizationServerCreateOrUpdateHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthorizationServerCreateOrUpdateHeaders.java
new file mode 100644
index 0000000000000..dd7ee33c6d103
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthorizationServerCreateOrUpdateHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for CreateOrUpdate operation.
+ */
+public class AuthorizationServerCreateOrUpdateHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the AuthorizationServerCreateOrUpdateHeaders object itself.
+ */
+ public AuthorizationServerCreateOrUpdateHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthorizationServerGetEntityTagHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthorizationServerGetEntityTagHeaders.java
new file mode 100644
index 0000000000000..8d4fe44e3ab79
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthorizationServerGetEntityTagHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for GetEntityTag operation.
+ */
+public class AuthorizationServerGetEntityTagHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the AuthorizationServerGetEntityTagHeaders object itself.
+ */
+ public AuthorizationServerGetEntityTagHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthorizationServerGetHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthorizationServerGetHeaders.java
new file mode 100644
index 0000000000000..fb18bda25f869
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthorizationServerGetHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for Get operation.
+ */
+public class AuthorizationServerGetHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the AuthorizationServerGetHeaders object itself.
+ */
+ public AuthorizationServerGetHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthorizationServerUpdateContract.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthorizationServerUpdateContract.java
new file mode 100644
index 0000000000000..5af0ebd8cf608
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthorizationServerUpdateContract.java
@@ -0,0 +1,455 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * External OAuth authorization server settings.
+ */
+@JsonFlatten
+public class AuthorizationServerUpdateContract extends ProxyResource {
+ /**
+ * Description of the authorization server. Can contain HTML formatting
+ * tags.
+ */
+ @JsonProperty(value = "properties.description")
+ private String description;
+
+ /**
+ * HTTP verbs supported by the authorization endpoint. GET must be always
+ * present. POST is optional.
+ */
+ @JsonProperty(value = "properties.authorizationMethods")
+ private List authorizationMethods;
+
+ /**
+ * Method of authentication supported by the token endpoint of this
+ * authorization server. Possible values are Basic and/or Body. When Body
+ * is specified, client credentials and other parameters are passed within
+ * the request body in the application/x-www-form-urlencoded format.
+ */
+ @JsonProperty(value = "properties.clientAuthenticationMethod")
+ private List clientAuthenticationMethod;
+
+ /**
+ * Additional parameters required by the token endpoint of this
+ * authorization server represented as an array of JSON objects with name
+ * and value string properties, i.e. {"name" : "name value", "value": "a
+ * value"}.
+ */
+ @JsonProperty(value = "properties.tokenBodyParameters")
+ private List tokenBodyParameters;
+
+ /**
+ * OAuth token endpoint. Contains absolute URI to entity being referenced.
+ */
+ @JsonProperty(value = "properties.tokenEndpoint")
+ private String tokenEndpoint;
+
+ /**
+ * If true, authorization server will include state parameter from the
+ * authorization request to its response. Client may use state parameter to
+ * raise protocol security.
+ */
+ @JsonProperty(value = "properties.supportState")
+ private Boolean supportState;
+
+ /**
+ * Access token scope that is going to be requested by default. Can be
+ * overridden at the API level. Should be provided in the form of a string
+ * containing space-delimited values.
+ */
+ @JsonProperty(value = "properties.defaultScope")
+ private String defaultScope;
+
+ /**
+ * Specifies the mechanism by which access token is passed to the API.
+ */
+ @JsonProperty(value = "properties.bearerTokenSendingMethods")
+ private List bearerTokenSendingMethods;
+
+ /**
+ * Client or app secret registered with this authorization server.
+ */
+ @JsonProperty(value = "properties.clientSecret")
+ private String clientSecret;
+
+ /**
+ * Can be optionally specified when resource owner password grant type is
+ * supported by this authorization server. Default resource owner username.
+ */
+ @JsonProperty(value = "properties.resourceOwnerUsername")
+ private String resourceOwnerUsername;
+
+ /**
+ * Can be optionally specified when resource owner password grant type is
+ * supported by this authorization server. Default resource owner password.
+ */
+ @JsonProperty(value = "properties.resourceOwnerPassword")
+ private String resourceOwnerPassword;
+
+ /**
+ * User-friendly authorization server name.
+ */
+ @JsonProperty(value = "properties.displayName")
+ private String displayName;
+
+ /**
+ * Optional reference to a page where client or app registration for this
+ * authorization server is performed. Contains absolute URL to entity being
+ * referenced.
+ */
+ @JsonProperty(value = "properties.clientRegistrationEndpoint")
+ private String clientRegistrationEndpoint;
+
+ /**
+ * OAuth authorization endpoint. See
+ * http://tools.ietf.org/html/rfc6749#section-3.2.
+ */
+ @JsonProperty(value = "properties.authorizationEndpoint")
+ private String authorizationEndpoint;
+
+ /**
+ * Form of an authorization grant, which the client uses to request the
+ * access token.
+ */
+ @JsonProperty(value = "properties.grantTypes")
+ private List grantTypes;
+
+ /**
+ * Client or app id registered with this authorization server.
+ */
+ @JsonProperty(value = "properties.clientId")
+ private String clientId;
+
+ /**
+ * Get description of the authorization server. Can contain HTML formatting tags.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set description of the authorization server. Can contain HTML formatting tags.
+ *
+ * @param description the description value to set
+ * @return the AuthorizationServerUpdateContract object itself.
+ */
+ public AuthorizationServerUpdateContract withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get hTTP verbs supported by the authorization endpoint. GET must be always present. POST is optional.
+ *
+ * @return the authorizationMethods value
+ */
+ public List authorizationMethods() {
+ return this.authorizationMethods;
+ }
+
+ /**
+ * Set hTTP verbs supported by the authorization endpoint. GET must be always present. POST is optional.
+ *
+ * @param authorizationMethods the authorizationMethods value to set
+ * @return the AuthorizationServerUpdateContract object itself.
+ */
+ public AuthorizationServerUpdateContract withAuthorizationMethods(List authorizationMethods) {
+ this.authorizationMethods = authorizationMethods;
+ return this;
+ }
+
+ /**
+ * Get method of authentication supported by the token endpoint of this authorization server. Possible values are Basic and/or Body. When Body is specified, client credentials and other parameters are passed within the request body in the application/x-www-form-urlencoded format.
+ *
+ * @return the clientAuthenticationMethod value
+ */
+ public List clientAuthenticationMethod() {
+ return this.clientAuthenticationMethod;
+ }
+
+ /**
+ * Set method of authentication supported by the token endpoint of this authorization server. Possible values are Basic and/or Body. When Body is specified, client credentials and other parameters are passed within the request body in the application/x-www-form-urlencoded format.
+ *
+ * @param clientAuthenticationMethod the clientAuthenticationMethod value to set
+ * @return the AuthorizationServerUpdateContract object itself.
+ */
+ public AuthorizationServerUpdateContract withClientAuthenticationMethod(List clientAuthenticationMethod) {
+ this.clientAuthenticationMethod = clientAuthenticationMethod;
+ return this;
+ }
+
+ /**
+ * Get additional parameters required by the token endpoint of this authorization server represented as an array of JSON objects with name and value string properties, i.e. {"name" : "name value", "value": "a value"}.
+ *
+ * @return the tokenBodyParameters value
+ */
+ public List tokenBodyParameters() {
+ return this.tokenBodyParameters;
+ }
+
+ /**
+ * Set additional parameters required by the token endpoint of this authorization server represented as an array of JSON objects with name and value string properties, i.e. {"name" : "name value", "value": "a value"}.
+ *
+ * @param tokenBodyParameters the tokenBodyParameters value to set
+ * @return the AuthorizationServerUpdateContract object itself.
+ */
+ public AuthorizationServerUpdateContract withTokenBodyParameters(List tokenBodyParameters) {
+ this.tokenBodyParameters = tokenBodyParameters;
+ return this;
+ }
+
+ /**
+ * Get oAuth token endpoint. Contains absolute URI to entity being referenced.
+ *
+ * @return the tokenEndpoint value
+ */
+ public String tokenEndpoint() {
+ return this.tokenEndpoint;
+ }
+
+ /**
+ * Set oAuth token endpoint. Contains absolute URI to entity being referenced.
+ *
+ * @param tokenEndpoint the tokenEndpoint value to set
+ * @return the AuthorizationServerUpdateContract object itself.
+ */
+ public AuthorizationServerUpdateContract withTokenEndpoint(String tokenEndpoint) {
+ this.tokenEndpoint = tokenEndpoint;
+ return this;
+ }
+
+ /**
+ * Get if true, authorization server will include state parameter from the authorization request to its response. Client may use state parameter to raise protocol security.
+ *
+ * @return the supportState value
+ */
+ public Boolean supportState() {
+ return this.supportState;
+ }
+
+ /**
+ * Set if true, authorization server will include state parameter from the authorization request to its response. Client may use state parameter to raise protocol security.
+ *
+ * @param supportState the supportState value to set
+ * @return the AuthorizationServerUpdateContract object itself.
+ */
+ public AuthorizationServerUpdateContract withSupportState(Boolean supportState) {
+ this.supportState = supportState;
+ return this;
+ }
+
+ /**
+ * Get access token scope that is going to be requested by default. Can be overridden at the API level. Should be provided in the form of a string containing space-delimited values.
+ *
+ * @return the defaultScope value
+ */
+ public String defaultScope() {
+ return this.defaultScope;
+ }
+
+ /**
+ * Set access token scope that is going to be requested by default. Can be overridden at the API level. Should be provided in the form of a string containing space-delimited values.
+ *
+ * @param defaultScope the defaultScope value to set
+ * @return the AuthorizationServerUpdateContract object itself.
+ */
+ public AuthorizationServerUpdateContract withDefaultScope(String defaultScope) {
+ this.defaultScope = defaultScope;
+ return this;
+ }
+
+ /**
+ * Get specifies the mechanism by which access token is passed to the API.
+ *
+ * @return the bearerTokenSendingMethods value
+ */
+ public List bearerTokenSendingMethods() {
+ return this.bearerTokenSendingMethods;
+ }
+
+ /**
+ * Set specifies the mechanism by which access token is passed to the API.
+ *
+ * @param bearerTokenSendingMethods the bearerTokenSendingMethods value to set
+ * @return the AuthorizationServerUpdateContract object itself.
+ */
+ public AuthorizationServerUpdateContract withBearerTokenSendingMethods(List bearerTokenSendingMethods) {
+ this.bearerTokenSendingMethods = bearerTokenSendingMethods;
+ return this;
+ }
+
+ /**
+ * Get client or app secret registered with this authorization server.
+ *
+ * @return the clientSecret value
+ */
+ public String clientSecret() {
+ return this.clientSecret;
+ }
+
+ /**
+ * Set client or app secret registered with this authorization server.
+ *
+ * @param clientSecret the clientSecret value to set
+ * @return the AuthorizationServerUpdateContract object itself.
+ */
+ public AuthorizationServerUpdateContract withClientSecret(String clientSecret) {
+ this.clientSecret = clientSecret;
+ return this;
+ }
+
+ /**
+ * Get can be optionally specified when resource owner password grant type is supported by this authorization server. Default resource owner username.
+ *
+ * @return the resourceOwnerUsername value
+ */
+ public String resourceOwnerUsername() {
+ return this.resourceOwnerUsername;
+ }
+
+ /**
+ * Set can be optionally specified when resource owner password grant type is supported by this authorization server. Default resource owner username.
+ *
+ * @param resourceOwnerUsername the resourceOwnerUsername value to set
+ * @return the AuthorizationServerUpdateContract object itself.
+ */
+ public AuthorizationServerUpdateContract withResourceOwnerUsername(String resourceOwnerUsername) {
+ this.resourceOwnerUsername = resourceOwnerUsername;
+ return this;
+ }
+
+ /**
+ * Get can be optionally specified when resource owner password grant type is supported by this authorization server. Default resource owner password.
+ *
+ * @return the resourceOwnerPassword value
+ */
+ public String resourceOwnerPassword() {
+ return this.resourceOwnerPassword;
+ }
+
+ /**
+ * Set can be optionally specified when resource owner password grant type is supported by this authorization server. Default resource owner password.
+ *
+ * @param resourceOwnerPassword the resourceOwnerPassword value to set
+ * @return the AuthorizationServerUpdateContract object itself.
+ */
+ public AuthorizationServerUpdateContract withResourceOwnerPassword(String resourceOwnerPassword) {
+ this.resourceOwnerPassword = resourceOwnerPassword;
+ return this;
+ }
+
+ /**
+ * Get user-friendly authorization server name.
+ *
+ * @return the displayName value
+ */
+ public String displayName() {
+ return this.displayName;
+ }
+
+ /**
+ * Set user-friendly authorization server name.
+ *
+ * @param displayName the displayName value to set
+ * @return the AuthorizationServerUpdateContract object itself.
+ */
+ public AuthorizationServerUpdateContract withDisplayName(String displayName) {
+ this.displayName = displayName;
+ return this;
+ }
+
+ /**
+ * Get optional reference to a page where client or app registration for this authorization server is performed. Contains absolute URL to entity being referenced.
+ *
+ * @return the clientRegistrationEndpoint value
+ */
+ public String clientRegistrationEndpoint() {
+ return this.clientRegistrationEndpoint;
+ }
+
+ /**
+ * Set optional reference to a page where client or app registration for this authorization server is performed. Contains absolute URL to entity being referenced.
+ *
+ * @param clientRegistrationEndpoint the clientRegistrationEndpoint value to set
+ * @return the AuthorizationServerUpdateContract object itself.
+ */
+ public AuthorizationServerUpdateContract withClientRegistrationEndpoint(String clientRegistrationEndpoint) {
+ this.clientRegistrationEndpoint = clientRegistrationEndpoint;
+ return this;
+ }
+
+ /**
+ * Get oAuth authorization endpoint. See http://tools.ietf.org/html/rfc6749#section-3.2.
+ *
+ * @return the authorizationEndpoint value
+ */
+ public String authorizationEndpoint() {
+ return this.authorizationEndpoint;
+ }
+
+ /**
+ * Set oAuth authorization endpoint. See http://tools.ietf.org/html/rfc6749#section-3.2.
+ *
+ * @param authorizationEndpoint the authorizationEndpoint value to set
+ * @return the AuthorizationServerUpdateContract object itself.
+ */
+ public AuthorizationServerUpdateContract withAuthorizationEndpoint(String authorizationEndpoint) {
+ this.authorizationEndpoint = authorizationEndpoint;
+ return this;
+ }
+
+ /**
+ * Get form of an authorization grant, which the client uses to request the access token.
+ *
+ * @return the grantTypes value
+ */
+ public List grantTypes() {
+ return this.grantTypes;
+ }
+
+ /**
+ * Set form of an authorization grant, which the client uses to request the access token.
+ *
+ * @param grantTypes the grantTypes value to set
+ * @return the AuthorizationServerUpdateContract object itself.
+ */
+ public AuthorizationServerUpdateContract withGrantTypes(List grantTypes) {
+ this.grantTypes = grantTypes;
+ return this;
+ }
+
+ /**
+ * Get client or app id registered with this authorization server.
+ *
+ * @return the clientId value
+ */
+ public String clientId() {
+ return this.clientId;
+ }
+
+ /**
+ * Set client or app id registered with this authorization server.
+ *
+ * @param clientId the clientId value to set
+ * @return the AuthorizationServerUpdateContract object itself.
+ */
+ public AuthorizationServerUpdateContract withClientId(String clientId) {
+ this.clientId = clientId;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthorizationServers.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthorizationServers.java
new file mode 100644
index 0000000000000..7f21a03cbfc46
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/AuthorizationServers.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.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.AuthorizationServersInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing AuthorizationServers.
+ */
+public interface AuthorizationServers extends SupportsCreating, HasInner {
+ /**
+ * Lists a collection of authorization servers defined within a service instance.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByServiceAsync(final String resourceGroupName, final String serviceName);
+
+ /**
+ * Gets the entity state (Etag) version of the authorizationServer specified by its identifier.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param authsid Identifier of the authorization server.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable getEntityTagAsync(String resourceGroupName, String serviceName, String authsid);
+
+ /**
+ * Gets the details of the authorization server specified by its identifier.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param authsid Identifier of the authorization server.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String serviceName, String authsid);
+
+ /**
+ * Deletes specific authorization server instance.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @param authsid Identifier of the authorization server.
+ * @param ifMatch ETag of the Entity. ETag should match the current entity state from the header response of the GET request or it should be * for unconditional update.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String serviceName, String authsid, String ifMatch);
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendAuthorizationHeaderCredentials.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendAuthorizationHeaderCredentials.java
new file mode 100644
index 0000000000000..02b77455dfbae
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendAuthorizationHeaderCredentials.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Authorization header information.
+ */
+public class BackendAuthorizationHeaderCredentials {
+ /**
+ * Authentication Scheme name.
+ */
+ @JsonProperty(value = "scheme", required = true)
+ private String scheme;
+
+ /**
+ * Authentication Parameter value.
+ */
+ @JsonProperty(value = "parameter", required = true)
+ private String parameter;
+
+ /**
+ * Get authentication Scheme name.
+ *
+ * @return the scheme value
+ */
+ public String scheme() {
+ return this.scheme;
+ }
+
+ /**
+ * Set authentication Scheme name.
+ *
+ * @param scheme the scheme value to set
+ * @return the BackendAuthorizationHeaderCredentials object itself.
+ */
+ public BackendAuthorizationHeaderCredentials withScheme(String scheme) {
+ this.scheme = scheme;
+ return this;
+ }
+
+ /**
+ * Get authentication Parameter value.
+ *
+ * @return the parameter value
+ */
+ public String parameter() {
+ return this.parameter;
+ }
+
+ /**
+ * Set authentication Parameter value.
+ *
+ * @param parameter the parameter value to set
+ * @return the BackendAuthorizationHeaderCredentials object itself.
+ */
+ public BackendAuthorizationHeaderCredentials withParameter(String parameter) {
+ this.parameter = parameter;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendBaseParameters.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendBaseParameters.java
new file mode 100644
index 0000000000000..ebd4d741e92b0
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendBaseParameters.java
@@ -0,0 +1,200 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Backend entity base Parameter set.
+ */
+public class BackendBaseParameters {
+ /**
+ * Backend Title.
+ */
+ @JsonProperty(value = "title")
+ private String title;
+
+ /**
+ * Backend Description.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * Management Uri of the Resource in External System. This url can be the
+ * Arm Resource Id of Logic Apps, Function Apps or Api Apps.
+ */
+ @JsonProperty(value = "resourceId")
+ private String resourceId;
+
+ /**
+ * Backend Properties contract.
+ */
+ @JsonProperty(value = "properties")
+ private BackendProperties properties;
+
+ /**
+ * Backend Credentials Contract Properties.
+ */
+ @JsonProperty(value = "credentials")
+ private BackendCredentialsContract credentials;
+
+ /**
+ * Backend Proxy Contract Properties.
+ */
+ @JsonProperty(value = "proxy")
+ private BackendProxyContract proxy;
+
+ /**
+ * Backend TLS Properties.
+ */
+ @JsonProperty(value = "tls")
+ private BackendTlsProperties tls;
+
+ /**
+ * Get backend Title.
+ *
+ * @return the title value
+ */
+ public String title() {
+ return this.title;
+ }
+
+ /**
+ * Set backend Title.
+ *
+ * @param title the title value to set
+ * @return the BackendBaseParameters object itself.
+ */
+ public BackendBaseParameters withTitle(String title) {
+ this.title = title;
+ return this;
+ }
+
+ /**
+ * Get backend Description.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set backend Description.
+ *
+ * @param description the description value to set
+ * @return the BackendBaseParameters object itself.
+ */
+ public BackendBaseParameters withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get management Uri of the Resource in External System. This url can be the Arm Resource Id of Logic Apps, Function Apps or Api Apps.
+ *
+ * @return the resourceId value
+ */
+ public String resourceId() {
+ return this.resourceId;
+ }
+
+ /**
+ * Set management Uri of the Resource in External System. This url can be the Arm Resource Id of Logic Apps, Function Apps or Api Apps.
+ *
+ * @param resourceId the resourceId value to set
+ * @return the BackendBaseParameters object itself.
+ */
+ public BackendBaseParameters withResourceId(String resourceId) {
+ this.resourceId = resourceId;
+ return this;
+ }
+
+ /**
+ * Get backend Properties contract.
+ *
+ * @return the properties value
+ */
+ public BackendProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set backend Properties contract.
+ *
+ * @param properties the properties value to set
+ * @return the BackendBaseParameters object itself.
+ */
+ public BackendBaseParameters withProperties(BackendProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get backend Credentials Contract Properties.
+ *
+ * @return the credentials value
+ */
+ public BackendCredentialsContract credentials() {
+ return this.credentials;
+ }
+
+ /**
+ * Set backend Credentials Contract Properties.
+ *
+ * @param credentials the credentials value to set
+ * @return the BackendBaseParameters object itself.
+ */
+ public BackendBaseParameters withCredentials(BackendCredentialsContract credentials) {
+ this.credentials = credentials;
+ return this;
+ }
+
+ /**
+ * Get backend Proxy Contract Properties.
+ *
+ * @return the proxy value
+ */
+ public BackendProxyContract proxy() {
+ return this.proxy;
+ }
+
+ /**
+ * Set backend Proxy Contract Properties.
+ *
+ * @param proxy the proxy value to set
+ * @return the BackendBaseParameters object itself.
+ */
+ public BackendBaseParameters withProxy(BackendProxyContract proxy) {
+ this.proxy = proxy;
+ return this;
+ }
+
+ /**
+ * Get backend TLS Properties.
+ *
+ * @return the tls value
+ */
+ public BackendTlsProperties tls() {
+ return this.tls;
+ }
+
+ /**
+ * Set backend TLS Properties.
+ *
+ * @param tls the tls value to set
+ * @return the BackendBaseParameters object itself.
+ */
+ public BackendBaseParameters withTls(BackendTlsProperties tls) {
+ this.tls = tls;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendContract.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendContract.java
new file mode 100644
index 0000000000000..4007185c1b4ce
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendContract.java
@@ -0,0 +1,359 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.BackendContractInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.ApiManagementManager;
+
+/**
+ * Type representing BackendContract.
+ */
+public interface BackendContract extends HasInner, Indexable, Updatable, HasManager {
+ /**
+ * @return the credentials value.
+ */
+ BackendCredentialsContract credentials();
+
+ /**
+ * @return the description value.
+ */
+ String description();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the properties value.
+ */
+ BackendProperties properties();
+
+ /**
+ * @return the protocol value.
+ */
+ BackendProtocol protocol();
+
+ /**
+ * @return the proxy value.
+ */
+ BackendProxyContract proxy();
+
+ /**
+ * @return the resourceId value.
+ */
+ String resourceId();
+
+ /**
+ * @return the title value.
+ */
+ String title();
+
+ /**
+ * @return the tls value.
+ */
+ BackendTlsProperties tls();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the url value.
+ */
+ String url();
+
+ /**
+ * The entirety of the BackendContract definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithResourceGroupName, DefinitionStages.WithServiceName, DefinitionStages.WithIfMatch, DefinitionStages.WithProtocol, DefinitionStages.WithUrl, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of BackendContract definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a BackendContract definition.
+ */
+ interface Blank extends WithResourceGroupName {
+ }
+
+ /**
+ * The stage of the backendcontract definition allowing to specify ResourceGroupName.
+ */
+ interface WithResourceGroupName {
+ /**
+ * Specifies resourceGroupName.
+ * @param resourceGroupName The name of the resource group
+ * @return the next definition stage
+ */
+ WithServiceName withResourceGroupName(String resourceGroupName);
+ }
+
+ /**
+ * The stage of the backendcontract definition allowing to specify ServiceName.
+ */
+ interface WithServiceName {
+ /**
+ * Specifies serviceName.
+ * @param serviceName The name of the API Management service
+ * @return the next definition stage
+ */
+ WithIfMatch withServiceName(String serviceName);
+ }
+
+ /**
+ * The stage of the backendcontract definition allowing to specify IfMatch.
+ */
+ interface WithIfMatch {
+ /**
+ * Specifies ifMatch.
+ * @param ifMatch ETag of the Entity. Not required when creating an entity, but required when updating an entity
+ * @return the next definition stage
+ */
+ WithProtocol withIfMatch(String ifMatch);
+ }
+
+ /**
+ * The stage of the backendcontract definition allowing to specify Protocol.
+ */
+ interface WithProtocol {
+ /**
+ * Specifies protocol.
+ * @param protocol Backend communication protocol. Possible values include: 'http', 'soap'
+ * @return the next definition stage
+ */
+ WithUrl withProtocol(BackendProtocol protocol);
+ }
+
+ /**
+ * The stage of the backendcontract definition allowing to specify Url.
+ */
+ interface WithUrl {
+ /**
+ * Specifies url.
+ * @param url Runtime Url of the Backend
+ * @return the next definition stage
+ */
+ WithCreate withUrl(String url);
+ }
+
+ /**
+ * The stage of the backendcontract definition allowing to specify Credentials.
+ */
+ interface WithCredentials {
+ /**
+ * Specifies credentials.
+ * @param credentials Backend Credentials Contract Properties
+ * @return the next definition stage
+ */
+ WithCreate withCredentials(BackendCredentialsContract credentials);
+ }
+
+ /**
+ * The stage of the backendcontract definition allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description Backend Description
+ * @return the next definition stage
+ */
+ WithCreate withDescription(String description);
+ }
+
+ /**
+ * The stage of the backendcontract definition allowing to specify Properties.
+ */
+ interface WithProperties {
+ /**
+ * Specifies properties.
+ * @param properties Backend Properties contract
+ * @return the next definition stage
+ */
+ WithCreate withProperties(BackendProperties properties);
+ }
+
+ /**
+ * The stage of the backendcontract definition allowing to specify Proxy.
+ */
+ interface WithProxy {
+ /**
+ * Specifies proxy.
+ * @param proxy Backend Proxy Contract Properties
+ * @return the next definition stage
+ */
+ WithCreate withProxy(BackendProxyContract proxy);
+ }
+
+ /**
+ * The stage of the backendcontract definition allowing to specify ResourceId.
+ */
+ interface WithResourceId {
+ /**
+ * Specifies resourceId.
+ * @param resourceId Management Uri of the Resource in External System. This url can be the Arm Resource Id of Logic Apps, Function Apps or Api Apps
+ * @return the next definition stage
+ */
+ WithCreate withResourceId(String resourceId);
+ }
+
+ /**
+ * The stage of the backendcontract definition allowing to specify Title.
+ */
+ interface WithTitle {
+ /**
+ * Specifies title.
+ * @param title Backend Title
+ * @return the next definition stage
+ */
+ WithCreate withTitle(String title);
+ }
+
+ /**
+ * The stage of the backendcontract definition allowing to specify Tls.
+ */
+ interface WithTls {
+ /**
+ * Specifies tls.
+ * @param tls Backend TLS Properties
+ * @return the next definition stage
+ */
+ WithCreate withTls(BackendTlsProperties tls);
+ }
+
+ /**
+ * 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.WithCredentials, DefinitionStages.WithDescription, DefinitionStages.WithProperties, DefinitionStages.WithProxy, DefinitionStages.WithResourceId, DefinitionStages.WithTitle, DefinitionStages.WithTls {
+ }
+ }
+ /**
+ * The template for a BackendContract update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithIfMatch, UpdateStages.WithCredentials, UpdateStages.WithDescription, UpdateStages.WithProperties, UpdateStages.WithProxy, UpdateStages.WithResourceId, UpdateStages.WithTitle, UpdateStages.WithTls {
+ }
+
+ /**
+ * Grouping of BackendContract update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the backendcontract update allowing to specify IfMatch.
+ */
+ interface WithIfMatch {
+ /**
+ * Specifies ifMatch.
+ * @param ifMatch ETag of the Entity. Not required when creating an entity, but required when updating an entity
+ * @return the next update stage
+ */
+ Update withIfMatch(String ifMatch);
+ }
+
+ /**
+ * The stage of the backendcontract update allowing to specify Credentials.
+ */
+ interface WithCredentials {
+ /**
+ * Specifies credentials.
+ * @param credentials Backend Credentials Contract Properties
+ * @return the next update stage
+ */
+ Update withCredentials(BackendCredentialsContract credentials);
+ }
+
+ /**
+ * The stage of the backendcontract update allowing to specify Description.
+ */
+ interface WithDescription {
+ /**
+ * Specifies description.
+ * @param description Backend Description
+ * @return the next update stage
+ */
+ Update withDescription(String description);
+ }
+
+ /**
+ * The stage of the backendcontract update allowing to specify Properties.
+ */
+ interface WithProperties {
+ /**
+ * Specifies properties.
+ * @param properties Backend Properties contract
+ * @return the next update stage
+ */
+ Update withProperties(BackendProperties properties);
+ }
+
+ /**
+ * The stage of the backendcontract update allowing to specify Proxy.
+ */
+ interface WithProxy {
+ /**
+ * Specifies proxy.
+ * @param proxy Backend Proxy Contract Properties
+ * @return the next update stage
+ */
+ Update withProxy(BackendProxyContract proxy);
+ }
+
+ /**
+ * The stage of the backendcontract update allowing to specify ResourceId.
+ */
+ interface WithResourceId {
+ /**
+ * Specifies resourceId.
+ * @param resourceId Management Uri of the Resource in External System. This url can be the Arm Resource Id of Logic Apps, Function Apps or Api Apps
+ * @return the next update stage
+ */
+ Update withResourceId(String resourceId);
+ }
+
+ /**
+ * The stage of the backendcontract update allowing to specify Title.
+ */
+ interface WithTitle {
+ /**
+ * Specifies title.
+ * @param title Backend Title
+ * @return the next update stage
+ */
+ Update withTitle(String title);
+ }
+
+ /**
+ * The stage of the backendcontract update allowing to specify Tls.
+ */
+ interface WithTls {
+ /**
+ * Specifies tls.
+ * @param tls Backend TLS Properties
+ * @return the next update stage
+ */
+ Update withTls(BackendTlsProperties tls);
+ }
+
+ }
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendCreateOrUpdateHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendCreateOrUpdateHeaders.java
new file mode 100644
index 0000000000000..cbaaea7e9aac1
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendCreateOrUpdateHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for CreateOrUpdate operation.
+ */
+public class BackendCreateOrUpdateHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the BackendCreateOrUpdateHeaders object itself.
+ */
+ public BackendCreateOrUpdateHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendCredentialsContract.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendCredentialsContract.java
new file mode 100644
index 0000000000000..06a8fec50414a
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendCredentialsContract.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.apimanagement.v2019_01_01;
+
+import java.util.List;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Details of the Credentials used to connect to Backend.
+ */
+public class BackendCredentialsContract {
+ /**
+ * List of Client Certificate Thumbprint.
+ */
+ @JsonProperty(value = "certificate")
+ private List certificate;
+
+ /**
+ * Query Parameter description.
+ */
+ @JsonProperty(value = "query")
+ private Map> query;
+
+ /**
+ * Header Parameter description.
+ */
+ @JsonProperty(value = "header")
+ private Map> headerProperty;
+
+ /**
+ * Authorization header authentication.
+ */
+ @JsonProperty(value = "authorization")
+ private BackendAuthorizationHeaderCredentials authorization;
+
+ /**
+ * Get list of Client Certificate Thumbprint.
+ *
+ * @return the certificate value
+ */
+ public List certificate() {
+ return this.certificate;
+ }
+
+ /**
+ * Set list of Client Certificate Thumbprint.
+ *
+ * @param certificate the certificate value to set
+ * @return the BackendCredentialsContract object itself.
+ */
+ public BackendCredentialsContract withCertificate(List certificate) {
+ this.certificate = certificate;
+ return this;
+ }
+
+ /**
+ * Get query Parameter description.
+ *
+ * @return the query value
+ */
+ public Map> query() {
+ return this.query;
+ }
+
+ /**
+ * Set query Parameter description.
+ *
+ * @param query the query value to set
+ * @return the BackendCredentialsContract object itself.
+ */
+ public BackendCredentialsContract withQuery(Map> query) {
+ this.query = query;
+ return this;
+ }
+
+ /**
+ * Get header Parameter description.
+ *
+ * @return the headerProperty value
+ */
+ public Map> headerProperty() {
+ return this.headerProperty;
+ }
+
+ /**
+ * Set header Parameter description.
+ *
+ * @param headerProperty the headerProperty value to set
+ * @return the BackendCredentialsContract object itself.
+ */
+ public BackendCredentialsContract withHeaderProperty(Map> headerProperty) {
+ this.headerProperty = headerProperty;
+ return this;
+ }
+
+ /**
+ * Get authorization header authentication.
+ *
+ * @return the authorization value
+ */
+ public BackendAuthorizationHeaderCredentials authorization() {
+ return this.authorization;
+ }
+
+ /**
+ * Set authorization header authentication.
+ *
+ * @param authorization the authorization value to set
+ * @return the BackendCredentialsContract object itself.
+ */
+ public BackendCredentialsContract withAuthorization(BackendAuthorizationHeaderCredentials authorization) {
+ this.authorization = authorization;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendGetEntityTagHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendGetEntityTagHeaders.java
new file mode 100644
index 0000000000000..aa1255c813c35
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendGetEntityTagHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for GetEntityTag operation.
+ */
+public class BackendGetEntityTagHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the BackendGetEntityTagHeaders object itself.
+ */
+ public BackendGetEntityTagHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendGetHeaders.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendGetHeaders.java
new file mode 100644
index 0000000000000..0b735490a54e0
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendGetHeaders.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Defines headers for Get operation.
+ */
+public class BackendGetHeaders {
+ /**
+ * Current entity state version. Should be treated as opaque and used to
+ * make conditional HTTP requests.
+ */
+ @JsonProperty(value = "ETag")
+ private String eTag;
+
+ /**
+ * Get current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @return the eTag value
+ */
+ public String eTag() {
+ return this.eTag;
+ }
+
+ /**
+ * Set current entity state version. Should be treated as opaque and used to make conditional HTTP requests.
+ *
+ * @param eTag the eTag value to set
+ * @return the BackendGetHeaders object itself.
+ */
+ public BackendGetHeaders withETag(String eTag) {
+ this.eTag = eTag;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendProperties.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendProperties.java
new file mode 100644
index 0000000000000..030a99126077d
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendProperties.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.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Properties specific to the Backend Type.
+ */
+public class BackendProperties {
+ /**
+ * Backend Service Fabric Cluster Properties.
+ */
+ @JsonProperty(value = "serviceFabricCluster")
+ private BackendServiceFabricClusterProperties serviceFabricCluster;
+
+ /**
+ * Get backend Service Fabric Cluster Properties.
+ *
+ * @return the serviceFabricCluster value
+ */
+ public BackendServiceFabricClusterProperties serviceFabricCluster() {
+ return this.serviceFabricCluster;
+ }
+
+ /**
+ * Set backend Service Fabric Cluster Properties.
+ *
+ * @param serviceFabricCluster the serviceFabricCluster value to set
+ * @return the BackendProperties object itself.
+ */
+ public BackendProperties withServiceFabricCluster(BackendServiceFabricClusterProperties serviceFabricCluster) {
+ this.serviceFabricCluster = serviceFabricCluster;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendProtocol.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendProtocol.java
new file mode 100644
index 0000000000000..ace531b4de4b2
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendProtocol.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for BackendProtocol.
+ */
+public final class BackendProtocol extends ExpandableStringEnum {
+ /** Static value http for BackendProtocol. */
+ public static final BackendProtocol HTTP = fromString("http");
+
+ /** Static value soap for BackendProtocol. */
+ public static final BackendProtocol SOAP = fromString("soap");
+
+ /**
+ * Creates or finds a BackendProtocol from its string representation.
+ * @param name a name to look for
+ * @return the corresponding BackendProtocol
+ */
+ @JsonCreator
+ public static BackendProtocol fromString(String name) {
+ return fromString(name, BackendProtocol.class);
+ }
+
+ /**
+ * @return known BackendProtocol values
+ */
+ public static Collection values() {
+ return values(BackendProtocol.class);
+ }
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendProxyContract.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendProxyContract.java
new file mode 100644
index 0000000000000..bb927d2f46a0a
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendProxyContract.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Details of the Backend WebProxy Server to use in the Request to Backend.
+ */
+public class BackendProxyContract {
+ /**
+ * WebProxy Server AbsoluteUri property which includes the entire URI
+ * stored in the Uri instance, including all fragments and query strings.
+ */
+ @JsonProperty(value = "url", required = true)
+ private String url;
+
+ /**
+ * Username to connect to the WebProxy server.
+ */
+ @JsonProperty(value = "username")
+ private String username;
+
+ /**
+ * Password to connect to the WebProxy Server.
+ */
+ @JsonProperty(value = "password")
+ private String password;
+
+ /**
+ * Get webProxy Server AbsoluteUri property which includes the entire URI stored in the Uri instance, including all fragments and query strings.
+ *
+ * @return the url value
+ */
+ public String url() {
+ return this.url;
+ }
+
+ /**
+ * Set webProxy Server AbsoluteUri property which includes the entire URI stored in the Uri instance, including all fragments and query strings.
+ *
+ * @param url the url value to set
+ * @return the BackendProxyContract object itself.
+ */
+ public BackendProxyContract withUrl(String url) {
+ this.url = url;
+ return this;
+ }
+
+ /**
+ * Get username to connect to the WebProxy server.
+ *
+ * @return the username value
+ */
+ public String username() {
+ return this.username;
+ }
+
+ /**
+ * Set username to connect to the WebProxy server.
+ *
+ * @param username the username value to set
+ * @return the BackendProxyContract object itself.
+ */
+ public BackendProxyContract withUsername(String username) {
+ this.username = username;
+ return this;
+ }
+
+ /**
+ * Get password to connect to the WebProxy Server.
+ *
+ * @return the password value
+ */
+ public String password() {
+ return this.password;
+ }
+
+ /**
+ * Set password to connect to the WebProxy Server.
+ *
+ * @param password the password value to set
+ * @return the BackendProxyContract object itself.
+ */
+ public BackendProxyContract withPassword(String password) {
+ this.password = password;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendReconnectContract.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendReconnectContract.java
new file mode 100644
index 0000000000000..5bf70ffddf2b2
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendReconnectContract.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import org.joda.time.Period;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.ProxyResource;
+
+/**
+ * Reconnect request parameters.
+ */
+@JsonFlatten
+public class BackendReconnectContract extends ProxyResource {
+ /**
+ * Duration in ISO8601 format after which reconnect will be initiated.
+ * Minimum duration of the Reconnect is PT2M.
+ */
+ @JsonProperty(value = "properties.after")
+ private Period after;
+
+ /**
+ * Get duration in ISO8601 format after which reconnect will be initiated. Minimum duration of the Reconnect is PT2M.
+ *
+ * @return the after value
+ */
+ public Period after() {
+ return this.after;
+ }
+
+ /**
+ * Set duration in ISO8601 format after which reconnect will be initiated. Minimum duration of the Reconnect is PT2M.
+ *
+ * @param after the after value to set
+ * @return the BackendReconnectContract object itself.
+ */
+ public BackendReconnectContract withAfter(Period after) {
+ this.after = after;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendServiceFabricClusterProperties.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendServiceFabricClusterProperties.java
new file mode 100644
index 0000000000000..04f78d30dd712
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendServiceFabricClusterProperties.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.apimanagement.v2019_01_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Properties of the Service Fabric Type Backend.
+ */
+public class BackendServiceFabricClusterProperties {
+ /**
+ * The client certificate thumbprint for the management endpoint.
+ */
+ @JsonProperty(value = "clientCertificatethumbprint", required = true)
+ private String clientCertificatethumbprint;
+
+ /**
+ * Maximum number of retries while attempting resolve the partition.
+ */
+ @JsonProperty(value = "maxPartitionResolutionRetries")
+ private Integer maxPartitionResolutionRetries;
+
+ /**
+ * The cluster management endpoint.
+ */
+ @JsonProperty(value = "managementEndpoints", required = true)
+ private List managementEndpoints;
+
+ /**
+ * Thumbprints of certificates cluster management service uses for tls
+ * communication.
+ */
+ @JsonProperty(value = "serverCertificateThumbprints")
+ private List serverCertificateThumbprints;
+
+ /**
+ * Server X509 Certificate Names Collection.
+ */
+ @JsonProperty(value = "serverX509Names")
+ private List serverX509Names;
+
+ /**
+ * Get the client certificate thumbprint for the management endpoint.
+ *
+ * @return the clientCertificatethumbprint value
+ */
+ public String clientCertificatethumbprint() {
+ return this.clientCertificatethumbprint;
+ }
+
+ /**
+ * Set the client certificate thumbprint for the management endpoint.
+ *
+ * @param clientCertificatethumbprint the clientCertificatethumbprint value to set
+ * @return the BackendServiceFabricClusterProperties object itself.
+ */
+ public BackendServiceFabricClusterProperties withClientCertificatethumbprint(String clientCertificatethumbprint) {
+ this.clientCertificatethumbprint = clientCertificatethumbprint;
+ return this;
+ }
+
+ /**
+ * Get maximum number of retries while attempting resolve the partition.
+ *
+ * @return the maxPartitionResolutionRetries value
+ */
+ public Integer maxPartitionResolutionRetries() {
+ return this.maxPartitionResolutionRetries;
+ }
+
+ /**
+ * Set maximum number of retries while attempting resolve the partition.
+ *
+ * @param maxPartitionResolutionRetries the maxPartitionResolutionRetries value to set
+ * @return the BackendServiceFabricClusterProperties object itself.
+ */
+ public BackendServiceFabricClusterProperties withMaxPartitionResolutionRetries(Integer maxPartitionResolutionRetries) {
+ this.maxPartitionResolutionRetries = maxPartitionResolutionRetries;
+ return this;
+ }
+
+ /**
+ * Get the cluster management endpoint.
+ *
+ * @return the managementEndpoints value
+ */
+ public List managementEndpoints() {
+ return this.managementEndpoints;
+ }
+
+ /**
+ * Set the cluster management endpoint.
+ *
+ * @param managementEndpoints the managementEndpoints value to set
+ * @return the BackendServiceFabricClusterProperties object itself.
+ */
+ public BackendServiceFabricClusterProperties withManagementEndpoints(List managementEndpoints) {
+ this.managementEndpoints = managementEndpoints;
+ return this;
+ }
+
+ /**
+ * Get thumbprints of certificates cluster management service uses for tls communication.
+ *
+ * @return the serverCertificateThumbprints value
+ */
+ public List serverCertificateThumbprints() {
+ return this.serverCertificateThumbprints;
+ }
+
+ /**
+ * Set thumbprints of certificates cluster management service uses for tls communication.
+ *
+ * @param serverCertificateThumbprints the serverCertificateThumbprints value to set
+ * @return the BackendServiceFabricClusterProperties object itself.
+ */
+ public BackendServiceFabricClusterProperties withServerCertificateThumbprints(List serverCertificateThumbprints) {
+ this.serverCertificateThumbprints = serverCertificateThumbprints;
+ return this;
+ }
+
+ /**
+ * Get server X509 Certificate Names Collection.
+ *
+ * @return the serverX509Names value
+ */
+ public List serverX509Names() {
+ return this.serverX509Names;
+ }
+
+ /**
+ * Set server X509 Certificate Names Collection.
+ *
+ * @param serverX509Names the serverX509Names value to set
+ * @return the BackendServiceFabricClusterProperties object itself.
+ */
+ public BackendServiceFabricClusterProperties withServerX509Names(List serverX509Names) {
+ this.serverX509Names = serverX509Names;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendTlsProperties.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendTlsProperties.java
new file mode 100644
index 0000000000000..80dc5561555dc
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendTlsProperties.java
@@ -0,0 +1,71 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Properties controlling TLS Certificate Validation.
+ */
+public class BackendTlsProperties {
+ /**
+ * Flag indicating whether SSL certificate chain validation should be done
+ * when using self-signed certificates for this backend host.
+ */
+ @JsonProperty(value = "validateCertificateChain")
+ private Boolean validateCertificateChain;
+
+ /**
+ * Flag indicating whether SSL certificate name validation should be done
+ * when using self-signed certificates for this backend host.
+ */
+ @JsonProperty(value = "validateCertificateName")
+ private Boolean validateCertificateName;
+
+ /**
+ * Get flag indicating whether SSL certificate chain validation should be done when using self-signed certificates for this backend host.
+ *
+ * @return the validateCertificateChain value
+ */
+ public Boolean validateCertificateChain() {
+ return this.validateCertificateChain;
+ }
+
+ /**
+ * Set flag indicating whether SSL certificate chain validation should be done when using self-signed certificates for this backend host.
+ *
+ * @param validateCertificateChain the validateCertificateChain value to set
+ * @return the BackendTlsProperties object itself.
+ */
+ public BackendTlsProperties withValidateCertificateChain(Boolean validateCertificateChain) {
+ this.validateCertificateChain = validateCertificateChain;
+ return this;
+ }
+
+ /**
+ * Get flag indicating whether SSL certificate name validation should be done when using self-signed certificates for this backend host.
+ *
+ * @return the validateCertificateName value
+ */
+ public Boolean validateCertificateName() {
+ return this.validateCertificateName;
+ }
+
+ /**
+ * Set flag indicating whether SSL certificate name validation should be done when using self-signed certificates for this backend host.
+ *
+ * @param validateCertificateName the validateCertificateName value to set
+ * @return the BackendTlsProperties object itself.
+ */
+ public BackendTlsProperties withValidateCertificateName(Boolean validateCertificateName) {
+ this.validateCertificateName = validateCertificateName;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendUpdateParameters.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendUpdateParameters.java
new file mode 100644
index 0000000000000..753ab124c79d3
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/BackendUpdateParameters.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.apimanagement.v2019_01_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Backend update parameters.
+ */
+@JsonFlatten
+public class BackendUpdateParameters {
+ /**
+ * Backend Title.
+ */
+ @JsonProperty(value = "properties.title")
+ private String title;
+
+ /**
+ * Backend Description.
+ */
+ @JsonProperty(value = "properties.description")
+ private String description;
+
+ /**
+ * Management Uri of the Resource in External System. This url can be the
+ * Arm Resource Id of Logic Apps, Function Apps or Api Apps.
+ */
+ @JsonProperty(value = "properties.resourceId")
+ private String resourceId;
+
+ /**
+ * Backend Properties contract.
+ */
+ @JsonProperty(value = "properties.properties")
+ private BackendProperties properties;
+
+ /**
+ * Backend Credentials Contract Properties.
+ */
+ @JsonProperty(value = "properties.credentials")
+ private BackendCredentialsContract credentials;
+
+ /**
+ * Backend Proxy Contract Properties.
+ */
+ @JsonProperty(value = "properties.proxy")
+ private BackendProxyContract proxy;
+
+ /**
+ * Backend TLS Properties.
+ */
+ @JsonProperty(value = "properties.tls")
+ private BackendTlsProperties tls;
+
+ /**
+ * Runtime Url of the Backend.
+ */
+ @JsonProperty(value = "properties.url")
+ private String url;
+
+ /**
+ * Backend communication protocol. Possible values include: 'http', 'soap'.
+ */
+ @JsonProperty(value = "properties.protocol")
+ private BackendProtocol protocol;
+
+ /**
+ * Get backend Title.
+ *
+ * @return the title value
+ */
+ public String title() {
+ return this.title;
+ }
+
+ /**
+ * Set backend Title.
+ *
+ * @param title the title value to set
+ * @return the BackendUpdateParameters object itself.
+ */
+ public BackendUpdateParameters withTitle(String title) {
+ this.title = title;
+ return this;
+ }
+
+ /**
+ * Get backend Description.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set backend Description.
+ *
+ * @param description the description value to set
+ * @return the BackendUpdateParameters object itself.
+ */
+ public BackendUpdateParameters withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get management Uri of the Resource in External System. This url can be the Arm Resource Id of Logic Apps, Function Apps or Api Apps.
+ *
+ * @return the resourceId value
+ */
+ public String resourceId() {
+ return this.resourceId;
+ }
+
+ /**
+ * Set management Uri of the Resource in External System. This url can be the Arm Resource Id of Logic Apps, Function Apps or Api Apps.
+ *
+ * @param resourceId the resourceId value to set
+ * @return the BackendUpdateParameters object itself.
+ */
+ public BackendUpdateParameters withResourceId(String resourceId) {
+ this.resourceId = resourceId;
+ return this;
+ }
+
+ /**
+ * Get backend Properties contract.
+ *
+ * @return the properties value
+ */
+ public BackendProperties properties() {
+ return this.properties;
+ }
+
+ /**
+ * Set backend Properties contract.
+ *
+ * @param properties the properties value to set
+ * @return the BackendUpdateParameters object itself.
+ */
+ public BackendUpdateParameters withProperties(BackendProperties properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ /**
+ * Get backend Credentials Contract Properties.
+ *
+ * @return the credentials value
+ */
+ public BackendCredentialsContract credentials() {
+ return this.credentials;
+ }
+
+ /**
+ * Set backend Credentials Contract Properties.
+ *
+ * @param credentials the credentials value to set
+ * @return the BackendUpdateParameters object itself.
+ */
+ public BackendUpdateParameters withCredentials(BackendCredentialsContract credentials) {
+ this.credentials = credentials;
+ return this;
+ }
+
+ /**
+ * Get backend Proxy Contract Properties.
+ *
+ * @return the proxy value
+ */
+ public BackendProxyContract proxy() {
+ return this.proxy;
+ }
+
+ /**
+ * Set backend Proxy Contract Properties.
+ *
+ * @param proxy the proxy value to set
+ * @return the BackendUpdateParameters object itself.
+ */
+ public BackendUpdateParameters withProxy(BackendProxyContract proxy) {
+ this.proxy = proxy;
+ return this;
+ }
+
+ /**
+ * Get backend TLS Properties.
+ *
+ * @return the tls value
+ */
+ public BackendTlsProperties tls() {
+ return this.tls;
+ }
+
+ /**
+ * Set backend TLS Properties.
+ *
+ * @param tls the tls value to set
+ * @return the BackendUpdateParameters object itself.
+ */
+ public BackendUpdateParameters withTls(BackendTlsProperties tls) {
+ this.tls = tls;
+ return this;
+ }
+
+ /**
+ * Get runtime Url of the Backend.
+ *
+ * @return the url value
+ */
+ public String url() {
+ return this.url;
+ }
+
+ /**
+ * Set runtime Url of the Backend.
+ *
+ * @param url the url value to set
+ * @return the BackendUpdateParameters object itself.
+ */
+ public BackendUpdateParameters withUrl(String url) {
+ this.url = url;
+ return this;
+ }
+
+ /**
+ * Get backend communication protocol. Possible values include: 'http', 'soap'.
+ *
+ * @return the protocol value
+ */
+ public BackendProtocol protocol() {
+ return this.protocol;
+ }
+
+ /**
+ * Set backend communication protocol. Possible values include: 'http', 'soap'.
+ *
+ * @param protocol the protocol value to set
+ * @return the BackendUpdateParameters object itself.
+ */
+ public BackendUpdateParameters withProtocol(BackendProtocol protocol) {
+ this.protocol = protocol;
+ return this;
+ }
+
+}
diff --git a/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/Backends.java b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/Backends.java
new file mode 100644
index 0000000000000..59033e855981b
--- /dev/null
+++ b/apimanagement/resource-manager/v2019_01_01/src/main/java/com/microsoft/azure/management/apimanagement/v2019_01_01/Backends.java
@@ -0,0 +1,76 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.apimanagement.v2019_01_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.apimanagement.v2019_01_01.implementation.BackendsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Backends.
+ */
+public interface Backends extends SupportsCreating, HasInner {
+ /**
+ * Lists a collection of backends in the specified service instance.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param serviceName The name of the API Management service.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable