diff --git a/network/resource-manager/v2017_10_01/pom.xml b/network/resource-manager/v2017_10_01/pom.xml
index 2f139c2ab3b6..0765ba1756f0 100644
--- a/network/resource-manager/v2017_10_01/pom.xml
+++ b/network/resource-manager/v2017_10_01/pom.xml
@@ -130,4 +130,4 @@
-
\ No newline at end of file
+
diff --git a/network/resource-manager/v2018_04_01/pom.xml b/network/resource-manager/v2018_04_01/pom.xml
index ee5b9dc776da..22c1113461a9 100644
--- a/network/resource-manager/v2018_04_01/pom.xml
+++ b/network/resource-manager/v2018_04_01/pom.xml
@@ -1,133 +1,133 @@
-
-
- 4.0.0
- com.microsoft.azure.network.v2018_04_01
-
- com.microsoft.azure
- azure-arm-parent
- 0.0.2-beta
- ../../../pom.xml
-
- azure-mgmt-network
- 1.0.0-beta
- jar
- Microsoft Azure SDK for Network Management
- This package contains Microsoft Network Management SDK.
- https://github.com/Azure/azure-libraries-for-java
-
-
- The MIT License (MIT)
- http://opensource.org/licenses/MIT
- repo
-
-
-
- scm:git:https://github.com/Azure/azure-libraries-for-java
- scm:git:git@github.com:Azure/azure-libraries-for-java.git
- HEAD
-
-
- UTF-8
-
-
-
-
- microsoft
- Microsoft
-
-
-
-
- com.microsoft.azure
- azure-client-runtime
-
-
- com.microsoft.azure
- azure-arm-client-runtime
-
-
- junit
- junit
- test
-
-
- com.microsoft.azure
- azure-client-authentication
- test
-
-
- com.microsoft.azure
- azure-mgmt-resources
- test
-
-
- com.microsoft.azure
- azure-arm-client-runtime
- test-jar
- test
-
-
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
-
-
-
- true
- true
-
-
-
-
-
- org.codehaus.mojo
- build-helper-maven-plugin
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.1
-
- 1.7
- 1.7
-
-
- com.microsoft.azure.management.apigeneration.LangDefinitionProcessor
-
-
- true
- true
-
- true
- true
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 2.8
-
- *.implementation.*;*.utils.*;com.microsoft.schemas._2003._10.serialization;*.blob.core.search
-
-
- /**
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Licensed under the MIT License. See License.txt in the project root for
- * license information.
- */
- ]]>
-
-
-
-
-
-
+
+
+ 4.0.0
+ com.microsoft.azure.network.v2018_04_01
+
+ com.microsoft.azure
+ azure-arm-parent
+ 0.0.2-beta
+ ../../../pom.xml
+
+ azure-mgmt-network
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for Network Management
+ This package contains Microsoft Network Management SDK.
+ https://github.com/Azure/azure-libraries-for-java
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+ scm:git:https://github.com/Azure/azure-libraries-for-java
+ scm:git:git@github.com:Azure/azure-libraries-for-java.git
+ HEAD
+
+
+ UTF-8
+
+
+
+
+ microsoft
+ Microsoft
+
+
+
+
+ com.microsoft.azure
+ azure-client-runtime
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+
+
+ junit
+ junit
+ test
+
+
+ com.microsoft.azure
+ azure-client-authentication
+ test
+
+
+ com.microsoft.azure
+ azure-mgmt-resources
+ test
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+ test-jar
+ test
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ true
+ true
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+ 1.7
+ 1.7
+
+
+ com.microsoft.azure.management.apigeneration.LangDefinitionProcessor
+
+
+ true
+ true
+
+ true
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.8
+
+ *.implementation.*;*.utils.*;com.microsoft.schemas._2003._10.serialization;*.blob.core.search
+
+
+ /**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ */
+ ]]>
+
+
+
+
+
+
diff --git a/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/VpnConnection.java b/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/VpnConnection.java
index 8ec38becb93a..aaddc4fd5823 100644
--- a/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/VpnConnection.java
+++ b/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/VpnConnection.java
@@ -26,9 +26,9 @@
*/
public interface VpnConnection extends HasInner, Indexable, Refreshable, Updatable, HasManager {
/**
- * @return the connectionBandwidthInMbps value.
+ * @return the connectionBandwidth value.
*/
- Integer connectionBandwidthInMbps();
+ Integer connectionBandwidth();
/**
* @return the connectionStatus value.
diff --git a/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/VpnConnections.java b/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/VpnConnections.java
index 7e13ff1d563b..698ed08d775f 100644
--- a/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/VpnConnections.java
+++ b/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/VpnConnections.java
@@ -32,11 +32,12 @@ public interface VpnConnections extends SupportsCreating listByVpnGatewayAsync(final String gatewayName);
+ Observable listByVpnGatewayAsync(final String resourceGroupName, final String gatewayName);
/**
* Deletes a vpn connection.
diff --git a/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/implementation/NetworkManagementClientImpl.java b/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/implementation/NetworkManagementClientImpl.java
index 85187ad4ef1c..7cd4db9a3c9d 100644
--- a/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/implementation/NetworkManagementClientImpl.java
+++ b/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/implementation/NetworkManagementClientImpl.java
@@ -68,11 +68,11 @@ public NetworkManagementClientImpl withSubscriptionId(String subscriptionId) {
return this;
}
- /** The preferred language for the response. */
+ /** Gets or sets the preferred language for the response. */
private String acceptLanguage;
/**
- * Gets The preferred language for the response.
+ * Gets Gets or sets the preferred language for the response.
*
* @return the acceptLanguage value.
*/
@@ -81,7 +81,7 @@ public String acceptLanguage() {
}
/**
- * Sets The preferred language for the response.
+ * Sets Gets or sets the preferred language for the response.
*
* @param acceptLanguage the acceptLanguage value.
* @return the service client itself
@@ -91,11 +91,11 @@ public NetworkManagementClientImpl withAcceptLanguage(String acceptLanguage) {
return this;
}
- /** The retry timeout in seconds for Long Running Operations. Default value is 30. */
+ /** Gets or sets the retry timeout in seconds for Long Running Operations. Default value is 30. */
private int longRunningOperationRetryTimeout;
/**
- * Gets The retry timeout in seconds for Long Running Operations. Default value is 30.
+ * Gets Gets or sets the retry timeout in seconds for Long Running Operations. Default value is 30.
*
* @return the longRunningOperationRetryTimeout value.
*/
@@ -104,7 +104,7 @@ public int longRunningOperationRetryTimeout() {
}
/**
- * Sets The retry timeout in seconds for Long Running Operations. Default value is 30.
+ * Sets Gets or sets the retry timeout in seconds for Long Running Operations. Default value is 30.
*
* @param longRunningOperationRetryTimeout the longRunningOperationRetryTimeout value.
* @return the service client itself
@@ -114,11 +114,11 @@ public NetworkManagementClientImpl withLongRunningOperationRetryTimeout(int long
return this;
}
- /** Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true. */
+ /** When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true. */
private boolean generateClientRequestId;
/**
- * Gets Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
+ * Gets When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
*
* @return the generateClientRequestId value.
*/
@@ -127,7 +127,7 @@ public boolean generateClientRequestId() {
}
/**
- * Sets Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
+ * Sets When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
*
* @param generateClientRequestId the generateClientRequestId value.
* @return the service client itself
diff --git a/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/implementation/VpnConnectionImpl.java b/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/implementation/VpnConnectionImpl.java
index badeeb2e785a..1e8ced5f9823 100644
--- a/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/implementation/VpnConnectionImpl.java
+++ b/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/implementation/VpnConnectionImpl.java
@@ -76,8 +76,8 @@ public boolean isInCreateMode() {
@Override
- public Integer connectionBandwidthInMbps() {
- return this.inner().connectionBandwidthInMbps();
+ public Integer connectionBandwidth() {
+ return this.inner().connectionBandwidth();
}
@Override
diff --git a/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/implementation/VpnConnectionInner.java b/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/implementation/VpnConnectionInner.java
index 4b3e7ea3624e..3e49cc16ef8e 100644
--- a/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/implementation/VpnConnectionInner.java
+++ b/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/implementation/VpnConnectionInner.java
@@ -58,8 +58,8 @@ public class VpnConnectionInner extends Resource {
/**
* Expected bandwidth in MBPS.
*/
- @JsonProperty(value = "properties.connectionBandwidthInMbps", access = JsonProperty.Access.WRITE_ONLY)
- private Integer connectionBandwidthInMbps;
+ @JsonProperty(value = "properties.connectionBandwidth", access = JsonProperty.Access.WRITE_ONLY)
+ private Integer connectionBandwidth;
/**
* SharedKey for the vpn connection.
@@ -180,10 +180,10 @@ public Long egressBytesTransferred() {
/**
* Get expected bandwidth in MBPS.
*
- * @return the connectionBandwidthInMbps value
+ * @return the connectionBandwidth value
*/
- public Integer connectionBandwidthInMbps() {
- return this.connectionBandwidthInMbps;
+ public Integer connectionBandwidth() {
+ return this.connectionBandwidth;
}
/**
diff --git a/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/implementation/VpnConnectionsImpl.java b/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/implementation/VpnConnectionsImpl.java
index c018b93f4165..d43923dc9fd4 100644
--- a/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/implementation/VpnConnectionsImpl.java
+++ b/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/implementation/VpnConnectionsImpl.java
@@ -43,9 +43,9 @@ private VpnConnectionImpl wrapModel(String name) {
}
@Override
- public Observable listByVpnGatewayAsync(final String gatewayName) {
+ public Observable listByVpnGatewayAsync(final String resourceGroupName, final String gatewayName) {
VpnConnectionsInner client = this.inner();
- return client.listByVpnGatewayAsync(gatewayName)
+ return client.listByVpnGatewayAsync(resourceGroupName, gatewayName)
.flatMapIterable(new Func1, Iterable>() {
@Override
public Iterable call(Page page) {
diff --git a/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/implementation/VpnConnectionsInner.java b/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/implementation/VpnConnectionsInner.java
index ef25d54c8267..96fee0c2e34e 100644
--- a/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/implementation/VpnConnectionsInner.java
+++ b/network/resource-manager/v2018_04_01/src/main/java/com/microsoft/azure/management/network/v2018_04_01/implementation/VpnConnectionsInner.java
@@ -82,8 +82,8 @@ interface VpnConnectionsService {
Observable> beginDelete(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("gatewayName") String gatewayName, @Path("connectionName") String connectionName, @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.network.v2018_04_01.VpnConnections listByVpnGateway" })
- @GET("subscriptions/{subscriptionId}/providers/Microsoft.Network/vpnGateways/{gatewayName}/vpnConnections")
- Observable> listByVpnGateway(@Path("subscriptionId") String subscriptionId, @Path("gatewayName") String gatewayName, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/vpnGateways/{gatewayName}/vpnConnections")
+ Observable> listByVpnGateway(@Path("subscriptionId") String subscriptionId, @Path("resourceGroupName") String resourceGroupName, @Path("gatewayName") String gatewayName, @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.network.v2018_04_01.VpnConnections listByVpnGatewayNext" })
@GET
@@ -532,14 +532,15 @@ private ServiceResponse beginDeleteDelegate(Response respons
/**
* Retrieves all vpn connections for a particular virtual wan vpn gateway.
*
+ * @param resourceGroupName The resource group name of the VpnGateway.
* @param gatewayName The name of the gateway.
* @throws IllegalArgumentException thrown if parameters fail the validation
* @throws ErrorException 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<VpnConnectionInner> object if successful.
*/
- public PagedList listByVpnGateway(final String gatewayName) {
- ServiceResponse> response = listByVpnGatewaySinglePageAsync(gatewayName).toBlocking().single();
+ public PagedList listByVpnGateway(final String resourceGroupName, final String gatewayName) {
+ ServiceResponse> response = listByVpnGatewaySinglePageAsync(resourceGroupName, gatewayName).toBlocking().single();
return new PagedList(response.body()) {
@Override
public Page nextPage(String nextPageLink) {
@@ -551,14 +552,15 @@ public Page nextPage(String nextPageLink) {
/**
* Retrieves all vpn connections for a particular virtual wan vpn gateway.
*
+ * @param resourceGroupName The resource group name of the VpnGateway.
* @param gatewayName The name of the gateway.
* @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> listByVpnGatewayAsync(final String gatewayName, final ListOperationCallback serviceCallback) {
+ public ServiceFuture> listByVpnGatewayAsync(final String resourceGroupName, final String gatewayName, final ListOperationCallback serviceCallback) {
return AzureServiceFuture.fromPageResponse(
- listByVpnGatewaySinglePageAsync(gatewayName),
+ listByVpnGatewaySinglePageAsync(resourceGroupName, gatewayName),
new Func1>>>() {
@Override
public Observable>> call(String nextPageLink) {
@@ -571,12 +573,13 @@ public Observable>> call(String nextPag
/**
* Retrieves all vpn connections for a particular virtual wan vpn gateway.
*
+ * @param resourceGroupName The resource group name of the VpnGateway.
* @param gatewayName The name of the gateway.
* @throws IllegalArgumentException thrown if parameters fail the validation
* @return the observable to the PagedList<VpnConnectionInner> object
*/
- public Observable> listByVpnGatewayAsync(final String gatewayName) {
- return listByVpnGatewayWithServiceResponseAsync(gatewayName)
+ public Observable> listByVpnGatewayAsync(final String resourceGroupName, final String gatewayName) {
+ return listByVpnGatewayWithServiceResponseAsync(resourceGroupName, gatewayName)
.map(new Func1>, Page>() {
@Override
public Page call(ServiceResponse> response) {
@@ -588,12 +591,13 @@ public Page call(ServiceResponse> r
/**
* Retrieves all vpn connections for a particular virtual wan vpn gateway.
*
+ * @param resourceGroupName The resource group name of the VpnGateway.
* @param gatewayName The name of the gateway.
* @throws IllegalArgumentException thrown if parameters fail the validation
* @return the observable to the PagedList<VpnConnectionInner> object
*/
- public Observable>> listByVpnGatewayWithServiceResponseAsync(final String gatewayName) {
- return listByVpnGatewaySinglePageAsync(gatewayName)
+ public Observable>> listByVpnGatewayWithServiceResponseAsync(final String resourceGroupName, final String gatewayName) {
+ return listByVpnGatewaySinglePageAsync(resourceGroupName, gatewayName)
.concatMap(new Func1>, Observable>>>() {
@Override
public Observable>> call(ServiceResponse> page) {
@@ -609,19 +613,23 @@ public Observable>> call(ServiceRespons
/**
* Retrieves all vpn connections for a particular virtual wan vpn gateway.
*
+ ServiceResponse> * @param resourceGroupName The resource group name of the VpnGateway.
ServiceResponse> * @param gatewayName The name of the gateway.
* @throws IllegalArgumentException thrown if parameters fail the validation
* @return the PagedList<VpnConnectionInner> object wrapped in {@link ServiceResponse} if successful.
*/
- public Observable>> listByVpnGatewaySinglePageAsync(final String gatewayName) {
+ public Observable>> listByVpnGatewaySinglePageAsync(final String resourceGroupName, final String gatewayName) {
if (this.client.subscriptionId() == null) {
throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
}
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
if (gatewayName == null) {
throw new IllegalArgumentException("Parameter gatewayName is required and cannot be null.");
}
final String apiVersion = "2018-04-01";
- return service.listByVpnGateway(this.client.subscriptionId(), gatewayName, apiVersion, this.client.acceptLanguage(), this.client.userAgent())
+ return service.listByVpnGateway(this.client.subscriptionId(), resourceGroupName, gatewayName, apiVersion, this.client.acceptLanguage(), this.client.userAgent())
.flatMap(new Func1, Observable>>>() {
@Override
public Observable>> call(Response response) {
diff --git a/network/resource-manager/v2018_06_01/pom.xml b/network/resource-manager/v2018_06_01/pom.xml
new file mode 100644
index 000000000000..3f4d33385d81
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/pom.xml
@@ -0,0 +1,133 @@
+
+
+ 4.0.0
+ com.microsoft.azure.network.v2018_06_01
+
+ com.microsoft.azure
+ azure-arm-parent
+ 0.0.2-beta
+ ../../../pom.xml
+
+ azure-mgmt-network
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for Network Management
+ This package contains Microsoft Network Management SDK.
+ https://github.com/Azure/azure-libraries-for-java
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+ scm:git:https://github.com/Azure/azure-libraries-for-java
+ scm:git:git@github.com:Azure/azure-libraries-for-java.git
+ HEAD
+
+
+ UTF-8
+
+
+
+
+ microsoft
+ Microsoft
+
+
+
+
+ com.microsoft.azure
+ azure-client-runtime
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+
+
+ junit
+ junit
+ test
+
+
+ com.microsoft.azure
+ azure-client-authentication
+ test
+
+
+ com.microsoft.azure
+ azure-mgmt-resources
+ test
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+ test-jar
+ test
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ true
+ true
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+ 1.7
+ 1.7
+
+
+ com.microsoft.azure.management.apigeneration.LangDefinitionProcessor
+
+
+ true
+ true
+
+ true
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.8
+
+ *.implementation.*;*.utils.*;com.microsoft.schemas._2003._10.serialization;*.blob.core.search
+
+
+ /**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ */
+ ]]>
+
+
+
+
+
+
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/Access.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/Access.java
new file mode 100644
index 000000000000..1d7d3583b2a5
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/Access.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.network.v2018_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for Access.
+ */
+public final class Access extends ExpandableStringEnum {
+ /** Static value Allow for Access. */
+ public static final Access ALLOW = fromString("Allow");
+
+ /** Static value Deny for Access. */
+ public static final Access DENY = fromString("Deny");
+
+ /**
+ * Creates or finds a Access from its string representation.
+ * @param name a name to look for
+ * @return the corresponding Access
+ */
+ @JsonCreator
+ public static Access fromString(String name) {
+ return fromString(name, Access.class);
+ }
+
+ /**
+ * @return known Access values
+ */
+ public static Collection values() {
+ return values(Access.class);
+ }
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AddressSpace.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AddressSpace.java
new file mode 100644
index 000000000000..4f8fbb88d4bf
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AddressSpace.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * AddressSpace contains an array of IP address ranges that can be used by
+ * subnets of the virtual network.
+ */
+public class AddressSpace {
+ /**
+ * A list of address blocks reserved for this virtual network in CIDR
+ * notation.
+ */
+ @JsonProperty(value = "addressPrefixes")
+ private List addressPrefixes;
+
+ /**
+ * Get a list of address blocks reserved for this virtual network in CIDR notation.
+ *
+ * @return the addressPrefixes value
+ */
+ public List addressPrefixes() {
+ return this.addressPrefixes;
+ }
+
+ /**
+ * Set a list of address blocks reserved for this virtual network in CIDR notation.
+ *
+ * @param addressPrefixes the addressPrefixes value to set
+ * @return the AddressSpace object itself.
+ */
+ public AddressSpace withAddressPrefixes(List addressPrefixes) {
+ this.addressPrefixes = addressPrefixes;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGateway.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGateway.java
new file mode 100644
index 000000000000..8be2fe0e81f7
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGateway.java
@@ -0,0 +1,624 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.Resource;
+import com.microsoft.azure.arm.resources.models.GroupableResourceCore;
+import com.microsoft.azure.arm.resources.models.HasResourceGroup;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.network.v2018_06_01.implementation.NetworkManager;
+import java.util.List;
+import com.microsoft.azure.management.network.v2018_06_01.implementation.ApplicationGatewayInner;
+
+/**
+ * Type representing ApplicationGateway.
+ */
+public interface ApplicationGateway extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the authenticationCertificates value.
+ */
+ List authenticationCertificates();
+
+ /**
+ * @return the autoscaleConfiguration value.
+ */
+ ApplicationGatewayAutoscaleConfiguration autoscaleConfiguration();
+
+ /**
+ * @return the backendAddressPools value.
+ */
+ List backendAddressPools();
+
+ /**
+ * @return the backendHttpSettingsCollection value.
+ */
+ List backendHttpSettingsCollection();
+
+ /**
+ * @return the enableFips value.
+ */
+ Boolean enableFips();
+
+ /**
+ * @return the enableHttp2 value.
+ */
+ Boolean enableHttp2();
+
+ /**
+ * @return the etag value.
+ */
+ String etag();
+
+ /**
+ * @return the frontendIPConfigurations value.
+ */
+ List frontendIPConfigurations();
+
+ /**
+ * @return the frontendPorts value.
+ */
+ List frontendPorts();
+
+ /**
+ * @return the gatewayIPConfigurations value.
+ */
+ List gatewayIPConfigurations();
+
+ /**
+ * @return the httpListeners value.
+ */
+ List httpListeners();
+
+ /**
+ * @return the operationalState value.
+ */
+ ApplicationGatewayOperationalState operationalState();
+
+ /**
+ * @return the probes value.
+ */
+ List probes();
+
+ /**
+ * @return the provisioningState value.
+ */
+ String provisioningState();
+
+ /**
+ * @return the redirectConfigurations value.
+ */
+ List redirectConfigurations();
+
+ /**
+ * @return the requestRoutingRules value.
+ */
+ List requestRoutingRules();
+
+ /**
+ * @return the resourceGuid value.
+ */
+ String resourceGuid();
+
+ /**
+ * @return the sku value.
+ */
+ ApplicationGatewaySku sku();
+
+ /**
+ * @return the sslCertificates value.
+ */
+ List sslCertificates();
+
+ /**
+ * @return the sslPolicy value.
+ */
+ ApplicationGatewaySslPolicy sslPolicy();
+
+ /**
+ * @return the urlPathMaps value.
+ */
+ List urlPathMaps();
+
+ /**
+ * @return the webApplicationFirewallConfiguration value.
+ */
+ ApplicationGatewayWebApplicationFirewallConfiguration webApplicationFirewallConfiguration();
+
+ /**
+ * @return the zones value.
+ */
+ List zones();
+
+ /**
+ * The entirety of the ApplicationGateway definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ApplicationGateway definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ApplicationGateway definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the ApplicationGateway definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * The stage of the applicationgateway update allowing to specify AuthenticationCertificates.
+ */
+ interface WithAuthenticationCertificates {
+ /**
+ * Specifies authenticationCertificates.
+ */
+ WithCreate withAuthenticationCertificates(List authenticationCertificates);
+ }
+
+ /**
+ * The stage of the applicationgateway update allowing to specify AutoscaleConfiguration.
+ */
+ interface WithAutoscaleConfiguration {
+ /**
+ * Specifies autoscaleConfiguration.
+ */
+ WithCreate withAutoscaleConfiguration(ApplicationGatewayAutoscaleConfiguration autoscaleConfiguration);
+ }
+
+ /**
+ * The stage of the applicationgateway update allowing to specify BackendAddressPools.
+ */
+ interface WithBackendAddressPools {
+ /**
+ * Specifies backendAddressPools.
+ */
+ WithCreate withBackendAddressPools(List backendAddressPools);
+ }
+
+ /**
+ * The stage of the applicationgateway update allowing to specify BackendHttpSettingsCollection.
+ */
+ interface WithBackendHttpSettingsCollection {
+ /**
+ * Specifies backendHttpSettingsCollection.
+ */
+ WithCreate withBackendHttpSettingsCollection(List backendHttpSettingsCollection);
+ }
+
+ /**
+ * The stage of the applicationgateway update allowing to specify EnableFips.
+ */
+ interface WithEnableFips {
+ /**
+ * Specifies enableFips.
+ */
+ WithCreate withEnableFips(Boolean enableFips);
+ }
+
+ /**
+ * The stage of the applicationgateway update allowing to specify EnableHttp2.
+ */
+ interface WithEnableHttp2 {
+ /**
+ * Specifies enableHttp2.
+ */
+ WithCreate withEnableHttp2(Boolean enableHttp2);
+ }
+
+ /**
+ * The stage of the applicationgateway update allowing to specify Etag.
+ */
+ interface WithEtag {
+ /**
+ * Specifies etag.
+ */
+ WithCreate withEtag(String etag);
+ }
+
+ /**
+ * The stage of the applicationgateway update allowing to specify FrontendIPConfigurations.
+ */
+ interface WithFrontendIPConfigurations {
+ /**
+ * Specifies frontendIPConfigurations.
+ */
+ WithCreate withFrontendIPConfigurations(List frontendIPConfigurations);
+ }
+
+ /**
+ * The stage of the applicationgateway update allowing to specify FrontendPorts.
+ */
+ interface WithFrontendPorts {
+ /**
+ * Specifies frontendPorts.
+ */
+ WithCreate withFrontendPorts(List frontendPorts);
+ }
+
+ /**
+ * The stage of the applicationgateway update allowing to specify GatewayIPConfigurations.
+ */
+ interface WithGatewayIPConfigurations {
+ /**
+ * Specifies gatewayIPConfigurations.
+ */
+ WithCreate withGatewayIPConfigurations(List gatewayIPConfigurations);
+ }
+
+ /**
+ * The stage of the applicationgateway update allowing to specify HttpListeners.
+ */
+ interface WithHttpListeners {
+ /**
+ * Specifies httpListeners.
+ */
+ WithCreate withHttpListeners(List httpListeners);
+ }
+
+ /**
+ * The stage of the applicationgateway update allowing to specify Probes.
+ */
+ interface WithProbes {
+ /**
+ * Specifies probes.
+ */
+ WithCreate withProbes(List probes);
+ }
+
+ /**
+ * The stage of the applicationgateway update allowing to specify ProvisioningState.
+ */
+ interface WithProvisioningState {
+ /**
+ * Specifies provisioningState.
+ */
+ WithCreate withProvisioningState(String provisioningState);
+ }
+
+ /**
+ * The stage of the applicationgateway update allowing to specify RedirectConfigurations.
+ */
+ interface WithRedirectConfigurations {
+ /**
+ * Specifies redirectConfigurations.
+ */
+ WithCreate withRedirectConfigurations(List redirectConfigurations);
+ }
+
+ /**
+ * The stage of the applicationgateway update allowing to specify RequestRoutingRules.
+ */
+ interface WithRequestRoutingRules {
+ /**
+ * Specifies requestRoutingRules.
+ */
+ WithCreate withRequestRoutingRules(List requestRoutingRules);
+ }
+
+ /**
+ * The stage of the applicationgateway update allowing to specify ResourceGuid.
+ */
+ interface WithResourceGuid {
+ /**
+ * Specifies resourceGuid.
+ */
+ WithCreate withResourceGuid(String resourceGuid);
+ }
+
+ /**
+ * The stage of the applicationgateway update allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ */
+ WithCreate withSku(ApplicationGatewaySku sku);
+ }
+
+ /**
+ * The stage of the applicationgateway update allowing to specify SslCertificates.
+ */
+ interface WithSslCertificates {
+ /**
+ * Specifies sslCertificates.
+ */
+ WithCreate withSslCertificates(List sslCertificates);
+ }
+
+ /**
+ * The stage of the applicationgateway update allowing to specify SslPolicy.
+ */
+ interface WithSslPolicy {
+ /**
+ * Specifies sslPolicy.
+ */
+ WithCreate withSslPolicy(ApplicationGatewaySslPolicy sslPolicy);
+ }
+
+ /**
+ * The stage of the applicationgateway update allowing to specify UrlPathMaps.
+ */
+ interface WithUrlPathMaps {
+ /**
+ * Specifies urlPathMaps.
+ */
+ WithCreate withUrlPathMaps(List urlPathMaps);
+ }
+
+ /**
+ * The stage of the applicationgateway update allowing to specify WebApplicationFirewallConfiguration.
+ */
+ interface WithWebApplicationFirewallConfiguration {
+ /**
+ * Specifies webApplicationFirewallConfiguration.
+ */
+ WithCreate withWebApplicationFirewallConfiguration(ApplicationGatewayWebApplicationFirewallConfiguration webApplicationFirewallConfiguration);
+ }
+
+ /**
+ * The stage of the applicationgateway update allowing to specify Zones.
+ */
+ interface WithZones {
+ /**
+ * Specifies zones.
+ */
+ WithCreate withZones(List zones);
+ }
+
+ /**
+ * 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.WithAuthenticationCertificates, DefinitionStages.WithAutoscaleConfiguration, DefinitionStages.WithBackendAddressPools, DefinitionStages.WithBackendHttpSettingsCollection, DefinitionStages.WithEnableFips, DefinitionStages.WithEnableHttp2, DefinitionStages.WithEtag, DefinitionStages.WithFrontendIPConfigurations, DefinitionStages.WithFrontendPorts, DefinitionStages.WithGatewayIPConfigurations, DefinitionStages.WithHttpListeners, DefinitionStages.WithProbes, DefinitionStages.WithProvisioningState, DefinitionStages.WithRedirectConfigurations, DefinitionStages.WithRequestRoutingRules, DefinitionStages.WithResourceGuid, DefinitionStages.WithSku, DefinitionStages.WithSslCertificates, DefinitionStages.WithSslPolicy, DefinitionStages.WithUrlPathMaps, DefinitionStages.WithWebApplicationFirewallConfiguration, DefinitionStages.WithZones {
+ }
+ }
+ /**
+ * The template for a ApplicationGateway update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags, UpdateStages.WithAuthenticationCertificates, UpdateStages.WithAutoscaleConfiguration, UpdateStages.WithBackendAddressPools, UpdateStages.WithBackendHttpSettingsCollection, UpdateStages.WithEnableFips, UpdateStages.WithEnableHttp2, UpdateStages.WithEtag, UpdateStages.WithFrontendIPConfigurations, UpdateStages.WithFrontendPorts, UpdateStages.WithGatewayIPConfigurations, UpdateStages.WithHttpListeners, UpdateStages.WithProbes, UpdateStages.WithProvisioningState, UpdateStages.WithRedirectConfigurations, UpdateStages.WithRequestRoutingRules, UpdateStages.WithResourceGuid, UpdateStages.WithSku, UpdateStages.WithSslCertificates, UpdateStages.WithSslPolicy, UpdateStages.WithUrlPathMaps, UpdateStages.WithWebApplicationFirewallConfiguration, UpdateStages.WithZones {
+ }
+
+ /**
+ * Grouping of ApplicationGateway update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the applicationgateway {0} allowing to specify AuthenticationCertificates.
+ */
+ interface WithAuthenticationCertificates {
+ /**
+ * Specifies authenticationCertificates.
+ */
+ Update withAuthenticationCertificates(List authenticationCertificates);
+ }
+
+ /**
+ * The stage of the applicationgateway {0} allowing to specify AutoscaleConfiguration.
+ */
+ interface WithAutoscaleConfiguration {
+ /**
+ * Specifies autoscaleConfiguration.
+ */
+ Update withAutoscaleConfiguration(ApplicationGatewayAutoscaleConfiguration autoscaleConfiguration);
+ }
+
+ /**
+ * The stage of the applicationgateway {0} allowing to specify BackendAddressPools.
+ */
+ interface WithBackendAddressPools {
+ /**
+ * Specifies backendAddressPools.
+ */
+ Update withBackendAddressPools(List backendAddressPools);
+ }
+
+ /**
+ * The stage of the applicationgateway {0} allowing to specify BackendHttpSettingsCollection.
+ */
+ interface WithBackendHttpSettingsCollection {
+ /**
+ * Specifies backendHttpSettingsCollection.
+ */
+ Update withBackendHttpSettingsCollection(List backendHttpSettingsCollection);
+ }
+
+ /**
+ * The stage of the applicationgateway {0} allowing to specify EnableFips.
+ */
+ interface WithEnableFips {
+ /**
+ * Specifies enableFips.
+ */
+ Update withEnableFips(Boolean enableFips);
+ }
+
+ /**
+ * The stage of the applicationgateway {0} allowing to specify EnableHttp2.
+ */
+ interface WithEnableHttp2 {
+ /**
+ * Specifies enableHttp2.
+ */
+ Update withEnableHttp2(Boolean enableHttp2);
+ }
+
+ /**
+ * The stage of the applicationgateway {0} allowing to specify Etag.
+ */
+ interface WithEtag {
+ /**
+ * Specifies etag.
+ */
+ Update withEtag(String etag);
+ }
+
+ /**
+ * The stage of the applicationgateway {0} allowing to specify FrontendIPConfigurations.
+ */
+ interface WithFrontendIPConfigurations {
+ /**
+ * Specifies frontendIPConfigurations.
+ */
+ Update withFrontendIPConfigurations(List frontendIPConfigurations);
+ }
+
+ /**
+ * The stage of the applicationgateway {0} allowing to specify FrontendPorts.
+ */
+ interface WithFrontendPorts {
+ /**
+ * Specifies frontendPorts.
+ */
+ Update withFrontendPorts(List frontendPorts);
+ }
+
+ /**
+ * The stage of the applicationgateway {0} allowing to specify GatewayIPConfigurations.
+ */
+ interface WithGatewayIPConfigurations {
+ /**
+ * Specifies gatewayIPConfigurations.
+ */
+ Update withGatewayIPConfigurations(List gatewayIPConfigurations);
+ }
+
+ /**
+ * The stage of the applicationgateway {0} allowing to specify HttpListeners.
+ */
+ interface WithHttpListeners {
+ /**
+ * Specifies httpListeners.
+ */
+ Update withHttpListeners(List httpListeners);
+ }
+
+ /**
+ * The stage of the applicationgateway {0} allowing to specify Probes.
+ */
+ interface WithProbes {
+ /**
+ * Specifies probes.
+ */
+ Update withProbes(List probes);
+ }
+
+ /**
+ * The stage of the applicationgateway {0} allowing to specify ProvisioningState.
+ */
+ interface WithProvisioningState {
+ /**
+ * Specifies provisioningState.
+ */
+ Update withProvisioningState(String provisioningState);
+ }
+
+ /**
+ * The stage of the applicationgateway {0} allowing to specify RedirectConfigurations.
+ */
+ interface WithRedirectConfigurations {
+ /**
+ * Specifies redirectConfigurations.
+ */
+ Update withRedirectConfigurations(List redirectConfigurations);
+ }
+
+ /**
+ * The stage of the applicationgateway {0} allowing to specify RequestRoutingRules.
+ */
+ interface WithRequestRoutingRules {
+ /**
+ * Specifies requestRoutingRules.
+ */
+ Update withRequestRoutingRules(List requestRoutingRules);
+ }
+
+ /**
+ * The stage of the applicationgateway {0} allowing to specify ResourceGuid.
+ */
+ interface WithResourceGuid {
+ /**
+ * Specifies resourceGuid.
+ */
+ Update withResourceGuid(String resourceGuid);
+ }
+
+ /**
+ * The stage of the applicationgateway {0} allowing to specify Sku.
+ */
+ interface WithSku {
+ /**
+ * Specifies sku.
+ */
+ Update withSku(ApplicationGatewaySku sku);
+ }
+
+ /**
+ * The stage of the applicationgateway {0} allowing to specify SslCertificates.
+ */
+ interface WithSslCertificates {
+ /**
+ * Specifies sslCertificates.
+ */
+ Update withSslCertificates(List sslCertificates);
+ }
+
+ /**
+ * The stage of the applicationgateway {0} allowing to specify SslPolicy.
+ */
+ interface WithSslPolicy {
+ /**
+ * Specifies sslPolicy.
+ */
+ Update withSslPolicy(ApplicationGatewaySslPolicy sslPolicy);
+ }
+
+ /**
+ * The stage of the applicationgateway {0} allowing to specify UrlPathMaps.
+ */
+ interface WithUrlPathMaps {
+ /**
+ * Specifies urlPathMaps.
+ */
+ Update withUrlPathMaps(List urlPathMaps);
+ }
+
+ /**
+ * The stage of the applicationgateway {0} allowing to specify WebApplicationFirewallConfiguration.
+ */
+ interface WithWebApplicationFirewallConfiguration {
+ /**
+ * Specifies webApplicationFirewallConfiguration.
+ */
+ Update withWebApplicationFirewallConfiguration(ApplicationGatewayWebApplicationFirewallConfiguration webApplicationFirewallConfiguration);
+ }
+
+ /**
+ * The stage of the applicationgateway {0} allowing to specify Zones.
+ */
+ interface WithZones {
+ /**
+ * Specifies zones.
+ */
+ Update withZones(List zones);
+ }
+
+ }
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayAuthenticationCertificate.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayAuthenticationCertificate.java
new file mode 100644
index 000000000000..256308ee6fa6
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayAuthenticationCertificate.java
@@ -0,0 +1,152 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.SubResource;
+
+/**
+ * Authentication certificates of an application gateway.
+ */
+@JsonFlatten
+public class ApplicationGatewayAuthenticationCertificate extends SubResource {
+ /**
+ * Certificate public data.
+ */
+ @JsonProperty(value = "properties.data")
+ private String data;
+
+ /**
+ * Provisioning state of the authentication certificate resource. Possible
+ * values are: 'Updating', 'Deleting', and 'Failed'.
+ */
+ @JsonProperty(value = "properties.provisioningState")
+ private String provisioningState;
+
+ /**
+ * Name of the authentication certificate that is unique within an
+ * Application Gateway.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * A unique read-only string that changes whenever the resource is updated.
+ */
+ @JsonProperty(value = "etag")
+ private String etag;
+
+ /**
+ * Type of the resource.
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /**
+ * Get certificate public data.
+ *
+ * @return the data value
+ */
+ public String data() {
+ return this.data;
+ }
+
+ /**
+ * Set certificate public data.
+ *
+ * @param data the data value to set
+ * @return the ApplicationGatewayAuthenticationCertificate object itself.
+ */
+ public ApplicationGatewayAuthenticationCertificate withData(String data) {
+ this.data = data;
+ return this;
+ }
+
+ /**
+ * Get provisioning state of the authentication certificate resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Set provisioning state of the authentication certificate resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
+ *
+ * @param provisioningState the provisioningState value to set
+ * @return the ApplicationGatewayAuthenticationCertificate object itself.
+ */
+ public ApplicationGatewayAuthenticationCertificate withProvisioningState(String provisioningState) {
+ this.provisioningState = provisioningState;
+ return this;
+ }
+
+ /**
+ * Get name of the authentication certificate that is unique within an Application Gateway.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the authentication certificate that is unique within an Application Gateway.
+ *
+ * @param name the name value to set
+ * @return the ApplicationGatewayAuthenticationCertificate object itself.
+ */
+ public ApplicationGatewayAuthenticationCertificate withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get a unique read-only string that changes whenever the resource is updated.
+ *
+ * @return the etag value
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set a unique read-only string that changes whenever the resource is updated.
+ *
+ * @param etag the etag value to set
+ * @return the ApplicationGatewayAuthenticationCertificate object itself.
+ */
+ public ApplicationGatewayAuthenticationCertificate withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * Get type of the resource.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set type of the resource.
+ *
+ * @param type the type value to set
+ * @return the ApplicationGatewayAuthenticationCertificate object itself.
+ */
+ public ApplicationGatewayAuthenticationCertificate withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayAutoscaleBounds.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayAutoscaleBounds.java
new file mode 100644
index 000000000000..f671876a392d
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayAutoscaleBounds.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.network.v2018_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Application Gateway autoscale bounds on number of Application Gateway
+ * instance.
+ */
+public class ApplicationGatewayAutoscaleBounds {
+ /**
+ * Lower bound on number of Application Gateway instances.
+ */
+ @JsonProperty(value = "min", required = true)
+ private int min;
+
+ /**
+ * Upper bound on number of Application Gateway instances.
+ */
+ @JsonProperty(value = "max", required = true)
+ private int max;
+
+ /**
+ * Get lower bound on number of Application Gateway instances.
+ *
+ * @return the min value
+ */
+ public int min() {
+ return this.min;
+ }
+
+ /**
+ * Set lower bound on number of Application Gateway instances.
+ *
+ * @param min the min value to set
+ * @return the ApplicationGatewayAutoscaleBounds object itself.
+ */
+ public ApplicationGatewayAutoscaleBounds withMin(int min) {
+ this.min = min;
+ return this;
+ }
+
+ /**
+ * Get upper bound on number of Application Gateway instances.
+ *
+ * @return the max value
+ */
+ public int max() {
+ return this.max;
+ }
+
+ /**
+ * Set upper bound on number of Application Gateway instances.
+ *
+ * @param max the max value to set
+ * @return the ApplicationGatewayAutoscaleBounds object itself.
+ */
+ public ApplicationGatewayAutoscaleBounds withMax(int max) {
+ this.max = max;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayAutoscaleConfiguration.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayAutoscaleConfiguration.java
new file mode 100644
index 000000000000..14904eea419f
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayAutoscaleConfiguration.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.network.v2018_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Application Gateway autoscale configuration.
+ */
+public class ApplicationGatewayAutoscaleConfiguration {
+ /**
+ * Autoscale bounds.
+ */
+ @JsonProperty(value = "bounds", required = true)
+ private ApplicationGatewayAutoscaleBounds bounds;
+
+ /**
+ * Get autoscale bounds.
+ *
+ * @return the bounds value
+ */
+ public ApplicationGatewayAutoscaleBounds bounds() {
+ return this.bounds;
+ }
+
+ /**
+ * Set autoscale bounds.
+ *
+ * @param bounds the bounds value to set
+ * @return the ApplicationGatewayAutoscaleConfiguration object itself.
+ */
+ public ApplicationGatewayAutoscaleConfiguration withBounds(ApplicationGatewayAutoscaleBounds bounds) {
+ this.bounds = bounds;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayAvailableSslOptions.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayAvailableSslOptions.java
new file mode 100644
index 000000000000..f1ecfe471af1
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayAvailableSslOptions.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.network.v2018_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.network.v2018_06_01.implementation.NetworkManager;
+import com.microsoft.azure.management.network.v2018_06_01.implementation.ApplicationGatewayAvailableSslOptionsInner;
+import java.util.List;
+import com.microsoft.azure.SubResource;
+import java.util.Map;
+
+/**
+ * Type representing ApplicationGatewayAvailableSslOptions.
+ */
+public interface ApplicationGatewayAvailableSslOptions extends HasInner, HasManager {
+ /**
+ * @return the availableCipherSuites value.
+ */
+ List availableCipherSuites();
+
+ /**
+ * @return the availableProtocols value.
+ */
+ List availableProtocols();
+
+ /**
+ * @return the defaultPolicy value.
+ */
+ ApplicationGatewaySslPolicyName defaultPolicy();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the predefinedPolicies value.
+ */
+ List predefinedPolicies();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayAvailableWafRuleSetsResult.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayAvailableWafRuleSetsResult.java
new file mode 100644
index 000000000000..56722b9f390f
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayAvailableWafRuleSetsResult.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.network.v2018_06_01.implementation.NetworkManager;
+import com.microsoft.azure.management.network.v2018_06_01.implementation.ApplicationGatewayAvailableWafRuleSetsResultInner;
+import java.util.List;
+
+/**
+ * Type representing ApplicationGatewayAvailableWafRuleSetsResult.
+ */
+public interface ApplicationGatewayAvailableWafRuleSetsResult extends HasInner, HasManager {
+ /**
+ * @return the value value.
+ */
+ List value();
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayBackendAddress.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayBackendAddress.java
new file mode 100644
index 000000000000..96e14e62a819
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayBackendAddress.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.network.v2018_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Backend address of an application gateway.
+ */
+public class ApplicationGatewayBackendAddress {
+ /**
+ * Fully qualified domain name (FQDN).
+ */
+ @JsonProperty(value = "fqdn")
+ private String fqdn;
+
+ /**
+ * IP address.
+ */
+ @JsonProperty(value = "ipAddress")
+ private String ipAddress;
+
+ /**
+ * Get fully qualified domain name (FQDN).
+ *
+ * @return the fqdn value
+ */
+ public String fqdn() {
+ return this.fqdn;
+ }
+
+ /**
+ * Set fully qualified domain name (FQDN).
+ *
+ * @param fqdn the fqdn value to set
+ * @return the ApplicationGatewayBackendAddress object itself.
+ */
+ public ApplicationGatewayBackendAddress withFqdn(String fqdn) {
+ this.fqdn = fqdn;
+ return this;
+ }
+
+ /**
+ * Get iP address.
+ *
+ * @return the ipAddress value
+ */
+ public String ipAddress() {
+ return this.ipAddress;
+ }
+
+ /**
+ * Set iP address.
+ *
+ * @param ipAddress the ipAddress value to set
+ * @return the ApplicationGatewayBackendAddress object itself.
+ */
+ public ApplicationGatewayBackendAddress withIpAddress(String ipAddress) {
+ this.ipAddress = ipAddress;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayBackendAddressPool.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayBackendAddressPool.java
new file mode 100644
index 000000000000..1788b3259080
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayBackendAddressPool.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.network.v2018_06_01;
+
+import java.util.List;
+import com.microsoft.azure.management.network.v2018_06_01.implementation.NetworkInterfaceIPConfigurationInner;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.SubResource;
+
+/**
+ * Backend Address Pool of an application gateway.
+ */
+@JsonFlatten
+public class ApplicationGatewayBackendAddressPool extends SubResource {
+ /**
+ * Collection of references to IPs defined in network interfaces.
+ */
+ @JsonProperty(value = "properties.backendIPConfigurations")
+ private List backendIPConfigurations;
+
+ /**
+ * Backend addresses.
+ */
+ @JsonProperty(value = "properties.backendAddresses")
+ private List backendAddresses;
+
+ /**
+ * Provisioning state of the backend address pool resource. Possible values
+ * are: 'Updating', 'Deleting', and 'Failed'.
+ */
+ @JsonProperty(value = "properties.provisioningState")
+ private String provisioningState;
+
+ /**
+ * Name of the backend address pool that is unique within an Application
+ * Gateway.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * A unique read-only string that changes whenever the resource is updated.
+ */
+ @JsonProperty(value = "etag")
+ private String etag;
+
+ /**
+ * Type of the resource.
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /**
+ * Get collection of references to IPs defined in network interfaces.
+ *
+ * @return the backendIPConfigurations value
+ */
+ public List backendIPConfigurations() {
+ return this.backendIPConfigurations;
+ }
+
+ /**
+ * Set collection of references to IPs defined in network interfaces.
+ *
+ * @param backendIPConfigurations the backendIPConfigurations value to set
+ * @return the ApplicationGatewayBackendAddressPool object itself.
+ */
+ public ApplicationGatewayBackendAddressPool withBackendIPConfigurations(List backendIPConfigurations) {
+ this.backendIPConfigurations = backendIPConfigurations;
+ return this;
+ }
+
+ /**
+ * Get backend addresses.
+ *
+ * @return the backendAddresses value
+ */
+ public List backendAddresses() {
+ return this.backendAddresses;
+ }
+
+ /**
+ * Set backend addresses.
+ *
+ * @param backendAddresses the backendAddresses value to set
+ * @return the ApplicationGatewayBackendAddressPool object itself.
+ */
+ public ApplicationGatewayBackendAddressPool withBackendAddresses(List backendAddresses) {
+ this.backendAddresses = backendAddresses;
+ return this;
+ }
+
+ /**
+ * Get provisioning state of the backend address pool resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Set provisioning state of the backend address pool resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
+ *
+ * @param provisioningState the provisioningState value to set
+ * @return the ApplicationGatewayBackendAddressPool object itself.
+ */
+ public ApplicationGatewayBackendAddressPool withProvisioningState(String provisioningState) {
+ this.provisioningState = provisioningState;
+ return this;
+ }
+
+ /**
+ * Get name of the backend address pool that is unique within an Application Gateway.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the backend address pool that is unique within an Application Gateway.
+ *
+ * @param name the name value to set
+ * @return the ApplicationGatewayBackendAddressPool object itself.
+ */
+ public ApplicationGatewayBackendAddressPool withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get a unique read-only string that changes whenever the resource is updated.
+ *
+ * @return the etag value
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set a unique read-only string that changes whenever the resource is updated.
+ *
+ * @param etag the etag value to set
+ * @return the ApplicationGatewayBackendAddressPool object itself.
+ */
+ public ApplicationGatewayBackendAddressPool withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * Get type of the resource.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set type of the resource.
+ *
+ * @param type the type value to set
+ * @return the ApplicationGatewayBackendAddressPool object itself.
+ */
+ public ApplicationGatewayBackendAddressPool withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayBackendHealth.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayBackendHealth.java
new file mode 100644
index 000000000000..a7d82ba4477c
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayBackendHealth.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.network.v2018_06_01.implementation.NetworkManager;
+import com.microsoft.azure.management.network.v2018_06_01.implementation.ApplicationGatewayBackendHealthInner;
+import java.util.List;
+
+/**
+ * Type representing ApplicationGatewayBackendHealth.
+ */
+public interface ApplicationGatewayBackendHealth extends HasInner, HasManager {
+ /**
+ * @return the backendAddressPools value.
+ */
+ List backendAddressPools();
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayBackendHealthHttpSettings.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayBackendHealthHttpSettings.java
new file mode 100644
index 000000000000..e122c7d3bb62
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayBackendHealthHttpSettings.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.network.v2018_06_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Application gateway BackendHealthHttp settings.
+ */
+public class ApplicationGatewayBackendHealthHttpSettings {
+ /**
+ * Reference of an ApplicationGatewayBackendHttpSettings resource.
+ */
+ @JsonProperty(value = "backendHttpSettings")
+ private ApplicationGatewayBackendHttpSettings backendHttpSettings;
+
+ /**
+ * List of ApplicationGatewayBackendHealthServer resources.
+ */
+ @JsonProperty(value = "servers")
+ private List servers;
+
+ /**
+ * Get reference of an ApplicationGatewayBackendHttpSettings resource.
+ *
+ * @return the backendHttpSettings value
+ */
+ public ApplicationGatewayBackendHttpSettings backendHttpSettings() {
+ return this.backendHttpSettings;
+ }
+
+ /**
+ * Set reference of an ApplicationGatewayBackendHttpSettings resource.
+ *
+ * @param backendHttpSettings the backendHttpSettings value to set
+ * @return the ApplicationGatewayBackendHealthHttpSettings object itself.
+ */
+ public ApplicationGatewayBackendHealthHttpSettings withBackendHttpSettings(ApplicationGatewayBackendHttpSettings backendHttpSettings) {
+ this.backendHttpSettings = backendHttpSettings;
+ return this;
+ }
+
+ /**
+ * Get list of ApplicationGatewayBackendHealthServer resources.
+ *
+ * @return the servers value
+ */
+ public List servers() {
+ return this.servers;
+ }
+
+ /**
+ * Set list of ApplicationGatewayBackendHealthServer resources.
+ *
+ * @param servers the servers value to set
+ * @return the ApplicationGatewayBackendHealthHttpSettings object itself.
+ */
+ public ApplicationGatewayBackendHealthHttpSettings withServers(List servers) {
+ this.servers = servers;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayBackendHealthPool.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayBackendHealthPool.java
new file mode 100644
index 000000000000..62cba4e13c4a
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayBackendHealthPool.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.network.v2018_06_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Application gateway BackendHealth pool.
+ */
+public class ApplicationGatewayBackendHealthPool {
+ /**
+ * Reference of an ApplicationGatewayBackendAddressPool resource.
+ */
+ @JsonProperty(value = "backendAddressPool")
+ private ApplicationGatewayBackendAddressPool backendAddressPool;
+
+ /**
+ * List of ApplicationGatewayBackendHealthHttpSettings resources.
+ */
+ @JsonProperty(value = "backendHttpSettingsCollection")
+ private List backendHttpSettingsCollection;
+
+ /**
+ * Get reference of an ApplicationGatewayBackendAddressPool resource.
+ *
+ * @return the backendAddressPool value
+ */
+ public ApplicationGatewayBackendAddressPool backendAddressPool() {
+ return this.backendAddressPool;
+ }
+
+ /**
+ * Set reference of an ApplicationGatewayBackendAddressPool resource.
+ *
+ * @param backendAddressPool the backendAddressPool value to set
+ * @return the ApplicationGatewayBackendHealthPool object itself.
+ */
+ public ApplicationGatewayBackendHealthPool withBackendAddressPool(ApplicationGatewayBackendAddressPool backendAddressPool) {
+ this.backendAddressPool = backendAddressPool;
+ return this;
+ }
+
+ /**
+ * Get list of ApplicationGatewayBackendHealthHttpSettings resources.
+ *
+ * @return the backendHttpSettingsCollection value
+ */
+ public List backendHttpSettingsCollection() {
+ return this.backendHttpSettingsCollection;
+ }
+
+ /**
+ * Set list of ApplicationGatewayBackendHealthHttpSettings resources.
+ *
+ * @param backendHttpSettingsCollection the backendHttpSettingsCollection value to set
+ * @return the ApplicationGatewayBackendHealthPool object itself.
+ */
+ public ApplicationGatewayBackendHealthPool withBackendHttpSettingsCollection(List backendHttpSettingsCollection) {
+ this.backendHttpSettingsCollection = backendHttpSettingsCollection;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayBackendHealthServer.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayBackendHealthServer.java
new file mode 100644
index 000000000000..aa02b4e6cac0
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayBackendHealthServer.java
@@ -0,0 +1,97 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import com.microsoft.azure.management.network.v2018_06_01.implementation.NetworkInterfaceIPConfigurationInner;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Application gateway backendhealth http settings.
+ */
+public class ApplicationGatewayBackendHealthServer {
+ /**
+ * IP address or FQDN of backend server.
+ */
+ @JsonProperty(value = "address")
+ private String address;
+
+ /**
+ * Reference of IP configuration of backend server.
+ */
+ @JsonProperty(value = "ipConfiguration")
+ private NetworkInterfaceIPConfigurationInner ipConfiguration;
+
+ /**
+ * Health of backend server. Possible values include: 'Unknown', 'Up',
+ * 'Down', 'Partial', 'Draining'.
+ */
+ @JsonProperty(value = "health")
+ private ApplicationGatewayBackendHealthServerHealth health;
+
+ /**
+ * Get iP address or FQDN of backend server.
+ *
+ * @return the address value
+ */
+ public String address() {
+ return this.address;
+ }
+
+ /**
+ * Set iP address or FQDN of backend server.
+ *
+ * @param address the address value to set
+ * @return the ApplicationGatewayBackendHealthServer object itself.
+ */
+ public ApplicationGatewayBackendHealthServer withAddress(String address) {
+ this.address = address;
+ return this;
+ }
+
+ /**
+ * Get reference of IP configuration of backend server.
+ *
+ * @return the ipConfiguration value
+ */
+ public NetworkInterfaceIPConfigurationInner ipConfiguration() {
+ return this.ipConfiguration;
+ }
+
+ /**
+ * Set reference of IP configuration of backend server.
+ *
+ * @param ipConfiguration the ipConfiguration value to set
+ * @return the ApplicationGatewayBackendHealthServer object itself.
+ */
+ public ApplicationGatewayBackendHealthServer withIpConfiguration(NetworkInterfaceIPConfigurationInner ipConfiguration) {
+ this.ipConfiguration = ipConfiguration;
+ return this;
+ }
+
+ /**
+ * Get health of backend server. Possible values include: 'Unknown', 'Up', 'Down', 'Partial', 'Draining'.
+ *
+ * @return the health value
+ */
+ public ApplicationGatewayBackendHealthServerHealth health() {
+ return this.health;
+ }
+
+ /**
+ * Set health of backend server. Possible values include: 'Unknown', 'Up', 'Down', 'Partial', 'Draining'.
+ *
+ * @param health the health value to set
+ * @return the ApplicationGatewayBackendHealthServer object itself.
+ */
+ public ApplicationGatewayBackendHealthServer withHealth(ApplicationGatewayBackendHealthServerHealth health) {
+ this.health = health;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayBackendHealthServerHealth.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayBackendHealthServerHealth.java
new file mode 100644
index 000000000000..b2f841dc7a25
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayBackendHealthServerHealth.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.network.v2018_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ApplicationGatewayBackendHealthServerHealth.
+ */
+public final class ApplicationGatewayBackendHealthServerHealth extends ExpandableStringEnum {
+ /** Static value Unknown for ApplicationGatewayBackendHealthServerHealth. */
+ public static final ApplicationGatewayBackendHealthServerHealth UNKNOWN = fromString("Unknown");
+
+ /** Static value Up for ApplicationGatewayBackendHealthServerHealth. */
+ public static final ApplicationGatewayBackendHealthServerHealth UP = fromString("Up");
+
+ /** Static value Down for ApplicationGatewayBackendHealthServerHealth. */
+ public static final ApplicationGatewayBackendHealthServerHealth DOWN = fromString("Down");
+
+ /** Static value Partial for ApplicationGatewayBackendHealthServerHealth. */
+ public static final ApplicationGatewayBackendHealthServerHealth PARTIAL = fromString("Partial");
+
+ /** Static value Draining for ApplicationGatewayBackendHealthServerHealth. */
+ public static final ApplicationGatewayBackendHealthServerHealth DRAINING = fromString("Draining");
+
+ /**
+ * Creates or finds a ApplicationGatewayBackendHealthServerHealth from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ApplicationGatewayBackendHealthServerHealth
+ */
+ @JsonCreator
+ public static ApplicationGatewayBackendHealthServerHealth fromString(String name) {
+ return fromString(name, ApplicationGatewayBackendHealthServerHealth.class);
+ }
+
+ /**
+ * @return known ApplicationGatewayBackendHealthServerHealth values
+ */
+ public static Collection values() {
+ return values(ApplicationGatewayBackendHealthServerHealth.class);
+ }
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayBackendHttpSettings.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayBackendHttpSettings.java
new file mode 100644
index 000000000000..3f2230875d9e
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayBackendHttpSettings.java
@@ -0,0 +1,444 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import com.microsoft.azure.SubResource;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Backend address pool settings of an application gateway.
+ */
+@JsonFlatten
+public class ApplicationGatewayBackendHttpSettings extends SubResource {
+ /**
+ * The destination port on the backend.
+ */
+ @JsonProperty(value = "properties.port")
+ private Integer port;
+
+ /**
+ * The protocol used to communicate with the backend. Possible values are
+ * 'Http' and 'Https'. Possible values include: 'Http', 'Https'.
+ */
+ @JsonProperty(value = "properties.protocol")
+ private ApplicationGatewayProtocol protocol;
+
+ /**
+ * Cookie based affinity. Possible values include: 'Enabled', 'Disabled'.
+ */
+ @JsonProperty(value = "properties.cookieBasedAffinity")
+ private ApplicationGatewayCookieBasedAffinity cookieBasedAffinity;
+
+ /**
+ * Request timeout in seconds. Application Gateway will fail the request if
+ * response is not received within RequestTimeout. Acceptable values are
+ * from 1 second to 86400 seconds.
+ */
+ @JsonProperty(value = "properties.requestTimeout")
+ private Integer requestTimeout;
+
+ /**
+ * Probe resource of an application gateway.
+ */
+ @JsonProperty(value = "properties.probe")
+ private SubResource probe;
+
+ /**
+ * Array of references to application gateway authentication certificates.
+ */
+ @JsonProperty(value = "properties.authenticationCertificates")
+ private List authenticationCertificates;
+
+ /**
+ * Connection draining of the backend http settings resource.
+ */
+ @JsonProperty(value = "properties.connectionDraining")
+ private ApplicationGatewayConnectionDraining connectionDraining;
+
+ /**
+ * Host header to be sent to the backend servers.
+ */
+ @JsonProperty(value = "properties.hostName")
+ private String hostName;
+
+ /**
+ * Whether to pick host header should be picked from the host name of the
+ * backend server. Default value is false.
+ */
+ @JsonProperty(value = "properties.pickHostNameFromBackendAddress")
+ private Boolean pickHostNameFromBackendAddress;
+
+ /**
+ * Cookie name to use for the affinity cookie.
+ */
+ @JsonProperty(value = "properties.affinityCookieName")
+ private String affinityCookieName;
+
+ /**
+ * Whether the probe is enabled. Default value is false.
+ */
+ @JsonProperty(value = "properties.probeEnabled")
+ private Boolean probeEnabled;
+
+ /**
+ * Path which should be used as a prefix for all HTTP requests. Null means
+ * no path will be prefixed. Default value is null.
+ */
+ @JsonProperty(value = "properties.path")
+ private String path;
+
+ /**
+ * Provisioning state of the backend http settings resource. Possible
+ * values are: 'Updating', 'Deleting', and 'Failed'.
+ */
+ @JsonProperty(value = "properties.provisioningState")
+ private String provisioningState;
+
+ /**
+ * Name of the backend http settings that is unique within an Application
+ * Gateway.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * A unique read-only string that changes whenever the resource is updated.
+ */
+ @JsonProperty(value = "etag")
+ private String etag;
+
+ /**
+ * Type of the resource.
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /**
+ * Get the destination port on the backend.
+ *
+ * @return the port value
+ */
+ public Integer port() {
+ return this.port;
+ }
+
+ /**
+ * Set the destination port on the backend.
+ *
+ * @param port the port value to set
+ * @return the ApplicationGatewayBackendHttpSettings object itself.
+ */
+ public ApplicationGatewayBackendHttpSettings withPort(Integer port) {
+ this.port = port;
+ return this;
+ }
+
+ /**
+ * Get the protocol used to communicate with the backend. Possible values are 'Http' and 'Https'. Possible values include: 'Http', 'Https'.
+ *
+ * @return the protocol value
+ */
+ public ApplicationGatewayProtocol protocol() {
+ return this.protocol;
+ }
+
+ /**
+ * Set the protocol used to communicate with the backend. Possible values are 'Http' and 'Https'. Possible values include: 'Http', 'Https'.
+ *
+ * @param protocol the protocol value to set
+ * @return the ApplicationGatewayBackendHttpSettings object itself.
+ */
+ public ApplicationGatewayBackendHttpSettings withProtocol(ApplicationGatewayProtocol protocol) {
+ this.protocol = protocol;
+ return this;
+ }
+
+ /**
+ * Get cookie based affinity. Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @return the cookieBasedAffinity value
+ */
+ public ApplicationGatewayCookieBasedAffinity cookieBasedAffinity() {
+ return this.cookieBasedAffinity;
+ }
+
+ /**
+ * Set cookie based affinity. Possible values include: 'Enabled', 'Disabled'.
+ *
+ * @param cookieBasedAffinity the cookieBasedAffinity value to set
+ * @return the ApplicationGatewayBackendHttpSettings object itself.
+ */
+ public ApplicationGatewayBackendHttpSettings withCookieBasedAffinity(ApplicationGatewayCookieBasedAffinity cookieBasedAffinity) {
+ this.cookieBasedAffinity = cookieBasedAffinity;
+ return this;
+ }
+
+ /**
+ * Get request timeout in seconds. Application Gateway will fail the request if response is not received within RequestTimeout. Acceptable values are from 1 second to 86400 seconds.
+ *
+ * @return the requestTimeout value
+ */
+ public Integer requestTimeout() {
+ return this.requestTimeout;
+ }
+
+ /**
+ * Set request timeout in seconds. Application Gateway will fail the request if response is not received within RequestTimeout. Acceptable values are from 1 second to 86400 seconds.
+ *
+ * @param requestTimeout the requestTimeout value to set
+ * @return the ApplicationGatewayBackendHttpSettings object itself.
+ */
+ public ApplicationGatewayBackendHttpSettings withRequestTimeout(Integer requestTimeout) {
+ this.requestTimeout = requestTimeout;
+ return this;
+ }
+
+ /**
+ * Get probe resource of an application gateway.
+ *
+ * @return the probe value
+ */
+ public SubResource probe() {
+ return this.probe;
+ }
+
+ /**
+ * Set probe resource of an application gateway.
+ *
+ * @param probe the probe value to set
+ * @return the ApplicationGatewayBackendHttpSettings object itself.
+ */
+ public ApplicationGatewayBackendHttpSettings withProbe(SubResource probe) {
+ this.probe = probe;
+ return this;
+ }
+
+ /**
+ * Get array of references to application gateway authentication certificates.
+ *
+ * @return the authenticationCertificates value
+ */
+ public List authenticationCertificates() {
+ return this.authenticationCertificates;
+ }
+
+ /**
+ * Set array of references to application gateway authentication certificates.
+ *
+ * @param authenticationCertificates the authenticationCertificates value to set
+ * @return the ApplicationGatewayBackendHttpSettings object itself.
+ */
+ public ApplicationGatewayBackendHttpSettings withAuthenticationCertificates(List authenticationCertificates) {
+ this.authenticationCertificates = authenticationCertificates;
+ return this;
+ }
+
+ /**
+ * Get connection draining of the backend http settings resource.
+ *
+ * @return the connectionDraining value
+ */
+ public ApplicationGatewayConnectionDraining connectionDraining() {
+ return this.connectionDraining;
+ }
+
+ /**
+ * Set connection draining of the backend http settings resource.
+ *
+ * @param connectionDraining the connectionDraining value to set
+ * @return the ApplicationGatewayBackendHttpSettings object itself.
+ */
+ public ApplicationGatewayBackendHttpSettings withConnectionDraining(ApplicationGatewayConnectionDraining connectionDraining) {
+ this.connectionDraining = connectionDraining;
+ return this;
+ }
+
+ /**
+ * Get host header to be sent to the backend servers.
+ *
+ * @return the hostName value
+ */
+ public String hostName() {
+ return this.hostName;
+ }
+
+ /**
+ * Set host header to be sent to the backend servers.
+ *
+ * @param hostName the hostName value to set
+ * @return the ApplicationGatewayBackendHttpSettings object itself.
+ */
+ public ApplicationGatewayBackendHttpSettings withHostName(String hostName) {
+ this.hostName = hostName;
+ return this;
+ }
+
+ /**
+ * Get whether to pick host header should be picked from the host name of the backend server. Default value is false.
+ *
+ * @return the pickHostNameFromBackendAddress value
+ */
+ public Boolean pickHostNameFromBackendAddress() {
+ return this.pickHostNameFromBackendAddress;
+ }
+
+ /**
+ * Set whether to pick host header should be picked from the host name of the backend server. Default value is false.
+ *
+ * @param pickHostNameFromBackendAddress the pickHostNameFromBackendAddress value to set
+ * @return the ApplicationGatewayBackendHttpSettings object itself.
+ */
+ public ApplicationGatewayBackendHttpSettings withPickHostNameFromBackendAddress(Boolean pickHostNameFromBackendAddress) {
+ this.pickHostNameFromBackendAddress = pickHostNameFromBackendAddress;
+ return this;
+ }
+
+ /**
+ * Get cookie name to use for the affinity cookie.
+ *
+ * @return the affinityCookieName value
+ */
+ public String affinityCookieName() {
+ return this.affinityCookieName;
+ }
+
+ /**
+ * Set cookie name to use for the affinity cookie.
+ *
+ * @param affinityCookieName the affinityCookieName value to set
+ * @return the ApplicationGatewayBackendHttpSettings object itself.
+ */
+ public ApplicationGatewayBackendHttpSettings withAffinityCookieName(String affinityCookieName) {
+ this.affinityCookieName = affinityCookieName;
+ return this;
+ }
+
+ /**
+ * Get whether the probe is enabled. Default value is false.
+ *
+ * @return the probeEnabled value
+ */
+ public Boolean probeEnabled() {
+ return this.probeEnabled;
+ }
+
+ /**
+ * Set whether the probe is enabled. Default value is false.
+ *
+ * @param probeEnabled the probeEnabled value to set
+ * @return the ApplicationGatewayBackendHttpSettings object itself.
+ */
+ public ApplicationGatewayBackendHttpSettings withProbeEnabled(Boolean probeEnabled) {
+ this.probeEnabled = probeEnabled;
+ return this;
+ }
+
+ /**
+ * Get path which should be used as a prefix for all HTTP requests. Null means no path will be prefixed. Default value is null.
+ *
+ * @return the path value
+ */
+ public String path() {
+ return this.path;
+ }
+
+ /**
+ * Set path which should be used as a prefix for all HTTP requests. Null means no path will be prefixed. Default value is null.
+ *
+ * @param path the path value to set
+ * @return the ApplicationGatewayBackendHttpSettings object itself.
+ */
+ public ApplicationGatewayBackendHttpSettings withPath(String path) {
+ this.path = path;
+ return this;
+ }
+
+ /**
+ * Get provisioning state of the backend http settings resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Set provisioning state of the backend http settings resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
+ *
+ * @param provisioningState the provisioningState value to set
+ * @return the ApplicationGatewayBackendHttpSettings object itself.
+ */
+ public ApplicationGatewayBackendHttpSettings withProvisioningState(String provisioningState) {
+ this.provisioningState = provisioningState;
+ return this;
+ }
+
+ /**
+ * Get name of the backend http settings that is unique within an Application Gateway.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the backend http settings that is unique within an Application Gateway.
+ *
+ * @param name the name value to set
+ * @return the ApplicationGatewayBackendHttpSettings object itself.
+ */
+ public ApplicationGatewayBackendHttpSettings withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get a unique read-only string that changes whenever the resource is updated.
+ *
+ * @return the etag value
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set a unique read-only string that changes whenever the resource is updated.
+ *
+ * @param etag the etag value to set
+ * @return the ApplicationGatewayBackendHttpSettings object itself.
+ */
+ public ApplicationGatewayBackendHttpSettings withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * Get type of the resource.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set type of the resource.
+ *
+ * @param type the type value to set
+ * @return the ApplicationGatewayBackendHttpSettings object itself.
+ */
+ public ApplicationGatewayBackendHttpSettings withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayConnectionDraining.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayConnectionDraining.java
new file mode 100644
index 000000000000..35d7a988f11d
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayConnectionDraining.java
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Connection draining allows open connections to a backend server to be active
+ * for a specified time after the backend server got removed from the
+ * configuration.
+ */
+public class ApplicationGatewayConnectionDraining {
+ /**
+ * Whether connection draining is enabled or not.
+ */
+ @JsonProperty(value = "enabled", required = true)
+ private boolean enabled;
+
+ /**
+ * The number of seconds connection draining is active. Acceptable values
+ * are from 1 second to 3600 seconds.
+ */
+ @JsonProperty(value = "drainTimeoutInSec", required = true)
+ private int drainTimeoutInSec;
+
+ /**
+ * Get whether connection draining is enabled or not.
+ *
+ * @return the enabled value
+ */
+ public boolean enabled() {
+ return this.enabled;
+ }
+
+ /**
+ * Set whether connection draining is enabled or not.
+ *
+ * @param enabled the enabled value to set
+ * @return the ApplicationGatewayConnectionDraining object itself.
+ */
+ public ApplicationGatewayConnectionDraining withEnabled(boolean enabled) {
+ this.enabled = enabled;
+ return this;
+ }
+
+ /**
+ * Get the number of seconds connection draining is active. Acceptable values are from 1 second to 3600 seconds.
+ *
+ * @return the drainTimeoutInSec value
+ */
+ public int drainTimeoutInSec() {
+ return this.drainTimeoutInSec;
+ }
+
+ /**
+ * Set the number of seconds connection draining is active. Acceptable values are from 1 second to 3600 seconds.
+ *
+ * @param drainTimeoutInSec the drainTimeoutInSec value to set
+ * @return the ApplicationGatewayConnectionDraining object itself.
+ */
+ public ApplicationGatewayConnectionDraining withDrainTimeoutInSec(int drainTimeoutInSec) {
+ this.drainTimeoutInSec = drainTimeoutInSec;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayCookieBasedAffinity.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayCookieBasedAffinity.java
new file mode 100644
index 000000000000..b7c942620336
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayCookieBasedAffinity.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.network.v2018_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ApplicationGatewayCookieBasedAffinity.
+ */
+public final class ApplicationGatewayCookieBasedAffinity extends ExpandableStringEnum {
+ /** Static value Enabled for ApplicationGatewayCookieBasedAffinity. */
+ public static final ApplicationGatewayCookieBasedAffinity ENABLED = fromString("Enabled");
+
+ /** Static value Disabled for ApplicationGatewayCookieBasedAffinity. */
+ public static final ApplicationGatewayCookieBasedAffinity DISABLED = fromString("Disabled");
+
+ /**
+ * Creates or finds a ApplicationGatewayCookieBasedAffinity from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ApplicationGatewayCookieBasedAffinity
+ */
+ @JsonCreator
+ public static ApplicationGatewayCookieBasedAffinity fromString(String name) {
+ return fromString(name, ApplicationGatewayCookieBasedAffinity.class);
+ }
+
+ /**
+ * @return known ApplicationGatewayCookieBasedAffinity values
+ */
+ public static Collection values() {
+ return values(ApplicationGatewayCookieBasedAffinity.class);
+ }
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayFirewallDisabledRuleGroup.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayFirewallDisabledRuleGroup.java
new file mode 100644
index 000000000000..0564abd5febc
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayFirewallDisabledRuleGroup.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.network.v2018_06_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Allows to disable rules within a rule group or an entire rule group.
+ */
+public class ApplicationGatewayFirewallDisabledRuleGroup {
+ /**
+ * The name of the rule group that will be disabled.
+ */
+ @JsonProperty(value = "ruleGroupName", required = true)
+ private String ruleGroupName;
+
+ /**
+ * The list of rules that will be disabled. If null, all rules of the rule
+ * group will be disabled.
+ */
+ @JsonProperty(value = "rules")
+ private List rules;
+
+ /**
+ * Get the name of the rule group that will be disabled.
+ *
+ * @return the ruleGroupName value
+ */
+ public String ruleGroupName() {
+ return this.ruleGroupName;
+ }
+
+ /**
+ * Set the name of the rule group that will be disabled.
+ *
+ * @param ruleGroupName the ruleGroupName value to set
+ * @return the ApplicationGatewayFirewallDisabledRuleGroup object itself.
+ */
+ public ApplicationGatewayFirewallDisabledRuleGroup withRuleGroupName(String ruleGroupName) {
+ this.ruleGroupName = ruleGroupName;
+ return this;
+ }
+
+ /**
+ * Get the list of rules that will be disabled. If null, all rules of the rule group will be disabled.
+ *
+ * @return the rules value
+ */
+ public List rules() {
+ return this.rules;
+ }
+
+ /**
+ * Set the list of rules that will be disabled. If null, all rules of the rule group will be disabled.
+ *
+ * @param rules the rules value to set
+ * @return the ApplicationGatewayFirewallDisabledRuleGroup object itself.
+ */
+ public ApplicationGatewayFirewallDisabledRuleGroup withRules(List rules) {
+ this.rules = rules;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayFirewallMode.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayFirewallMode.java
new file mode 100644
index 000000000000..09debe0f09cb
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayFirewallMode.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.network.v2018_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ApplicationGatewayFirewallMode.
+ */
+public final class ApplicationGatewayFirewallMode extends ExpandableStringEnum {
+ /** Static value Detection for ApplicationGatewayFirewallMode. */
+ public static final ApplicationGatewayFirewallMode DETECTION = fromString("Detection");
+
+ /** Static value Prevention for ApplicationGatewayFirewallMode. */
+ public static final ApplicationGatewayFirewallMode PREVENTION = fromString("Prevention");
+
+ /**
+ * Creates or finds a ApplicationGatewayFirewallMode from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ApplicationGatewayFirewallMode
+ */
+ @JsonCreator
+ public static ApplicationGatewayFirewallMode fromString(String name) {
+ return fromString(name, ApplicationGatewayFirewallMode.class);
+ }
+
+ /**
+ * @return known ApplicationGatewayFirewallMode values
+ */
+ public static Collection values() {
+ return values(ApplicationGatewayFirewallMode.class);
+ }
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayFirewallRule.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayFirewallRule.java
new file mode 100644
index 000000000000..88f6c27c2344
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayFirewallRule.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.network.v2018_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A web application firewall rule.
+ */
+public class ApplicationGatewayFirewallRule {
+ /**
+ * The identifier of the web application firewall rule.
+ */
+ @JsonProperty(value = "ruleId", required = true)
+ private int ruleId;
+
+ /**
+ * The description of the web application firewall rule.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * Get the identifier of the web application firewall rule.
+ *
+ * @return the ruleId value
+ */
+ public int ruleId() {
+ return this.ruleId;
+ }
+
+ /**
+ * Set the identifier of the web application firewall rule.
+ *
+ * @param ruleId the ruleId value to set
+ * @return the ApplicationGatewayFirewallRule object itself.
+ */
+ public ApplicationGatewayFirewallRule withRuleId(int ruleId) {
+ this.ruleId = ruleId;
+ return this;
+ }
+
+ /**
+ * Get the description of the web application firewall rule.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set the description of the web application firewall rule.
+ *
+ * @param description the description value to set
+ * @return the ApplicationGatewayFirewallRule object itself.
+ */
+ public ApplicationGatewayFirewallRule withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayFirewallRuleGroup.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayFirewallRuleGroup.java
new file mode 100644
index 000000000000..585cdfa02310
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayFirewallRuleGroup.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * A web application firewall rule group.
+ */
+public class ApplicationGatewayFirewallRuleGroup {
+ /**
+ * The name of the web application firewall rule group.
+ */
+ @JsonProperty(value = "ruleGroupName", required = true)
+ private String ruleGroupName;
+
+ /**
+ * The description of the web application firewall rule group.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * The rules of the web application firewall rule group.
+ */
+ @JsonProperty(value = "rules", required = true)
+ private List rules;
+
+ /**
+ * Get the name of the web application firewall rule group.
+ *
+ * @return the ruleGroupName value
+ */
+ public String ruleGroupName() {
+ return this.ruleGroupName;
+ }
+
+ /**
+ * Set the name of the web application firewall rule group.
+ *
+ * @param ruleGroupName the ruleGroupName value to set
+ * @return the ApplicationGatewayFirewallRuleGroup object itself.
+ */
+ public ApplicationGatewayFirewallRuleGroup withRuleGroupName(String ruleGroupName) {
+ this.ruleGroupName = ruleGroupName;
+ return this;
+ }
+
+ /**
+ * Get the description of the web application firewall rule group.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set the description of the web application firewall rule group.
+ *
+ * @param description the description value to set
+ * @return the ApplicationGatewayFirewallRuleGroup object itself.
+ */
+ public ApplicationGatewayFirewallRuleGroup withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ /**
+ * Get the rules of the web application firewall rule group.
+ *
+ * @return the rules value
+ */
+ public List rules() {
+ return this.rules;
+ }
+
+ /**
+ * Set the rules of the web application firewall rule group.
+ *
+ * @param rules the rules value to set
+ * @return the ApplicationGatewayFirewallRuleGroup object itself.
+ */
+ public ApplicationGatewayFirewallRuleGroup withRules(List rules) {
+ this.rules = rules;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayFirewallRuleSet.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayFirewallRuleSet.java
new file mode 100644
index 000000000000..11f17bd3a248
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayFirewallRuleSet.java
@@ -0,0 +1,153 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.rest.SkipParentValidation;
+import com.microsoft.azure.Resource;
+
+/**
+ * A web application firewall rule set.
+ */
+@JsonFlatten
+@SkipParentValidation
+public class ApplicationGatewayFirewallRuleSet extends Resource {
+ /**
+ * The provisioning state of the web application firewall rule set.
+ */
+ @JsonProperty(value = "properties.provisioningState")
+ private String provisioningState;
+
+ /**
+ * The type of the web application firewall rule set.
+ */
+ @JsonProperty(value = "properties.ruleSetType", required = true)
+ private String ruleSetType;
+
+ /**
+ * The version of the web application firewall rule set type.
+ */
+ @JsonProperty(value = "properties.ruleSetVersion", required = true)
+ private String ruleSetVersion;
+
+ /**
+ * The rule groups of the web application firewall rule set.
+ */
+ @JsonProperty(value = "properties.ruleGroups", required = true)
+ private List ruleGroups;
+
+ /**
+ * Resource ID.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /**
+ * Get the provisioning state of the web application firewall rule set.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Set the provisioning state of the web application firewall rule set.
+ *
+ * @param provisioningState the provisioningState value to set
+ * @return the ApplicationGatewayFirewallRuleSet object itself.
+ */
+ public ApplicationGatewayFirewallRuleSet withProvisioningState(String provisioningState) {
+ this.provisioningState = provisioningState;
+ return this;
+ }
+
+ /**
+ * Get the type of the web application firewall rule set.
+ *
+ * @return the ruleSetType value
+ */
+ public String ruleSetType() {
+ return this.ruleSetType;
+ }
+
+ /**
+ * Set the type of the web application firewall rule set.
+ *
+ * @param ruleSetType the ruleSetType value to set
+ * @return the ApplicationGatewayFirewallRuleSet object itself.
+ */
+ public ApplicationGatewayFirewallRuleSet withRuleSetType(String ruleSetType) {
+ this.ruleSetType = ruleSetType;
+ return this;
+ }
+
+ /**
+ * Get the version of the web application firewall rule set type.
+ *
+ * @return the ruleSetVersion value
+ */
+ public String ruleSetVersion() {
+ return this.ruleSetVersion;
+ }
+
+ /**
+ * Set the version of the web application firewall rule set type.
+ *
+ * @param ruleSetVersion the ruleSetVersion value to set
+ * @return the ApplicationGatewayFirewallRuleSet object itself.
+ */
+ public ApplicationGatewayFirewallRuleSet withRuleSetVersion(String ruleSetVersion) {
+ this.ruleSetVersion = ruleSetVersion;
+ return this;
+ }
+
+ /**
+ * Get the rule groups of the web application firewall rule set.
+ *
+ * @return the ruleGroups value
+ */
+ public List ruleGroups() {
+ return this.ruleGroups;
+ }
+
+ /**
+ * Set the rule groups of the web application firewall rule set.
+ *
+ * @param ruleGroups the ruleGroups value to set
+ * @return the ApplicationGatewayFirewallRuleSet object itself.
+ */
+ public ApplicationGatewayFirewallRuleSet withRuleGroups(List ruleGroups) {
+ this.ruleGroups = ruleGroups;
+ return this;
+ }
+
+ /**
+ * Get resource ID.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set resource ID.
+ *
+ * @param id the id value to set
+ * @return the ApplicationGatewayFirewallRuleSet object itself.
+ */
+ public ApplicationGatewayFirewallRuleSet withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayFrontendIPConfiguration.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayFrontendIPConfiguration.java
new file mode 100644
index 000000000000..3af9e29a9911
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayFrontendIPConfiguration.java
@@ -0,0 +1,231 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import com.microsoft.azure.SubResource;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Frontend IP configuration of an application gateway.
+ */
+@JsonFlatten
+public class ApplicationGatewayFrontendIPConfiguration extends SubResource {
+ /**
+ * PrivateIPAddress of the network interface IP Configuration.
+ */
+ @JsonProperty(value = "properties.privateIPAddress")
+ private String privateIPAddress;
+
+ /**
+ * PrivateIP allocation method. Possible values include: 'Static',
+ * 'Dynamic'.
+ */
+ @JsonProperty(value = "properties.privateIPAllocationMethod")
+ private IPAllocationMethod privateIPAllocationMethod;
+
+ /**
+ * Reference of the subnet resource.
+ */
+ @JsonProperty(value = "properties.subnet")
+ private SubResource subnet;
+
+ /**
+ * Reference of the PublicIP resource.
+ */
+ @JsonProperty(value = "properties.publicIPAddress")
+ private SubResource publicIPAddress;
+
+ /**
+ * Provisioning state of the public IP resource. Possible values are:
+ * 'Updating', 'Deleting', and 'Failed'.
+ */
+ @JsonProperty(value = "properties.provisioningState")
+ private String provisioningState;
+
+ /**
+ * Name of the frontend IP configuration that is unique within an
+ * Application Gateway.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * A unique read-only string that changes whenever the resource is updated.
+ */
+ @JsonProperty(value = "etag")
+ private String etag;
+
+ /**
+ * Type of the resource.
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /**
+ * Get privateIPAddress of the network interface IP Configuration.
+ *
+ * @return the privateIPAddress value
+ */
+ public String privateIPAddress() {
+ return this.privateIPAddress;
+ }
+
+ /**
+ * Set privateIPAddress of the network interface IP Configuration.
+ *
+ * @param privateIPAddress the privateIPAddress value to set
+ * @return the ApplicationGatewayFrontendIPConfiguration object itself.
+ */
+ public ApplicationGatewayFrontendIPConfiguration withPrivateIPAddress(String privateIPAddress) {
+ this.privateIPAddress = privateIPAddress;
+ return this;
+ }
+
+ /**
+ * Get privateIP allocation method. Possible values include: 'Static', 'Dynamic'.
+ *
+ * @return the privateIPAllocationMethod value
+ */
+ public IPAllocationMethod privateIPAllocationMethod() {
+ return this.privateIPAllocationMethod;
+ }
+
+ /**
+ * Set privateIP allocation method. Possible values include: 'Static', 'Dynamic'.
+ *
+ * @param privateIPAllocationMethod the privateIPAllocationMethod value to set
+ * @return the ApplicationGatewayFrontendIPConfiguration object itself.
+ */
+ public ApplicationGatewayFrontendIPConfiguration withPrivateIPAllocationMethod(IPAllocationMethod privateIPAllocationMethod) {
+ this.privateIPAllocationMethod = privateIPAllocationMethod;
+ return this;
+ }
+
+ /**
+ * Get reference of the subnet resource.
+ *
+ * @return the subnet value
+ */
+ public SubResource subnet() {
+ return this.subnet;
+ }
+
+ /**
+ * Set reference of the subnet resource.
+ *
+ * @param subnet the subnet value to set
+ * @return the ApplicationGatewayFrontendIPConfiguration object itself.
+ */
+ public ApplicationGatewayFrontendIPConfiguration withSubnet(SubResource subnet) {
+ this.subnet = subnet;
+ return this;
+ }
+
+ /**
+ * Get reference of the PublicIP resource.
+ *
+ * @return the publicIPAddress value
+ */
+ public SubResource publicIPAddress() {
+ return this.publicIPAddress;
+ }
+
+ /**
+ * Set reference of the PublicIP resource.
+ *
+ * @param publicIPAddress the publicIPAddress value to set
+ * @return the ApplicationGatewayFrontendIPConfiguration object itself.
+ */
+ public ApplicationGatewayFrontendIPConfiguration withPublicIPAddress(SubResource publicIPAddress) {
+ this.publicIPAddress = publicIPAddress;
+ return this;
+ }
+
+ /**
+ * Get provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Set provisioning state of the public IP resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
+ *
+ * @param provisioningState the provisioningState value to set
+ * @return the ApplicationGatewayFrontendIPConfiguration object itself.
+ */
+ public ApplicationGatewayFrontendIPConfiguration withProvisioningState(String provisioningState) {
+ this.provisioningState = provisioningState;
+ return this;
+ }
+
+ /**
+ * Get name of the frontend IP configuration that is unique within an Application Gateway.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the frontend IP configuration that is unique within an Application Gateway.
+ *
+ * @param name the name value to set
+ * @return the ApplicationGatewayFrontendIPConfiguration object itself.
+ */
+ public ApplicationGatewayFrontendIPConfiguration withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get a unique read-only string that changes whenever the resource is updated.
+ *
+ * @return the etag value
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set a unique read-only string that changes whenever the resource is updated.
+ *
+ * @param etag the etag value to set
+ * @return the ApplicationGatewayFrontendIPConfiguration object itself.
+ */
+ public ApplicationGatewayFrontendIPConfiguration withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * Get type of the resource.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set type of the resource.
+ *
+ * @param type the type value to set
+ * @return the ApplicationGatewayFrontendIPConfiguration object itself.
+ */
+ public ApplicationGatewayFrontendIPConfiguration withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayFrontendPort.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayFrontendPort.java
new file mode 100644
index 000000000000..d3216c1ef385
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayFrontendPort.java
@@ -0,0 +1,151 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.SubResource;
+
+/**
+ * Frontend port of an application gateway.
+ */
+@JsonFlatten
+public class ApplicationGatewayFrontendPort extends SubResource {
+ /**
+ * Frontend port.
+ */
+ @JsonProperty(value = "properties.port")
+ private Integer port;
+
+ /**
+ * Provisioning state of the frontend port resource. Possible values are:
+ * 'Updating', 'Deleting', and 'Failed'.
+ */
+ @JsonProperty(value = "properties.provisioningState")
+ private String provisioningState;
+
+ /**
+ * Name of the frontend port that is unique within an Application Gateway.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * A unique read-only string that changes whenever the resource is updated.
+ */
+ @JsonProperty(value = "etag")
+ private String etag;
+
+ /**
+ * Type of the resource.
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /**
+ * Get frontend port.
+ *
+ * @return the port value
+ */
+ public Integer port() {
+ return this.port;
+ }
+
+ /**
+ * Set frontend port.
+ *
+ * @param port the port value to set
+ * @return the ApplicationGatewayFrontendPort object itself.
+ */
+ public ApplicationGatewayFrontendPort withPort(Integer port) {
+ this.port = port;
+ return this;
+ }
+
+ /**
+ * Get provisioning state of the frontend port resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Set provisioning state of the frontend port resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
+ *
+ * @param provisioningState the provisioningState value to set
+ * @return the ApplicationGatewayFrontendPort object itself.
+ */
+ public ApplicationGatewayFrontendPort withProvisioningState(String provisioningState) {
+ this.provisioningState = provisioningState;
+ return this;
+ }
+
+ /**
+ * Get name of the frontend port that is unique within an Application Gateway.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the frontend port that is unique within an Application Gateway.
+ *
+ * @param name the name value to set
+ * @return the ApplicationGatewayFrontendPort object itself.
+ */
+ public ApplicationGatewayFrontendPort withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get a unique read-only string that changes whenever the resource is updated.
+ *
+ * @return the etag value
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set a unique read-only string that changes whenever the resource is updated.
+ *
+ * @param etag the etag value to set
+ * @return the ApplicationGatewayFrontendPort object itself.
+ */
+ public ApplicationGatewayFrontendPort withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * Get type of the resource.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set type of the resource.
+ *
+ * @param type the type value to set
+ * @return the ApplicationGatewayFrontendPort object itself.
+ */
+ public ApplicationGatewayFrontendPort withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayHttpListener.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayHttpListener.java
new file mode 100644
index 000000000000..836bb0a303ca
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayHttpListener.java
@@ -0,0 +1,282 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import com.microsoft.azure.SubResource;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Http listener of an application gateway.
+ */
+@JsonFlatten
+public class ApplicationGatewayHttpListener extends SubResource {
+ /**
+ * Frontend IP configuration resource of an application gateway.
+ */
+ @JsonProperty(value = "properties.frontendIPConfiguration")
+ private SubResource frontendIPConfiguration;
+
+ /**
+ * Frontend port resource of an application gateway.
+ */
+ @JsonProperty(value = "properties.frontendPort")
+ private SubResource frontendPort;
+
+ /**
+ * Protocol of the HTTP listener. Possible values are 'Http' and 'Https'.
+ * Possible values include: 'Http', 'Https'.
+ */
+ @JsonProperty(value = "properties.protocol")
+ private ApplicationGatewayProtocol protocol;
+
+ /**
+ * Host name of HTTP listener.
+ */
+ @JsonProperty(value = "properties.hostName")
+ private String hostName;
+
+ /**
+ * SSL certificate resource of an application gateway.
+ */
+ @JsonProperty(value = "properties.sslCertificate")
+ private SubResource sslCertificate;
+
+ /**
+ * Applicable only if protocol is https. Enables SNI for multi-hosting.
+ */
+ @JsonProperty(value = "properties.requireServerNameIndication")
+ private Boolean requireServerNameIndication;
+
+ /**
+ * Provisioning state of the HTTP listener resource. Possible values are:
+ * 'Updating', 'Deleting', and 'Failed'.
+ */
+ @JsonProperty(value = "properties.provisioningState")
+ private String provisioningState;
+
+ /**
+ * Name of the HTTP listener that is unique within an Application Gateway.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * A unique read-only string that changes whenever the resource is updated.
+ */
+ @JsonProperty(value = "etag")
+ private String etag;
+
+ /**
+ * Type of the resource.
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /**
+ * Get frontend IP configuration resource of an application gateway.
+ *
+ * @return the frontendIPConfiguration value
+ */
+ public SubResource frontendIPConfiguration() {
+ return this.frontendIPConfiguration;
+ }
+
+ /**
+ * Set frontend IP configuration resource of an application gateway.
+ *
+ * @param frontendIPConfiguration the frontendIPConfiguration value to set
+ * @return the ApplicationGatewayHttpListener object itself.
+ */
+ public ApplicationGatewayHttpListener withFrontendIPConfiguration(SubResource frontendIPConfiguration) {
+ this.frontendIPConfiguration = frontendIPConfiguration;
+ return this;
+ }
+
+ /**
+ * Get frontend port resource of an application gateway.
+ *
+ * @return the frontendPort value
+ */
+ public SubResource frontendPort() {
+ return this.frontendPort;
+ }
+
+ /**
+ * Set frontend port resource of an application gateway.
+ *
+ * @param frontendPort the frontendPort value to set
+ * @return the ApplicationGatewayHttpListener object itself.
+ */
+ public ApplicationGatewayHttpListener withFrontendPort(SubResource frontendPort) {
+ this.frontendPort = frontendPort;
+ return this;
+ }
+
+ /**
+ * Get protocol of the HTTP listener. Possible values are 'Http' and 'Https'. Possible values include: 'Http', 'Https'.
+ *
+ * @return the protocol value
+ */
+ public ApplicationGatewayProtocol protocol() {
+ return this.protocol;
+ }
+
+ /**
+ * Set protocol of the HTTP listener. Possible values are 'Http' and 'Https'. Possible values include: 'Http', 'Https'.
+ *
+ * @param protocol the protocol value to set
+ * @return the ApplicationGatewayHttpListener object itself.
+ */
+ public ApplicationGatewayHttpListener withProtocol(ApplicationGatewayProtocol protocol) {
+ this.protocol = protocol;
+ return this;
+ }
+
+ /**
+ * Get host name of HTTP listener.
+ *
+ * @return the hostName value
+ */
+ public String hostName() {
+ return this.hostName;
+ }
+
+ /**
+ * Set host name of HTTP listener.
+ *
+ * @param hostName the hostName value to set
+ * @return the ApplicationGatewayHttpListener object itself.
+ */
+ public ApplicationGatewayHttpListener withHostName(String hostName) {
+ this.hostName = hostName;
+ return this;
+ }
+
+ /**
+ * Get sSL certificate resource of an application gateway.
+ *
+ * @return the sslCertificate value
+ */
+ public SubResource sslCertificate() {
+ return this.sslCertificate;
+ }
+
+ /**
+ * Set sSL certificate resource of an application gateway.
+ *
+ * @param sslCertificate the sslCertificate value to set
+ * @return the ApplicationGatewayHttpListener object itself.
+ */
+ public ApplicationGatewayHttpListener withSslCertificate(SubResource sslCertificate) {
+ this.sslCertificate = sslCertificate;
+ return this;
+ }
+
+ /**
+ * Get applicable only if protocol is https. Enables SNI for multi-hosting.
+ *
+ * @return the requireServerNameIndication value
+ */
+ public Boolean requireServerNameIndication() {
+ return this.requireServerNameIndication;
+ }
+
+ /**
+ * Set applicable only if protocol is https. Enables SNI for multi-hosting.
+ *
+ * @param requireServerNameIndication the requireServerNameIndication value to set
+ * @return the ApplicationGatewayHttpListener object itself.
+ */
+ public ApplicationGatewayHttpListener withRequireServerNameIndication(Boolean requireServerNameIndication) {
+ this.requireServerNameIndication = requireServerNameIndication;
+ return this;
+ }
+
+ /**
+ * Get provisioning state of the HTTP listener resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Set provisioning state of the HTTP listener resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
+ *
+ * @param provisioningState the provisioningState value to set
+ * @return the ApplicationGatewayHttpListener object itself.
+ */
+ public ApplicationGatewayHttpListener withProvisioningState(String provisioningState) {
+ this.provisioningState = provisioningState;
+ return this;
+ }
+
+ /**
+ * Get name of the HTTP listener that is unique within an Application Gateway.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the HTTP listener that is unique within an Application Gateway.
+ *
+ * @param name the name value to set
+ * @return the ApplicationGatewayHttpListener object itself.
+ */
+ public ApplicationGatewayHttpListener withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get a unique read-only string that changes whenever the resource is updated.
+ *
+ * @return the etag value
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set a unique read-only string that changes whenever the resource is updated.
+ *
+ * @param etag the etag value to set
+ * @return the ApplicationGatewayHttpListener object itself.
+ */
+ public ApplicationGatewayHttpListener withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * Get type of the resource.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set type of the resource.
+ *
+ * @param type the type value to set
+ * @return the ApplicationGatewayHttpListener object itself.
+ */
+ public ApplicationGatewayHttpListener withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayIPConfiguration.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayIPConfiguration.java
new file mode 100644
index 000000000000..dd2daa61b0ec
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayIPConfiguration.java
@@ -0,0 +1,154 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import com.microsoft.azure.SubResource;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * IP configuration of an application gateway. Currently 1 public and 1 private
+ * IP configuration is allowed.
+ */
+@JsonFlatten
+public class ApplicationGatewayIPConfiguration extends SubResource {
+ /**
+ * Reference of the subnet resource. A subnet from where application
+ * gateway gets its private address.
+ */
+ @JsonProperty(value = "properties.subnet")
+ private SubResource subnet;
+
+ /**
+ * Provisioning state of the application gateway subnet resource. Possible
+ * values are: 'Updating', 'Deleting', and 'Failed'.
+ */
+ @JsonProperty(value = "properties.provisioningState")
+ private String provisioningState;
+
+ /**
+ * Name of the IP configuration that is unique within an Application
+ * Gateway.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * A unique read-only string that changes whenever the resource is updated.
+ */
+ @JsonProperty(value = "etag")
+ private String etag;
+
+ /**
+ * Type of the resource.
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /**
+ * Get reference of the subnet resource. A subnet from where application gateway gets its private address.
+ *
+ * @return the subnet value
+ */
+ public SubResource subnet() {
+ return this.subnet;
+ }
+
+ /**
+ * Set reference of the subnet resource. A subnet from where application gateway gets its private address.
+ *
+ * @param subnet the subnet value to set
+ * @return the ApplicationGatewayIPConfiguration object itself.
+ */
+ public ApplicationGatewayIPConfiguration withSubnet(SubResource subnet) {
+ this.subnet = subnet;
+ return this;
+ }
+
+ /**
+ * Get provisioning state of the application gateway subnet resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Set provisioning state of the application gateway subnet resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
+ *
+ * @param provisioningState the provisioningState value to set
+ * @return the ApplicationGatewayIPConfiguration object itself.
+ */
+ public ApplicationGatewayIPConfiguration withProvisioningState(String provisioningState) {
+ this.provisioningState = provisioningState;
+ return this;
+ }
+
+ /**
+ * Get name of the IP configuration that is unique within an Application Gateway.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the IP configuration that is unique within an Application Gateway.
+ *
+ * @param name the name value to set
+ * @return the ApplicationGatewayIPConfiguration object itself.
+ */
+ public ApplicationGatewayIPConfiguration withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get a unique read-only string that changes whenever the resource is updated.
+ *
+ * @return the etag value
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set a unique read-only string that changes whenever the resource is updated.
+ *
+ * @param etag the etag value to set
+ * @return the ApplicationGatewayIPConfiguration object itself.
+ */
+ public ApplicationGatewayIPConfiguration withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * Get type of the resource.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set type of the resource.
+ *
+ * @param type the type value to set
+ * @return the ApplicationGatewayIPConfiguration object itself.
+ */
+ public ApplicationGatewayIPConfiguration withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayOperationalState.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayOperationalState.java
new file mode 100644
index 000000000000..547a29a8b796
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayOperationalState.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.network.v2018_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ApplicationGatewayOperationalState.
+ */
+public final class ApplicationGatewayOperationalState extends ExpandableStringEnum {
+ /** Static value Stopped for ApplicationGatewayOperationalState. */
+ public static final ApplicationGatewayOperationalState STOPPED = fromString("Stopped");
+
+ /** Static value Starting for ApplicationGatewayOperationalState. */
+ public static final ApplicationGatewayOperationalState STARTING = fromString("Starting");
+
+ /** Static value Running for ApplicationGatewayOperationalState. */
+ public static final ApplicationGatewayOperationalState RUNNING = fromString("Running");
+
+ /** Static value Stopping for ApplicationGatewayOperationalState. */
+ public static final ApplicationGatewayOperationalState STOPPING = fromString("Stopping");
+
+ /**
+ * Creates or finds a ApplicationGatewayOperationalState from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ApplicationGatewayOperationalState
+ */
+ @JsonCreator
+ public static ApplicationGatewayOperationalState fromString(String name) {
+ return fromString(name, ApplicationGatewayOperationalState.class);
+ }
+
+ /**
+ * @return known ApplicationGatewayOperationalState values
+ */
+ public static Collection values() {
+ return values(ApplicationGatewayOperationalState.class);
+ }
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayPathRule.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayPathRule.java
new file mode 100644
index 000000000000..2a90bfefccc8
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayPathRule.java
@@ -0,0 +1,230 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import java.util.List;
+import com.microsoft.azure.SubResource;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Path rule of URL path map of an application gateway.
+ */
+@JsonFlatten
+public class ApplicationGatewayPathRule extends SubResource {
+ /**
+ * Path rules of URL path map.
+ */
+ @JsonProperty(value = "properties.paths")
+ private List paths;
+
+ /**
+ * Backend address pool resource of URL path map path rule.
+ */
+ @JsonProperty(value = "properties.backendAddressPool")
+ private SubResource backendAddressPool;
+
+ /**
+ * Backend http settings resource of URL path map path rule.
+ */
+ @JsonProperty(value = "properties.backendHttpSettings")
+ private SubResource backendHttpSettings;
+
+ /**
+ * Redirect configuration resource of URL path map path rule.
+ */
+ @JsonProperty(value = "properties.redirectConfiguration")
+ private SubResource redirectConfiguration;
+
+ /**
+ * Path rule of URL path map resource. Possible values are: 'Updating',
+ * 'Deleting', and 'Failed'.
+ */
+ @JsonProperty(value = "properties.provisioningState")
+ private String provisioningState;
+
+ /**
+ * Name of the path rule that is unique within an Application Gateway.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * A unique read-only string that changes whenever the resource is updated.
+ */
+ @JsonProperty(value = "etag")
+ private String etag;
+
+ /**
+ * Type of the resource.
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /**
+ * Get path rules of URL path map.
+ *
+ * @return the paths value
+ */
+ public List paths() {
+ return this.paths;
+ }
+
+ /**
+ * Set path rules of URL path map.
+ *
+ * @param paths the paths value to set
+ * @return the ApplicationGatewayPathRule object itself.
+ */
+ public ApplicationGatewayPathRule withPaths(List paths) {
+ this.paths = paths;
+ return this;
+ }
+
+ /**
+ * Get backend address pool resource of URL path map path rule.
+ *
+ * @return the backendAddressPool value
+ */
+ public SubResource backendAddressPool() {
+ return this.backendAddressPool;
+ }
+
+ /**
+ * Set backend address pool resource of URL path map path rule.
+ *
+ * @param backendAddressPool the backendAddressPool value to set
+ * @return the ApplicationGatewayPathRule object itself.
+ */
+ public ApplicationGatewayPathRule withBackendAddressPool(SubResource backendAddressPool) {
+ this.backendAddressPool = backendAddressPool;
+ return this;
+ }
+
+ /**
+ * Get backend http settings resource of URL path map path rule.
+ *
+ * @return the backendHttpSettings value
+ */
+ public SubResource backendHttpSettings() {
+ return this.backendHttpSettings;
+ }
+
+ /**
+ * Set backend http settings resource of URL path map path rule.
+ *
+ * @param backendHttpSettings the backendHttpSettings value to set
+ * @return the ApplicationGatewayPathRule object itself.
+ */
+ public ApplicationGatewayPathRule withBackendHttpSettings(SubResource backendHttpSettings) {
+ this.backendHttpSettings = backendHttpSettings;
+ return this;
+ }
+
+ /**
+ * Get redirect configuration resource of URL path map path rule.
+ *
+ * @return the redirectConfiguration value
+ */
+ public SubResource redirectConfiguration() {
+ return this.redirectConfiguration;
+ }
+
+ /**
+ * Set redirect configuration resource of URL path map path rule.
+ *
+ * @param redirectConfiguration the redirectConfiguration value to set
+ * @return the ApplicationGatewayPathRule object itself.
+ */
+ public ApplicationGatewayPathRule withRedirectConfiguration(SubResource redirectConfiguration) {
+ this.redirectConfiguration = redirectConfiguration;
+ return this;
+ }
+
+ /**
+ * Get path rule of URL path map resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Set path rule of URL path map resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
+ *
+ * @param provisioningState the provisioningState value to set
+ * @return the ApplicationGatewayPathRule object itself.
+ */
+ public ApplicationGatewayPathRule withProvisioningState(String provisioningState) {
+ this.provisioningState = provisioningState;
+ return this;
+ }
+
+ /**
+ * Get name of the path rule that is unique within an Application Gateway.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the path rule that is unique within an Application Gateway.
+ *
+ * @param name the name value to set
+ * @return the ApplicationGatewayPathRule object itself.
+ */
+ public ApplicationGatewayPathRule withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get a unique read-only string that changes whenever the resource is updated.
+ *
+ * @return the etag value
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set a unique read-only string that changes whenever the resource is updated.
+ *
+ * @param etag the etag value to set
+ * @return the ApplicationGatewayPathRule object itself.
+ */
+ public ApplicationGatewayPathRule withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * Get type of the resource.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set type of the resource.
+ *
+ * @param type the type value to set
+ * @return the ApplicationGatewayPathRule object itself.
+ */
+ public ApplicationGatewayPathRule withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayProbe.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayProbe.java
new file mode 100644
index 000000000000..6d4399ebb9ce
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayProbe.java
@@ -0,0 +1,369 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.SubResource;
+
+/**
+ * Probe of the application gateway.
+ */
+@JsonFlatten
+public class ApplicationGatewayProbe extends SubResource {
+ /**
+ * The protocol used for the probe. Possible values are 'Http' and 'Https'.
+ * Possible values include: 'Http', 'Https'.
+ */
+ @JsonProperty(value = "properties.protocol")
+ private ApplicationGatewayProtocol protocol;
+
+ /**
+ * Host name to send the probe to.
+ */
+ @JsonProperty(value = "properties.host")
+ private String host;
+
+ /**
+ * Relative path of probe. Valid path starts from '/'. Probe is sent to
+ * <Protocol>://<host>:<port><path>.
+ */
+ @JsonProperty(value = "properties.path")
+ private String path;
+
+ /**
+ * The probing interval in seconds. This is the time interval between two
+ * consecutive probes. Acceptable values are from 1 second to 86400
+ * seconds.
+ */
+ @JsonProperty(value = "properties.interval")
+ private Integer interval;
+
+ /**
+ * the probe timeout in seconds. Probe marked as failed if valid response
+ * is not received with this timeout period. Acceptable values are from 1
+ * second to 86400 seconds.
+ */
+ @JsonProperty(value = "properties.timeout")
+ private Integer timeout;
+
+ /**
+ * The probe retry count. Backend server is marked down after consecutive
+ * probe failure count reaches UnhealthyThreshold. Acceptable values are
+ * from 1 second to 20.
+ */
+ @JsonProperty(value = "properties.unhealthyThreshold")
+ private Integer unhealthyThreshold;
+
+ /**
+ * Whether the host header should be picked from the backend http settings.
+ * Default value is false.
+ */
+ @JsonProperty(value = "properties.pickHostNameFromBackendHttpSettings")
+ private Boolean pickHostNameFromBackendHttpSettings;
+
+ /**
+ * Minimum number of servers that are always marked healthy. Default value
+ * is 0.
+ */
+ @JsonProperty(value = "properties.minServers")
+ private Integer minServers;
+
+ /**
+ * Criterion for classifying a healthy probe response.
+ */
+ @JsonProperty(value = "properties.match")
+ private ApplicationGatewayProbeHealthResponseMatch match;
+
+ /**
+ * Provisioning state of the backend http settings resource. Possible
+ * values are: 'Updating', 'Deleting', and 'Failed'.
+ */
+ @JsonProperty(value = "properties.provisioningState")
+ private String provisioningState;
+
+ /**
+ * Name of the probe that is unique within an Application Gateway.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * A unique read-only string that changes whenever the resource is updated.
+ */
+ @JsonProperty(value = "etag")
+ private String etag;
+
+ /**
+ * Type of the resource.
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /**
+ * Get the protocol used for the probe. Possible values are 'Http' and 'Https'. Possible values include: 'Http', 'Https'.
+ *
+ * @return the protocol value
+ */
+ public ApplicationGatewayProtocol protocol() {
+ return this.protocol;
+ }
+
+ /**
+ * Set the protocol used for the probe. Possible values are 'Http' and 'Https'. Possible values include: 'Http', 'Https'.
+ *
+ * @param protocol the protocol value to set
+ * @return the ApplicationGatewayProbe object itself.
+ */
+ public ApplicationGatewayProbe withProtocol(ApplicationGatewayProtocol protocol) {
+ this.protocol = protocol;
+ return this;
+ }
+
+ /**
+ * Get host name to send the probe to.
+ *
+ * @return the host value
+ */
+ public String host() {
+ return this.host;
+ }
+
+ /**
+ * Set host name to send the probe to.
+ *
+ * @param host the host value to set
+ * @return the ApplicationGatewayProbe object itself.
+ */
+ public ApplicationGatewayProbe withHost(String host) {
+ this.host = host;
+ return this;
+ }
+
+ /**
+ * Get relative path of probe. Valid path starts from '/'. Probe is sent to <Protocol>://<host>:<port><path>.
+ *
+ * @return the path value
+ */
+ public String path() {
+ return this.path;
+ }
+
+ /**
+ * Set relative path of probe. Valid path starts from '/'. Probe is sent to <Protocol>://<host>:<port><path>.
+ *
+ * @param path the path value to set
+ * @return the ApplicationGatewayProbe object itself.
+ */
+ public ApplicationGatewayProbe withPath(String path) {
+ this.path = path;
+ return this;
+ }
+
+ /**
+ * Get the probing interval in seconds. This is the time interval between two consecutive probes. Acceptable values are from 1 second to 86400 seconds.
+ *
+ * @return the interval value
+ */
+ public Integer interval() {
+ return this.interval;
+ }
+
+ /**
+ * Set the probing interval in seconds. This is the time interval between two consecutive probes. Acceptable values are from 1 second to 86400 seconds.
+ *
+ * @param interval the interval value to set
+ * @return the ApplicationGatewayProbe object itself.
+ */
+ public ApplicationGatewayProbe withInterval(Integer interval) {
+ this.interval = interval;
+ return this;
+ }
+
+ /**
+ * Get the probe timeout in seconds. Probe marked as failed if valid response is not received with this timeout period. Acceptable values are from 1 second to 86400 seconds.
+ *
+ * @return the timeout value
+ */
+ public Integer timeout() {
+ return this.timeout;
+ }
+
+ /**
+ * Set the probe timeout in seconds. Probe marked as failed if valid response is not received with this timeout period. Acceptable values are from 1 second to 86400 seconds.
+ *
+ * @param timeout the timeout value to set
+ * @return the ApplicationGatewayProbe object itself.
+ */
+ public ApplicationGatewayProbe withTimeout(Integer timeout) {
+ this.timeout = timeout;
+ return this;
+ }
+
+ /**
+ * Get the probe retry count. Backend server is marked down after consecutive probe failure count reaches UnhealthyThreshold. Acceptable values are from 1 second to 20.
+ *
+ * @return the unhealthyThreshold value
+ */
+ public Integer unhealthyThreshold() {
+ return this.unhealthyThreshold;
+ }
+
+ /**
+ * Set the probe retry count. Backend server is marked down after consecutive probe failure count reaches UnhealthyThreshold. Acceptable values are from 1 second to 20.
+ *
+ * @param unhealthyThreshold the unhealthyThreshold value to set
+ * @return the ApplicationGatewayProbe object itself.
+ */
+ public ApplicationGatewayProbe withUnhealthyThreshold(Integer unhealthyThreshold) {
+ this.unhealthyThreshold = unhealthyThreshold;
+ return this;
+ }
+
+ /**
+ * Get whether the host header should be picked from the backend http settings. Default value is false.
+ *
+ * @return the pickHostNameFromBackendHttpSettings value
+ */
+ public Boolean pickHostNameFromBackendHttpSettings() {
+ return this.pickHostNameFromBackendHttpSettings;
+ }
+
+ /**
+ * Set whether the host header should be picked from the backend http settings. Default value is false.
+ *
+ * @param pickHostNameFromBackendHttpSettings the pickHostNameFromBackendHttpSettings value to set
+ * @return the ApplicationGatewayProbe object itself.
+ */
+ public ApplicationGatewayProbe withPickHostNameFromBackendHttpSettings(Boolean pickHostNameFromBackendHttpSettings) {
+ this.pickHostNameFromBackendHttpSettings = pickHostNameFromBackendHttpSettings;
+ return this;
+ }
+
+ /**
+ * Get minimum number of servers that are always marked healthy. Default value is 0.
+ *
+ * @return the minServers value
+ */
+ public Integer minServers() {
+ return this.minServers;
+ }
+
+ /**
+ * Set minimum number of servers that are always marked healthy. Default value is 0.
+ *
+ * @param minServers the minServers value to set
+ * @return the ApplicationGatewayProbe object itself.
+ */
+ public ApplicationGatewayProbe withMinServers(Integer minServers) {
+ this.minServers = minServers;
+ return this;
+ }
+
+ /**
+ * Get criterion for classifying a healthy probe response.
+ *
+ * @return the match value
+ */
+ public ApplicationGatewayProbeHealthResponseMatch match() {
+ return this.match;
+ }
+
+ /**
+ * Set criterion for classifying a healthy probe response.
+ *
+ * @param match the match value to set
+ * @return the ApplicationGatewayProbe object itself.
+ */
+ public ApplicationGatewayProbe withMatch(ApplicationGatewayProbeHealthResponseMatch match) {
+ this.match = match;
+ return this;
+ }
+
+ /**
+ * Get provisioning state of the backend http settings resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Set provisioning state of the backend http settings resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
+ *
+ * @param provisioningState the provisioningState value to set
+ * @return the ApplicationGatewayProbe object itself.
+ */
+ public ApplicationGatewayProbe withProvisioningState(String provisioningState) {
+ this.provisioningState = provisioningState;
+ return this;
+ }
+
+ /**
+ * Get name of the probe that is unique within an Application Gateway.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the probe that is unique within an Application Gateway.
+ *
+ * @param name the name value to set
+ * @return the ApplicationGatewayProbe object itself.
+ */
+ public ApplicationGatewayProbe withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get a unique read-only string that changes whenever the resource is updated.
+ *
+ * @return the etag value
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set a unique read-only string that changes whenever the resource is updated.
+ *
+ * @param etag the etag value to set
+ * @return the ApplicationGatewayProbe object itself.
+ */
+ public ApplicationGatewayProbe withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * Get type of the resource.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set type of the resource.
+ *
+ * @param type the type value to set
+ * @return the ApplicationGatewayProbe object itself.
+ */
+ public ApplicationGatewayProbe withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayProbeHealthResponseMatch.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayProbeHealthResponseMatch.java
new file mode 100644
index 000000000000..8291ea68906d
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayProbeHealthResponseMatch.java
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Application gateway probe health response match.
+ */
+public class ApplicationGatewayProbeHealthResponseMatch {
+ /**
+ * Body that must be contained in the health response. Default value is
+ * empty.
+ */
+ @JsonProperty(value = "body")
+ private String body;
+
+ /**
+ * Allowed ranges of healthy status codes. Default range of healthy status
+ * codes is 200-399.
+ */
+ @JsonProperty(value = "statusCodes")
+ private List statusCodes;
+
+ /**
+ * Get body that must be contained in the health response. Default value is empty.
+ *
+ * @return the body value
+ */
+ public String body() {
+ return this.body;
+ }
+
+ /**
+ * Set body that must be contained in the health response. Default value is empty.
+ *
+ * @param body the body value to set
+ * @return the ApplicationGatewayProbeHealthResponseMatch object itself.
+ */
+ public ApplicationGatewayProbeHealthResponseMatch withBody(String body) {
+ this.body = body;
+ return this;
+ }
+
+ /**
+ * Get allowed ranges of healthy status codes. Default range of healthy status codes is 200-399.
+ *
+ * @return the statusCodes value
+ */
+ public List statusCodes() {
+ return this.statusCodes;
+ }
+
+ /**
+ * Set allowed ranges of healthy status codes. Default range of healthy status codes is 200-399.
+ *
+ * @param statusCodes the statusCodes value to set
+ * @return the ApplicationGatewayProbeHealthResponseMatch object itself.
+ */
+ public ApplicationGatewayProbeHealthResponseMatch withStatusCodes(List statusCodes) {
+ this.statusCodes = statusCodes;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayProtocol.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayProtocol.java
new file mode 100644
index 000000000000..415e9238c33f
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayProtocol.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.network.v2018_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ApplicationGatewayProtocol.
+ */
+public final class ApplicationGatewayProtocol extends ExpandableStringEnum {
+ /** Static value Http for ApplicationGatewayProtocol. */
+ public static final ApplicationGatewayProtocol HTTP = fromString("Http");
+
+ /** Static value Https for ApplicationGatewayProtocol. */
+ public static final ApplicationGatewayProtocol HTTPS = fromString("Https");
+
+ /**
+ * Creates or finds a ApplicationGatewayProtocol from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ApplicationGatewayProtocol
+ */
+ @JsonCreator
+ public static ApplicationGatewayProtocol fromString(String name) {
+ return fromString(name, ApplicationGatewayProtocol.class);
+ }
+
+ /**
+ * @return known ApplicationGatewayProtocol values
+ */
+ public static Collection values() {
+ return values(ApplicationGatewayProtocol.class);
+ }
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayRedirectConfiguration.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayRedirectConfiguration.java
new file mode 100644
index 000000000000..b400d4e3020d
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayRedirectConfiguration.java
@@ -0,0 +1,310 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import com.microsoft.azure.SubResource;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Redirect configuration of an application gateway.
+ */
+@JsonFlatten
+public class ApplicationGatewayRedirectConfiguration extends SubResource {
+ /**
+ * Supported http redirection types - Permanent, Temporary, Found,
+ * SeeOther. Possible values include: 'Permanent', 'Found', 'SeeOther',
+ * 'Temporary'.
+ */
+ @JsonProperty(value = "properties.redirectType")
+ private ApplicationGatewayRedirectType redirectType;
+
+ /**
+ * Reference to a listener to redirect the request to.
+ */
+ @JsonProperty(value = "properties.targetListener")
+ private SubResource targetListener;
+
+ /**
+ * Url to redirect the request to.
+ */
+ @JsonProperty(value = "properties.targetUrl")
+ private String targetUrl;
+
+ /**
+ * Include path in the redirected url.
+ */
+ @JsonProperty(value = "properties.includePath")
+ private Boolean includePath;
+
+ /**
+ * Include query string in the redirected url.
+ */
+ @JsonProperty(value = "properties.includeQueryString")
+ private Boolean includeQueryString;
+
+ /**
+ * Request routing specifying redirect configuration.
+ */
+ @JsonProperty(value = "properties.requestRoutingRules")
+ private List requestRoutingRules;
+
+ /**
+ * Url path maps specifying default redirect configuration.
+ */
+ @JsonProperty(value = "properties.urlPathMaps")
+ private List urlPathMaps;
+
+ /**
+ * Path rules specifying redirect configuration.
+ */
+ @JsonProperty(value = "properties.pathRules")
+ private List pathRules;
+
+ /**
+ * Name of the redirect configuration that is unique within an Application
+ * Gateway.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * A unique read-only string that changes whenever the resource is updated.
+ */
+ @JsonProperty(value = "etag")
+ private String etag;
+
+ /**
+ * Type of the resource.
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /**
+ * Get supported http redirection types - Permanent, Temporary, Found, SeeOther. Possible values include: 'Permanent', 'Found', 'SeeOther', 'Temporary'.
+ *
+ * @return the redirectType value
+ */
+ public ApplicationGatewayRedirectType redirectType() {
+ return this.redirectType;
+ }
+
+ /**
+ * Set supported http redirection types - Permanent, Temporary, Found, SeeOther. Possible values include: 'Permanent', 'Found', 'SeeOther', 'Temporary'.
+ *
+ * @param redirectType the redirectType value to set
+ * @return the ApplicationGatewayRedirectConfiguration object itself.
+ */
+ public ApplicationGatewayRedirectConfiguration withRedirectType(ApplicationGatewayRedirectType redirectType) {
+ this.redirectType = redirectType;
+ return this;
+ }
+
+ /**
+ * Get reference to a listener to redirect the request to.
+ *
+ * @return the targetListener value
+ */
+ public SubResource targetListener() {
+ return this.targetListener;
+ }
+
+ /**
+ * Set reference to a listener to redirect the request to.
+ *
+ * @param targetListener the targetListener value to set
+ * @return the ApplicationGatewayRedirectConfiguration object itself.
+ */
+ public ApplicationGatewayRedirectConfiguration withTargetListener(SubResource targetListener) {
+ this.targetListener = targetListener;
+ return this;
+ }
+
+ /**
+ * Get url to redirect the request to.
+ *
+ * @return the targetUrl value
+ */
+ public String targetUrl() {
+ return this.targetUrl;
+ }
+
+ /**
+ * Set url to redirect the request to.
+ *
+ * @param targetUrl the targetUrl value to set
+ * @return the ApplicationGatewayRedirectConfiguration object itself.
+ */
+ public ApplicationGatewayRedirectConfiguration withTargetUrl(String targetUrl) {
+ this.targetUrl = targetUrl;
+ return this;
+ }
+
+ /**
+ * Get include path in the redirected url.
+ *
+ * @return the includePath value
+ */
+ public Boolean includePath() {
+ return this.includePath;
+ }
+
+ /**
+ * Set include path in the redirected url.
+ *
+ * @param includePath the includePath value to set
+ * @return the ApplicationGatewayRedirectConfiguration object itself.
+ */
+ public ApplicationGatewayRedirectConfiguration withIncludePath(Boolean includePath) {
+ this.includePath = includePath;
+ return this;
+ }
+
+ /**
+ * Get include query string in the redirected url.
+ *
+ * @return the includeQueryString value
+ */
+ public Boolean includeQueryString() {
+ return this.includeQueryString;
+ }
+
+ /**
+ * Set include query string in the redirected url.
+ *
+ * @param includeQueryString the includeQueryString value to set
+ * @return the ApplicationGatewayRedirectConfiguration object itself.
+ */
+ public ApplicationGatewayRedirectConfiguration withIncludeQueryString(Boolean includeQueryString) {
+ this.includeQueryString = includeQueryString;
+ return this;
+ }
+
+ /**
+ * Get request routing specifying redirect configuration.
+ *
+ * @return the requestRoutingRules value
+ */
+ public List requestRoutingRules() {
+ return this.requestRoutingRules;
+ }
+
+ /**
+ * Set request routing specifying redirect configuration.
+ *
+ * @param requestRoutingRules the requestRoutingRules value to set
+ * @return the ApplicationGatewayRedirectConfiguration object itself.
+ */
+ public ApplicationGatewayRedirectConfiguration withRequestRoutingRules(List requestRoutingRules) {
+ this.requestRoutingRules = requestRoutingRules;
+ return this;
+ }
+
+ /**
+ * Get url path maps specifying default redirect configuration.
+ *
+ * @return the urlPathMaps value
+ */
+ public List urlPathMaps() {
+ return this.urlPathMaps;
+ }
+
+ /**
+ * Set url path maps specifying default redirect configuration.
+ *
+ * @param urlPathMaps the urlPathMaps value to set
+ * @return the ApplicationGatewayRedirectConfiguration object itself.
+ */
+ public ApplicationGatewayRedirectConfiguration withUrlPathMaps(List urlPathMaps) {
+ this.urlPathMaps = urlPathMaps;
+ return this;
+ }
+
+ /**
+ * Get path rules specifying redirect configuration.
+ *
+ * @return the pathRules value
+ */
+ public List pathRules() {
+ return this.pathRules;
+ }
+
+ /**
+ * Set path rules specifying redirect configuration.
+ *
+ * @param pathRules the pathRules value to set
+ * @return the ApplicationGatewayRedirectConfiguration object itself.
+ */
+ public ApplicationGatewayRedirectConfiguration withPathRules(List pathRules) {
+ this.pathRules = pathRules;
+ return this;
+ }
+
+ /**
+ * Get name of the redirect configuration that is unique within an Application Gateway.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the redirect configuration that is unique within an Application Gateway.
+ *
+ * @param name the name value to set
+ * @return the ApplicationGatewayRedirectConfiguration object itself.
+ */
+ public ApplicationGatewayRedirectConfiguration withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get a unique read-only string that changes whenever the resource is updated.
+ *
+ * @return the etag value
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set a unique read-only string that changes whenever the resource is updated.
+ *
+ * @param etag the etag value to set
+ * @return the ApplicationGatewayRedirectConfiguration object itself.
+ */
+ public ApplicationGatewayRedirectConfiguration withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * Get type of the resource.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set type of the resource.
+ *
+ * @param type the type value to set
+ * @return the ApplicationGatewayRedirectConfiguration object itself.
+ */
+ public ApplicationGatewayRedirectConfiguration withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayRedirectType.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayRedirectType.java
new file mode 100644
index 000000000000..c8ba23061ccd
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayRedirectType.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.network.v2018_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ApplicationGatewayRedirectType.
+ */
+public final class ApplicationGatewayRedirectType extends ExpandableStringEnum {
+ /** Static value Permanent for ApplicationGatewayRedirectType. */
+ public static final ApplicationGatewayRedirectType PERMANENT = fromString("Permanent");
+
+ /** Static value Found for ApplicationGatewayRedirectType. */
+ public static final ApplicationGatewayRedirectType FOUND = fromString("Found");
+
+ /** Static value SeeOther for ApplicationGatewayRedirectType. */
+ public static final ApplicationGatewayRedirectType SEE_OTHER = fromString("SeeOther");
+
+ /** Static value Temporary for ApplicationGatewayRedirectType. */
+ public static final ApplicationGatewayRedirectType TEMPORARY = fromString("Temporary");
+
+ /**
+ * Creates or finds a ApplicationGatewayRedirectType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ApplicationGatewayRedirectType
+ */
+ @JsonCreator
+ public static ApplicationGatewayRedirectType fromString(String name) {
+ return fromString(name, ApplicationGatewayRedirectType.class);
+ }
+
+ /**
+ * @return known ApplicationGatewayRedirectType values
+ */
+ public static Collection values() {
+ return values(ApplicationGatewayRedirectType.class);
+ }
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayRequestRoutingRule.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayRequestRoutingRule.java
new file mode 100644
index 000000000000..07347895a6fe
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayRequestRoutingRule.java
@@ -0,0 +1,282 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import com.microsoft.azure.SubResource;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * Request routing rule of an application gateway.
+ */
+@JsonFlatten
+public class ApplicationGatewayRequestRoutingRule extends SubResource {
+ /**
+ * Rule type. Possible values include: 'Basic', 'PathBasedRouting'.
+ */
+ @JsonProperty(value = "properties.ruleType")
+ private ApplicationGatewayRequestRoutingRuleType ruleType;
+
+ /**
+ * Backend address pool resource of the application gateway.
+ */
+ @JsonProperty(value = "properties.backendAddressPool")
+ private SubResource backendAddressPool;
+
+ /**
+ * Backend http settings resource of the application gateway.
+ */
+ @JsonProperty(value = "properties.backendHttpSettings")
+ private SubResource backendHttpSettings;
+
+ /**
+ * Http listener resource of the application gateway.
+ */
+ @JsonProperty(value = "properties.httpListener")
+ private SubResource httpListener;
+
+ /**
+ * URL path map resource of the application gateway.
+ */
+ @JsonProperty(value = "properties.urlPathMap")
+ private SubResource urlPathMap;
+
+ /**
+ * Redirect configuration resource of the application gateway.
+ */
+ @JsonProperty(value = "properties.redirectConfiguration")
+ private SubResource redirectConfiguration;
+
+ /**
+ * Provisioning state of the request routing rule resource. Possible values
+ * are: 'Updating', 'Deleting', and 'Failed'.
+ */
+ @JsonProperty(value = "properties.provisioningState")
+ private String provisioningState;
+
+ /**
+ * Name of the request routing rule that is unique within an Application
+ * Gateway.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * A unique read-only string that changes whenever the resource is updated.
+ */
+ @JsonProperty(value = "etag")
+ private String etag;
+
+ /**
+ * Type of the resource.
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /**
+ * Get rule type. Possible values include: 'Basic', 'PathBasedRouting'.
+ *
+ * @return the ruleType value
+ */
+ public ApplicationGatewayRequestRoutingRuleType ruleType() {
+ return this.ruleType;
+ }
+
+ /**
+ * Set rule type. Possible values include: 'Basic', 'PathBasedRouting'.
+ *
+ * @param ruleType the ruleType value to set
+ * @return the ApplicationGatewayRequestRoutingRule object itself.
+ */
+ public ApplicationGatewayRequestRoutingRule withRuleType(ApplicationGatewayRequestRoutingRuleType ruleType) {
+ this.ruleType = ruleType;
+ return this;
+ }
+
+ /**
+ * Get backend address pool resource of the application gateway.
+ *
+ * @return the backendAddressPool value
+ */
+ public SubResource backendAddressPool() {
+ return this.backendAddressPool;
+ }
+
+ /**
+ * Set backend address pool resource of the application gateway.
+ *
+ * @param backendAddressPool the backendAddressPool value to set
+ * @return the ApplicationGatewayRequestRoutingRule object itself.
+ */
+ public ApplicationGatewayRequestRoutingRule withBackendAddressPool(SubResource backendAddressPool) {
+ this.backendAddressPool = backendAddressPool;
+ return this;
+ }
+
+ /**
+ * Get backend http settings resource of the application gateway.
+ *
+ * @return the backendHttpSettings value
+ */
+ public SubResource backendHttpSettings() {
+ return this.backendHttpSettings;
+ }
+
+ /**
+ * Set backend http settings resource of the application gateway.
+ *
+ * @param backendHttpSettings the backendHttpSettings value to set
+ * @return the ApplicationGatewayRequestRoutingRule object itself.
+ */
+ public ApplicationGatewayRequestRoutingRule withBackendHttpSettings(SubResource backendHttpSettings) {
+ this.backendHttpSettings = backendHttpSettings;
+ return this;
+ }
+
+ /**
+ * Get http listener resource of the application gateway.
+ *
+ * @return the httpListener value
+ */
+ public SubResource httpListener() {
+ return this.httpListener;
+ }
+
+ /**
+ * Set http listener resource of the application gateway.
+ *
+ * @param httpListener the httpListener value to set
+ * @return the ApplicationGatewayRequestRoutingRule object itself.
+ */
+ public ApplicationGatewayRequestRoutingRule withHttpListener(SubResource httpListener) {
+ this.httpListener = httpListener;
+ return this;
+ }
+
+ /**
+ * Get uRL path map resource of the application gateway.
+ *
+ * @return the urlPathMap value
+ */
+ public SubResource urlPathMap() {
+ return this.urlPathMap;
+ }
+
+ /**
+ * Set uRL path map resource of the application gateway.
+ *
+ * @param urlPathMap the urlPathMap value to set
+ * @return the ApplicationGatewayRequestRoutingRule object itself.
+ */
+ public ApplicationGatewayRequestRoutingRule withUrlPathMap(SubResource urlPathMap) {
+ this.urlPathMap = urlPathMap;
+ return this;
+ }
+
+ /**
+ * Get redirect configuration resource of the application gateway.
+ *
+ * @return the redirectConfiguration value
+ */
+ public SubResource redirectConfiguration() {
+ return this.redirectConfiguration;
+ }
+
+ /**
+ * Set redirect configuration resource of the application gateway.
+ *
+ * @param redirectConfiguration the redirectConfiguration value to set
+ * @return the ApplicationGatewayRequestRoutingRule object itself.
+ */
+ public ApplicationGatewayRequestRoutingRule withRedirectConfiguration(SubResource redirectConfiguration) {
+ this.redirectConfiguration = redirectConfiguration;
+ return this;
+ }
+
+ /**
+ * Get provisioning state of the request routing rule resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Set provisioning state of the request routing rule resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
+ *
+ * @param provisioningState the provisioningState value to set
+ * @return the ApplicationGatewayRequestRoutingRule object itself.
+ */
+ public ApplicationGatewayRequestRoutingRule withProvisioningState(String provisioningState) {
+ this.provisioningState = provisioningState;
+ return this;
+ }
+
+ /**
+ * Get name of the request routing rule that is unique within an Application Gateway.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the request routing rule that is unique within an Application Gateway.
+ *
+ * @param name the name value to set
+ * @return the ApplicationGatewayRequestRoutingRule object itself.
+ */
+ public ApplicationGatewayRequestRoutingRule withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get a unique read-only string that changes whenever the resource is updated.
+ *
+ * @return the etag value
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set a unique read-only string that changes whenever the resource is updated.
+ *
+ * @param etag the etag value to set
+ * @return the ApplicationGatewayRequestRoutingRule object itself.
+ */
+ public ApplicationGatewayRequestRoutingRule withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * Get type of the resource.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set type of the resource.
+ *
+ * @param type the type value to set
+ * @return the ApplicationGatewayRequestRoutingRule object itself.
+ */
+ public ApplicationGatewayRequestRoutingRule withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayRequestRoutingRuleType.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayRequestRoutingRuleType.java
new file mode 100644
index 000000000000..fbc54df310d2
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayRequestRoutingRuleType.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.network.v2018_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ApplicationGatewayRequestRoutingRuleType.
+ */
+public final class ApplicationGatewayRequestRoutingRuleType extends ExpandableStringEnum {
+ /** Static value Basic for ApplicationGatewayRequestRoutingRuleType. */
+ public static final ApplicationGatewayRequestRoutingRuleType BASIC = fromString("Basic");
+
+ /** Static value PathBasedRouting for ApplicationGatewayRequestRoutingRuleType. */
+ public static final ApplicationGatewayRequestRoutingRuleType PATH_BASED_ROUTING = fromString("PathBasedRouting");
+
+ /**
+ * Creates or finds a ApplicationGatewayRequestRoutingRuleType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ApplicationGatewayRequestRoutingRuleType
+ */
+ @JsonCreator
+ public static ApplicationGatewayRequestRoutingRuleType fromString(String name) {
+ return fromString(name, ApplicationGatewayRequestRoutingRuleType.class);
+ }
+
+ /**
+ * @return known ApplicationGatewayRequestRoutingRuleType values
+ */
+ public static Collection values() {
+ return values(ApplicationGatewayRequestRoutingRuleType.class);
+ }
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySku.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySku.java
new file mode 100644
index 000000000000..9e9502f025d7
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySku.java
@@ -0,0 +1,98 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * SKU of an application gateway.
+ */
+public class ApplicationGatewaySku {
+ /**
+ * Name of an application gateway SKU. Possible values include:
+ * 'Standard_Small', 'Standard_Medium', 'Standard_Large', 'WAF_Medium',
+ * 'WAF_Large', 'Standard_v2', 'WAF_v2'.
+ */
+ @JsonProperty(value = "name")
+ private ApplicationGatewaySkuName name;
+
+ /**
+ * Tier of an application gateway. Possible values include: 'Standard',
+ * 'WAF', 'Standard_v2', 'WAF_v2'.
+ */
+ @JsonProperty(value = "tier")
+ private ApplicationGatewayTier tier;
+
+ /**
+ * Capacity (instance count) of an application gateway.
+ */
+ @JsonProperty(value = "capacity")
+ private Integer capacity;
+
+ /**
+ * Get name of an application gateway SKU. Possible values include: 'Standard_Small', 'Standard_Medium', 'Standard_Large', 'WAF_Medium', 'WAF_Large', 'Standard_v2', 'WAF_v2'.
+ *
+ * @return the name value
+ */
+ public ApplicationGatewaySkuName name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of an application gateway SKU. Possible values include: 'Standard_Small', 'Standard_Medium', 'Standard_Large', 'WAF_Medium', 'WAF_Large', 'Standard_v2', 'WAF_v2'.
+ *
+ * @param name the name value to set
+ * @return the ApplicationGatewaySku object itself.
+ */
+ public ApplicationGatewaySku withName(ApplicationGatewaySkuName name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get tier of an application gateway. Possible values include: 'Standard', 'WAF', 'Standard_v2', 'WAF_v2'.
+ *
+ * @return the tier value
+ */
+ public ApplicationGatewayTier tier() {
+ return this.tier;
+ }
+
+ /**
+ * Set tier of an application gateway. Possible values include: 'Standard', 'WAF', 'Standard_v2', 'WAF_v2'.
+ *
+ * @param tier the tier value to set
+ * @return the ApplicationGatewaySku object itself.
+ */
+ public ApplicationGatewaySku withTier(ApplicationGatewayTier tier) {
+ this.tier = tier;
+ return this;
+ }
+
+ /**
+ * Get capacity (instance count) of an application gateway.
+ *
+ * @return the capacity value
+ */
+ public Integer capacity() {
+ return this.capacity;
+ }
+
+ /**
+ * Set capacity (instance count) of an application gateway.
+ *
+ * @param capacity the capacity value to set
+ * @return the ApplicationGatewaySku object itself.
+ */
+ public ApplicationGatewaySku withCapacity(Integer capacity) {
+ this.capacity = capacity;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySkuName.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySkuName.java
new file mode 100644
index 000000000000..484a130a29eb
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySkuName.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ApplicationGatewaySkuName.
+ */
+public final class ApplicationGatewaySkuName extends ExpandableStringEnum {
+ /** Static value Standard_Small for ApplicationGatewaySkuName. */
+ public static final ApplicationGatewaySkuName STANDARD_SMALL = fromString("Standard_Small");
+
+ /** Static value Standard_Medium for ApplicationGatewaySkuName. */
+ public static final ApplicationGatewaySkuName STANDARD_MEDIUM = fromString("Standard_Medium");
+
+ /** Static value Standard_Large for ApplicationGatewaySkuName. */
+ public static final ApplicationGatewaySkuName STANDARD_LARGE = fromString("Standard_Large");
+
+ /** Static value WAF_Medium for ApplicationGatewaySkuName. */
+ public static final ApplicationGatewaySkuName WAF_MEDIUM = fromString("WAF_Medium");
+
+ /** Static value WAF_Large for ApplicationGatewaySkuName. */
+ public static final ApplicationGatewaySkuName WAF_LARGE = fromString("WAF_Large");
+
+ /** Static value Standard_v2 for ApplicationGatewaySkuName. */
+ public static final ApplicationGatewaySkuName STANDARD_V2 = fromString("Standard_v2");
+
+ /** Static value WAF_v2 for ApplicationGatewaySkuName. */
+ public static final ApplicationGatewaySkuName WAF_V2 = fromString("WAF_v2");
+
+ /**
+ * Creates or finds a ApplicationGatewaySkuName from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ApplicationGatewaySkuName
+ */
+ @JsonCreator
+ public static ApplicationGatewaySkuName fromString(String name) {
+ return fromString(name, ApplicationGatewaySkuName.class);
+ }
+
+ /**
+ * @return known ApplicationGatewaySkuName values
+ */
+ public static Collection values() {
+ return values(ApplicationGatewaySkuName.class);
+ }
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySslCertificate.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySslCertificate.java
new file mode 100644
index 000000000000..3bfa65ce6137
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySslCertificate.java
@@ -0,0 +1,206 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+import com.microsoft.azure.SubResource;
+
+/**
+ * SSL certificates of an application gateway.
+ */
+@JsonFlatten
+public class ApplicationGatewaySslCertificate extends SubResource {
+ /**
+ * Base-64 encoded pfx certificate. Only applicable in PUT Request.
+ */
+ @JsonProperty(value = "properties.data")
+ private String data;
+
+ /**
+ * Password for the pfx file specified in data. Only applicable in PUT
+ * request.
+ */
+ @JsonProperty(value = "properties.password")
+ private String password;
+
+ /**
+ * Base-64 encoded Public cert data corresponding to pfx specified in data.
+ * Only applicable in GET request.
+ */
+ @JsonProperty(value = "properties.publicCertData")
+ private String publicCertData;
+
+ /**
+ * Provisioning state of the SSL certificate resource Possible values are:
+ * 'Updating', 'Deleting', and 'Failed'.
+ */
+ @JsonProperty(value = "properties.provisioningState")
+ private String provisioningState;
+
+ /**
+ * Name of the SSL certificate that is unique within an Application
+ * Gateway.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * A unique read-only string that changes whenever the resource is updated.
+ */
+ @JsonProperty(value = "etag")
+ private String etag;
+
+ /**
+ * Type of the resource.
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /**
+ * Get base-64 encoded pfx certificate. Only applicable in PUT Request.
+ *
+ * @return the data value
+ */
+ public String data() {
+ return this.data;
+ }
+
+ /**
+ * Set base-64 encoded pfx certificate. Only applicable in PUT Request.
+ *
+ * @param data the data value to set
+ * @return the ApplicationGatewaySslCertificate object itself.
+ */
+ public ApplicationGatewaySslCertificate withData(String data) {
+ this.data = data;
+ return this;
+ }
+
+ /**
+ * Get password for the pfx file specified in data. Only applicable in PUT request.
+ *
+ * @return the password value
+ */
+ public String password() {
+ return this.password;
+ }
+
+ /**
+ * Set password for the pfx file specified in data. Only applicable in PUT request.
+ *
+ * @param password the password value to set
+ * @return the ApplicationGatewaySslCertificate object itself.
+ */
+ public ApplicationGatewaySslCertificate withPassword(String password) {
+ this.password = password;
+ return this;
+ }
+
+ /**
+ * Get base-64 encoded Public cert data corresponding to pfx specified in data. Only applicable in GET request.
+ *
+ * @return the publicCertData value
+ */
+ public String publicCertData() {
+ return this.publicCertData;
+ }
+
+ /**
+ * Set base-64 encoded Public cert data corresponding to pfx specified in data. Only applicable in GET request.
+ *
+ * @param publicCertData the publicCertData value to set
+ * @return the ApplicationGatewaySslCertificate object itself.
+ */
+ public ApplicationGatewaySslCertificate withPublicCertData(String publicCertData) {
+ this.publicCertData = publicCertData;
+ return this;
+ }
+
+ /**
+ * Get provisioning state of the SSL certificate resource Possible values are: 'Updating', 'Deleting', and 'Failed'.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Set provisioning state of the SSL certificate resource Possible values are: 'Updating', 'Deleting', and 'Failed'.
+ *
+ * @param provisioningState the provisioningState value to set
+ * @return the ApplicationGatewaySslCertificate object itself.
+ */
+ public ApplicationGatewaySslCertificate withProvisioningState(String provisioningState) {
+ this.provisioningState = provisioningState;
+ return this;
+ }
+
+ /**
+ * Get name of the SSL certificate that is unique within an Application Gateway.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the SSL certificate that is unique within an Application Gateway.
+ *
+ * @param name the name value to set
+ * @return the ApplicationGatewaySslCertificate object itself.
+ */
+ public ApplicationGatewaySslCertificate withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get a unique read-only string that changes whenever the resource is updated.
+ *
+ * @return the etag value
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set a unique read-only string that changes whenever the resource is updated.
+ *
+ * @param etag the etag value to set
+ * @return the ApplicationGatewaySslCertificate object itself.
+ */
+ public ApplicationGatewaySslCertificate withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * Get type of the resource.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set type of the resource.
+ *
+ * @param type the type value to set
+ * @return the ApplicationGatewaySslCertificate object itself.
+ */
+ public ApplicationGatewaySslCertificate withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySslCipherSuite.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySslCipherSuite.java
new file mode 100644
index 000000000000..e3c82d311289
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySslCipherSuite.java
@@ -0,0 +1,110 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ApplicationGatewaySslCipherSuite.
+ */
+public final class ApplicationGatewaySslCipherSuite extends ExpandableStringEnum {
+ /** Static value TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 = fromString("TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384");
+
+ /** Static value TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 = fromString("TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256");
+
+ /** Static value TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA = fromString("TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA");
+
+ /** Static value TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA = fromString("TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA");
+
+ /** Static value TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 = fromString("TLS_DHE_RSA_WITH_AES_256_GCM_SHA384");
+
+ /** Static value TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 = fromString("TLS_DHE_RSA_WITH_AES_128_GCM_SHA256");
+
+ /** Static value TLS_DHE_RSA_WITH_AES_256_CBC_SHA for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_DHE_RSA_WITH_AES_256_CBC_SHA = fromString("TLS_DHE_RSA_WITH_AES_256_CBC_SHA");
+
+ /** Static value TLS_DHE_RSA_WITH_AES_128_CBC_SHA for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_DHE_RSA_WITH_AES_128_CBC_SHA = fromString("TLS_DHE_RSA_WITH_AES_128_CBC_SHA");
+
+ /** Static value TLS_RSA_WITH_AES_256_GCM_SHA384 for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_RSA_WITH_AES_256_GCM_SHA384 = fromString("TLS_RSA_WITH_AES_256_GCM_SHA384");
+
+ /** Static value TLS_RSA_WITH_AES_128_GCM_SHA256 for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_RSA_WITH_AES_128_GCM_SHA256 = fromString("TLS_RSA_WITH_AES_128_GCM_SHA256");
+
+ /** Static value TLS_RSA_WITH_AES_256_CBC_SHA256 for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_RSA_WITH_AES_256_CBC_SHA256 = fromString("TLS_RSA_WITH_AES_256_CBC_SHA256");
+
+ /** Static value TLS_RSA_WITH_AES_128_CBC_SHA256 for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_RSA_WITH_AES_128_CBC_SHA256 = fromString("TLS_RSA_WITH_AES_128_CBC_SHA256");
+
+ /** Static value TLS_RSA_WITH_AES_256_CBC_SHA for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_RSA_WITH_AES_256_CBC_SHA = fromString("TLS_RSA_WITH_AES_256_CBC_SHA");
+
+ /** Static value TLS_RSA_WITH_AES_128_CBC_SHA for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_RSA_WITH_AES_128_CBC_SHA = fromString("TLS_RSA_WITH_AES_128_CBC_SHA");
+
+ /** Static value TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 = fromString("TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384");
+
+ /** Static value TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 = fromString("TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256");
+
+ /** Static value TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 = fromString("TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384");
+
+ /** Static value TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 = fromString("TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256");
+
+ /** Static value TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA = fromString("TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA");
+
+ /** Static value TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA = fromString("TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA");
+
+ /** Static value TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 = fromString("TLS_DHE_DSS_WITH_AES_256_CBC_SHA256");
+
+ /** Static value TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 = fromString("TLS_DHE_DSS_WITH_AES_128_CBC_SHA256");
+
+ /** Static value TLS_DHE_DSS_WITH_AES_256_CBC_SHA for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_DHE_DSS_WITH_AES_256_CBC_SHA = fromString("TLS_DHE_DSS_WITH_AES_256_CBC_SHA");
+
+ /** Static value TLS_DHE_DSS_WITH_AES_128_CBC_SHA for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_DHE_DSS_WITH_AES_128_CBC_SHA = fromString("TLS_DHE_DSS_WITH_AES_128_CBC_SHA");
+
+ /** Static value TLS_RSA_WITH_3DES_EDE_CBC_SHA for ApplicationGatewaySslCipherSuite. */
+ public static final ApplicationGatewaySslCipherSuite TLS_RSA_WITH_3DES_EDE_CBC_SHA = fromString("TLS_RSA_WITH_3DES_EDE_CBC_SHA");
+
+ /**
+ * Creates or finds a ApplicationGatewaySslCipherSuite from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ApplicationGatewaySslCipherSuite
+ */
+ @JsonCreator
+ public static ApplicationGatewaySslCipherSuite fromString(String name) {
+ return fromString(name, ApplicationGatewaySslCipherSuite.class);
+ }
+
+ /**
+ * @return known ApplicationGatewaySslCipherSuite values
+ */
+ public static Collection values() {
+ return values(ApplicationGatewaySslCipherSuite.class);
+ }
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySslPolicy.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySslPolicy.java
new file mode 100644
index 000000000000..75afd719020c
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySslPolicy.java
@@ -0,0 +1,152 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Application Gateway Ssl policy.
+ */
+public class ApplicationGatewaySslPolicy {
+ /**
+ * Ssl protocols to be disabled on application gateway.
+ */
+ @JsonProperty(value = "disabledSslProtocols")
+ private List disabledSslProtocols;
+
+ /**
+ * Type of Ssl Policy. Possible values include: 'Predefined', 'Custom'.
+ */
+ @JsonProperty(value = "policyType")
+ private ApplicationGatewaySslPolicyType policyType;
+
+ /**
+ * Name of Ssl predefined policy. Possible values include:
+ * 'AppGwSslPolicy20150501', 'AppGwSslPolicy20170401',
+ * 'AppGwSslPolicy20170401S'.
+ */
+ @JsonProperty(value = "policyName")
+ private ApplicationGatewaySslPolicyName policyName;
+
+ /**
+ * Ssl cipher suites to be enabled in the specified order to application
+ * gateway.
+ */
+ @JsonProperty(value = "cipherSuites")
+ private List cipherSuites;
+
+ /**
+ * Minimum version of Ssl protocol to be supported on application gateway.
+ * Possible values include: 'TLSv1_0', 'TLSv1_1', 'TLSv1_2'.
+ */
+ @JsonProperty(value = "minProtocolVersion")
+ private ApplicationGatewaySslProtocol minProtocolVersion;
+
+ /**
+ * Get ssl protocols to be disabled on application gateway.
+ *
+ * @return the disabledSslProtocols value
+ */
+ public List disabledSslProtocols() {
+ return this.disabledSslProtocols;
+ }
+
+ /**
+ * Set ssl protocols to be disabled on application gateway.
+ *
+ * @param disabledSslProtocols the disabledSslProtocols value to set
+ * @return the ApplicationGatewaySslPolicy object itself.
+ */
+ public ApplicationGatewaySslPolicy withDisabledSslProtocols(List disabledSslProtocols) {
+ this.disabledSslProtocols = disabledSslProtocols;
+ return this;
+ }
+
+ /**
+ * Get type of Ssl Policy. Possible values include: 'Predefined', 'Custom'.
+ *
+ * @return the policyType value
+ */
+ public ApplicationGatewaySslPolicyType policyType() {
+ return this.policyType;
+ }
+
+ /**
+ * Set type of Ssl Policy. Possible values include: 'Predefined', 'Custom'.
+ *
+ * @param policyType the policyType value to set
+ * @return the ApplicationGatewaySslPolicy object itself.
+ */
+ public ApplicationGatewaySslPolicy withPolicyType(ApplicationGatewaySslPolicyType policyType) {
+ this.policyType = policyType;
+ return this;
+ }
+
+ /**
+ * Get name of Ssl predefined policy. Possible values include: 'AppGwSslPolicy20150501', 'AppGwSslPolicy20170401', 'AppGwSslPolicy20170401S'.
+ *
+ * @return the policyName value
+ */
+ public ApplicationGatewaySslPolicyName policyName() {
+ return this.policyName;
+ }
+
+ /**
+ * Set name of Ssl predefined policy. Possible values include: 'AppGwSslPolicy20150501', 'AppGwSslPolicy20170401', 'AppGwSslPolicy20170401S'.
+ *
+ * @param policyName the policyName value to set
+ * @return the ApplicationGatewaySslPolicy object itself.
+ */
+ public ApplicationGatewaySslPolicy withPolicyName(ApplicationGatewaySslPolicyName policyName) {
+ this.policyName = policyName;
+ return this;
+ }
+
+ /**
+ * Get ssl cipher suites to be enabled in the specified order to application gateway.
+ *
+ * @return the cipherSuites value
+ */
+ public List cipherSuites() {
+ return this.cipherSuites;
+ }
+
+ /**
+ * Set ssl cipher suites to be enabled in the specified order to application gateway.
+ *
+ * @param cipherSuites the cipherSuites value to set
+ * @return the ApplicationGatewaySslPolicy object itself.
+ */
+ public ApplicationGatewaySslPolicy withCipherSuites(List cipherSuites) {
+ this.cipherSuites = cipherSuites;
+ return this;
+ }
+
+ /**
+ * Get minimum version of Ssl protocol to be supported on application gateway. Possible values include: 'TLSv1_0', 'TLSv1_1', 'TLSv1_2'.
+ *
+ * @return the minProtocolVersion value
+ */
+ public ApplicationGatewaySslProtocol minProtocolVersion() {
+ return this.minProtocolVersion;
+ }
+
+ /**
+ * Set minimum version of Ssl protocol to be supported on application gateway. Possible values include: 'TLSv1_0', 'TLSv1_1', 'TLSv1_2'.
+ *
+ * @param minProtocolVersion the minProtocolVersion value to set
+ * @return the ApplicationGatewaySslPolicy object itself.
+ */
+ public ApplicationGatewaySslPolicy withMinProtocolVersion(ApplicationGatewaySslProtocol minProtocolVersion) {
+ this.minProtocolVersion = minProtocolVersion;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySslPolicyName.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySslPolicyName.java
new file mode 100644
index 000000000000..e0bc8ee1bb79
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySslPolicyName.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.network.v2018_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ApplicationGatewaySslPolicyName.
+ */
+public final class ApplicationGatewaySslPolicyName extends ExpandableStringEnum {
+ /** Static value AppGwSslPolicy20150501 for ApplicationGatewaySslPolicyName. */
+ public static final ApplicationGatewaySslPolicyName APP_GW_SSL_POLICY20150501 = fromString("AppGwSslPolicy20150501");
+
+ /** Static value AppGwSslPolicy20170401 for ApplicationGatewaySslPolicyName. */
+ public static final ApplicationGatewaySslPolicyName APP_GW_SSL_POLICY20170401 = fromString("AppGwSslPolicy20170401");
+
+ /** Static value AppGwSslPolicy20170401S for ApplicationGatewaySslPolicyName. */
+ public static final ApplicationGatewaySslPolicyName APP_GW_SSL_POLICY20170401S = fromString("AppGwSslPolicy20170401S");
+
+ /**
+ * Creates or finds a ApplicationGatewaySslPolicyName from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ApplicationGatewaySslPolicyName
+ */
+ @JsonCreator
+ public static ApplicationGatewaySslPolicyName fromString(String name) {
+ return fromString(name, ApplicationGatewaySslPolicyName.class);
+ }
+
+ /**
+ * @return known ApplicationGatewaySslPolicyName values
+ */
+ public static Collection values() {
+ return values(ApplicationGatewaySslPolicyName.class);
+ }
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySslPolicyType.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySslPolicyType.java
new file mode 100644
index 000000000000..ebf4461656ed
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySslPolicyType.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.network.v2018_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ApplicationGatewaySslPolicyType.
+ */
+public final class ApplicationGatewaySslPolicyType extends ExpandableStringEnum {
+ /** Static value Predefined for ApplicationGatewaySslPolicyType. */
+ public static final ApplicationGatewaySslPolicyType PREDEFINED = fromString("Predefined");
+
+ /** Static value Custom for ApplicationGatewaySslPolicyType. */
+ public static final ApplicationGatewaySslPolicyType CUSTOM = fromString("Custom");
+
+ /**
+ * Creates or finds a ApplicationGatewaySslPolicyType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ApplicationGatewaySslPolicyType
+ */
+ @JsonCreator
+ public static ApplicationGatewaySslPolicyType fromString(String name) {
+ return fromString(name, ApplicationGatewaySslPolicyType.class);
+ }
+
+ /**
+ * @return known ApplicationGatewaySslPolicyType values
+ */
+ public static Collection values() {
+ return values(ApplicationGatewaySslPolicyType.class);
+ }
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySslPredefinedPolicy.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySslPredefinedPolicy.java
new file mode 100644
index 000000000000..68deceb7aa9a
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySslPredefinedPolicy.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.network.v2018_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.network.v2018_06_01.implementation.NetworkManager;
+import com.microsoft.azure.management.network.v2018_06_01.implementation.ApplicationGatewaySslPredefinedPolicyInner;
+import java.util.List;
+
+/**
+ * Type representing ApplicationGatewaySslPredefinedPolicy.
+ */
+public interface ApplicationGatewaySslPredefinedPolicy extends HasInner, HasManager {
+ /**
+ * @return the cipherSuites value.
+ */
+ List cipherSuites();
+
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the minProtocolVersion value.
+ */
+ ApplicationGatewaySslProtocol minProtocolVersion();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySslProtocol.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySslProtocol.java
new file mode 100644
index 000000000000..ec51b7ba03ff
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewaySslProtocol.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.network.v2018_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ApplicationGatewaySslProtocol.
+ */
+public final class ApplicationGatewaySslProtocol extends ExpandableStringEnum {
+ /** Static value TLSv1_0 for ApplicationGatewaySslProtocol. */
+ public static final ApplicationGatewaySslProtocol TLSV1_0 = fromString("TLSv1_0");
+
+ /** Static value TLSv1_1 for ApplicationGatewaySslProtocol. */
+ public static final ApplicationGatewaySslProtocol TLSV1_1 = fromString("TLSv1_1");
+
+ /** Static value TLSv1_2 for ApplicationGatewaySslProtocol. */
+ public static final ApplicationGatewaySslProtocol TLSV1_2 = fromString("TLSv1_2");
+
+ /**
+ * Creates or finds a ApplicationGatewaySslProtocol from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ApplicationGatewaySslProtocol
+ */
+ @JsonCreator
+ public static ApplicationGatewaySslProtocol fromString(String name) {
+ return fromString(name, ApplicationGatewaySslProtocol.class);
+ }
+
+ /**
+ * @return known ApplicationGatewaySslProtocol values
+ */
+ public static Collection values() {
+ return values(ApplicationGatewaySslProtocol.class);
+ }
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayTier.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayTier.java
new file mode 100644
index 000000000000..d94a56b133e2
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayTier.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.network.v2018_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for ApplicationGatewayTier.
+ */
+public final class ApplicationGatewayTier extends ExpandableStringEnum {
+ /** Static value Standard for ApplicationGatewayTier. */
+ public static final ApplicationGatewayTier STANDARD = fromString("Standard");
+
+ /** Static value WAF for ApplicationGatewayTier. */
+ public static final ApplicationGatewayTier WAF = fromString("WAF");
+
+ /** Static value Standard_v2 for ApplicationGatewayTier. */
+ public static final ApplicationGatewayTier STANDARD_V2 = fromString("Standard_v2");
+
+ /** Static value WAF_v2 for ApplicationGatewayTier. */
+ public static final ApplicationGatewayTier WAF_V2 = fromString("WAF_v2");
+
+ /**
+ * Creates or finds a ApplicationGatewayTier from its string representation.
+ * @param name a name to look for
+ * @return the corresponding ApplicationGatewayTier
+ */
+ @JsonCreator
+ public static ApplicationGatewayTier fromString(String name) {
+ return fromString(name, ApplicationGatewayTier.class);
+ }
+
+ /**
+ * @return known ApplicationGatewayTier values
+ */
+ public static Collection values() {
+ return values(ApplicationGatewayTier.class);
+ }
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayUrlPathMap.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayUrlPathMap.java
new file mode 100644
index 000000000000..0feb124a9d63
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayUrlPathMap.java
@@ -0,0 +1,231 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import com.microsoft.azure.SubResource;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.microsoft.rest.serializer.JsonFlatten;
+
+/**
+ * UrlPathMaps give a url path to the backend mapping information for
+ * PathBasedRouting.
+ */
+@JsonFlatten
+public class ApplicationGatewayUrlPathMap extends SubResource {
+ /**
+ * Default backend address pool resource of URL path map.
+ */
+ @JsonProperty(value = "properties.defaultBackendAddressPool")
+ private SubResource defaultBackendAddressPool;
+
+ /**
+ * Default backend http settings resource of URL path map.
+ */
+ @JsonProperty(value = "properties.defaultBackendHttpSettings")
+ private SubResource defaultBackendHttpSettings;
+
+ /**
+ * Default redirect configuration resource of URL path map.
+ */
+ @JsonProperty(value = "properties.defaultRedirectConfiguration")
+ private SubResource defaultRedirectConfiguration;
+
+ /**
+ * Path rule of URL path map resource.
+ */
+ @JsonProperty(value = "properties.pathRules")
+ private List pathRules;
+
+ /**
+ * Provisioning state of the backend http settings resource. Possible
+ * values are: 'Updating', 'Deleting', and 'Failed'.
+ */
+ @JsonProperty(value = "properties.provisioningState")
+ private String provisioningState;
+
+ /**
+ * Name of the URL path map that is unique within an Application Gateway.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * A unique read-only string that changes whenever the resource is updated.
+ */
+ @JsonProperty(value = "etag")
+ private String etag;
+
+ /**
+ * Type of the resource.
+ */
+ @JsonProperty(value = "type")
+ private String type;
+
+ /**
+ * Get default backend address pool resource of URL path map.
+ *
+ * @return the defaultBackendAddressPool value
+ */
+ public SubResource defaultBackendAddressPool() {
+ return this.defaultBackendAddressPool;
+ }
+
+ /**
+ * Set default backend address pool resource of URL path map.
+ *
+ * @param defaultBackendAddressPool the defaultBackendAddressPool value to set
+ * @return the ApplicationGatewayUrlPathMap object itself.
+ */
+ public ApplicationGatewayUrlPathMap withDefaultBackendAddressPool(SubResource defaultBackendAddressPool) {
+ this.defaultBackendAddressPool = defaultBackendAddressPool;
+ return this;
+ }
+
+ /**
+ * Get default backend http settings resource of URL path map.
+ *
+ * @return the defaultBackendHttpSettings value
+ */
+ public SubResource defaultBackendHttpSettings() {
+ return this.defaultBackendHttpSettings;
+ }
+
+ /**
+ * Set default backend http settings resource of URL path map.
+ *
+ * @param defaultBackendHttpSettings the defaultBackendHttpSettings value to set
+ * @return the ApplicationGatewayUrlPathMap object itself.
+ */
+ public ApplicationGatewayUrlPathMap withDefaultBackendHttpSettings(SubResource defaultBackendHttpSettings) {
+ this.defaultBackendHttpSettings = defaultBackendHttpSettings;
+ return this;
+ }
+
+ /**
+ * Get default redirect configuration resource of URL path map.
+ *
+ * @return the defaultRedirectConfiguration value
+ */
+ public SubResource defaultRedirectConfiguration() {
+ return this.defaultRedirectConfiguration;
+ }
+
+ /**
+ * Set default redirect configuration resource of URL path map.
+ *
+ * @param defaultRedirectConfiguration the defaultRedirectConfiguration value to set
+ * @return the ApplicationGatewayUrlPathMap object itself.
+ */
+ public ApplicationGatewayUrlPathMap withDefaultRedirectConfiguration(SubResource defaultRedirectConfiguration) {
+ this.defaultRedirectConfiguration = defaultRedirectConfiguration;
+ return this;
+ }
+
+ /**
+ * Get path rule of URL path map resource.
+ *
+ * @return the pathRules value
+ */
+ public List pathRules() {
+ return this.pathRules;
+ }
+
+ /**
+ * Set path rule of URL path map resource.
+ *
+ * @param pathRules the pathRules value to set
+ * @return the ApplicationGatewayUrlPathMap object itself.
+ */
+ public ApplicationGatewayUrlPathMap withPathRules(List pathRules) {
+ this.pathRules = pathRules;
+ return this;
+ }
+
+ /**
+ * Get provisioning state of the backend http settings resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Set provisioning state of the backend http settings resource. Possible values are: 'Updating', 'Deleting', and 'Failed'.
+ *
+ * @param provisioningState the provisioningState value to set
+ * @return the ApplicationGatewayUrlPathMap object itself.
+ */
+ public ApplicationGatewayUrlPathMap withProvisioningState(String provisioningState) {
+ this.provisioningState = provisioningState;
+ return this;
+ }
+
+ /**
+ * Get name of the URL path map that is unique within an Application Gateway.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set name of the URL path map that is unique within an Application Gateway.
+ *
+ * @param name the name value to set
+ * @return the ApplicationGatewayUrlPathMap object itself.
+ */
+ public ApplicationGatewayUrlPathMap withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get a unique read-only string that changes whenever the resource is updated.
+ *
+ * @return the etag value
+ */
+ public String etag() {
+ return this.etag;
+ }
+
+ /**
+ * Set a unique read-only string that changes whenever the resource is updated.
+ *
+ * @param etag the etag value to set
+ * @return the ApplicationGatewayUrlPathMap object itself.
+ */
+ public ApplicationGatewayUrlPathMap withEtag(String etag) {
+ this.etag = etag;
+ return this;
+ }
+
+ /**
+ * Get type of the resource.
+ *
+ * @return the type value
+ */
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Set type of the resource.
+ *
+ * @param type the type value to set
+ * @return the ApplicationGatewayUrlPathMap object itself.
+ */
+ public ApplicationGatewayUrlPathMap withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayWebApplicationFirewallConfiguration.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayWebApplicationFirewallConfiguration.java
new file mode 100644
index 000000000000..cf6f24f8a8f7
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGatewayWebApplicationFirewallConfiguration.java
@@ -0,0 +1,202 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Application gateway web application firewall configuration.
+ */
+public class ApplicationGatewayWebApplicationFirewallConfiguration {
+ /**
+ * Whether the web application firewall is enabled or not.
+ */
+ @JsonProperty(value = "enabled", required = true)
+ private boolean enabled;
+
+ /**
+ * Web application firewall mode. Possible values include: 'Detection',
+ * 'Prevention'.
+ */
+ @JsonProperty(value = "firewallMode", required = true)
+ private ApplicationGatewayFirewallMode firewallMode;
+
+ /**
+ * The type of the web application firewall rule set. Possible values are:
+ * 'OWASP'.
+ */
+ @JsonProperty(value = "ruleSetType", required = true)
+ private String ruleSetType;
+
+ /**
+ * The version of the rule set type.
+ */
+ @JsonProperty(value = "ruleSetVersion", required = true)
+ private String ruleSetVersion;
+
+ /**
+ * The disabled rule groups.
+ */
+ @JsonProperty(value = "disabledRuleGroups")
+ private List disabledRuleGroups;
+
+ /**
+ * Whether allow WAF to check request Body.
+ */
+ @JsonProperty(value = "requestBodyCheck")
+ private Boolean requestBodyCheck;
+
+ /**
+ * Maxium request body size for WAF.
+ */
+ @JsonProperty(value = "maxRequestBodySize")
+ private Integer maxRequestBodySize;
+
+ /**
+ * Get whether the web application firewall is enabled or not.
+ *
+ * @return the enabled value
+ */
+ public boolean enabled() {
+ return this.enabled;
+ }
+
+ /**
+ * Set whether the web application firewall is enabled or not.
+ *
+ * @param enabled the enabled value to set
+ * @return the ApplicationGatewayWebApplicationFirewallConfiguration object itself.
+ */
+ public ApplicationGatewayWebApplicationFirewallConfiguration withEnabled(boolean enabled) {
+ this.enabled = enabled;
+ return this;
+ }
+
+ /**
+ * Get web application firewall mode. Possible values include: 'Detection', 'Prevention'.
+ *
+ * @return the firewallMode value
+ */
+ public ApplicationGatewayFirewallMode firewallMode() {
+ return this.firewallMode;
+ }
+
+ /**
+ * Set web application firewall mode. Possible values include: 'Detection', 'Prevention'.
+ *
+ * @param firewallMode the firewallMode value to set
+ * @return the ApplicationGatewayWebApplicationFirewallConfiguration object itself.
+ */
+ public ApplicationGatewayWebApplicationFirewallConfiguration withFirewallMode(ApplicationGatewayFirewallMode firewallMode) {
+ this.firewallMode = firewallMode;
+ return this;
+ }
+
+ /**
+ * Get the type of the web application firewall rule set. Possible values are: 'OWASP'.
+ *
+ * @return the ruleSetType value
+ */
+ public String ruleSetType() {
+ return this.ruleSetType;
+ }
+
+ /**
+ * Set the type of the web application firewall rule set. Possible values are: 'OWASP'.
+ *
+ * @param ruleSetType the ruleSetType value to set
+ * @return the ApplicationGatewayWebApplicationFirewallConfiguration object itself.
+ */
+ public ApplicationGatewayWebApplicationFirewallConfiguration withRuleSetType(String ruleSetType) {
+ this.ruleSetType = ruleSetType;
+ return this;
+ }
+
+ /**
+ * Get the version of the rule set type.
+ *
+ * @return the ruleSetVersion value
+ */
+ public String ruleSetVersion() {
+ return this.ruleSetVersion;
+ }
+
+ /**
+ * Set the version of the rule set type.
+ *
+ * @param ruleSetVersion the ruleSetVersion value to set
+ * @return the ApplicationGatewayWebApplicationFirewallConfiguration object itself.
+ */
+ public ApplicationGatewayWebApplicationFirewallConfiguration withRuleSetVersion(String ruleSetVersion) {
+ this.ruleSetVersion = ruleSetVersion;
+ return this;
+ }
+
+ /**
+ * Get the disabled rule groups.
+ *
+ * @return the disabledRuleGroups value
+ */
+ public List disabledRuleGroups() {
+ return this.disabledRuleGroups;
+ }
+
+ /**
+ * Set the disabled rule groups.
+ *
+ * @param disabledRuleGroups the disabledRuleGroups value to set
+ * @return the ApplicationGatewayWebApplicationFirewallConfiguration object itself.
+ */
+ public ApplicationGatewayWebApplicationFirewallConfiguration withDisabledRuleGroups(List disabledRuleGroups) {
+ this.disabledRuleGroups = disabledRuleGroups;
+ return this;
+ }
+
+ /**
+ * Get whether allow WAF to check request Body.
+ *
+ * @return the requestBodyCheck value
+ */
+ public Boolean requestBodyCheck() {
+ return this.requestBodyCheck;
+ }
+
+ /**
+ * Set whether allow WAF to check request Body.
+ *
+ * @param requestBodyCheck the requestBodyCheck value to set
+ * @return the ApplicationGatewayWebApplicationFirewallConfiguration object itself.
+ */
+ public ApplicationGatewayWebApplicationFirewallConfiguration withRequestBodyCheck(Boolean requestBodyCheck) {
+ this.requestBodyCheck = requestBodyCheck;
+ return this;
+ }
+
+ /**
+ * Get maxium request body size for WAF.
+ *
+ * @return the maxRequestBodySize value
+ */
+ public Integer maxRequestBodySize() {
+ return this.maxRequestBodySize;
+ }
+
+ /**
+ * Set maxium request body size for WAF.
+ *
+ * @param maxRequestBodySize the maxRequestBodySize value to set
+ * @return the ApplicationGatewayWebApplicationFirewallConfiguration object itself.
+ */
+ public ApplicationGatewayWebApplicationFirewallConfiguration withMaxRequestBodySize(Integer maxRequestBodySize) {
+ this.maxRequestBodySize = maxRequestBodySize;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGateways.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGateways.java
new file mode 100644
index 000000000000..28716f560f5b
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationGateways.java
@@ -0,0 +1,89 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import com.microsoft.azure.arm.resources.collection.SupportsDeletingByResourceGroup;
+import com.microsoft.azure.arm.resources.collection.SupportsBatchDeletion;
+import com.microsoft.azure.arm.resources.collection.SupportsGettingByResourceGroup;
+import rx.Observable;
+import com.microsoft.azure.arm.resources.collection.SupportsListingByResourceGroup;
+import com.microsoft.azure.arm.collection.SupportsListing;
+import rx.Completable;
+import com.microsoft.azure.management.network.v2018_06_01.implementation.ApplicationGatewaysInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ApplicationGateways.
+ */
+public interface ApplicationGateways extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+ /**
+ * Starts the specified application gateway.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param applicationGatewayName The name of the application gateway.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable startAsync(String resourceGroupName, String applicationGatewayName);
+
+ /**
+ * Stops the specified application gateway in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param applicationGatewayName The name of the application gateway.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable stopAsync(String resourceGroupName, String applicationGatewayName);
+
+ /**
+ * Gets the backend health of the specified application gateway in a resource group.
+ *
+ * @param resourceGroupName The name of the resource group.
+ * @param applicationGatewayName The name of the application gateway.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable backendHealthAsync(String resourceGroupName, String applicationGatewayName);
+
+ /**
+ * Lists all available web application firewall rule sets.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAvailableWafRuleSetsAsync();
+
+ /**
+ * Lists available Ssl options for configuring Ssl policy.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAvailableSslOptionsAsync();
+
+ /**
+ * Lists all SSL predefined policies for configuring Ssl policy.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAvailableSslPredefinedPoliciesAsync();
+
+ /**
+ * Gets Ssl predefined policy with the specified policy name.
+ *
+ * @param predefinedPolicyName Name of Ssl predefined policy.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getSslPredefinedPolicyAsync(String predefinedPolicyName);
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationSecurityGroup.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationSecurityGroup.java
new file mode 100644
index 000000000000..909a4014b740
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationSecurityGroup.java
@@ -0,0 +1,83 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.Resource;
+import com.microsoft.azure.arm.resources.models.GroupableResourceCore;
+import com.microsoft.azure.arm.resources.models.HasResourceGroup;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.network.v2018_06_01.implementation.NetworkManager;
+import com.microsoft.azure.management.network.v2018_06_01.implementation.ApplicationSecurityGroupInner;
+
+/**
+ * Type representing ApplicationSecurityGroup.
+ */
+public interface ApplicationSecurityGroup extends HasInner, Resource, GroupableResourceCore, HasResourceGroup, Refreshable, Updatable, HasManager {
+ /**
+ * @return the etag value.
+ */
+ String etag();
+
+ /**
+ * @return the provisioningState value.
+ */
+ String provisioningState();
+
+ /**
+ * @return the resourceGuid value.
+ */
+ String resourceGuid();
+
+ /**
+ * The entirety of the ApplicationSecurityGroup definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithGroup, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of ApplicationSecurityGroup definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a ApplicationSecurityGroup definition.
+ */
+ interface Blank extends GroupableResourceCore.DefinitionWithRegion {
+ }
+
+ /**
+ * The stage of the ApplicationSecurityGroup definition allowing to specify the resource group.
+ */
+ interface WithGroup extends GroupableResourceCore.DefinitionStages.WithGroup {
+ }
+
+ /**
+ * 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 {
+ }
+ }
+ /**
+ * The template for a ApplicationSecurityGroup update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, Resource.UpdateWithTags {
+ }
+
+ /**
+ * Grouping of ApplicationSecurityGroup update stages.
+ */
+ interface UpdateStages {
+ }
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationSecurityGroups.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationSecurityGroups.java
new file mode 100644
index 000000000000..99a122261eb1
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/ApplicationSecurityGroups.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.network.v2018_06_01;
+
+import com.microsoft.azure.arm.collection.SupportsCreating;
+import com.microsoft.azure.arm.resources.collection.SupportsDeletingByResourceGroup;
+import com.microsoft.azure.arm.resources.collection.SupportsBatchDeletion;
+import com.microsoft.azure.arm.resources.collection.SupportsGettingByResourceGroup;
+import rx.Observable;
+import com.microsoft.azure.arm.resources.collection.SupportsListingByResourceGroup;
+import com.microsoft.azure.arm.collection.SupportsListing;
+import com.microsoft.azure.management.network.v2018_06_01.implementation.ApplicationSecurityGroupsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing ApplicationSecurityGroups.
+ */
+public interface ApplicationSecurityGroups extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AssociationType.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AssociationType.java
new file mode 100644
index 000000000000..7f68204dac33
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AssociationType.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.network.v2018_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for AssociationType.
+ */
+public final class AssociationType extends ExpandableStringEnum {
+ /** Static value Associated for AssociationType. */
+ public static final AssociationType ASSOCIATED = fromString("Associated");
+
+ /** Static value Contains for AssociationType. */
+ public static final AssociationType CONTAINS = fromString("Contains");
+
+ /**
+ * Creates or finds a AssociationType from its string representation.
+ * @param name a name to look for
+ * @return the corresponding AssociationType
+ */
+ @JsonCreator
+ public static AssociationType fromString(String name) {
+ return fromString(name, AssociationType.class);
+ }
+
+ /**
+ * @return known AssociationType values
+ */
+ public static Collection values() {
+ return values(AssociationType.class);
+ }
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AuthenticationMethod.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AuthenticationMethod.java
new file mode 100644
index 000000000000..0b4e0c28f113
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AuthenticationMethod.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.network.v2018_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for AuthenticationMethod.
+ */
+public final class AuthenticationMethod extends ExpandableStringEnum {
+ /** Static value EAPTLS for AuthenticationMethod. */
+ public static final AuthenticationMethod EAPTLS = fromString("EAPTLS");
+
+ /** Static value EAPMSCHAPv2 for AuthenticationMethod. */
+ public static final AuthenticationMethod EAPMSCHAPV2 = fromString("EAPMSCHAPv2");
+
+ /**
+ * Creates or finds a AuthenticationMethod from its string representation.
+ * @param name a name to look for
+ * @return the corresponding AuthenticationMethod
+ */
+ @JsonCreator
+ public static AuthenticationMethod fromString(String name) {
+ return fromString(name, AuthenticationMethod.class);
+ }
+
+ /**
+ * @return known AuthenticationMethod values
+ */
+ public static Collection values() {
+ return values(AuthenticationMethod.class);
+ }
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AuthorizationUseStatus.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AuthorizationUseStatus.java
new file mode 100644
index 000000000000..14957782e543
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AuthorizationUseStatus.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.network.v2018_06_01;
+
+import java.util.Collection;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.microsoft.rest.ExpandableStringEnum;
+
+/**
+ * Defines values for AuthorizationUseStatus.
+ */
+public final class AuthorizationUseStatus extends ExpandableStringEnum {
+ /** Static value Available for AuthorizationUseStatus. */
+ public static final AuthorizationUseStatus AVAILABLE = fromString("Available");
+
+ /** Static value InUse for AuthorizationUseStatus. */
+ public static final AuthorizationUseStatus IN_USE = fromString("InUse");
+
+ /**
+ * Creates or finds a AuthorizationUseStatus from its string representation.
+ * @param name a name to look for
+ * @return the corresponding AuthorizationUseStatus
+ */
+ @JsonCreator
+ public static AuthorizationUseStatus fromString(String name) {
+ return fromString(name, AuthorizationUseStatus.class);
+ }
+
+ /**
+ * @return known AuthorizationUseStatus values
+ */
+ public static Collection values() {
+ return values(AuthorizationUseStatus.class);
+ }
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/Availability.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/Availability.java
new file mode 100644
index 000000000000..673549b705fc
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/Availability.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Availability of the metric.
+ */
+public class Availability {
+ /**
+ * The time grain of the availability.
+ */
+ @JsonProperty(value = "timeGrain")
+ private String timeGrain;
+
+ /**
+ * The retention of the availability.
+ */
+ @JsonProperty(value = "retention")
+ private String retention;
+
+ /**
+ * Duration of the availability blob.
+ */
+ @JsonProperty(value = "blobDuration")
+ private String blobDuration;
+
+ /**
+ * Get the time grain of the availability.
+ *
+ * @return the timeGrain value
+ */
+ public String timeGrain() {
+ return this.timeGrain;
+ }
+
+ /**
+ * Set the time grain of the availability.
+ *
+ * @param timeGrain the timeGrain value to set
+ * @return the Availability object itself.
+ */
+ public Availability withTimeGrain(String timeGrain) {
+ this.timeGrain = timeGrain;
+ return this;
+ }
+
+ /**
+ * Get the retention of the availability.
+ *
+ * @return the retention value
+ */
+ public String retention() {
+ return this.retention;
+ }
+
+ /**
+ * Set the retention of the availability.
+ *
+ * @param retention the retention value to set
+ * @return the Availability object itself.
+ */
+ public Availability withRetention(String retention) {
+ this.retention = retention;
+ return this;
+ }
+
+ /**
+ * Get duration of the availability blob.
+ *
+ * @return the blobDuration value
+ */
+ public String blobDuration() {
+ return this.blobDuration;
+ }
+
+ /**
+ * Set duration of the availability blob.
+ *
+ * @param blobDuration the blobDuration value to set
+ * @return the Availability object itself.
+ */
+ public Availability withBlobDuration(String blobDuration) {
+ this.blobDuration = blobDuration;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AvailableEndpointServices.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AvailableEndpointServices.java
new file mode 100644
index 000000000000..e78c54e046a0
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AvailableEndpointServices.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.network.v2018_06_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.network.v2018_06_01.EndpointServiceResult;
+
+/**
+ * Type representing AvailableEndpointServices.
+ */
+public interface AvailableEndpointServices {
+ /**
+ * List what values of endpoint services are available for use.
+ *
+ * @param location The location to check available endpoint services.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync(final String location);
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AvailableProvidersList.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AvailableProvidersList.java
new file mode 100644
index 000000000000..aeeb12122923
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AvailableProvidersList.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.network.v2018_06_01.implementation.NetworkManager;
+import com.microsoft.azure.management.network.v2018_06_01.implementation.AvailableProvidersListInner;
+import java.util.List;
+
+/**
+ * Type representing AvailableProvidersList.
+ */
+public interface AvailableProvidersList extends HasInner, HasManager {
+ /**
+ * @return the countries value.
+ */
+ List countries();
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AvailableProvidersListCity.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AvailableProvidersListCity.java
new file mode 100644
index 000000000000..c6aa8afdae30
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AvailableProvidersListCity.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.network.v2018_06_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * City or town details.
+ */
+public class AvailableProvidersListCity {
+ /**
+ * The city or town name.
+ */
+ @JsonProperty(value = "cityName")
+ private String cityName;
+
+ /**
+ * A list of Internet service providers.
+ */
+ @JsonProperty(value = "providers")
+ private List providers;
+
+ /**
+ * Get the city or town name.
+ *
+ * @return the cityName value
+ */
+ public String cityName() {
+ return this.cityName;
+ }
+
+ /**
+ * Set the city or town name.
+ *
+ * @param cityName the cityName value to set
+ * @return the AvailableProvidersListCity object itself.
+ */
+ public AvailableProvidersListCity withCityName(String cityName) {
+ this.cityName = cityName;
+ return this;
+ }
+
+ /**
+ * Get a list of Internet service providers.
+ *
+ * @return the providers value
+ */
+ public List providers() {
+ return this.providers;
+ }
+
+ /**
+ * Set a list of Internet service providers.
+ *
+ * @param providers the providers value to set
+ * @return the AvailableProvidersListCity object itself.
+ */
+ public AvailableProvidersListCity withProviders(List providers) {
+ this.providers = providers;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AvailableProvidersListCountry.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AvailableProvidersListCountry.java
new file mode 100644
index 000000000000..a77a332ba0df
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AvailableProvidersListCountry.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Country details.
+ */
+public class AvailableProvidersListCountry {
+ /**
+ * The country name.
+ */
+ @JsonProperty(value = "countryName")
+ private String countryName;
+
+ /**
+ * A list of Internet service providers.
+ */
+ @JsonProperty(value = "providers")
+ private List providers;
+
+ /**
+ * List of available states in the country.
+ */
+ @JsonProperty(value = "states")
+ private List states;
+
+ /**
+ * Get the country name.
+ *
+ * @return the countryName value
+ */
+ public String countryName() {
+ return this.countryName;
+ }
+
+ /**
+ * Set the country name.
+ *
+ * @param countryName the countryName value to set
+ * @return the AvailableProvidersListCountry object itself.
+ */
+ public AvailableProvidersListCountry withCountryName(String countryName) {
+ this.countryName = countryName;
+ return this;
+ }
+
+ /**
+ * Get a list of Internet service providers.
+ *
+ * @return the providers value
+ */
+ public List providers() {
+ return this.providers;
+ }
+
+ /**
+ * Set a list of Internet service providers.
+ *
+ * @param providers the providers value to set
+ * @return the AvailableProvidersListCountry object itself.
+ */
+ public AvailableProvidersListCountry withProviders(List providers) {
+ this.providers = providers;
+ return this;
+ }
+
+ /**
+ * Get list of available states in the country.
+ *
+ * @return the states value
+ */
+ public List states() {
+ return this.states;
+ }
+
+ /**
+ * Set list of available states in the country.
+ *
+ * @param states the states value to set
+ * @return the AvailableProvidersListCountry object itself.
+ */
+ public AvailableProvidersListCountry withStates(List states) {
+ this.states = states;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AvailableProvidersListParameters.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AvailableProvidersListParameters.java
new file mode 100644
index 000000000000..c52602d24b88
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AvailableProvidersListParameters.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.network.v2018_06_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Constraints that determine the list of available Internet service providers.
+ */
+public class AvailableProvidersListParameters {
+ /**
+ * A list of Azure regions.
+ */
+ @JsonProperty(value = "azureLocations")
+ private List azureLocations;
+
+ /**
+ * The country for available providers list.
+ */
+ @JsonProperty(value = "country")
+ private String country;
+
+ /**
+ * The state for available providers list.
+ */
+ @JsonProperty(value = "state")
+ private String state;
+
+ /**
+ * The city or town for available providers list.
+ */
+ @JsonProperty(value = "city")
+ private String city;
+
+ /**
+ * Get a list of Azure regions.
+ *
+ * @return the azureLocations value
+ */
+ public List azureLocations() {
+ return this.azureLocations;
+ }
+
+ /**
+ * Set a list of Azure regions.
+ *
+ * @param azureLocations the azureLocations value to set
+ * @return the AvailableProvidersListParameters object itself.
+ */
+ public AvailableProvidersListParameters withAzureLocations(List azureLocations) {
+ this.azureLocations = azureLocations;
+ return this;
+ }
+
+ /**
+ * Get the country for available providers list.
+ *
+ * @return the country value
+ */
+ public String country() {
+ return this.country;
+ }
+
+ /**
+ * Set the country for available providers list.
+ *
+ * @param country the country value to set
+ * @return the AvailableProvidersListParameters object itself.
+ */
+ public AvailableProvidersListParameters withCountry(String country) {
+ this.country = country;
+ return this;
+ }
+
+ /**
+ * Get the state for available providers list.
+ *
+ * @return the state value
+ */
+ public String state() {
+ return this.state;
+ }
+
+ /**
+ * Set the state for available providers list.
+ *
+ * @param state the state value to set
+ * @return the AvailableProvidersListParameters object itself.
+ */
+ public AvailableProvidersListParameters withState(String state) {
+ this.state = state;
+ return this;
+ }
+
+ /**
+ * Get the city or town for available providers list.
+ *
+ * @return the city value
+ */
+ public String city() {
+ return this.city;
+ }
+
+ /**
+ * Set the city or town for available providers list.
+ *
+ * @param city the city value to set
+ * @return the AvailableProvidersListParameters object itself.
+ */
+ public AvailableProvidersListParameters withCity(String city) {
+ this.city = city;
+ return this;
+ }
+
+}
diff --git a/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AvailableProvidersListState.java b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AvailableProvidersListState.java
new file mode 100644
index 000000000000..dd82fd0d2e5b
--- /dev/null
+++ b/network/resource-manager/v2018_06_01/src/main/java/com/microsoft/azure/management/network/v2018_06_01/AvailableProvidersListState.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.network.v2018_06_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * State details.
+ */
+public class AvailableProvidersListState {
+ /**
+ * The state name.
+ */
+ @JsonProperty(value = "stateName")
+ private String stateName;
+
+ /**
+ * A list of Internet service providers.
+ */
+ @JsonProperty(value = "providers")
+ private List providers;
+
+ /**
+ * List of available cities or towns in the state.
+ */
+ @JsonProperty(value = "cities")
+ private List cities;
+
+ /**
+ * Get the state name.
+ *
+ * @return the stateName value
+ */
+ public String stateName() {
+ return this.stateName;
+ }
+
+ /**
+ * Set the state name.
+ *
+ * @param stateName the stateName value to set
+ * @return the AvailableProvidersListState object itself.
+ */
+ public AvailableProvidersListState withStateName(String stateName) {
+ this.stateName = stateName;
+ return this;
+ }
+
+ /**
+ * Get a list of Internet service providers.
+ *
+ * @return the providers value
+ */
+ public List providers() {
+ return this.providers;
+ }
+
+ /**
+ * Set a list of Internet service providers.
+ *
+ * @param providers the providers value to set
+ * @return the AvailableProvidersListState object itself.
+ */
+ public AvailableProvidersListState withProviders(List providers) {
+ this.providers = providers;
+ return this;
+ }
+
+ /**
+ * Get list of available cities or towns in the state.
+ *
+ * @return the cities value
+ */
+ public List cities() {
+ return this.cities;
+ }
+
+ /**
+ * Set list of available cities or towns in the state.
+ *
+ * @param cities the cities value to set
+ * @return the AvailableProvidersListState object itself.
+ */
+ public AvailableProvidersListState withCities(List