diff --git a/.azure-pipelines/docs.yml b/.azure-pipelines/docs.yml
index a66d7513ec1d..d068788556da 100644
--- a/.azure-pipelines/docs.yml
+++ b/.azure-pipelines/docs.yml
@@ -14,7 +14,7 @@ jobs:
vmImage: 'windows-2019'
steps:
- - powershell: |
+ - pwsh: |
copy eng/repo-docs/index.html $(Build.ArtifactStagingDirectory)
displayName: 'Copy index to artifact staging'
@@ -63,7 +63,7 @@ jobs:
publishJUnitResults: false
goals: 'install'
- - powershell: |
+ - pwsh: |
copy -r target/staging/apidocs $(Build.ArtifactStagingDirectory)/client
displayName: 'Copy reports to artifact staging'
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 814986b4cb18..ec84e9e29259 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1,5 +1,5 @@
# Instructions for CODEOWNERS file format and automatic build failure notifications:
-# https://github.com/Azure/azure-sdk/blob/master/docs/engineering-system/codeowners.md
+# https://github.com/Azure/azure-sdk/blob/master/docs/policies/opensource.md#codeowners
###########
# SDK
@@ -27,10 +27,10 @@
###########
# Eng Sys
###########
-/eng/ @weshaggard @mitchdenny @danieljurek
-/eng/code-quality-reports/ @mssfang @JonathanGiles
-/eng/jacoco-test-coverage/ @srnagar @JonathanGiles
-/eng/spotbugs-aggregate-report/ @srnagar @JonathanGiles
+/eng/ @JimSuplizio @mitchdenny @weshaggard @danieljurek
+/eng/code-quality-reports/ @mssfang @JonathanGiles
+/eng/jacoco-test-coverage/ @srnagar @JonathanGiles
+/eng/spotbugs-aggregate-report/ @srnagar @JonathanGiles
/**/tests.yml @danieljurek
/**/ci.yml @mitchdenny
diff --git a/README.md b/README.md
index 8d01aaa910b2..07cd69e9267c 100644
--- a/README.md
+++ b/README.md
@@ -14,21 +14,21 @@ To get started with a specific library, see the **README.md** file located in th
For tutorials, samples, quick starts and other documentation, visit [Azure for Java Developers](https://docs.microsoft.com/java/azure/).
### Prerequisites
-Java 8 or later is required to use the September 2019 client preview libraries, otherwise Java 7 or later is required.
+Java 8 or later is required to use the October 2019 client preview libraries, otherwise Java 7 or later is required.
## Packages available
Each service might have a number of libraries available from each of the following categories:
-* [Client - September 2019 Preview](#Client-September-2019-Preview)
+* [Client - October 2019 Preview](#Client-October-2019-Preview)
* [Client - Stable](#Client-Stable)
* [Management](#Management)
-### Client: September 2019 Preview
+### Client: October 2019 Preview
New wave of packages that we are currently releasing in **preview**. These libraries follow the [Azure SDK Design Guidelines for Java](https://azure.github.io/azure-sdk/java/guidelines/) and share a number of core features such as HTTP retries, logging, transport protocols, authentication protocols, etc., so that once you learn how to use these features in one client library, you will know how to use them in other client libraries. You can learn about these shared features [here](core).
These preview libraries can be easily identified by their folder, package, and namespaces names starting with `azure-`, e.g. `azure-keyvault`.
-The libraries released in the September 2019 preview:
+The libraries released in the October 2019 preview:
- [App Configuration](sdk/appconfiguration/azure-data-appconfiguration/README.md)
- [Event Hubs](sdk/eventhubs/azure-messaging-eventhubs/README.md)
- [Event Hubs Checkpoint Store](sdk/eventhubs/azure-messaging-eventhubs-checkpointstore-blob/README.md)
diff --git a/api-specs.json b/api-specs.json
index 0166ab5c4fdb..5a03fcdf7d16 100644
--- a/api-specs.json
+++ b/api-specs.json
@@ -195,6 +195,10 @@
"source": "specification/operationsmanagement/resource-manager/readme.md",
"args": "--multiapi --fluent"
},
+ "peering/resource-manager": {
+ "source": "specification/peering/resource-manager/readme.md",
+ "args": "--multiapi --fluent"
+ },
"policyinsights/resource-manager": {
"source": "specification/policyinsights/resource-manager/readme.md",
"args": "--multiapi --fluent"
diff --git a/eng/.docsettings.yml b/eng/.docsettings.yml
index 4fb91b2a5c7e..7ae1ae394bf0 100644
--- a/eng/.docsettings.yml
+++ b/eng/.docsettings.yml
@@ -76,6 +76,7 @@ known_content_issues:
- ['sdk/cosmos/microsoft-azure-cosmos-benchmark/README.md', '#3113']
- ['sdk/cosmos/README.md', '#3113']
- ['sdk/storage/azure-storage-blob/swagger/README.md', '#3113']
+ - ['sdk/storage/azure-storage-file-datalake/swagger/README.md', '#3113']
- ['sdk/storage/azure-storage-queue/swagger/README.md', '#3113']
- ['sdk/storage/azure-storage-file/swagger/README.md', '#3113']
package_indexing_exclusion_list:
diff --git a/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml b/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml
index 8739e95c13ef..154e4abd37d1 100755
--- a/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml
+++ b/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle-suppressions.xml
@@ -76,8 +76,9 @@
-
-
+
+
+
@@ -126,8 +127,8 @@
-
-
+
+
@@ -141,10 +142,8 @@
-
-
-
-
+
+
@@ -198,4 +197,7 @@
+
+
+
diff --git a/eng/code-quality-reports/src/main/resources/spotbugs/spotbugs-exclude.xml b/eng/code-quality-reports/src/main/resources/spotbugs/spotbugs-exclude.xml
index f5210017b41e..22494e5611ee 100755
--- a/eng/code-quality-reports/src/main/resources/spotbugs/spotbugs-exclude.xml
+++ b/eng/code-quality-reports/src/main/resources/spotbugs/spotbugs-exclude.xml
@@ -385,6 +385,8 @@
+
+
@@ -453,8 +455,8 @@
-
-
+
+
@@ -579,7 +581,7 @@
-
+
diff --git a/eng/jacoco-test-coverage/pom.xml b/eng/jacoco-test-coverage/pom.xml
index e15f99fa9ac1..9434447b5cad 100644
--- a/eng/jacoco-test-coverage/pom.xml
+++ b/eng/jacoco-test-coverage/pom.xml
@@ -37,6 +37,7 @@
12.0.0-preview.4
12.0.0-preview.4
12.0.0-preview.4
+ 12.0.0-preview.4
12.0.0-preview.4
12.0.0-preview.4
com.azure.eng.jacoco.test.coverage
@@ -126,6 +127,11 @@
azure-storage-file
${azure-storage-file.version}
+
+ com.azure
+ azure-storage-file-datalake
+ ${azure-storage-file-datalake.version}
+
com.azure
azure-storage-queue
diff --git a/eng/pipelines/client.yml b/eng/pipelines/client.yml
index 9ce1b2316ce8..dbcf39e47e11 100644
--- a/eng/pipelines/client.yml
+++ b/eng/pipelines/client.yml
@@ -178,7 +178,7 @@ jobs:
goals: 'clean package exec:java'
# We only copy artifacts into the staging in nightly builds, we don't bother with this for PR validation builds.
- - powershell: |
+ - pwsh: |
copy -r target/staging $(Build.ArtifactStagingDirectory)
copy eng/code-quality-reports/src/main/resources/index.html $(Build.ArtifactStagingDirectory)
copy eng/spotbugs-aggregate-report/target/spotbugs/spotbugsXml.html (Join-Path $(Build.ArtifactStagingDirectory) "staging")
diff --git a/eng/pipelines/templates/jobs/archetype-sdk-client.yml b/eng/pipelines/templates/jobs/archetype-sdk-client.yml
index 638ac201fc3d..8478e274a06b 100644
--- a/eng/pipelines/templates/jobs/archetype-sdk-client.yml
+++ b/eng/pipelines/templates/jobs/archetype-sdk-client.yml
@@ -198,7 +198,7 @@ jobs:
goals: 'clean package exec:java'
# We only copy artifacts into the staging in nightly builds, we don't bother with this for PR validation builds.
- - powershell: |
+ - pwsh: |
copy -r target/staging $(Build.ArtifactStagingDirectory)
copy eng/code-quality-reports/src/main/resources/index.html $(Build.ArtifactStagingDirectory)
copy eng/spotbugs-aggregate-report/target/spotbugs/spotbugsXml.html (Join-Path $(Build.ArtifactStagingDirectory) "staging")
diff --git a/eng/pipelines/templates/stages/cosmos-sdk-client.yml b/eng/pipelines/templates/stages/cosmos-sdk-client.yml
index 4ac907f97669..d2457dab2603 100644
--- a/eng/pipelines/templates/stages/cosmos-sdk-client.yml
+++ b/eng/pipelines/templates/stages/cosmos-sdk-client.yml
@@ -58,7 +58,7 @@ stages:
PreRunSteps:
- powershell: |
Write-Host "Downloading Cosmos Emulator - $(EmulatorMsiUrl)"
- wget "$(EmulatorMsiUrl)" -outfile "$env:temp\azure-cosmosdb-emulator.msi"
+ Invoke-WebRequest "$(EmulatorMsiUrl)" -OutFile "$env:temp\azure-cosmosdb-emulator.msi"
Write-Host "Finished Downloading Cosmos Emulator - $env:temp\azure-cosmosdb-emulator.msi"
dir "$env:temp"
displayName: 'Download Public Cosmos DB Emulator'
diff --git a/eng/pipelines/templates/variables/globals.yml b/eng/pipelines/templates/variables/globals.yml
index 82e14a0b4207..f808490f9bc7 100644
--- a/eng/pipelines/templates/variables/globals.yml
+++ b/eng/pipelines/templates/variables/globals.yml
@@ -4,4 +4,4 @@ variables:
MemoryOptions: '-Xmx3072m'
#Agent.Source.Git.ShallowFetchDepth: 1
skipComponentGovernanceDetection: true
- EmulatorMsiUrl: 'https://acpedaily1.blob.core.windows.net/emulator/azure-cosmos-emulator.msi'
+ EmulatorMsiUrl: 'https://aka.ms/cosmosdb-emulator'
diff --git a/eng/spotbugs-aggregate-report/pom.xml b/eng/spotbugs-aggregate-report/pom.xml
index cab38e666c2d..d75a91728a93 100644
--- a/eng/spotbugs-aggregate-report/pom.xml
+++ b/eng/spotbugs-aggregate-report/pom.xml
@@ -32,6 +32,7 @@
12.0.0-preview.4
12.0.0-preview.4
12.0.0-preview.4
+ 12.0.0-preview.4
12.0.0-preview.4
12.0.0-preview.4
com.azure.eng.spotbugs.reporting
@@ -66,6 +67,7 @@
..\..\sdk\core\azure-core-http-netty\src\main\java\com
..\..\sdk\core\azure-core-http-netty\src\samples\java\com
..\..\sdk\core\azure-core-http-okhttp\src\main\java\com
+ ..\..\sdk\core\azure-core-http-okhttp\src\samples\java\com
..\..\sdk\core\azure-core-management\src\main\java\com
..\..\sdk\core\azure-core-test\src\main\java\com
..\..\sdk\eventhubs\azure-messaging-eventhubs\src\main\java\com
@@ -79,11 +81,14 @@
..\..\sdk\storage\azure-storage-common\src\main\java\com
+ ..\..\sdk\storage\azure-storage-common\src\samples\java\com
..\..\sdk\storage\azure-storage-blob\src\main\java\com
..\..\sdk\storage\azure-storage-blob\src\samples\java\com
..\..\sdk\storage\azure-storage-blob-cryptography\src\main\java\com
..\..\sdk\storage\azure-storage-file\src\main\java\com
..\..\sdk\storage\azure-storage-file\src\samples\java\com
+ ..\..\sdk\storage\azure-storage-file-datalake\src\main\java\com
+ ..\..\sdk\storage\azure-storage-file-datalake\src\samples\java\com
..\..\sdk\storage\azure-storage-queue\src\main\java\com
..\..\sdk\storage\azure-storage-queue\src\samples\java\com
..\..\sdk\storage\azure-storage-queue-cryptography\src\main\java\com
@@ -228,6 +233,11 @@
azure-storage-file
${azure-storage-file.version}
+
+ com.azure
+ azure-storage-file-datalake
+ ${azure-storage-file-datalake.version}
+
com.azure
azure-storage-queue
diff --git a/parent/pom.xml b/parent/pom.xml
index dd23369f8cb9..63742fc6bd26 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -113,9 +113,9 @@
2.1.1
1.7.28
1.7.0
- 3.2.12.RELEASE
- 0.8.3.RELEASE
- 4.1.33.Final
+ 3.3.0.RELEASE
+ 0.9.0.RELEASE
+ 4.1.39.Final
4.1.0
2.5.2
0.20.0
diff --git a/peering/resource-manager/v2019_08_01_preview/pom.xml b/peering/resource-manager/v2019_08_01_preview/pom.xml
new file mode 100644
index 000000000000..154085474ad6
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/pom.xml
@@ -0,0 +1,135 @@
+
+
+ 4.0.0
+ com.microsoft.azure.peering.v2019_08_01_preview
+
+ com.microsoft.azure
+ azure-arm-parent
+ 1.1.0
+ ../../../pom.management.xml
+
+ azure-mgmt-peering
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for Peering Management
+ This package contains Microsoft Peering Management SDK.
+ https://github.com/Azure/azure-sdk-for-java
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+ scm:git:https://github.com/Azure/azure-sdk-for-java
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ HEAD
+
+
+ UTF-8
+
+
+
+
+ microsoft
+ Microsoft
+
+
+
+
+ com.microsoft.azure
+ azure-client-runtime
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+
+
+ junit
+ junit
+ test
+
+
+ com.microsoft.azure
+ azure-client-authentication
+ test
+
+
+ com.microsoft.azure
+ azure-mgmt-resources
+ test
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+ test-jar
+ test
+
+ 1.6.5
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ true
+ true
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+ 1.7
+ 1.7
+
+
+ com.microsoft.azure.management.apigeneration.LangDefinitionProcessor
+
+
+ true
+ true
+
+ true
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.8
+
+ *.implementation.*;*.utils.*;com.microsoft.schemas._2003._10.serialization;*.blob.core.search
+
+
+ /**
+
* Copyright (c) Microsoft Corporation. All rights reserved.
+
* Licensed under the MIT License. See License.txt in the project root for
+
* license information.
+
*/
+ ]]>
+
+
+
+
+
+
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/BgpSession.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/BgpSession.java
new file mode 100644
index 000000000000..76cbb5ba8214
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/BgpSession.java
@@ -0,0 +1,263 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties that define a BGP session.
+ */
+public class BgpSession {
+ /**
+ * The IPv4 prefix that contains both ends' IPv4 addresses.
+ */
+ @JsonProperty(value = "sessionPrefixV4")
+ private String sessionPrefixV4;
+
+ /**
+ * The IPv6 prefix that contains both ends' IPv6 addresses.
+ */
+ @JsonProperty(value = "sessionPrefixV6")
+ private String sessionPrefixV6;
+
+ /**
+ * The IPv4 session address on Microsoft's end.
+ */
+ @JsonProperty(value = "microsoftSessionIPv4Address", access = JsonProperty.Access.WRITE_ONLY)
+ private String microsoftSessionIPv4Address;
+
+ /**
+ * The IPv6 session address on Microsoft's end.
+ */
+ @JsonProperty(value = "microsoftSessionIPv6Address", access = JsonProperty.Access.WRITE_ONLY)
+ private String microsoftSessionIPv6Address;
+
+ /**
+ * The IPv4 session address on peer's end.
+ */
+ @JsonProperty(value = "peerSessionIPv4Address")
+ private String peerSessionIPv4Address;
+
+ /**
+ * The IPv6 session address on peer's end.
+ */
+ @JsonProperty(value = "peerSessionIPv6Address")
+ private String peerSessionIPv6Address;
+
+ /**
+ * The state of the IPv4 session. Possible values include: 'None', 'Idle',
+ * 'Connect', 'Active', 'OpenSent', 'OpenConfirm', 'OpenReceived',
+ * 'Established', 'PendingAdd', 'PendingUpdate', 'PendingRemove'.
+ */
+ @JsonProperty(value = "sessionStateV4", access = JsonProperty.Access.WRITE_ONLY)
+ private SessionStateV4 sessionStateV4;
+
+ /**
+ * The state of the IPv6 session. Possible values include: 'None', 'Idle',
+ * 'Connect', 'Active', 'OpenSent', 'OpenConfirm', 'OpenReceived',
+ * 'Established', 'PendingAdd', 'PendingUpdate', 'PendingRemove'.
+ */
+ @JsonProperty(value = "sessionStateV6", access = JsonProperty.Access.WRITE_ONLY)
+ private SessionStateV6 sessionStateV6;
+
+ /**
+ * The maximum number of prefixes advertised over the IPv4 session.
+ */
+ @JsonProperty(value = "maxPrefixesAdvertisedV4")
+ private Integer maxPrefixesAdvertisedV4;
+
+ /**
+ * The maximum number of prefixes advertised over the IPv6 session.
+ */
+ @JsonProperty(value = "maxPrefixesAdvertisedV6")
+ private Integer maxPrefixesAdvertisedV6;
+
+ /**
+ * The MD5 authentication key of the session.
+ */
+ @JsonProperty(value = "md5AuthenticationKey")
+ private String md5AuthenticationKey;
+
+ /**
+ * Get the IPv4 prefix that contains both ends' IPv4 addresses.
+ *
+ * @return the sessionPrefixV4 value
+ */
+ public String sessionPrefixV4() {
+ return this.sessionPrefixV4;
+ }
+
+ /**
+ * Set the IPv4 prefix that contains both ends' IPv4 addresses.
+ *
+ * @param sessionPrefixV4 the sessionPrefixV4 value to set
+ * @return the BgpSession object itself.
+ */
+ public BgpSession withSessionPrefixV4(String sessionPrefixV4) {
+ this.sessionPrefixV4 = sessionPrefixV4;
+ return this;
+ }
+
+ /**
+ * Get the IPv6 prefix that contains both ends' IPv6 addresses.
+ *
+ * @return the sessionPrefixV6 value
+ */
+ public String sessionPrefixV6() {
+ return this.sessionPrefixV6;
+ }
+
+ /**
+ * Set the IPv6 prefix that contains both ends' IPv6 addresses.
+ *
+ * @param sessionPrefixV6 the sessionPrefixV6 value to set
+ * @return the BgpSession object itself.
+ */
+ public BgpSession withSessionPrefixV6(String sessionPrefixV6) {
+ this.sessionPrefixV6 = sessionPrefixV6;
+ return this;
+ }
+
+ /**
+ * Get the IPv4 session address on Microsoft's end.
+ *
+ * @return the microsoftSessionIPv4Address value
+ */
+ public String microsoftSessionIPv4Address() {
+ return this.microsoftSessionIPv4Address;
+ }
+
+ /**
+ * Get the IPv6 session address on Microsoft's end.
+ *
+ * @return the microsoftSessionIPv6Address value
+ */
+ public String microsoftSessionIPv6Address() {
+ return this.microsoftSessionIPv6Address;
+ }
+
+ /**
+ * Get the IPv4 session address on peer's end.
+ *
+ * @return the peerSessionIPv4Address value
+ */
+ public String peerSessionIPv4Address() {
+ return this.peerSessionIPv4Address;
+ }
+
+ /**
+ * Set the IPv4 session address on peer's end.
+ *
+ * @param peerSessionIPv4Address the peerSessionIPv4Address value to set
+ * @return the BgpSession object itself.
+ */
+ public BgpSession withPeerSessionIPv4Address(String peerSessionIPv4Address) {
+ this.peerSessionIPv4Address = peerSessionIPv4Address;
+ return this;
+ }
+
+ /**
+ * Get the IPv6 session address on peer's end.
+ *
+ * @return the peerSessionIPv6Address value
+ */
+ public String peerSessionIPv6Address() {
+ return this.peerSessionIPv6Address;
+ }
+
+ /**
+ * Set the IPv6 session address on peer's end.
+ *
+ * @param peerSessionIPv6Address the peerSessionIPv6Address value to set
+ * @return the BgpSession object itself.
+ */
+ public BgpSession withPeerSessionIPv6Address(String peerSessionIPv6Address) {
+ this.peerSessionIPv6Address = peerSessionIPv6Address;
+ return this;
+ }
+
+ /**
+ * Get the state of the IPv4 session. Possible values include: 'None', 'Idle', 'Connect', 'Active', 'OpenSent', 'OpenConfirm', 'OpenReceived', 'Established', 'PendingAdd', 'PendingUpdate', 'PendingRemove'.
+ *
+ * @return the sessionStateV4 value
+ */
+ public SessionStateV4 sessionStateV4() {
+ return this.sessionStateV4;
+ }
+
+ /**
+ * Get the state of the IPv6 session. Possible values include: 'None', 'Idle', 'Connect', 'Active', 'OpenSent', 'OpenConfirm', 'OpenReceived', 'Established', 'PendingAdd', 'PendingUpdate', 'PendingRemove'.
+ *
+ * @return the sessionStateV6 value
+ */
+ public SessionStateV6 sessionStateV6() {
+ return this.sessionStateV6;
+ }
+
+ /**
+ * Get the maximum number of prefixes advertised over the IPv4 session.
+ *
+ * @return the maxPrefixesAdvertisedV4 value
+ */
+ public Integer maxPrefixesAdvertisedV4() {
+ return this.maxPrefixesAdvertisedV4;
+ }
+
+ /**
+ * Set the maximum number of prefixes advertised over the IPv4 session.
+ *
+ * @param maxPrefixesAdvertisedV4 the maxPrefixesAdvertisedV4 value to set
+ * @return the BgpSession object itself.
+ */
+ public BgpSession withMaxPrefixesAdvertisedV4(Integer maxPrefixesAdvertisedV4) {
+ this.maxPrefixesAdvertisedV4 = maxPrefixesAdvertisedV4;
+ return this;
+ }
+
+ /**
+ * Get the maximum number of prefixes advertised over the IPv6 session.
+ *
+ * @return the maxPrefixesAdvertisedV6 value
+ */
+ public Integer maxPrefixesAdvertisedV6() {
+ return this.maxPrefixesAdvertisedV6;
+ }
+
+ /**
+ * Set the maximum number of prefixes advertised over the IPv6 session.
+ *
+ * @param maxPrefixesAdvertisedV6 the maxPrefixesAdvertisedV6 value to set
+ * @return the BgpSession object itself.
+ */
+ public BgpSession withMaxPrefixesAdvertisedV6(Integer maxPrefixesAdvertisedV6) {
+ this.maxPrefixesAdvertisedV6 = maxPrefixesAdvertisedV6;
+ return this;
+ }
+
+ /**
+ * Get the MD5 authentication key of the session.
+ *
+ * @return the md5AuthenticationKey value
+ */
+ public String md5AuthenticationKey() {
+ return this.md5AuthenticationKey;
+ }
+
+ /**
+ * Set the MD5 authentication key of the session.
+ *
+ * @param md5AuthenticationKey the md5AuthenticationKey value to set
+ * @return the BgpSession object itself.
+ */
+ public BgpSession withMd5AuthenticationKey(String md5AuthenticationKey) {
+ this.md5AuthenticationKey = md5AuthenticationKey;
+ return this;
+ }
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/CheckServiceProviderAvailabilityInput.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/CheckServiceProviderAvailabilityInput.java
new file mode 100644
index 000000000000..89841117b9c8
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/CheckServiceProviderAvailabilityInput.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.peering.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Class for CheckServiceProviderAvailabilityInput.
+ */
+public class CheckServiceProviderAvailabilityInput {
+ /**
+ * Gets or sets the PeeringServiceLocation.
+ */
+ @JsonProperty(value = "peeringServiceLocation")
+ private String peeringServiceLocation;
+
+ /**
+ * Gets or sets the PeeringServiceProvider.
+ */
+ @JsonProperty(value = "peeringServiceProvider")
+ private String peeringServiceProvider;
+
+ /**
+ * Get gets or sets the PeeringServiceLocation.
+ *
+ * @return the peeringServiceLocation value
+ */
+ public String peeringServiceLocation() {
+ return this.peeringServiceLocation;
+ }
+
+ /**
+ * Set gets or sets the PeeringServiceLocation.
+ *
+ * @param peeringServiceLocation the peeringServiceLocation value to set
+ * @return the CheckServiceProviderAvailabilityInput object itself.
+ */
+ public CheckServiceProviderAvailabilityInput withPeeringServiceLocation(String peeringServiceLocation) {
+ this.peeringServiceLocation = peeringServiceLocation;
+ return this;
+ }
+
+ /**
+ * Get gets or sets the PeeringServiceProvider.
+ *
+ * @return the peeringServiceProvider value
+ */
+ public String peeringServiceProvider() {
+ return this.peeringServiceProvider;
+ }
+
+ /**
+ * Set gets or sets the PeeringServiceProvider.
+ *
+ * @param peeringServiceProvider the peeringServiceProvider value to set
+ * @return the CheckServiceProviderAvailabilityInput object itself.
+ */
+ public CheckServiceProviderAvailabilityInput withPeeringServiceProvider(String peeringServiceProvider) {
+ this.peeringServiceProvider = peeringServiceProvider;
+ return this;
+ }
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ConnectionState.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ConnectionState.java
new file mode 100644
index 000000000000..98749844ebf0
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ConnectionState.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.peering.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ConnectionState.
+ */
+public final class ConnectionState extends ExpandableStringEnum {
+ /** Static value None for ConnectionState. */
+ public static final ConnectionState NONE = fromString("None");
+
+ /** Static value PendingApproval for ConnectionState. */
+ public static final ConnectionState PENDING_APPROVAL = fromString("PendingApproval");
+
+ /** Static value Approved for ConnectionState. */
+ public static final ConnectionState APPROVED = fromString("Approved");
+
+ /** Static value ProvisioningStarted for ConnectionState. */
+ public static final ConnectionState PROVISIONING_STARTED = fromString("ProvisioningStarted");
+
+ /** Static value ProvisioningFailed for ConnectionState. */
+ public static final ConnectionState PROVISIONING_FAILED = fromString("ProvisioningFailed");
+
+ /** Static value ProvisioningCompleted for ConnectionState. */
+ public static final ConnectionState PROVISIONING_COMPLETED = fromString("ProvisioningCompleted");
+
+ /** Static value Validating for ConnectionState. */
+ public static final ConnectionState VALIDATING = fromString("Validating");
+
+ /** Static value Active for ConnectionState. */
+ public static final ConnectionState ACTIVE = fromString("Active");
+
+ /**
+ * Creates or finds a ConnectionState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ConnectionState
+ */
+ @JsonCreator
+ public static ConnectionState fromString(String name) {
+ return fromString(name, ConnectionState.class);
+ }
+
+ /**
+ * @return known ConnectionState values
+ */
+ public static Collection values() {
+ return values(ConnectionState.class);
+ }
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ContactInfo.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ContactInfo.java
new file mode 100644
index 000000000000..e216ee081898
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ContactInfo.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.peering.v2019_08_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The contact information of the peer.
+ */
+public class ContactInfo {
+ /**
+ * The list of email addresses.
+ */
+ @JsonProperty(value = "emails")
+ private List emails;
+
+ /**
+ * The list of contact numbers.
+ */
+ @JsonProperty(value = "phone")
+ private List phone;
+
+ /**
+ * Get the list of email addresses.
+ *
+ * @return the emails value
+ */
+ public List emails() {
+ return this.emails;
+ }
+
+ /**
+ * Set the list of email addresses.
+ *
+ * @param emails the emails value to set
+ * @return the ContactInfo object itself.
+ */
+ public ContactInfo withEmails(List emails) {
+ this.emails = emails;
+ return this;
+ }
+
+ /**
+ * Get the list of contact numbers.
+ *
+ * @return the phone value
+ */
+ public List phone() {
+ return this.phone;
+ }
+
+ /**
+ * Set the list of contact numbers.
+ *
+ * @param phone the phone value to set
+ * @return the ContactInfo object itself.
+ */
+ public ContactInfo withPhone(List phone) {
+ this.phone = phone;
+ return this;
+ }
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/DirectConnection.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/DirectConnection.java
new file mode 100644
index 000000000000..56df3a350c3d
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/DirectConnection.java
@@ -0,0 +1,219 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties that define a direct connection.
+ */
+public class DirectConnection {
+ /**
+ * The bandwidth of the connection.
+ */
+ @JsonProperty(value = "bandwidthInMbps")
+ private Integer bandwidthInMbps;
+
+ /**
+ * The bandwidth that is actually provisioned.
+ */
+ @JsonProperty(value = "provisionedBandwidthInMbps")
+ private Integer provisionedBandwidthInMbps;
+
+ /**
+ * The field indicating if Microsoft provides session ip addresses.
+ * Possible values include: 'Microsoft', 'Peer'.
+ */
+ @JsonProperty(value = "sessionAddressProvider")
+ private SessionAddressProvider sessionAddressProvider;
+
+ /**
+ * The flag that indicates whether or not the connection is used for
+ * peering service.
+ */
+ @JsonProperty(value = "useForPeeringService")
+ private Boolean useForPeeringService;
+
+ /**
+ * The PeeringDB.com ID of the facility at which the connection has to be
+ * set up.
+ */
+ @JsonProperty(value = "peeringDBFacilityId")
+ private Integer peeringDBFacilityId;
+
+ /**
+ * The state of the connection. Possible values include: 'None',
+ * 'PendingApproval', 'Approved', 'ProvisioningStarted',
+ * 'ProvisioningFailed', 'ProvisioningCompleted', 'Validating', 'Active'.
+ */
+ @JsonProperty(value = "connectionState", access = JsonProperty.Access.WRITE_ONLY)
+ private ConnectionState connectionState;
+
+ /**
+ * The BGP session associated with the connection.
+ */
+ @JsonProperty(value = "bgpSession")
+ private BgpSession bgpSession;
+
+ /**
+ * The unique identifier (GUID) for the connection.
+ */
+ @JsonProperty(value = "connectionIdentifier")
+ private String connectionIdentifier;
+
+ /**
+ * Get the bandwidth of the connection.
+ *
+ * @return the bandwidthInMbps value
+ */
+ public Integer bandwidthInMbps() {
+ return this.bandwidthInMbps;
+ }
+
+ /**
+ * Set the bandwidth of the connection.
+ *
+ * @param bandwidthInMbps the bandwidthInMbps value to set
+ * @return the DirectConnection object itself.
+ */
+ public DirectConnection withBandwidthInMbps(Integer bandwidthInMbps) {
+ this.bandwidthInMbps = bandwidthInMbps;
+ return this;
+ }
+
+ /**
+ * Get the bandwidth that is actually provisioned.
+ *
+ * @return the provisionedBandwidthInMbps value
+ */
+ public Integer provisionedBandwidthInMbps() {
+ return this.provisionedBandwidthInMbps;
+ }
+
+ /**
+ * Set the bandwidth that is actually provisioned.
+ *
+ * @param provisionedBandwidthInMbps the provisionedBandwidthInMbps value to set
+ * @return the DirectConnection object itself.
+ */
+ public DirectConnection withProvisionedBandwidthInMbps(Integer provisionedBandwidthInMbps) {
+ this.provisionedBandwidthInMbps = provisionedBandwidthInMbps;
+ return this;
+ }
+
+ /**
+ * Get the field indicating if Microsoft provides session ip addresses. Possible values include: 'Microsoft', 'Peer'.
+ *
+ * @return the sessionAddressProvider value
+ */
+ public SessionAddressProvider sessionAddressProvider() {
+ return this.sessionAddressProvider;
+ }
+
+ /**
+ * Set the field indicating if Microsoft provides session ip addresses. Possible values include: 'Microsoft', 'Peer'.
+ *
+ * @param sessionAddressProvider the sessionAddressProvider value to set
+ * @return the DirectConnection object itself.
+ */
+ public DirectConnection withSessionAddressProvider(SessionAddressProvider sessionAddressProvider) {
+ this.sessionAddressProvider = sessionAddressProvider;
+ return this;
+ }
+
+ /**
+ * Get the flag that indicates whether or not the connection is used for peering service.
+ *
+ * @return the useForPeeringService value
+ */
+ public Boolean useForPeeringService() {
+ return this.useForPeeringService;
+ }
+
+ /**
+ * Set the flag that indicates whether or not the connection is used for peering service.
+ *
+ * @param useForPeeringService the useForPeeringService value to set
+ * @return the DirectConnection object itself.
+ */
+ public DirectConnection withUseForPeeringService(Boolean useForPeeringService) {
+ this.useForPeeringService = useForPeeringService;
+ return this;
+ }
+
+ /**
+ * Get the PeeringDB.com ID of the facility at which the connection has to be set up.
+ *
+ * @return the peeringDBFacilityId value
+ */
+ public Integer peeringDBFacilityId() {
+ return this.peeringDBFacilityId;
+ }
+
+ /**
+ * Set the PeeringDB.com ID of the facility at which the connection has to be set up.
+ *
+ * @param peeringDBFacilityId the peeringDBFacilityId value to set
+ * @return the DirectConnection object itself.
+ */
+ public DirectConnection withPeeringDBFacilityId(Integer peeringDBFacilityId) {
+ this.peeringDBFacilityId = peeringDBFacilityId;
+ return this;
+ }
+
+ /**
+ * Get the state of the connection. Possible values include: 'None', 'PendingApproval', 'Approved', 'ProvisioningStarted', 'ProvisioningFailed', 'ProvisioningCompleted', 'Validating', 'Active'.
+ *
+ * @return the connectionState value
+ */
+ public ConnectionState connectionState() {
+ return this.connectionState;
+ }
+
+ /**
+ * Get the BGP session associated with the connection.
+ *
+ * @return the bgpSession value
+ */
+ public BgpSession bgpSession() {
+ return this.bgpSession;
+ }
+
+ /**
+ * Set the BGP session associated with the connection.
+ *
+ * @param bgpSession the bgpSession value to set
+ * @return the DirectConnection object itself.
+ */
+ public DirectConnection withBgpSession(BgpSession bgpSession) {
+ this.bgpSession = bgpSession;
+ return this;
+ }
+
+ /**
+ * Get the unique identifier (GUID) for the connection.
+ *
+ * @return the connectionIdentifier value
+ */
+ public String connectionIdentifier() {
+ return this.connectionIdentifier;
+ }
+
+ /**
+ * Set the unique identifier (GUID) for the connection.
+ *
+ * @param connectionIdentifier the connectionIdentifier value to set
+ * @return the DirectConnection object itself.
+ */
+ public DirectConnection withConnectionIdentifier(String connectionIdentifier) {
+ this.connectionIdentifier = connectionIdentifier;
+ return this;
+ }
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/DirectPeeringFacility.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/DirectPeeringFacility.java
new file mode 100644
index 000000000000..4e299b365144
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/DirectPeeringFacility.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.peering.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties that define a direct peering facility.
+ */
+public class DirectPeeringFacility {
+ /**
+ * The address of the direct peering facility.
+ */
+ @JsonProperty(value = "address")
+ private String address;
+
+ /**
+ * The type of the direct peering. Possible values include: 'Edge',
+ * 'Transit', 'Cdn', 'Internal'.
+ */
+ @JsonProperty(value = "directPeeringType")
+ private DirectPeeringType directPeeringType;
+
+ /**
+ * The PeeringDB.com ID of the facility.
+ */
+ @JsonProperty(value = "peeringDBFacilityId")
+ private Integer peeringDBFacilityId;
+
+ /**
+ * The PeeringDB.com URL of the facility.
+ */
+ @JsonProperty(value = "peeringDBFacilityLink")
+ private String peeringDBFacilityLink;
+
+ /**
+ * Get the address of the direct peering facility.
+ *
+ * @return the address value
+ */
+ public String address() {
+ return this.address;
+ }
+
+ /**
+ * Set the address of the direct peering facility.
+ *
+ * @param address the address value to set
+ * @return the DirectPeeringFacility object itself.
+ */
+ public DirectPeeringFacility withAddress(String address) {
+ this.address = address;
+ return this;
+ }
+
+ /**
+ * Get the type of the direct peering. Possible values include: 'Edge', 'Transit', 'Cdn', 'Internal'.
+ *
+ * @return the directPeeringType value
+ */
+ public DirectPeeringType directPeeringType() {
+ return this.directPeeringType;
+ }
+
+ /**
+ * Set the type of the direct peering. Possible values include: 'Edge', 'Transit', 'Cdn', 'Internal'.
+ *
+ * @param directPeeringType the directPeeringType value to set
+ * @return the DirectPeeringFacility object itself.
+ */
+ public DirectPeeringFacility withDirectPeeringType(DirectPeeringType directPeeringType) {
+ this.directPeeringType = directPeeringType;
+ return this;
+ }
+
+ /**
+ * Get the PeeringDB.com ID of the facility.
+ *
+ * @return the peeringDBFacilityId value
+ */
+ public Integer peeringDBFacilityId() {
+ return this.peeringDBFacilityId;
+ }
+
+ /**
+ * Set the PeeringDB.com ID of the facility.
+ *
+ * @param peeringDBFacilityId the peeringDBFacilityId value to set
+ * @return the DirectPeeringFacility object itself.
+ */
+ public DirectPeeringFacility withPeeringDBFacilityId(Integer peeringDBFacilityId) {
+ this.peeringDBFacilityId = peeringDBFacilityId;
+ return this;
+ }
+
+ /**
+ * Get the PeeringDB.com URL of the facility.
+ *
+ * @return the peeringDBFacilityLink value
+ */
+ public String peeringDBFacilityLink() {
+ return this.peeringDBFacilityLink;
+ }
+
+ /**
+ * Set the PeeringDB.com URL of the facility.
+ *
+ * @param peeringDBFacilityLink the peeringDBFacilityLink value to set
+ * @return the DirectPeeringFacility object itself.
+ */
+ public DirectPeeringFacility withPeeringDBFacilityLink(String peeringDBFacilityLink) {
+ this.peeringDBFacilityLink = peeringDBFacilityLink;
+ return this;
+ }
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/DirectPeeringType.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/DirectPeeringType.java
new file mode 100644
index 000000000000..23f6189fbfde
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/DirectPeeringType.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for DirectPeeringType.
+ */
+public final class DirectPeeringType extends ExpandableStringEnum {
+ /** Static value Edge for DirectPeeringType. */
+ public static final DirectPeeringType EDGE = fromString("Edge");
+
+ /** Static value Transit for DirectPeeringType. */
+ public static final DirectPeeringType TRANSIT = fromString("Transit");
+
+ /** Static value Cdn for DirectPeeringType. */
+ public static final DirectPeeringType CDN = fromString("Cdn");
+
+ /** Static value Internal for DirectPeeringType. */
+ public static final DirectPeeringType INTERNAL = fromString("Internal");
+
+ /**
+ * Creates or finds a DirectPeeringType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding DirectPeeringType
+ */
+ @JsonCreator
+ public static DirectPeeringType fromString(String name) {
+ return fromString(name, DirectPeeringType.class);
+ }
+
+ /**
+ * @return known DirectPeeringType values
+ */
+ public static Collection values() {
+ return values(DirectPeeringType.class);
+ }
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ErrorResponse.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ErrorResponse.java
new file mode 100644
index 000000000000..663eb475e68c
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ErrorResponse.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The error response that indicates why an operation has failed.
+ */
+public class ErrorResponse {
+ /**
+ * The error code.
+ */
+ @JsonProperty(value = "code", access = JsonProperty.Access.WRITE_ONLY)
+ private String code;
+
+ /**
+ * The error message.
+ */
+ @JsonProperty(value = "message", access = JsonProperty.Access.WRITE_ONLY)
+ private String message;
+
+ /**
+ * Get the error code.
+ *
+ * @return the code value
+ */
+ public String code() {
+ return this.code;
+ }
+
+ /**
+ * Get the error message.
+ *
+ * @return the message value
+ */
+ public String message() {
+ return this.message;
+ }
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ErrorResponseException.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ErrorResponseException.java
new file mode 100644
index 000000000000..bb5107f9a476
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ErrorResponseException.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.peering.v2019_08_01_preview;
+
+import com.microsoft.rest.RestException;
+import okhttp3.ResponseBody;
+import retrofit2.Response;
+
+/**
+ * Exception thrown for an invalid response with ErrorResponse information.
+ */
+public class ErrorResponseException extends RestException {
+ /**
+ * Initializes a new instance of the ErrorResponseException class.
+ *
+ * @param message the exception message or the response content if a message is not available
+ * @param response the HTTP response
+ */
+ public ErrorResponseException(final String message, final Response response) {
+ super(message, response);
+ }
+
+ /**
+ * Initializes a new instance of the ErrorResponseException class.
+ *
+ * @param message the exception message or the response content if a message is not available
+ * @param response the HTTP response
+ * @param body the deserialized response body
+ */
+ public ErrorResponseException(final String message, final Response response, final ErrorResponse body) {
+ super(message, response, body);
+ }
+
+ @Override
+ public ErrorResponse body() {
+ return (ErrorResponse) super.body();
+ }
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ExchangeConnection.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ExchangeConnection.java
new file mode 100644
index 000000000000..f1e084ae458f
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ExchangeConnection.java
@@ -0,0 +1,113 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties that define an exchange connection.
+ */
+public class ExchangeConnection {
+ /**
+ * The PeeringDB.com ID of the facility at which the connection has to be
+ * set up.
+ */
+ @JsonProperty(value = "peeringDBFacilityId")
+ private Integer peeringDBFacilityId;
+
+ /**
+ * The state of the connection. Possible values include: 'None',
+ * 'PendingApproval', 'Approved', 'ProvisioningStarted',
+ * 'ProvisioningFailed', 'ProvisioningCompleted', 'Validating', 'Active'.
+ */
+ @JsonProperty(value = "connectionState", access = JsonProperty.Access.WRITE_ONLY)
+ private ConnectionState connectionState;
+
+ /**
+ * The BGP session associated with the connection.
+ */
+ @JsonProperty(value = "bgpSession")
+ private BgpSession bgpSession;
+
+ /**
+ * The unique identifier (GUID) for the connection.
+ */
+ @JsonProperty(value = "connectionIdentifier")
+ private String connectionIdentifier;
+
+ /**
+ * Get the PeeringDB.com ID of the facility at which the connection has to be set up.
+ *
+ * @return the peeringDBFacilityId value
+ */
+ public Integer peeringDBFacilityId() {
+ return this.peeringDBFacilityId;
+ }
+
+ /**
+ * Set the PeeringDB.com ID of the facility at which the connection has to be set up.
+ *
+ * @param peeringDBFacilityId the peeringDBFacilityId value to set
+ * @return the ExchangeConnection object itself.
+ */
+ public ExchangeConnection withPeeringDBFacilityId(Integer peeringDBFacilityId) {
+ this.peeringDBFacilityId = peeringDBFacilityId;
+ return this;
+ }
+
+ /**
+ * Get the state of the connection. Possible values include: 'None', 'PendingApproval', 'Approved', 'ProvisioningStarted', 'ProvisioningFailed', 'ProvisioningCompleted', 'Validating', 'Active'.
+ *
+ * @return the connectionState value
+ */
+ public ConnectionState connectionState() {
+ return this.connectionState;
+ }
+
+ /**
+ * Get the BGP session associated with the connection.
+ *
+ * @return the bgpSession value
+ */
+ public BgpSession bgpSession() {
+ return this.bgpSession;
+ }
+
+ /**
+ * Set the BGP session associated with the connection.
+ *
+ * @param bgpSession the bgpSession value to set
+ * @return the ExchangeConnection object itself.
+ */
+ public ExchangeConnection withBgpSession(BgpSession bgpSession) {
+ this.bgpSession = bgpSession;
+ return this;
+ }
+
+ /**
+ * Get the unique identifier (GUID) for the connection.
+ *
+ * @return the connectionIdentifier value
+ */
+ public String connectionIdentifier() {
+ return this.connectionIdentifier;
+ }
+
+ /**
+ * Set the unique identifier (GUID) for the connection.
+ *
+ * @param connectionIdentifier the connectionIdentifier value to set
+ * @return the ExchangeConnection object itself.
+ */
+ public ExchangeConnection withConnectionIdentifier(String connectionIdentifier) {
+ this.connectionIdentifier = connectionIdentifier;
+ return this;
+ }
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ExchangePeeringFacility.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ExchangePeeringFacility.java
new file mode 100644
index 000000000000..d69272c3d004
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ExchangePeeringFacility.java
@@ -0,0 +1,226 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties that define an exchange peering facility.
+ */
+public class ExchangePeeringFacility {
+ /**
+ * The name of the exchange peering facility.
+ */
+ @JsonProperty(value = "exchangeName")
+ private String exchangeName;
+
+ /**
+ * The bandwidth of the connection between Microsoft and the exchange
+ * peering facility.
+ */
+ @JsonProperty(value = "bandwidthInMbps")
+ private Integer bandwidthInMbps;
+
+ /**
+ * The IPv4 address of Microsoft at the exchange peering facility.
+ */
+ @JsonProperty(value = "microsoftIPv4Address")
+ private String microsoftIPv4Address;
+
+ /**
+ * The IPv6 address of Microsoft at the exchange peering facility.
+ */
+ @JsonProperty(value = "microsoftIPv6Address")
+ private String microsoftIPv6Address;
+
+ /**
+ * The IPv4 prefixes associated with the exchange peering facility.
+ */
+ @JsonProperty(value = "facilityIPv4Prefix")
+ private String facilityIPv4Prefix;
+
+ /**
+ * The IPv6 prefixes associated with the exchange peering facility.
+ */
+ @JsonProperty(value = "facilityIPv6Prefix")
+ private String facilityIPv6Prefix;
+
+ /**
+ * The PeeringDB.com ID of the facility.
+ */
+ @JsonProperty(value = "peeringDBFacilityId")
+ private Integer peeringDBFacilityId;
+
+ /**
+ * The PeeringDB.com URL of the facility.
+ */
+ @JsonProperty(value = "peeringDBFacilityLink")
+ private String peeringDBFacilityLink;
+
+ /**
+ * Get the name of the exchange peering facility.
+ *
+ * @return the exchangeName value
+ */
+ public String exchangeName() {
+ return this.exchangeName;
+ }
+
+ /**
+ * Set the name of the exchange peering facility.
+ *
+ * @param exchangeName the exchangeName value to set
+ * @return the ExchangePeeringFacility object itself.
+ */
+ public ExchangePeeringFacility withExchangeName(String exchangeName) {
+ this.exchangeName = exchangeName;
+ return this;
+ }
+
+ /**
+ * Get the bandwidth of the connection between Microsoft and the exchange peering facility.
+ *
+ * @return the bandwidthInMbps value
+ */
+ public Integer bandwidthInMbps() {
+ return this.bandwidthInMbps;
+ }
+
+ /**
+ * Set the bandwidth of the connection between Microsoft and the exchange peering facility.
+ *
+ * @param bandwidthInMbps the bandwidthInMbps value to set
+ * @return the ExchangePeeringFacility object itself.
+ */
+ public ExchangePeeringFacility withBandwidthInMbps(Integer bandwidthInMbps) {
+ this.bandwidthInMbps = bandwidthInMbps;
+ return this;
+ }
+
+ /**
+ * Get the IPv4 address of Microsoft at the exchange peering facility.
+ *
+ * @return the microsoftIPv4Address value
+ */
+ public String microsoftIPv4Address() {
+ return this.microsoftIPv4Address;
+ }
+
+ /**
+ * Set the IPv4 address of Microsoft at the exchange peering facility.
+ *
+ * @param microsoftIPv4Address the microsoftIPv4Address value to set
+ * @return the ExchangePeeringFacility object itself.
+ */
+ public ExchangePeeringFacility withMicrosoftIPv4Address(String microsoftIPv4Address) {
+ this.microsoftIPv4Address = microsoftIPv4Address;
+ return this;
+ }
+
+ /**
+ * Get the IPv6 address of Microsoft at the exchange peering facility.
+ *
+ * @return the microsoftIPv6Address value
+ */
+ public String microsoftIPv6Address() {
+ return this.microsoftIPv6Address;
+ }
+
+ /**
+ * Set the IPv6 address of Microsoft at the exchange peering facility.
+ *
+ * @param microsoftIPv6Address the microsoftIPv6Address value to set
+ * @return the ExchangePeeringFacility object itself.
+ */
+ public ExchangePeeringFacility withMicrosoftIPv6Address(String microsoftIPv6Address) {
+ this.microsoftIPv6Address = microsoftIPv6Address;
+ return this;
+ }
+
+ /**
+ * Get the IPv4 prefixes associated with the exchange peering facility.
+ *
+ * @return the facilityIPv4Prefix value
+ */
+ public String facilityIPv4Prefix() {
+ return this.facilityIPv4Prefix;
+ }
+
+ /**
+ * Set the IPv4 prefixes associated with the exchange peering facility.
+ *
+ * @param facilityIPv4Prefix the facilityIPv4Prefix value to set
+ * @return the ExchangePeeringFacility object itself.
+ */
+ public ExchangePeeringFacility withFacilityIPv4Prefix(String facilityIPv4Prefix) {
+ this.facilityIPv4Prefix = facilityIPv4Prefix;
+ return this;
+ }
+
+ /**
+ * Get the IPv6 prefixes associated with the exchange peering facility.
+ *
+ * @return the facilityIPv6Prefix value
+ */
+ public String facilityIPv6Prefix() {
+ return this.facilityIPv6Prefix;
+ }
+
+ /**
+ * Set the IPv6 prefixes associated with the exchange peering facility.
+ *
+ * @param facilityIPv6Prefix the facilityIPv6Prefix value to set
+ * @return the ExchangePeeringFacility object itself.
+ */
+ public ExchangePeeringFacility withFacilityIPv6Prefix(String facilityIPv6Prefix) {
+ this.facilityIPv6Prefix = facilityIPv6Prefix;
+ return this;
+ }
+
+ /**
+ * Get the PeeringDB.com ID of the facility.
+ *
+ * @return the peeringDBFacilityId value
+ */
+ public Integer peeringDBFacilityId() {
+ return this.peeringDBFacilityId;
+ }
+
+ /**
+ * Set the PeeringDB.com ID of the facility.
+ *
+ * @param peeringDBFacilityId the peeringDBFacilityId value to set
+ * @return the ExchangePeeringFacility object itself.
+ */
+ public ExchangePeeringFacility withPeeringDBFacilityId(Integer peeringDBFacilityId) {
+ this.peeringDBFacilityId = peeringDBFacilityId;
+ return this;
+ }
+
+ /**
+ * Get the PeeringDB.com URL of the facility.
+ *
+ * @return the peeringDBFacilityLink value
+ */
+ public String peeringDBFacilityLink() {
+ return this.peeringDBFacilityLink;
+ }
+
+ /**
+ * Set the PeeringDB.com URL of the facility.
+ *
+ * @param peeringDBFacilityLink the peeringDBFacilityLink value to set
+ * @return the ExchangePeeringFacility object itself.
+ */
+ public ExchangePeeringFacility withPeeringDBFacilityLink(String peeringDBFacilityLink) {
+ this.peeringDBFacilityLink = peeringDBFacilityLink;
+ return this;
+ }
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Family.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Family.java
new file mode 100644
index 000000000000..624396fd9147
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Family.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.peering.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for Family.
+ */
+public final class Family extends ExpandableStringEnum {
+ /** Static value Direct for Family. */
+ public static final Family DIRECT = fromString("Direct");
+
+ /** Static value Exchange for Family. */
+ public static final Family EXCHANGE = fromString("Exchange");
+
+ /**
+ * Creates or finds a Family from its string representation.
+ * @param name a name to look for
+ * @return the corresponding Family
+ */
+ @JsonCreator
+ public static Family fromString(String name) {
+ return fromString(name, Family.class);
+ }
+
+ /**
+ * @return known Family values
+ */
+ public static Collection values() {
+ return values(Family.class);
+ }
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Kind.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Kind.java
new file mode 100644
index 000000000000..b406015900fc
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Kind.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.peering.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for Kind.
+ */
+public final class Kind extends ExpandableStringEnum {
+ /** Static value Direct for Kind. */
+ public static final Kind DIRECT = fromString("Direct");
+
+ /** Static value Exchange for Kind. */
+ public static final Kind EXCHANGE = fromString("Exchange");
+
+ /**
+ * Creates or finds a Kind from its string representation.
+ * @param name a name to look for
+ * @return the corresponding Kind
+ */
+ @JsonCreator
+ public static Kind fromString(String name) {
+ return fromString(name, Kind.class);
+ }
+
+ /**
+ * @return known Kind values
+ */
+ public static Collection values() {
+ return values(Kind.class);
+ }
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/LearnedType.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/LearnedType.java
new file mode 100644
index 000000000000..7fabfe8d02df
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/LearnedType.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.peering.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for LearnedType.
+ */
+public final class LearnedType extends ExpandableStringEnum {
+ /** Static value None for LearnedType. */
+ public static final LearnedType NONE = fromString("None");
+
+ /** Static value ViaPartner for LearnedType. */
+ public static final LearnedType VIA_PARTNER = fromString("ViaPartner");
+
+ /** Static value ViaSession for LearnedType. */
+ public static final LearnedType VIA_SESSION = fromString("ViaSession");
+
+ /**
+ * Creates or finds a LearnedType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding LearnedType
+ */
+ @JsonCreator
+ public static LearnedType fromString(String name) {
+ return fromString(name, LearnedType.class);
+ }
+
+ /**
+ * @return known LearnedType values
+ */
+ public static Collection values() {
+ return values(LearnedType.class);
+ }
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/LegacyPeerings.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/LegacyPeerings.java
new file mode 100644
index 000000000000..184784ec6753
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/LegacyPeerings.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.LegacyPeeringsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing LegacyPeerings.
+ */
+public interface LegacyPeerings extends HasInner {
+ /**
+ * Lists all of the legacy peerings under the given subscription matching the specified kind and location.
+ *
+ * @param peeringLocation The location of the peering.
+ * @param kind The kind of the peering. Possible values include: 'Direct', 'Exchange'
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String peeringLocation, final String kind);
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Name.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Name.java
new file mode 100644
index 000000000000..134038c430f4
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Name.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for Name.
+ */
+public final class Name extends ExpandableStringEnum {
+ /** Static value Basic_Exchange_Free for Name. */
+ public static final Name BASIC_EXCHANGE_FREE = fromString("Basic_Exchange_Free");
+
+ /** Static value Basic_Direct_Free for Name. */
+ public static final Name BASIC_DIRECT_FREE = fromString("Basic_Direct_Free");
+
+ /** Static value Premium_Direct_Free for Name. */
+ public static final Name PREMIUM_DIRECT_FREE = fromString("Premium_Direct_Free");
+
+ /** Static value Premium_Exchange_Metered for Name. */
+ public static final Name PREMIUM_EXCHANGE_METERED = fromString("Premium_Exchange_Metered");
+
+ /** Static value Premium_Direct_Metered for Name. */
+ public static final Name PREMIUM_DIRECT_METERED = fromString("Premium_Direct_Metered");
+
+ /** Static value Premium_Direct_Unlimited for Name. */
+ public static final Name PREMIUM_DIRECT_UNLIMITED = fromString("Premium_Direct_Unlimited");
+
+ /**
+ * Creates or finds a Name from its string representation.
+ * @param name a name to look for
+ * @return the corresponding Name
+ */
+ @JsonCreator
+ public static Name fromString(String name) {
+ return fromString(name, Name.class);
+ }
+
+ /**
+ * @return known Name values
+ */
+ public static Collection values() {
+ return values(Name.class);
+ }
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Operation.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Operation.java
new file mode 100644
index 000000000000..f89037874e55
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Operation.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.peering.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.PeeringManager;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.OperationInner;
+
+/**
+ * Type representing Operation.
+ */
+public interface Operation extends HasInner, HasManager {
+ /**
+ * @return the display value.
+ */
+ OperationDisplayInfo display();
+
+ /**
+ * @return the isDataAction value.
+ */
+ Boolean isDataAction();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/OperationDisplayInfo.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/OperationDisplayInfo.java
new file mode 100644
index 000000000000..88378512eb25
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/OperationDisplayInfo.java
@@ -0,0 +1,77 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The information related to the operation.
+ */
+public class OperationDisplayInfo {
+ /**
+ * The name of the resource provider.
+ */
+ @JsonProperty(value = "provider", access = JsonProperty.Access.WRITE_ONLY)
+ private String provider;
+
+ /**
+ * The type of the resource.
+ */
+ @JsonProperty(value = "resource", access = JsonProperty.Access.WRITE_ONLY)
+ private String resource;
+
+ /**
+ * The name of the operation.
+ */
+ @JsonProperty(value = "operation", access = JsonProperty.Access.WRITE_ONLY)
+ private String operation;
+
+ /**
+ * The description of the operation.
+ */
+ @JsonProperty(value = "description", access = JsonProperty.Access.WRITE_ONLY)
+ private String description;
+
+ /**
+ * Get the name of the resource provider.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Get the type of the resource.
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Get the name of the operation.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+ /**
+ * Get the description of the operation.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Operations.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Operations.java
new file mode 100644
index 000000000000..b574f1192c35
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Operations.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.OperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Operations.
+ */
+public interface Operations extends HasInner {
+ /**
+ * Lists all of the available API operations for peering resources.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeerAsn.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeerAsn.java
new file mode 100644
index 000000000000..c4cbf69e5c54
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeerAsn.java
@@ -0,0 +1,191 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.PeerAsnInner;
+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.model.Refreshable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.PeeringManager;
+
+/**
+ * Type representing PeerAsn.
+ */
+public interface PeerAsn extends HasInner, Indexable, Updatable, Refreshable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the peerAsn value.
+ */
+ Integer peerAsn();
+
+ /**
+ * @return the peerContactInfo value.
+ */
+ ContactInfo peerContactInfo();
+
+ /**
+ * @return the peerName value.
+ */
+ String peerName();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * @return the validationState value.
+ */
+ ValidationState validationState();
+
+ /**
+ * The entirety of the PeerAsn definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of PeerAsn definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a PeerAsn definition.
+ */
+ interface Blank extends WithCreate {
+ }
+
+ /**
+ * The stage of the peerasn definition allowing to specify PeerAsn.
+ */
+ interface WithPeerAsn {
+ /**
+ * Specifies peerAsn.
+ * @param peerAsn The Autonomous System Number (ASN) of the peer
+ * @return the next definition stage
+ */
+ WithCreate withPeerAsn(Integer peerAsn);
+ }
+
+ /**
+ * The stage of the peerasn definition allowing to specify PeerContactInfo.
+ */
+ interface WithPeerContactInfo {
+ /**
+ * Specifies peerContactInfo.
+ * @param peerContactInfo The contact information of the peer
+ * @return the next definition stage
+ */
+ WithCreate withPeerContactInfo(ContactInfo peerContactInfo);
+ }
+
+ /**
+ * The stage of the peerasn definition allowing to specify PeerName.
+ */
+ interface WithPeerName {
+ /**
+ * Specifies peerName.
+ * @param peerName The name of the peer
+ * @return the next definition stage
+ */
+ WithCreate withPeerName(String peerName);
+ }
+
+ /**
+ * The stage of the peerasn definition allowing to specify ValidationState.
+ */
+ interface WithValidationState {
+ /**
+ * Specifies validationState.
+ * @param validationState The validation state of the ASN associated with the peer. Possible values include: 'None', 'Pending', 'Approved', 'Failed'
+ * @return the next definition stage
+ */
+ WithCreate withValidationState(ValidationState validationState);
+ }
+
+ /**
+ * 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.WithPeerAsn, DefinitionStages.WithPeerContactInfo, DefinitionStages.WithPeerName, DefinitionStages.WithValidationState {
+ }
+ }
+ /**
+ * The template for a PeerAsn update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithPeerAsn, UpdateStages.WithPeerContactInfo, UpdateStages.WithPeerName, UpdateStages.WithValidationState {
+ }
+
+ /**
+ * Grouping of PeerAsn update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the peerasn update allowing to specify PeerAsn.
+ */
+ interface WithPeerAsn {
+ /**
+ * Specifies peerAsn.
+ * @param peerAsn The Autonomous System Number (ASN) of the peer
+ * @return the next update stage
+ */
+ Update withPeerAsn(Integer peerAsn);
+ }
+
+ /**
+ * The stage of the peerasn update allowing to specify PeerContactInfo.
+ */
+ interface WithPeerContactInfo {
+ /**
+ * Specifies peerContactInfo.
+ * @param peerContactInfo The contact information of the peer
+ * @return the next update stage
+ */
+ Update withPeerContactInfo(ContactInfo peerContactInfo);
+ }
+
+ /**
+ * The stage of the peerasn update allowing to specify PeerName.
+ */
+ interface WithPeerName {
+ /**
+ * Specifies peerName.
+ * @param peerName The name of the peer
+ * @return the next update stage
+ */
+ Update withPeerName(String peerName);
+ }
+
+ /**
+ * The stage of the peerasn update allowing to specify ValidationState.
+ */
+ interface WithValidationState {
+ /**
+ * Specifies validationState.
+ * @param validationState The validation state of the ASN associated with the peer. Possible values include: 'None', 'Pending', 'Approved', 'Failed'
+ * @return the next update stage
+ */
+ Update withValidationState(ValidationState validationState);
+ }
+
+ }
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeerAsns.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeerAsns.java
new file mode 100644
index 000000000000..0997d587052e
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeerAsns.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.peering.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import com.microsoft.azure.arm.collection.SupportsListing;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.PeerAsnsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing PeerAsns.
+ */
+public interface PeerAsns extends SupportsCreating, SupportsListing, HasInner {
+ /**
+ * Gets the peer ASN with the specified name under the given subscription.
+ *
+ * @param peerAsnName The peer ASN name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String peerAsnName);
+
+ /**
+ * Deletes an existing peer ASN with the specified name under the given subscription.
+ *
+ * @param peerAsnName The peer ASN name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String peerAsnName);
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Peering.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Peering.java
new file mode 100644
index 000000000000..af0985f7561e
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Peering.java
@@ -0,0 +1,194 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.Resource;
+import com.microsoft.azure.arm.resources.models.GroupableResourceCore;
+import com.microsoft.azure.arm.resources.models.HasResourceGroup;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.PeeringManager;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.PeeringInner;
+
+/**
+ * Type representing Peering.
+ */
+public interface Peering extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the direct value.
+ */
+ PeeringPropertiesDirect direct();
+
+ /**
+ * @return the exchange value.
+ */
+ PeeringPropertiesExchange exchange();
+
+ /**
+ * @return the kind value.
+ */
+ Kind kind();
+
+ /**
+ * @return the peeringLocation value.
+ */
+ String peeringLocation();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ProvisioningState provisioningState();
+
+ /**
+ * @return the sku value.
+ */
+ PeeringSku sku();
+
+ /**
+ * The entirety of the Peering definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithKind, DefinitionStages.WithSku, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of Peering definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a Peering definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the Peering definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the peering definition allowing to specify Kind.
+ */
+ interface WithKind {
+ /**
+ * Specifies kind.
+ * @param kind The kind of the peering. Possible values include: 'Direct', 'Exchange'
+ * @return the next definition stage
+*/
+ WithSku withKind(Kind kind);
+ }
+
+ /**
+ * The stage of the peering definition allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ * @param sku The SKU that defines the tier and kind of the peering
+ * @return the next definition stage
+*/
+ WithCreate withSku(PeeringSku sku);
+ }
+
+ /**
+ * The stage of the peering definition allowing to specify Direct.
+ */
+ interface WithDirect {
+ /**
+ * Specifies direct.
+ * @param direct The properties that define a direct peering
+ * @return the next definition stage
+ */
+ WithCreate withDirect(PeeringPropertiesDirect direct);
+ }
+
+ /**
+ * The stage of the peering definition allowing to specify Exchange.
+ */
+ interface WithExchange {
+ /**
+ * Specifies exchange.
+ * @param exchange The properties that define an exchange peering
+ * @return the next definition stage
+ */
+ WithCreate withExchange(PeeringPropertiesExchange exchange);
+ }
+
+ /**
+ * The stage of the peering definition allowing to specify PeeringLocation.
+ */
+ interface WithPeeringLocation {
+ /**
+ * Specifies peeringLocation.
+ * @param peeringLocation The location of the peering
+ * @return the next definition stage
+ */
+ WithCreate withPeeringLocation(String peeringLocation);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, Resource.DefinitionWithTags, DefinitionStages.WithDirect, DefinitionStages.WithExchange, DefinitionStages.WithPeeringLocation {
+ }
+ }
+ /**
+ * The template for a Peering update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithDirect, UpdateStages.WithExchange, UpdateStages.WithPeeringLocation {
+ }
+
+ /**
+ * Grouping of Peering update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the peering update allowing to specify Direct.
+ */
+ interface WithDirect {
+ /**
+ * Specifies direct.
+ * @param direct The properties that define a direct peering
+ * @return the next update stage
+ */
+ Update withDirect(PeeringPropertiesDirect direct);
+ }
+
+ /**
+ * The stage of the peering update allowing to specify Exchange.
+ */
+ interface WithExchange {
+ /**
+ * Specifies exchange.
+ * @param exchange The properties that define an exchange peering
+ * @return the next update stage
+ */
+ Update withExchange(PeeringPropertiesExchange exchange);
+ }
+
+ /**
+ * The stage of the peering update allowing to specify PeeringLocation.
+ */
+ interface WithPeeringLocation {
+ /**
+ * Specifies peeringLocation.
+ * @param peeringLocation The location of the peering
+ * @return the next update stage
+ */
+ Update withPeeringLocation(String peeringLocation);
+ }
+
+ }
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringBandwidthOffer.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringBandwidthOffer.java
new file mode 100644
index 000000000000..1c259d756713
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringBandwidthOffer.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.peering.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties that define a peering bandwidth offer.
+ */
+public class PeeringBandwidthOffer {
+ /**
+ * The name of the bandwidth offer.
+ */
+ @JsonProperty(value = "offerName")
+ private String offerName;
+
+ /**
+ * The value of the bandwidth offer in Mbps.
+ */
+ @JsonProperty(value = "valueInMbps")
+ private Integer valueInMbps;
+
+ /**
+ * Get the name of the bandwidth offer.
+ *
+ * @return the offerName value
+ */
+ public String offerName() {
+ return this.offerName;
+ }
+
+ /**
+ * Set the name of the bandwidth offer.
+ *
+ * @param offerName the offerName value to set
+ * @return the PeeringBandwidthOffer object itself.
+ */
+ public PeeringBandwidthOffer withOfferName(String offerName) {
+ this.offerName = offerName;
+ return this;
+ }
+
+ /**
+ * Get the value of the bandwidth offer in Mbps.
+ *
+ * @return the valueInMbps value
+ */
+ public Integer valueInMbps() {
+ return this.valueInMbps;
+ }
+
+ /**
+ * Set the value of the bandwidth offer in Mbps.
+ *
+ * @param valueInMbps the valueInMbps value to set
+ * @return the PeeringBandwidthOffer object itself.
+ */
+ public PeeringBandwidthOffer withValueInMbps(Integer valueInMbps) {
+ this.valueInMbps = valueInMbps;
+ return this;
+ }
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringLocation.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringLocation.java
new file mode 100644
index 000000000000..b83b4e47c81b
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringLocation.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.peering.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.PeeringManager;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.PeeringLocationInner;
+
+/**
+ * Type representing PeeringLocation.
+ */
+public interface PeeringLocation extends HasInner, HasManager {
+ /**
+ * @return the azureRegion value.
+ */
+ String azureRegion();
+
+ /**
+ * @return the country value.
+ */
+ String country();
+
+ /**
+ * @return the direct value.
+ */
+ PeeringLocationPropertiesDirect direct();
+
+ /**
+ * @return the exchange value.
+ */
+ PeeringLocationPropertiesExchange exchange();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the kind value.
+ */
+ Kind kind();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the peeringLocation value.
+ */
+ String peeringLocation();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringLocationPropertiesDirect.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringLocationPropertiesDirect.java
new file mode 100644
index 000000000000..dd5e44943a9b
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringLocationPropertiesDirect.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.peering.v2019_08_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties that define a direct peering location.
+ */
+public class PeeringLocationPropertiesDirect {
+ /**
+ * The list of direct peering facilities at the peering location.
+ */
+ @JsonProperty(value = "peeringFacilities")
+ private List peeringFacilities;
+
+ /**
+ * The list of bandwidth offers available at the peering location.
+ */
+ @JsonProperty(value = "bandwidthOffers")
+ private List bandwidthOffers;
+
+ /**
+ * Get the list of direct peering facilities at the peering location.
+ *
+ * @return the peeringFacilities value
+ */
+ public List peeringFacilities() {
+ return this.peeringFacilities;
+ }
+
+ /**
+ * Set the list of direct peering facilities at the peering location.
+ *
+ * @param peeringFacilities the peeringFacilities value to set
+ * @return the PeeringLocationPropertiesDirect object itself.
+ */
+ public PeeringLocationPropertiesDirect withPeeringFacilities(List peeringFacilities) {
+ this.peeringFacilities = peeringFacilities;
+ return this;
+ }
+
+ /**
+ * Get the list of bandwidth offers available at the peering location.
+ *
+ * @return the bandwidthOffers value
+ */
+ public List bandwidthOffers() {
+ return this.bandwidthOffers;
+ }
+
+ /**
+ * Set the list of bandwidth offers available at the peering location.
+ *
+ * @param bandwidthOffers the bandwidthOffers value to set
+ * @return the PeeringLocationPropertiesDirect object itself.
+ */
+ public PeeringLocationPropertiesDirect withBandwidthOffers(List bandwidthOffers) {
+ this.bandwidthOffers = bandwidthOffers;
+ return this;
+ }
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringLocationPropertiesExchange.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringLocationPropertiesExchange.java
new file mode 100644
index 000000000000..e0d0746cc261
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringLocationPropertiesExchange.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.peering.v2019_08_01_preview;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties that define an exchange peering location.
+ */
+public class PeeringLocationPropertiesExchange {
+ /**
+ * The list of exchange peering facilities at the peering location.
+ */
+ @JsonProperty(value = "peeringFacilities")
+ private List peeringFacilities;
+
+ /**
+ * Get the list of exchange peering facilities at the peering location.
+ *
+ * @return the peeringFacilities value
+ */
+ public List peeringFacilities() {
+ return this.peeringFacilities;
+ }
+
+ /**
+ * Set the list of exchange peering facilities at the peering location.
+ *
+ * @param peeringFacilities the peeringFacilities value to set
+ * @return the PeeringLocationPropertiesExchange object itself.
+ */
+ public PeeringLocationPropertiesExchange withPeeringFacilities(List peeringFacilities) {
+ this.peeringFacilities = peeringFacilities;
+ return this;
+ }
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringLocations.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringLocations.java
new file mode 100644
index 000000000000..b93c411cfe23
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringLocations.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.PeeringLocationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing PeeringLocations.
+ */
+public interface PeeringLocations extends HasInner {
+ /**
+ * Lists all of the available peering locations for the specified kind of peering.
+ *
+ * @param kind The kind of the peering. Possible values include: 'Direct', 'Exchange'
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String kind);
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringPropertiesDirect.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringPropertiesDirect.java
new file mode 100644
index 000000000000..a1dbe92ecec5
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringPropertiesDirect.java
@@ -0,0 +1,125 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import java.util.List;
+import com.microsoft.azure.SubResource;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties that define a direct peering.
+ */
+public class PeeringPropertiesDirect {
+ /**
+ * The set of connections that constitute a direct peering.
+ */
+ @JsonProperty(value = "connections")
+ private List connections;
+
+ /**
+ * The flag that indicates whether or not the peering is used for peering
+ * service.
+ */
+ @JsonProperty(value = "useForPeeringService")
+ private Boolean useForPeeringService;
+
+ /**
+ * The reference of the peer ASN.
+ */
+ @JsonProperty(value = "peerAsn")
+ private SubResource peerAsn;
+
+ /**
+ * The type of direct peering. Possible values include: 'Edge', 'Transit',
+ * 'Cdn', 'Internal'.
+ */
+ @JsonProperty(value = "directPeeringType")
+ private DirectPeeringType directPeeringType;
+
+ /**
+ * Get the set of connections that constitute a direct peering.
+ *
+ * @return the connections value
+ */
+ public List connections() {
+ return this.connections;
+ }
+
+ /**
+ * Set the set of connections that constitute a direct peering.
+ *
+ * @param connections the connections value to set
+ * @return the PeeringPropertiesDirect object itself.
+ */
+ public PeeringPropertiesDirect withConnections(List connections) {
+ this.connections = connections;
+ return this;
+ }
+
+ /**
+ * Get the flag that indicates whether or not the peering is used for peering service.
+ *
+ * @return the useForPeeringService value
+ */
+ public Boolean useForPeeringService() {
+ return this.useForPeeringService;
+ }
+
+ /**
+ * Set the flag that indicates whether or not the peering is used for peering service.
+ *
+ * @param useForPeeringService the useForPeeringService value to set
+ * @return the PeeringPropertiesDirect object itself.
+ */
+ public PeeringPropertiesDirect withUseForPeeringService(Boolean useForPeeringService) {
+ this.useForPeeringService = useForPeeringService;
+ return this;
+ }
+
+ /**
+ * Get the reference of the peer ASN.
+ *
+ * @return the peerAsn value
+ */
+ public SubResource peerAsn() {
+ return this.peerAsn;
+ }
+
+ /**
+ * Set the reference of the peer ASN.
+ *
+ * @param peerAsn the peerAsn value to set
+ * @return the PeeringPropertiesDirect object itself.
+ */
+ public PeeringPropertiesDirect withPeerAsn(SubResource peerAsn) {
+ this.peerAsn = peerAsn;
+ return this;
+ }
+
+ /**
+ * Get the type of direct peering. Possible values include: 'Edge', 'Transit', 'Cdn', 'Internal'.
+ *
+ * @return the directPeeringType value
+ */
+ public DirectPeeringType directPeeringType() {
+ return this.directPeeringType;
+ }
+
+ /**
+ * Set the type of direct peering. Possible values include: 'Edge', 'Transit', 'Cdn', 'Internal'.
+ *
+ * @param directPeeringType the directPeeringType value to set
+ * @return the PeeringPropertiesDirect object itself.
+ */
+ public PeeringPropertiesDirect withDirectPeeringType(DirectPeeringType directPeeringType) {
+ this.directPeeringType = directPeeringType;
+ return this;
+ }
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringPropertiesExchange.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringPropertiesExchange.java
new file mode 100644
index 000000000000..fb144496a483
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringPropertiesExchange.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.peering.v2019_08_01_preview;
+
+import java.util.List;
+import com.microsoft.azure.SubResource;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The properties that define an exchange peering.
+ */
+public class PeeringPropertiesExchange {
+ /**
+ * The set of connections that constitute an exchange peering.
+ */
+ @JsonProperty(value = "connections")
+ private List connections;
+
+ /**
+ * The reference of the peer ASN.
+ */
+ @JsonProperty(value = "peerAsn")
+ private SubResource peerAsn;
+
+ /**
+ * Get the set of connections that constitute an exchange peering.
+ *
+ * @return the connections value
+ */
+ public List connections() {
+ return this.connections;
+ }
+
+ /**
+ * Set the set of connections that constitute an exchange peering.
+ *
+ * @param connections the connections value to set
+ * @return the PeeringPropertiesExchange object itself.
+ */
+ public PeeringPropertiesExchange withConnections(List connections) {
+ this.connections = connections;
+ return this;
+ }
+
+ /**
+ * Get the reference of the peer ASN.
+ *
+ * @return the peerAsn value
+ */
+ public SubResource peerAsn() {
+ return this.peerAsn;
+ }
+
+ /**
+ * Set the reference of the peer ASN.
+ *
+ * @param peerAsn the peerAsn value to set
+ * @return the PeeringPropertiesExchange object itself.
+ */
+ public PeeringPropertiesExchange withPeerAsn(SubResource peerAsn) {
+ this.peerAsn = peerAsn;
+ return this;
+ }
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringService.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringService.java
new file mode 100644
index 000000000000..18507334a769
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringService.java
@@ -0,0 +1,131 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.Resource;
+import com.microsoft.azure.arm.resources.models.GroupableResourceCore;
+import com.microsoft.azure.arm.resources.models.HasResourceGroup;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.PeeringManager;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.PeeringServiceInner;
+
+/**
+ * Type representing PeeringService.
+ */
+public interface PeeringService extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the peeringServiceLocation value.
+ */
+ String peeringServiceLocation();
+
+ /**
+ * @return the peeringServiceProvider value.
+ */
+ String peeringServiceProvider();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ProvisioningState provisioningState();
+
+ /**
+ * The entirety of the PeeringService definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of PeeringService definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a PeeringService definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the PeeringService definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the peeringservice definition allowing to specify PeeringServiceLocation.
+ */
+ interface WithPeeringServiceLocation {
+ /**
+ * Specifies peeringServiceLocation.
+ * @param peeringServiceLocation The PeeringServiceLocation of the Customer
+ * @return the next definition stage
+ */
+ WithCreate withPeeringServiceLocation(String peeringServiceLocation);
+ }
+
+ /**
+ * The stage of the peeringservice definition allowing to specify PeeringServiceProvider.
+ */
+ interface WithPeeringServiceProvider {
+ /**
+ * Specifies peeringServiceProvider.
+ * @param peeringServiceProvider The MAPS Provider Name
+ * @return the next definition stage
+ */
+ WithCreate withPeeringServiceProvider(String peeringServiceProvider);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, Resource.DefinitionWithTags, DefinitionStages.WithPeeringServiceLocation, DefinitionStages.WithPeeringServiceProvider {
+ }
+ }
+ /**
+ * The template for a PeeringService update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithPeeringServiceLocation, UpdateStages.WithPeeringServiceProvider {
+ }
+
+ /**
+ * Grouping of PeeringService update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the peeringservice update allowing to specify PeeringServiceLocation.
+ */
+ interface WithPeeringServiceLocation {
+ /**
+ * Specifies peeringServiceLocation.
+ * @param peeringServiceLocation The PeeringServiceLocation of the Customer
+ * @return the next update stage
+ */
+ Update withPeeringServiceLocation(String peeringServiceLocation);
+ }
+
+ /**
+ * The stage of the peeringservice update allowing to specify PeeringServiceProvider.
+ */
+ interface WithPeeringServiceProvider {
+ /**
+ * Specifies peeringServiceProvider.
+ * @param peeringServiceProvider The MAPS Provider Name
+ * @return the next update stage
+ */
+ Update withPeeringServiceProvider(String peeringServiceProvider);
+ }
+
+ }
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringServiceLocation.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringServiceLocation.java
new file mode 100644
index 000000000000..0795857c6d5c
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringServiceLocation.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.PeeringServiceLocationInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.PeeringManager;
+
+/**
+ * Type representing PeeringServiceLocation.
+ */
+public interface PeeringServiceLocation extends HasInner, HasManager {
+ /**
+ * @return the azureRegion value.
+ */
+ String azureRegion();
+
+ /**
+ * @return the country value.
+ */
+ String country();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the state value.
+ */
+ String state();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringServiceLocations.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringServiceLocations.java
new file mode 100644
index 000000000000..7cc78969c289
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringServiceLocations.java
@@ -0,0 +1,19 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsListing;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.PeeringServiceLocationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing PeeringServiceLocations.
+ */
+public interface PeeringServiceLocations extends SupportsListing, HasInner {
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringServicePeeringServicePrefix.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringServicePeeringServicePrefix.java
new file mode 100644
index 000000000000..534554104f38
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringServicePeeringServicePrefix.java
@@ -0,0 +1,180 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.PeeringServicePrefixInner;
+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.peering.v2019_08_01_preview.implementation.PeeringManager;
+
+/**
+ * Type representing PeeringServicePeeringServicePrefix.
+ */
+public interface PeeringServicePeeringServicePrefix extends HasInner, Indexable, Refreshable, Updatable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the learnedType value.
+ */
+ LearnedType learnedType();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the prefix value.
+ */
+ String prefix();
+
+ /**
+ * @return the prefixValidationState value.
+ */
+ PrefixValidationState prefixValidationState();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ProvisioningState provisioningState();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the PeeringServicePeeringServicePrefix definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithPeeringService, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of PeeringServicePeeringServicePrefix definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a PeeringServicePeeringServicePrefix definition.
+ */
+ interface Blank extends WithPeeringService {
+ }
+
+ /**
+ * The stage of the peeringservicepeeringserviceprefix definition allowing to specify PeeringService.
+ */
+ interface WithPeeringService {
+ /**
+ * Specifies resourceGroupName, peeringServiceName.
+ * @param resourceGroupName The resource group name
+ * @param peeringServiceName The peering service name
+ * @return the next definition stage
+ */
+ WithCreate withExistingPeeringService(String resourceGroupName, String peeringServiceName);
+ }
+
+ /**
+ * The stage of the peeringservicepeeringserviceprefix definition allowing to specify LearnedType.
+ */
+ interface WithLearnedType {
+ /**
+ * Specifies learnedType.
+ * @param learnedType The prefix learned type. Possible values include: 'None', 'ViaPartner', 'ViaSession'
+ * @return the next definition stage
+ */
+ WithCreate withLearnedType(LearnedType learnedType);
+ }
+
+ /**
+ * The stage of the peeringservicepeeringserviceprefix definition allowing to specify Prefix.
+ */
+ interface WithPrefix {
+ /**
+ * Specifies prefix.
+ * @param prefix Valid route prefix
+ * @return the next definition stage
+ */
+ WithCreate withPrefix(String prefix);
+ }
+
+ /**
+ * The stage of the peeringservicepeeringserviceprefix definition allowing to specify PrefixValidationState.
+ */
+ interface WithPrefixValidationState {
+ /**
+ * Specifies prefixValidationState.
+ * @param prefixValidationState The prefix validation state. Possible values include: 'None', 'Invalid', 'Verified', 'Failed', 'Pending', 'Unknown'
+ * @return the next definition stage
+ */
+ WithCreate withPrefixValidationState(PrefixValidationState prefixValidationState);
+ }
+
+ /**
+ * 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.WithLearnedType, DefinitionStages.WithPrefix, DefinitionStages.WithPrefixValidationState {
+ }
+ }
+ /**
+ * The template for a PeeringServicePeeringServicePrefix update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithLearnedType, UpdateStages.WithPrefix, UpdateStages.WithPrefixValidationState {
+ }
+
+ /**
+ * Grouping of PeeringServicePeeringServicePrefix update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the peeringservicepeeringserviceprefix update allowing to specify LearnedType.
+ */
+ interface WithLearnedType {
+ /**
+ * Specifies learnedType.
+ * @param learnedType The prefix learned type. Possible values include: 'None', 'ViaPartner', 'ViaSession'
+ * @return the next update stage
+ */
+ Update withLearnedType(LearnedType learnedType);
+ }
+
+ /**
+ * The stage of the peeringservicepeeringserviceprefix update allowing to specify Prefix.
+ */
+ interface WithPrefix {
+ /**
+ * Specifies prefix.
+ * @param prefix Valid route prefix
+ * @return the next update stage
+ */
+ Update withPrefix(String prefix);
+ }
+
+ /**
+ * The stage of the peeringservicepeeringserviceprefix update allowing to specify PrefixValidationState.
+ */
+ interface WithPrefixValidationState {
+ /**
+ * Specifies prefixValidationState.
+ * @param prefixValidationState The prefix validation state. Possible values include: 'None', 'Invalid', 'Verified', 'Failed', 'Pending', 'Unknown'
+ * @return the next update stage
+ */
+ Update withPrefixValidationState(PrefixValidationState prefixValidationState);
+ }
+
+ }
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringServicePeeringServicePrefixModel.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringServicePeeringServicePrefixModel.java
new file mode 100644
index 000000000000..020a258cdb88
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringServicePeeringServicePrefixModel.java
@@ -0,0 +1,55 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.PeeringServicePrefixInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.PeeringManager;
+
+/**
+ * Type representing PeeringServicePeeringServicePrefixModel.
+ */
+public interface PeeringServicePeeringServicePrefixModel extends HasInner, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the learnedType value.
+ */
+ LearnedType learnedType();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the prefix value.
+ */
+ String prefix();
+
+ /**
+ * @return the prefixValidationState value.
+ */
+ PrefixValidationState prefixValidationState();
+
+ /**
+ * @return the provisioningState value.
+ */
+ ProvisioningState provisioningState();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringServicePrefixes.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringServicePrefixes.java
new file mode 100644
index 000000000000..67f754cae5d9
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringServicePrefixes.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.peering.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import rx.Completable;
+import rx.Observable;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.PeeringServicePrefixesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing PeeringServicePrefixes.
+ */
+public interface PeeringServicePrefixes extends SupportsCreating, HasInner {
+ /**
+ * Gets the peering service prefix.
+ *
+ * @param resourceGroupName The resource group name.
+ * @param peeringServiceName The peering service name.
+ * @param prefixName The prefix name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String peeringServiceName, String prefixName);
+
+ /**
+ * removes the peering prefix.
+ *
+ * @param resourceGroupName The resource group name.
+ * @param peeringServiceName The peering service name.
+ * @param prefixName The prefix name
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAsync(String resourceGroupName, String peeringServiceName, String prefixName);
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringServiceProvider.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringServiceProvider.java
new file mode 100644
index 000000000000..1d003cdfacd0
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringServiceProvider.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.peering.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.PeeringServiceProviderInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.PeeringManager;
+
+/**
+ * Type representing PeeringServiceProvider.
+ */
+public interface PeeringServiceProvider extends HasInner, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the serviceProviderName value.
+ */
+ String serviceProviderName();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringServiceProviders.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringServiceProviders.java
new file mode 100644
index 000000000000..71220398af55
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringServiceProviders.java
@@ -0,0 +1,19 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsListing;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.PeeringServiceProvidersInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing PeeringServiceProviders.
+ */
+public interface PeeringServiceProviders extends SupportsListing, HasInner {
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringServices.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringServices.java
new file mode 100644
index 000000000000..e0feaa91327b
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringServices.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.peering.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import com.microsoft.azure.arm.resources.collection.SupportsDeletingByResourceGroup;
+import com.microsoft.azure.arm.resources.collection.SupportsBatchDeletion;
+import com.microsoft.azure.arm.resources.collection.SupportsGettingByResourceGroup;
+import rx.Observable;
+import com.microsoft.azure.arm.resources.collection.SupportsListingByResourceGroup;
+import com.microsoft.azure.arm.collection.SupportsListing;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.PeeringServicesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing PeeringServices.
+ */
+public interface PeeringServices extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringSku.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringSku.java
new file mode 100644
index 000000000000..f8e1843494a2
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PeeringSku.java
@@ -0,0 +1,127 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The SKU that defines the tier and kind of the peering.
+ */
+public class PeeringSku {
+ /**
+ * The name of the peering SKU. Possible values include:
+ * 'Basic_Exchange_Free', 'Basic_Direct_Free', 'Premium_Direct_Free',
+ * 'Premium_Exchange_Metered', 'Premium_Direct_Metered',
+ * 'Premium_Direct_Unlimited'.
+ */
+ @JsonProperty(value = "name")
+ private Name name;
+
+ /**
+ * The tier of the peering SKU. Possible values include: 'Basic',
+ * 'Premium'.
+ */
+ @JsonProperty(value = "tier")
+ private Tier tier;
+
+ /**
+ * The family of the peering SKU. Possible values include: 'Direct',
+ * 'Exchange'.
+ */
+ @JsonProperty(value = "family")
+ private Family family;
+
+ /**
+ * The size of the peering SKU. Possible values include: 'Free', 'Metered',
+ * 'Unlimited'.
+ */
+ @JsonProperty(value = "size")
+ private Size size;
+
+ /**
+ * Get the name of the peering SKU. Possible values include: 'Basic_Exchange_Free', 'Basic_Direct_Free', 'Premium_Direct_Free', 'Premium_Exchange_Metered', 'Premium_Direct_Metered', 'Premium_Direct_Unlimited'.
+ *
+ * @return the name value
+ */
+ public Name name() {
+ return this.name;
+ }
+
+ /**
+ * Set the name of the peering SKU. Possible values include: 'Basic_Exchange_Free', 'Basic_Direct_Free', 'Premium_Direct_Free', 'Premium_Exchange_Metered', 'Premium_Direct_Metered', 'Premium_Direct_Unlimited'.
+ *
+ * @param name the name value to set
+ * @return the PeeringSku object itself.
+ */
+ public PeeringSku withName(Name name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the tier of the peering SKU. Possible values include: 'Basic', 'Premium'.
+ *
+ * @return the tier value
+ */
+ public Tier tier() {
+ return this.tier;
+ }
+
+ /**
+ * Set the tier of the peering SKU. Possible values include: 'Basic', 'Premium'.
+ *
+ * @param tier the tier value to set
+ * @return the PeeringSku object itself.
+ */
+ public PeeringSku withTier(Tier tier) {
+ this.tier = tier;
+ return this;
+ }
+
+ /**
+ * Get the family of the peering SKU. Possible values include: 'Direct', 'Exchange'.
+ *
+ * @return the family value
+ */
+ public Family family() {
+ return this.family;
+ }
+
+ /**
+ * Set the family of the peering SKU. Possible values include: 'Direct', 'Exchange'.
+ *
+ * @param family the family value to set
+ * @return the PeeringSku object itself.
+ */
+ public PeeringSku withFamily(Family family) {
+ this.family = family;
+ return this;
+ }
+
+ /**
+ * Get the size of the peering SKU. Possible values include: 'Free', 'Metered', 'Unlimited'.
+ *
+ * @return the size value
+ */
+ public Size size() {
+ return this.size;
+ }
+
+ /**
+ * Set the size of the peering SKU. Possible values include: 'Free', 'Metered', 'Unlimited'.
+ *
+ * @param size the size value to set
+ * @return the PeeringSku object itself.
+ */
+ public PeeringSku withSize(Size size) {
+ this.size = size;
+ return this;
+ }
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Peerings.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Peerings.java
new file mode 100644
index 000000000000..ae1db8d36294
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Peerings.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.peering.v2019_08_01_preview;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import com.microsoft.azure.arm.resources.collection.SupportsDeletingByResourceGroup;
+import com.microsoft.azure.arm.resources.collection.SupportsBatchDeletion;
+import com.microsoft.azure.arm.resources.collection.SupportsGettingByResourceGroup;
+import rx.Observable;
+import com.microsoft.azure.arm.resources.collection.SupportsListingByResourceGroup;
+import com.microsoft.azure.arm.collection.SupportsListing;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.PeeringsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Peerings.
+ */
+public interface Peerings extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PrefixValidationState.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PrefixValidationState.java
new file mode 100644
index 000000000000..604696aaf66b
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/PrefixValidationState.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for PrefixValidationState.
+ */
+public final class PrefixValidationState extends ExpandableStringEnum {
+ /** Static value None for PrefixValidationState. */
+ public static final PrefixValidationState NONE = fromString("None");
+
+ /** Static value Invalid for PrefixValidationState. */
+ public static final PrefixValidationState INVALID = fromString("Invalid");
+
+ /** Static value Verified for PrefixValidationState. */
+ public static final PrefixValidationState VERIFIED = fromString("Verified");
+
+ /** Static value Failed for PrefixValidationState. */
+ public static final PrefixValidationState FAILED = fromString("Failed");
+
+ /** Static value Pending for PrefixValidationState. */
+ public static final PrefixValidationState PENDING = fromString("Pending");
+
+ /** Static value Unknown for PrefixValidationState. */
+ public static final PrefixValidationState UNKNOWN = fromString("Unknown");
+
+ /**
+ * Creates or finds a PrefixValidationState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding PrefixValidationState
+ */
+ @JsonCreator
+ public static PrefixValidationState fromString(String name) {
+ return fromString(name, PrefixValidationState.class);
+ }
+
+ /**
+ * @return known PrefixValidationState values
+ */
+ public static Collection values() {
+ return values(PrefixValidationState.class);
+ }
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Prefixes.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Prefixes.java
new file mode 100644
index 000000000000..2d4cf0039c02
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Prefixes.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import rx.Observable;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.implementation.PrefixesInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Prefixes.
+ */
+public interface Prefixes extends HasInner {
+ /**
+ * Lists the peerings prefix in the resource group.
+ *
+ * @param resourceGroupName The resource group name.
+ * @param peeringServiceName The peering service name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByPeeringServiceAsync(final String resourceGroupName, final String peeringServiceName);
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ProvisioningState.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ProvisioningState.java
new file mode 100644
index 000000000000..0d5c92107d73
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ProvisioningState.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ProvisioningState.
+ */
+public final class ProvisioningState extends ExpandableStringEnum {
+ /** Static value Succeeded for ProvisioningState. */
+ public static final ProvisioningState SUCCEEDED = fromString("Succeeded");
+
+ /** Static value Updating for ProvisioningState. */
+ public static final ProvisioningState UPDATING = fromString("Updating");
+
+ /** Static value Deleting for ProvisioningState. */
+ public static final ProvisioningState DELETING = fromString("Deleting");
+
+ /** Static value Failed for ProvisioningState. */
+ public static final ProvisioningState FAILED = fromString("Failed");
+
+ /**
+ * Creates or finds a ProvisioningState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ProvisioningState
+ */
+ @JsonCreator
+ public static ProvisioningState fromString(String name) {
+ return fromString(name, ProvisioningState.class);
+ }
+
+ /**
+ * @return known ProvisioningState values
+ */
+ public static Collection values() {
+ return values(ProvisioningState.class);
+ }
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ResourceTags.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ResourceTags.java
new file mode 100644
index 000000000000..81791f284e92
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ResourceTags.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.peering.v2019_08_01_preview;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The resource tags.
+ */
+public class ResourceTags {
+ /**
+ * Gets or sets the tags, a dictionary of descriptors arm object.
+ */
+ @JsonProperty(value = "tags")
+ private Map tags;
+
+ /**
+ * Get gets or sets the tags, a dictionary of descriptors arm object.
+ *
+ * @return the tags value
+ */
+ public Map tags() {
+ return this.tags;
+ }
+
+ /**
+ * Set gets or sets the tags, a dictionary of descriptors arm object.
+ *
+ * @param tags the tags value to set
+ * @return the ResourceTags object itself.
+ */
+ public ResourceTags withTags(Map tags) {
+ this.tags = tags;
+ return this;
+ }
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/SessionAddressProvider.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/SessionAddressProvider.java
new file mode 100644
index 000000000000..2bd78d1b18c6
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/SessionAddressProvider.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.peering.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for SessionAddressProvider.
+ */
+public final class SessionAddressProvider extends ExpandableStringEnum {
+ /** Static value Microsoft for SessionAddressProvider. */
+ public static final SessionAddressProvider MICROSOFT = fromString("Microsoft");
+
+ /** Static value Peer for SessionAddressProvider. */
+ public static final SessionAddressProvider PEER = fromString("Peer");
+
+ /**
+ * Creates or finds a SessionAddressProvider from its string representation.
+ * @param name a name to look for
+ * @return the corresponding SessionAddressProvider
+ */
+ @JsonCreator
+ public static SessionAddressProvider fromString(String name) {
+ return fromString(name, SessionAddressProvider.class);
+ }
+
+ /**
+ * @return known SessionAddressProvider values
+ */
+ public static Collection values() {
+ return values(SessionAddressProvider.class);
+ }
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/SessionStateV4.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/SessionStateV4.java
new file mode 100644
index 000000000000..5e5595e4a9c6
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/SessionStateV4.java
@@ -0,0 +1,68 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for SessionStateV4.
+ */
+public final class SessionStateV4 extends ExpandableStringEnum {
+ /** Static value None for SessionStateV4. */
+ public static final SessionStateV4 NONE = fromString("None");
+
+ /** Static value Idle for SessionStateV4. */
+ public static final SessionStateV4 IDLE = fromString("Idle");
+
+ /** Static value Connect for SessionStateV4. */
+ public static final SessionStateV4 CONNECT = fromString("Connect");
+
+ /** Static value Active for SessionStateV4. */
+ public static final SessionStateV4 ACTIVE = fromString("Active");
+
+ /** Static value OpenSent for SessionStateV4. */
+ public static final SessionStateV4 OPEN_SENT = fromString("OpenSent");
+
+ /** Static value OpenConfirm for SessionStateV4. */
+ public static final SessionStateV4 OPEN_CONFIRM = fromString("OpenConfirm");
+
+ /** Static value OpenReceived for SessionStateV4. */
+ public static final SessionStateV4 OPEN_RECEIVED = fromString("OpenReceived");
+
+ /** Static value Established for SessionStateV4. */
+ public static final SessionStateV4 ESTABLISHED = fromString("Established");
+
+ /** Static value PendingAdd for SessionStateV4. */
+ public static final SessionStateV4 PENDING_ADD = fromString("PendingAdd");
+
+ /** Static value PendingUpdate for SessionStateV4. */
+ public static final SessionStateV4 PENDING_UPDATE = fromString("PendingUpdate");
+
+ /** Static value PendingRemove for SessionStateV4. */
+ public static final SessionStateV4 PENDING_REMOVE = fromString("PendingRemove");
+
+ /**
+ * Creates or finds a SessionStateV4 from its string representation.
+ * @param name a name to look for
+ * @return the corresponding SessionStateV4
+ */
+ @JsonCreator
+ public static SessionStateV4 fromString(String name) {
+ return fromString(name, SessionStateV4.class);
+ }
+
+ /**
+ * @return known SessionStateV4 values
+ */
+ public static Collection values() {
+ return values(SessionStateV4.class);
+ }
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/SessionStateV6.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/SessionStateV6.java
new file mode 100644
index 000000000000..8015796a4ebb
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/SessionStateV6.java
@@ -0,0 +1,68 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for SessionStateV6.
+ */
+public final class SessionStateV6 extends ExpandableStringEnum {
+ /** Static value None for SessionStateV6. */
+ public static final SessionStateV6 NONE = fromString("None");
+
+ /** Static value Idle for SessionStateV6. */
+ public static final SessionStateV6 IDLE = fromString("Idle");
+
+ /** Static value Connect for SessionStateV6. */
+ public static final SessionStateV6 CONNECT = fromString("Connect");
+
+ /** Static value Active for SessionStateV6. */
+ public static final SessionStateV6 ACTIVE = fromString("Active");
+
+ /** Static value OpenSent for SessionStateV6. */
+ public static final SessionStateV6 OPEN_SENT = fromString("OpenSent");
+
+ /** Static value OpenConfirm for SessionStateV6. */
+ public static final SessionStateV6 OPEN_CONFIRM = fromString("OpenConfirm");
+
+ /** Static value OpenReceived for SessionStateV6. */
+ public static final SessionStateV6 OPEN_RECEIVED = fromString("OpenReceived");
+
+ /** Static value Established for SessionStateV6. */
+ public static final SessionStateV6 ESTABLISHED = fromString("Established");
+
+ /** Static value PendingAdd for SessionStateV6. */
+ public static final SessionStateV6 PENDING_ADD = fromString("PendingAdd");
+
+ /** Static value PendingUpdate for SessionStateV6. */
+ public static final SessionStateV6 PENDING_UPDATE = fromString("PendingUpdate");
+
+ /** Static value PendingRemove for SessionStateV6. */
+ public static final SessionStateV6 PENDING_REMOVE = fromString("PendingRemove");
+
+ /**
+ * Creates or finds a SessionStateV6 from its string representation.
+ * @param name a name to look for
+ * @return the corresponding SessionStateV6
+ */
+ @JsonCreator
+ public static SessionStateV6 fromString(String name) {
+ return fromString(name, SessionStateV6.class);
+ }
+
+ /**
+ * @return known SessionStateV6 values
+ */
+ public static Collection values() {
+ return values(SessionStateV6.class);
+ }
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Size.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Size.java
new file mode 100644
index 000000000000..29c7733cdd9d
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Size.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.peering.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for Size.
+ */
+public final class Size extends ExpandableStringEnum {
+ /** Static value Free for Size. */
+ public static final Size FREE = fromString("Free");
+
+ /** Static value Metered for Size. */
+ public static final Size METERED = fromString("Metered");
+
+ /** Static value Unlimited for Size. */
+ public static final Size UNLIMITED = fromString("Unlimited");
+
+ /**
+ * Creates or finds a Size from its string representation.
+ * @param name a name to look for
+ * @return the corresponding Size
+ */
+ @JsonCreator
+ public static Size fromString(String name) {
+ return fromString(name, Size.class);
+ }
+
+ /**
+ * @return known Size values
+ */
+ public static Collection values() {
+ return values(Size.class);
+ }
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Tier.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Tier.java
new file mode 100644
index 000000000000..850964430224
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/Tier.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.peering.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for Tier.
+ */
+public final class Tier extends ExpandableStringEnum {
+ /** Static value Basic for Tier. */
+ public static final Tier BASIC = fromString("Basic");
+
+ /** Static value Premium for Tier. */
+ public static final Tier PREMIUM = fromString("Premium");
+
+ /**
+ * Creates or finds a Tier from its string representation.
+ * @param name a name to look for
+ * @return the corresponding Tier
+ */
+ @JsonCreator
+ public static Tier fromString(String name) {
+ return fromString(name, Tier.class);
+ }
+
+ /**
+ * @return known Tier values
+ */
+ public static Collection values() {
+ return values(Tier.class);
+ }
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ValidationState.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ValidationState.java
new file mode 100644
index 000000000000..2fdee103cc3e
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/ValidationState.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ValidationState.
+ */
+public final class ValidationState extends ExpandableStringEnum {
+ /** Static value None for ValidationState. */
+ public static final ValidationState NONE = fromString("None");
+
+ /** Static value Pending for ValidationState. */
+ public static final ValidationState PENDING = fromString("Pending");
+
+ /** Static value Approved for ValidationState. */
+ public static final ValidationState APPROVED = fromString("Approved");
+
+ /** Static value Failed for ValidationState. */
+ public static final ValidationState FAILED = fromString("Failed");
+
+ /**
+ * Creates or finds a ValidationState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ValidationState
+ */
+ @JsonCreator
+ public static ValidationState fromString(String name) {
+ return fromString(name, ValidationState.class);
+ }
+
+ /**
+ * @return known ValidationState values
+ */
+ public static Collection values() {
+ return values(ValidationState.class);
+ }
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/implementation/IdParsingUtils.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/implementation/IdParsingUtils.java
new file mode 100644
index 000000000000..d052d7e3b5bf
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/implementation/IdParsingUtils.java
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview.implementation;
+import java.util.Arrays;
+import java.util.Iterator;
+
+class IdParsingUtils {
+ public static String getValueFromIdByName(String id, String name) {
+ if (id == null) {
+ return null;
+ }
+ Iterable iterable = Arrays.asList(id.split("/"));
+ Iterator itr = iterable.iterator();
+ while (itr.hasNext()) {
+ String part = itr.next();
+ if (part != null && part.trim() != "") {
+ if (part.equalsIgnoreCase(name)) {
+ if (itr.hasNext()) {
+ return itr.next();
+ } else {
+ return null;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ public static String getValueFromIdByPosition(String id, int pos) {
+ if (id == null) {
+ return null;
+ }
+ Iterable iterable = Arrays.asList(id.split("/"));
+ Iterator itr = iterable.iterator();
+ int index = 0;
+ while (itr.hasNext()) {
+ String part = itr.next();
+ if (part != null && part.trim() != "") {
+ if (index == pos) {
+ if (itr.hasNext()) {
+ return itr.next();
+ } else {
+ return null;
+ }
+ }
+ }
+ index++;
+ }
+ return null;
+ }
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/implementation/LegacyPeeringsImpl.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/implementation/LegacyPeeringsImpl.java
new file mode 100644
index 000000000000..d35993af3c45
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/implementation/LegacyPeeringsImpl.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * abc
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.LegacyPeerings;
+import rx.functions.Func1;
+import rx.Observable;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.Peering;
+
+class LegacyPeeringsImpl extends WrapperImpl implements LegacyPeerings {
+ private final PeeringManager manager;
+
+ LegacyPeeringsImpl(PeeringManager manager) {
+ super(manager.inner().legacyPeerings());
+ this.manager = manager;
+ }
+
+ public PeeringManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public Observable listAsync(final String peeringLocation, final String kind) {
+ LegacyPeeringsInner client = this.inner();
+ return client.listAsync(peeringLocation, kind)
+ .flatMapIterable(new Func1, Iterable>() {
+ @Override
+ public Iterable call(Page page) {
+ return page.items();
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public Peering call(PeeringInner inner) {
+ return new PeeringImpl(inner.name(), inner, manager());
+ }
+ });
+ }
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/implementation/LegacyPeeringsInner.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/implementation/LegacyPeeringsInner.java
new file mode 100644
index 000000000000..13efe86556c0
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/implementation/LegacyPeeringsInner.java
@@ -0,0 +1,303 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview.implementation;
+
+import retrofit2.Retrofit;
+import com.google.common.reflect.TypeToken;
+import com.microsoft.azure.AzureServiceFuture;
+import com.microsoft.azure.ListOperationCallback;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.ErrorResponseException;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.PagedList;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import java.io.IOException;
+import java.util.List;
+import okhttp3.ResponseBody;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.Path;
+import retrofit2.http.Query;
+import retrofit2.http.Url;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in LegacyPeerings.
+ */
+public class LegacyPeeringsInner {
+ /** The Retrofit service to perform REST calls. */
+ private LegacyPeeringsService service;
+ /** The service client containing this operation class. */
+ private PeeringManagementClientImpl client;
+
+ /**
+ * Initializes an instance of LegacyPeeringsInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public LegacyPeeringsInner(Retrofit retrofit, PeeringManagementClientImpl client) {
+ this.service = retrofit.create(LegacyPeeringsService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for LegacyPeerings to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface LegacyPeeringsService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.peering.v2019_08_01_preview.LegacyPeerings list" })
+ @GET("subscriptions/{subscriptionId}/providers/Microsoft.Peering/legacyPeerings")
+ Observable> list(@Path("subscriptionId") String subscriptionId, @Query("peeringLocation") String peeringLocation, @Query("kind") String kind, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.peering.v2019_08_01_preview.LegacyPeerings listNext" })
+ @GET
+ Observable> listNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * Lists all of the legacy peerings under the given subscription matching the specified kind and location.
+ *
+ * @param peeringLocation The location of the peering.
+ * @param kind The kind of the peering. Possible values include: 'Direct', 'Exchange'
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws ErrorResponseException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<PeeringInner> object if successful.
+ */
+ public PagedList list(final String peeringLocation, final String kind) {
+ ServiceResponse> response = listSinglePageAsync(peeringLocation, kind).toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * Lists all of the legacy peerings under the given subscription matching the specified kind and location.
+ *
+ * @param peeringLocation The location of the peering.
+ * @param kind The kind of the peering. Possible values include: 'Direct', 'Exchange'
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture> listAsync(final String peeringLocation, final String kind, final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listSinglePageAsync(peeringLocation, kind),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * Lists all of the legacy peerings under the given subscription matching the specified kind and location.
+ *
+ * @param peeringLocation The location of the peering.
+ * @param kind The kind of the peering. Possible values include: 'Direct', 'Exchange'
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<PeeringInner> object
+ */
+ public Observable> listAsync(final String peeringLocation, final String kind) {
+ return listWithServiceResponseAsync(peeringLocation, kind)
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Lists all of the legacy peerings under the given subscription matching the specified kind and location.
+ *
+ * @param peeringLocation The location of the peering.
+ * @param kind The kind of the peering. Possible values include: 'Direct', 'Exchange'
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<PeeringInner> object
+ */
+ public Observable>> listWithServiceResponseAsync(final String peeringLocation, final String kind) {
+ return listSinglePageAsync(peeringLocation, kind)
+ .concatMap(new Func1>, Observable>>>() {
+ @Override
+ public Observable>> call(ServiceResponse> page) {
+ String nextPageLink = page.body().nextPageLink();
+ if (nextPageLink == null) {
+ return Observable.just(page);
+ }
+ return Observable.just(page).concatWith(listNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * Lists all of the legacy peerings under the given subscription matching the specified kind and location.
+ *
+ ServiceResponse> * @param peeringLocation The location of the peering.
+ ServiceResponse> * @param kind The kind of the peering. Possible values include: 'Direct', 'Exchange'
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<PeeringInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listSinglePageAsync(final String peeringLocation, final String kind) {
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (peeringLocation == null) {
+ throw new IllegalArgumentException("Parameter peeringLocation is required and cannot be null.");
+ }
+ if (kind == null) {
+ throw new IllegalArgumentException("Parameter kind is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.list(this.client.subscriptionId(), peeringLocation, kind, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listDelegate(response);
+ return Observable.just(new ServiceResponse>(result.body(), result.response()));
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse> listDelegate(Response response) throws ErrorResponseException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory()., ErrorResponseException>newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken>() { }.getType())
+ .registerError(ErrorResponseException.class)
+ .build(response);
+ }
+
+ /**
+ * Lists all of the legacy peerings under the given subscription matching the specified kind and location.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws ErrorResponseException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<PeeringInner> object if successful.
+ */
+ public PagedList listNext(final String nextPageLink) {
+ ServiceResponse> response = listNextSinglePageAsync(nextPageLink).toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * Lists all of the legacy peerings under the given subscription matching the specified kind and location.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param serviceFuture the ServiceFuture object tracking the Retrofit calls
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture> listNextAsync(final String nextPageLink, final ServiceFuture> serviceFuture, final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listNextSinglePageAsync(nextPageLink),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * Lists all of the legacy peerings under the given subscription matching the specified kind and location.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<PeeringInner> object
+ */
+ public Observable> listNextAsync(final String nextPageLink) {
+ return listNextWithServiceResponseAsync(nextPageLink)
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Lists all of the legacy peerings under the given subscription matching the specified kind and location.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<PeeringInner> object
+ */
+ public Observable>> listNextWithServiceResponseAsync(final String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink)
+ .concatMap(new Func1>, Observable>>>() {
+ @Override
+ public Observable>> call(ServiceResponse> page) {
+ String nextPageLink = page.body().nextPageLink();
+ if (nextPageLink == null) {
+ return Observable.just(page);
+ }
+ return Observable.just(page).concatWith(listNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * Lists all of the legacy peerings under the given subscription matching the specified kind and location.
+ *
+ ServiceResponse> * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<PeeringInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listNextSinglePageAsync(final String nextPageLink) {
+ if (nextPageLink == null) {
+ throw new IllegalArgumentException("Parameter nextPageLink is required and cannot be null.");
+ }
+ String nextUrl = String.format("%s", nextPageLink);
+ return service.listNext(nextUrl, this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listNextDelegate(response);
+ return Observable.just(new ServiceResponse>(result.body(), result.response()));
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse> listNextDelegate(Response response) throws ErrorResponseException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory()., ErrorResponseException>newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken>() { }.getType())
+ .registerError(ErrorResponseException.class)
+ .build(response);
+ }
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/implementation/OperationImpl.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/implementation/OperationImpl.java
new file mode 100644
index 000000000000..80ba57fa5c86
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/implementation/OperationImpl.java
@@ -0,0 +1,42 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview.implementation;
+
+import com.microsoft.azure.management.peering.v2019_08_01_preview.Operation;
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.OperationDisplayInfo;
+
+class OperationImpl extends WrapperImpl implements Operation {
+ private final PeeringManager manager;
+ OperationImpl(OperationInner inner, PeeringManager manager) {
+ super(inner);
+ this.manager = manager;
+ }
+
+ @Override
+ public PeeringManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public OperationDisplayInfo display() {
+ return this.inner().display();
+ }
+
+ @Override
+ public Boolean isDataAction() {
+ return this.inner().isDataAction();
+ }
+
+ @Override
+ public String name() {
+ return this.inner().name();
+ }
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/implementation/OperationInner.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/implementation/OperationInner.java
new file mode 100644
index 000000000000..2b828ea16121
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/implementation/OperationInner.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview.implementation;
+
+import com.microsoft.azure.management.peering.v2019_08_01_preview.OperationDisplayInfo;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The peering API operation.
+ */
+public class OperationInner {
+ /**
+ * The name of the operation.
+ */
+ @JsonProperty(value = "name", access = JsonProperty.Access.WRITE_ONLY)
+ private String name;
+
+ /**
+ * The information related to the operation.
+ */
+ @JsonProperty(value = "display", access = JsonProperty.Access.WRITE_ONLY)
+ private OperationDisplayInfo display;
+
+ /**
+ * The flag that indicates whether the operation applies to data plane.
+ */
+ @JsonProperty(value = "isDataAction", access = JsonProperty.Access.WRITE_ONLY)
+ private Boolean isDataAction;
+
+ /**
+ * Get the name of the operation.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the information related to the operation.
+ *
+ * @return the display value
+ */
+ public OperationDisplayInfo display() {
+ return this.display;
+ }
+
+ /**
+ * Get the flag that indicates whether the operation applies to data plane.
+ *
+ * @return the isDataAction value
+ */
+ public Boolean isDataAction() {
+ return this.isDataAction;
+ }
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/implementation/OperationsImpl.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/implementation/OperationsImpl.java
new file mode 100644
index 000000000000..7d43659d8104
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/implementation/OperationsImpl.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * abc
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.Operations;
+import rx.functions.Func1;
+import rx.Observable;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.Operation;
+
+class OperationsImpl extends WrapperImpl implements Operations {
+ private final PeeringManager manager;
+
+ OperationsImpl(PeeringManager manager) {
+ super(manager.inner().operations());
+ this.manager = manager;
+ }
+
+ public PeeringManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public Observable listAsync() {
+ OperationsInner client = this.inner();
+ return client.listAsync()
+ .flatMapIterable(new Func1, Iterable>() {
+ @Override
+ public Iterable call(Page page) {
+ return page.items();
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public Operation call(OperationInner inner) {
+ return new OperationImpl(inner, manager());
+ }
+ });
+ }
+
+}
diff --git a/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/implementation/OperationsInner.java b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/implementation/OperationsInner.java
new file mode 100644
index 000000000000..2286bd84d30e
--- /dev/null
+++ b/peering/resource-manager/v2019_08_01_preview/src/main/java/com/microsoft/azure/management/peering/v2019_08_01_preview/implementation/OperationsInner.java
@@ -0,0 +1,283 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.peering.v2019_08_01_preview.implementation;
+
+import retrofit2.Retrofit;
+import com.google.common.reflect.TypeToken;
+import com.microsoft.azure.AzureServiceFuture;
+import com.microsoft.azure.ListOperationCallback;
+import com.microsoft.azure.management.peering.v2019_08_01_preview.ErrorResponseException;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.PagedList;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import java.io.IOException;
+import java.util.List;
+import okhttp3.ResponseBody;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.Query;
+import retrofit2.http.Url;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in Operations.
+ */
+public class OperationsInner {
+ /** The Retrofit service to perform REST calls. */
+ private OperationsService service;
+ /** The service client containing this operation class. */
+ private PeeringManagementClientImpl client;
+
+ /**
+ * Initializes an instance of OperationsInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public OperationsInner(Retrofit retrofit, PeeringManagementClientImpl client) {
+ this.service = retrofit.create(OperationsService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for Operations to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface OperationsService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.peering.v2019_08_01_preview.Operations list" })
+ @GET("providers/Microsoft.Peering/operations")
+ Observable> list(@Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.peering.v2019_08_01_preview.Operations listNext" })
+ @GET
+ Observable> listNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * Lists all of the available API operations for peering resources.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws ErrorResponseException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<OperationInner> object if successful.
+ */
+ public PagedList list() {
+ ServiceResponse> response = listSinglePageAsync().toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * Lists all of the available API operations for peering resources.
+ *
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture> listAsync(final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listSinglePageAsync(),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * Lists all of the available API operations for peering resources.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<OperationInner> object
+ */
+ public Observable> listAsync() {
+ return listWithServiceResponseAsync()
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Lists all of the available API operations for peering resources.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<OperationInner> object
+ */
+ public Observable>> listWithServiceResponseAsync() {
+ return listSinglePageAsync()
+ .concatMap(new Func1>, Observable>>>() {
+ @Override
+ public Observable>> call(ServiceResponse> page) {
+ String nextPageLink = page.body().nextPageLink();
+ if (nextPageLink == null) {
+ return Observable.just(page);
+ }
+ return Observable.just(page).concatWith(listNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * Lists all of the available API operations for peering resources.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<OperationInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listSinglePageAsync() {
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.list(this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listDelegate(response);
+ return Observable.just(new ServiceResponse>(result.body(), result.response()));
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse> listDelegate(Response response) throws ErrorResponseException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory()., ErrorResponseException>newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken>() { }.getType())
+ .registerError(ErrorResponseException.class)
+ .build(response);
+ }
+
+ /**
+ * Lists all of the available API operations for peering resources.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws ErrorResponseException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<OperationInner> object if successful.
+ */
+ public PagedList listNext(final String nextPageLink) {
+ ServiceResponse> response = listNextSinglePageAsync(nextPageLink).toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * Lists all of the available API operations for peering resources.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param serviceFuture the ServiceFuture object tracking the Retrofit calls
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture> listNextAsync(final String nextPageLink, final ServiceFuture> serviceFuture, final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listNextSinglePageAsync(nextPageLink),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * Lists all of the available API operations for peering resources.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<OperationInner> object
+ */
+ public Observable> listNextAsync(final String nextPageLink) {
+ return listNextWithServiceResponseAsync(nextPageLink)
+ .map(new Func1>, Page