diff --git a/locks/resource-manager/v2016_09_01/pom.xml b/locks/resource-manager/v2016_09_01/pom.xml
index 4b3f1df49abc..e225e17cbd5f 100644
--- a/locks/resource-manager/v2016_09_01/pom.xml
+++ b/locks/resource-manager/v2016_09_01/pom.xml
@@ -11,15 +11,15 @@
com.microsoft.azureazure-arm-parent
- 1.0.0
+ 0.0.3-beta../../../pom.xmlazure-mgmt-locks
- 1.0.0-beta-1
+ 1.0.0-beta-2jarMicrosoft Azure SDK for Authorization ManagementThis package contains Microsoft Authorization Management SDK.
- https://github.com/Azure/azure-libraries-for-java
+ https://github.com/Azure/azure-sdk-for-javaThe MIT License (MIT)
@@ -28,8 +28,8 @@
- scm:git:https://github.com/Azure/azure-libraries-for-java
- scm:git:git@github.com:Azure/azure-libraries-for-java.git
+ scm:git:https://github.com/Azure/azure-sdk-for-java
+ scm:git:git@github.com:Azure/azure-sdk-for-java.gitHEAD
diff --git a/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/AuthorizationOperations.java b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/AuthorizationOperations.java
new file mode 100644
index 000000000000..6318ce0b2cdb
--- /dev/null
+++ b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/AuthorizationOperations.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.locks.v2016_09_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.locks.v2016_09_01.implementation.AuthorizationOperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing AuthorizationOperations.
+ */
+public interface AuthorizationOperations extends HasInner {
+ /**
+ * Lists all of the available Microsoft.Authorization REST API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/ManagementLockObject.java b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/ManagementLockObject.java
index a29317269ae9..b1e6c380e8f6 100644
--- a/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/ManagementLockObject.java
+++ b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/ManagementLockObject.java
@@ -75,6 +75,8 @@ interface Blank extends WithResourceGroupName {
interface WithResourceGroupName {
/**
* Specifies resourceGroupName.
+ * @param resourceGroupName The name of the resource group to lock
+ * @return the next definition stage
*/
WithLevel withResourceGroupName(String resourceGroupName);
}
@@ -85,6 +87,8 @@ interface WithResourceGroupName {
interface WithLevel {
/**
* Specifies level.
+ * @param level The level of the lock. Possible values are: NotSpecified, CanNotDelete, ReadOnly. CanNotDelete means authorized users are able to read and modify the resources, but not delete. ReadOnly means authorized users can only read from a resource, but they can't modify or delete it. Possible values include: 'NotSpecified', 'CanNotDelete', 'ReadOnly'
+ * @return the next definition stage
*/
WithCreate withLevel(LockLevel level);
}
@@ -95,6 +99,8 @@ interface WithLevel {
interface WithNotes {
/**
* Specifies notes.
+ * @param notes Notes about the lock. Maximum of 512 characters
+ * @return the next definition stage
*/
WithCreate withNotes(String notes);
}
@@ -105,6 +111,8 @@ interface WithNotes {
interface WithOwners {
/**
* Specifies owners.
+ * @param owners The owners of the lock
+ * @return the next definition stage
*/
WithCreate withOwners(List owners);
}
@@ -133,6 +141,8 @@ interface UpdateStages {
interface WithNotes {
/**
* Specifies notes.
+ * @param notes Notes about the lock. Maximum of 512 characters
+ * @return the next update stage
*/
Update withNotes(String notes);
}
@@ -143,6 +153,8 @@ interface WithNotes {
interface WithOwners {
/**
* Specifies owners.
+ * @param owners The owners of the lock
+ * @return the next update stage
*/
Update withOwners(List owners);
}
diff --git a/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/ManagementLocks.java b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/ManagementLocks.java
index c138622adcdc..a55ba17170e2 100644
--- a/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/ManagementLocks.java
+++ b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/ManagementLocks.java
@@ -143,4 +143,13 @@ public interface ManagementLocks extends SupportsCreating listAtResourceLevelAsync(final String resourceGroupName, final String resourceProviderNamespace, final String parentResourcePath, final String resourceType, final String resourceName);
+ /**
+ * Gets all the management locks for a scope.
+ *
+ * @param scope The scope for the lock. When providing a scope for the assignment, use '/subscriptions/{subscriptionId}' for subscriptions, '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}' for resource groups, and '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePathIfPresent}/{resourceType}/{resourceName}' for resources.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByScopeAsync(final String scope);
+
}
diff --git a/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/Operation.java b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/Operation.java
new file mode 100644
index 000000000000..8c7fe1172342
--- /dev/null
+++ b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/Operation.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.locks.v2016_09_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.locks.v2016_09_01.implementation.LocksManager;
+import com.microsoft.azure.management.locks.v2016_09_01.implementation.OperationInner;
+
+/**
+ * Type representing Operation.
+ */
+public interface Operation extends HasInner, HasManager {
+ /**
+ * @return the display value.
+ */
+ OperationDisplay display();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+}
diff --git a/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/OperationDisplay.java b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/OperationDisplay.java
new file mode 100644
index 000000000000..e23dbc327b57
--- /dev/null
+++ b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/OperationDisplay.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.locks.v2016_09_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The object that represents the operation.
+ */
+public class OperationDisplay {
+ /**
+ * Service provider: Microsoft.Authorization.
+ */
+ @JsonProperty(value = "provider")
+ private String provider;
+
+ /**
+ * Resource on which the operation is performed: Profile, endpoint, etc.
+ */
+ @JsonProperty(value = "resource")
+ private String resource;
+
+ /**
+ * Operation type: Read, write, delete, etc.
+ */
+ @JsonProperty(value = "operation")
+ private String operation;
+
+ /**
+ * Get service provider: Microsoft.Authorization.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Set service provider: Microsoft.Authorization.
+ *
+ * @param provider the provider value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withProvider(String provider) {
+ this.provider = provider;
+ return this;
+ }
+
+ /**
+ * Get resource on which the operation is performed: Profile, endpoint, etc.
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set resource on which the operation is performed: Profile, endpoint, etc.
+ *
+ * @param resource the resource value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withResource(String resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get operation type: Read, write, delete, etc.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+ /**
+ * Set operation type: Read, write, delete, etc.
+ *
+ * @param operation the operation value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withOperation(String operation) {
+ this.operation = operation;
+ return this;
+ }
+
+}
diff --git a/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/AuthorizationOperationsImpl.java b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/AuthorizationOperationsImpl.java
new file mode 100644
index 000000000000..b6a2594aec75
--- /dev/null
+++ b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/AuthorizationOperationsImpl.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ * abc
+ */
+
+package com.microsoft.azure.management.locks.v2016_09_01.implementation;
+
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.locks.v2016_09_01.AuthorizationOperations;
+import rx.functions.Func1;
+import rx.Observable;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.management.locks.v2016_09_01.Operation;
+
+class AuthorizationOperationsImpl extends WrapperImpl implements AuthorizationOperations {
+ private final LocksManager manager;
+
+ AuthorizationOperationsImpl(LocksManager manager) {
+ super(manager.inner().authorizationOperations());
+ this.manager = manager;
+ }
+
+ public LocksManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public Observable listAsync() {
+ AuthorizationOperationsInner client = this.inner();
+ return client.listAsync()
+ .flatMapIterable(new Func1, Iterable>() {
+ @Override
+ public Iterable call(Page page) {
+ return page.items();
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public Operation call(OperationInner inner) {
+ return new OperationImpl(inner, manager());
+ }
+ });
+ }
+
+}
diff --git a/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/AuthorizationOperationsInner.java b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/AuthorizationOperationsInner.java
new file mode 100644
index 000000000000..a5e92ba6383e
--- /dev/null
+++ b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/AuthorizationOperationsInner.java
@@ -0,0 +1,283 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.locks.v2016_09_01.implementation;
+
+import retrofit2.Retrofit;
+import com.google.common.reflect.TypeToken;
+import com.microsoft.azure.AzureServiceFuture;
+import com.microsoft.azure.CloudException;
+import com.microsoft.azure.ListOperationCallback;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.PagedList;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import java.io.IOException;
+import java.util.List;
+import okhttp3.ResponseBody;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.Query;
+import retrofit2.http.Url;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in AuthorizationOperations.
+ */
+public class AuthorizationOperationsInner {
+ /** The Retrofit service to perform REST calls. */
+ private AuthorizationOperationsService service;
+ /** The service client containing this operation class. */
+ private ManagementLockClientImpl client;
+
+ /**
+ * Initializes an instance of AuthorizationOperationsInner.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public AuthorizationOperationsInner(Retrofit retrofit, ManagementLockClientImpl client) {
+ this.service = retrofit.create(AuthorizationOperationsService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for AuthorizationOperations to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface AuthorizationOperationsService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.locks.v2016_09_01.AuthorizationOperations list" })
+ @GET("providers/Microsoft.Authorization/operations")
+ Observable> list(@Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.locks.v2016_09_01.AuthorizationOperations listNext" })
+ @GET
+ Observable> listNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * Lists all of the available Microsoft.Authorization REST API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<OperationInner> object if successful.
+ */
+ public PagedList list() {
+ ServiceResponse> response = listSinglePageAsync().toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * Lists all of the available Microsoft.Authorization REST API operations.
+ *
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture> listAsync(final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listSinglePageAsync(),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * Lists all of the available Microsoft.Authorization REST API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<OperationInner> object
+ */
+ public Observable> listAsync() {
+ return listWithServiceResponseAsync()
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Lists all of the available Microsoft.Authorization REST API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<OperationInner> object
+ */
+ public Observable>> listWithServiceResponseAsync() {
+ return listSinglePageAsync()
+ .concatMap(new Func1>, Observable>>>() {
+ @Override
+ public Observable>> call(ServiceResponse> page) {
+ String nextPageLink = page.body().nextPageLink();
+ if (nextPageLink == null) {
+ return Observable.just(page);
+ }
+ return Observable.just(page).concatWith(listNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * Lists all of the available Microsoft.Authorization REST API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<OperationInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listSinglePageAsync() {
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.list(this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listDelegate(response);
+ return Observable.just(new ServiceResponse>(result.body(), result.response()));
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse> listDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory()., CloudException>newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken>() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * Lists all of the available Microsoft.Authorization REST API operations.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<OperationInner> object if successful.
+ */
+ public PagedList listNext(final String nextPageLink) {
+ ServiceResponse> response = listNextSinglePageAsync(nextPageLink).toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * Lists all of the available Microsoft.Authorization REST API operations.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param serviceFuture the ServiceFuture object tracking the Retrofit calls
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture> listNextAsync(final String nextPageLink, final ServiceFuture> serviceFuture, final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listNextSinglePageAsync(nextPageLink),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * Lists all of the available Microsoft.Authorization REST API operations.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<OperationInner> object
+ */
+ public Observable> listNextAsync(final String nextPageLink) {
+ return listNextWithServiceResponseAsync(nextPageLink)
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Lists all of the available Microsoft.Authorization REST API operations.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<OperationInner> object
+ */
+ public Observable>> listNextWithServiceResponseAsync(final String nextPageLink) {
+ return listNextSinglePageAsync(nextPageLink)
+ .concatMap(new Func1>, Observable>>>() {
+ @Override
+ public Observable>> call(ServiceResponse> page) {
+ String nextPageLink = page.body().nextPageLink();
+ if (nextPageLink == null) {
+ return Observable.just(page);
+ }
+ return Observable.just(page).concatWith(listNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * Lists all of the available Microsoft.Authorization REST API operations.
+ *
+ ServiceResponse> * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<OperationInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listNextSinglePageAsync(final String nextPageLink) {
+ if (nextPageLink == null) {
+ throw new IllegalArgumentException("Parameter nextPageLink is required and cannot be null.");
+ }
+ String nextUrl = String.format("%s", nextPageLink);
+ return service.listNext(nextUrl, this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listNextDelegate(response);
+ return Observable.just(new ServiceResponse>(result.body(), result.response()));
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse> listNextDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory()., CloudException>newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken>() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+}
diff --git a/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/LocksManager.java b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/LocksManager.java
index c477e6c55f89..199858cac37d 100644
--- a/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/LocksManager.java
+++ b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/LocksManager.java
@@ -16,6 +16,7 @@
import com.microsoft.azure.arm.resources.AzureConfigurable;
import com.microsoft.azure.serializer.AzureJacksonAdapter;
import com.microsoft.rest.RestClient;
+import com.microsoft.azure.management.locks.v2016_09_01.AuthorizationOperations;
import com.microsoft.azure.management.locks.v2016_09_01.ManagementLocks;
import com.microsoft.azure.arm.resources.implementation.AzureConfigurableCoreImpl;
import com.microsoft.azure.arm.resources.implementation.ManagerCore;
@@ -24,6 +25,7 @@
* Entry point to Azure Authorization resource management.
*/
public final class LocksManager extends ManagerCore {
+ private AuthorizationOperations authorizationOperations;
private ManagementLocks managementLocks;
/**
* Get a Configurable instance that can be used to create LocksManager with optional configuration.
@@ -72,6 +74,16 @@ public interface Configurable extends AzureConfigurable {
LocksManager authenticate(AzureTokenCredentials credentials, String subscriptionId);
}
+ /**
+ * @return Entry point to manage AuthorizationOperations.
+ */
+ public AuthorizationOperations authorizationOperations() {
+ if (this.authorizationOperations == null) {
+ this.authorizationOperations = new AuthorizationOperationsImpl(this);
+ }
+ return this.authorizationOperations;
+ }
+
/**
* @return Entry point to manage ManagementLocks.
*/
diff --git a/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/ManagementLockClientImpl.java b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/ManagementLockClientImpl.java
index ecedf9e3d14f..1c7720448b36 100644
--- a/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/ManagementLockClientImpl.java
+++ b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/ManagementLockClientImpl.java
@@ -63,11 +63,11 @@ public String apiVersion() {
return this.apiVersion;
}
- /** Gets or sets the preferred language for the response. */
+ /** The preferred language for the response. */
private String acceptLanguage;
/**
- * Gets Gets or sets the preferred language for the response.
+ * Gets The preferred language for the response.
*
* @return the acceptLanguage value.
*/
@@ -76,7 +76,7 @@ public String acceptLanguage() {
}
/**
- * Sets Gets or sets the preferred language for the response.
+ * Sets The preferred language for the response.
*
* @param acceptLanguage the acceptLanguage value.
* @return the service client itself
@@ -86,11 +86,11 @@ public ManagementLockClientImpl withAcceptLanguage(String acceptLanguage) {
return this;
}
- /** Gets or sets the retry timeout in seconds for Long Running Operations. Default value is 30. */
+ /** The retry timeout in seconds for Long Running Operations. Default value is 30. */
private int longRunningOperationRetryTimeout;
/**
- * Gets Gets or sets the retry timeout in seconds for Long Running Operations. Default value is 30.
+ * Gets The retry timeout in seconds for Long Running Operations. Default value is 30.
*
* @return the longRunningOperationRetryTimeout value.
*/
@@ -99,7 +99,7 @@ public int longRunningOperationRetryTimeout() {
}
/**
- * Sets Gets or sets the retry timeout in seconds for Long Running Operations. Default value is 30.
+ * Sets The retry timeout in seconds for Long Running Operations. Default value is 30.
*
* @param longRunningOperationRetryTimeout the longRunningOperationRetryTimeout value.
* @return the service client itself
@@ -109,11 +109,11 @@ public ManagementLockClientImpl withLongRunningOperationRetryTimeout(int longRun
return this;
}
- /** When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true. */
+ /** 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. */
private boolean generateClientRequestId;
/**
- * Gets When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
+ * 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.
*
* @return the generateClientRequestId value.
*/
@@ -122,7 +122,7 @@ public boolean generateClientRequestId() {
}
/**
- * Sets When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
+ * 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.
*
* @param generateClientRequestId the generateClientRequestId value.
* @return the service client itself
@@ -132,6 +132,19 @@ public ManagementLockClientImpl withGenerateClientRequestId(boolean generateClie
return this;
}
+ /**
+ * The AuthorizationOperationsInner object to access its operations.
+ */
+ private AuthorizationOperationsInner authorizationOperations;
+
+ /**
+ * Gets the AuthorizationOperationsInner object to access its operations.
+ * @return the AuthorizationOperationsInner object.
+ */
+ public AuthorizationOperationsInner authorizationOperations() {
+ return this.authorizationOperations;
+ }
+
/**
* The ManagementLocksInner object to access its operations.
*/
@@ -180,6 +193,7 @@ protected void initialize() {
this.acceptLanguage = "en-US";
this.longRunningOperationRetryTimeout = 30;
this.generateClientRequestId = true;
+ this.authorizationOperations = new AuthorizationOperationsInner(restClient().retrofit(), this);
this.managementLocks = new ManagementLocksInner(restClient().retrofit(), this);
this.azureClient = new AzureClient(this);
}
@@ -191,6 +205,6 @@ protected void initialize() {
*/
@Override
public String userAgent() {
- return String.format("%s (%s, %s)", super.userAgent(), "ManagementLockClient", "2016-09-01");
+ return String.format("%s (%s, %s, auto-generated)", super.userAgent(), "ManagementLockClient", "2016-09-01");
}
}
diff --git a/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/ManagementLockObjectImpl.java b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/ManagementLockObjectImpl.java
index 47579b4f1ba0..bacf67e5e00a 100644
--- a/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/ManagementLockObjectImpl.java
+++ b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/ManagementLockObjectImpl.java
@@ -34,10 +34,10 @@ class ManagementLockObjectImpl extends CreatableUpdatableImpl listByScopeAsync(final String scope) {
+ ManagementLocksInner client = this.inner();
+ return client.listByScopeAsync(scope)
+ .flatMapIterable(new Func1, Iterable>() {
+ @Override
+ public Iterable call(Page page) {
+ return page.items();
+ }
+ })
+ .map(new Func1() {
+ @Override
+ public ManagementLockObject call(ManagementLockObjectInner inner) {
+ return new ManagementLockObjectImpl(inner, manager());
+ }
+ });
+ }
+
@Override
public PagedList list() {
ManagementLocksInner client = this.inner();
diff --git a/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/ManagementLocksInner.java b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/ManagementLocksInner.java
index 9a35563c79fc..b85026075d6f 100644
--- a/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/ManagementLocksInner.java
+++ b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/ManagementLocksInner.java
@@ -123,6 +123,10 @@ interface ManagementLocksService {
@GET("subscriptions/{subscriptionId}/providers/Microsoft.Authorization/locks")
Observable> list(@Path("subscriptionId") String subscriptionId, @Query("$filter") String filter, @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.locks.v2016_09_01.ManagementLocks listByScope" })
+ @GET("{scope}/providers/Microsoft.Authorization/locks")
+ Observable> listByScope(@Path("scope") String scope, @Query("$filter") String filter, @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.locks.v2016_09_01.ManagementLocks listByResourceGroupNext" })
@GET
Observable> listByResourceGroupNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
@@ -135,6 +139,10 @@ interface ManagementLocksService {
@GET
Observable> listNext(@Url String nextUrl, @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.locks.v2016_09_01.ManagementLocks listByScopeNext" })
+ @GET
+ Observable> listByScopeNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
}
/**
@@ -2018,6 +2026,229 @@ private ServiceResponse> listDelegate(Respon
.build(response);
}
+ /**
+ * Gets all the management locks for a scope.
+ *
+ * @param scope The scope for the lock. When providing a scope for the assignment, use '/subscriptions/{subscriptionId}' for subscriptions, '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}' for resource groups, and '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePathIfPresent}/{resourceType}/{resourceName}' for resources.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<ManagementLockObjectInner> object if successful.
+ */
+ public PagedList listByScope(final String scope) {
+ ServiceResponse> response = listByScopeSinglePageAsync(scope).toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listByScopeNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * Gets all the management locks for a scope.
+ *
+ * @param scope The scope for the lock. When providing a scope for the assignment, use '/subscriptions/{subscriptionId}' for subscriptions, '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}' for resource groups, and '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePathIfPresent}/{resourceType}/{resourceName}' for resources.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture> listByScopeAsync(final String scope, final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listByScopeSinglePageAsync(scope),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listByScopeNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * Gets all the management locks for a scope.
+ *
+ * @param scope The scope for the lock. When providing a scope for the assignment, use '/subscriptions/{subscriptionId}' for subscriptions, '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}' for resource groups, and '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePathIfPresent}/{resourceType}/{resourceName}' for resources.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ManagementLockObjectInner> object
+ */
+ public Observable> listByScopeAsync(final String scope) {
+ return listByScopeWithServiceResponseAsync(scope)
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Gets all the management locks for a scope.
+ *
+ * @param scope The scope for the lock. When providing a scope for the assignment, use '/subscriptions/{subscriptionId}' for subscriptions, '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}' for resource groups, and '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePathIfPresent}/{resourceType}/{resourceName}' for resources.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ManagementLockObjectInner> object
+ */
+ public Observable>> listByScopeWithServiceResponseAsync(final String scope) {
+ return listByScopeSinglePageAsync(scope)
+ .concatMap(new Func1>, Observable>>>() {
+ @Override
+ public Observable>> call(ServiceResponse> page) {
+ String nextPageLink = page.body().nextPageLink();
+ if (nextPageLink == null) {
+ return Observable.just(page);
+ }
+ return Observable.just(page).concatWith(listByScopeNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * Gets all the management locks for a scope.
+ *
+ * @param scope The scope for the lock. When providing a scope for the assignment, use '/subscriptions/{subscriptionId}' for subscriptions, '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}' for resource groups, and '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePathIfPresent}/{resourceType}/{resourceName}' for resources.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<ManagementLockObjectInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listByScopeSinglePageAsync(final String scope) {
+ if (scope == null) {
+ throw new IllegalArgumentException("Parameter scope is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ final String filter = null;
+ return service.listByScope(scope, filter, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listByScopeDelegate(response);
+ return Observable.just(new ServiceResponse>(result.body(), result.response()));
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ /**
+ * Gets all the management locks for a scope.
+ *
+ * @param scope The scope for the lock. When providing a scope for the assignment, use '/subscriptions/{subscriptionId}' for subscriptions, '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}' for resource groups, and '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePathIfPresent}/{resourceType}/{resourceName}' for resources.
+ * @param filter The filter to apply on the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<ManagementLockObjectInner> object if successful.
+ */
+ public PagedList listByScope(final String scope, final String filter) {
+ ServiceResponse> response = listByScopeSinglePageAsync(scope, filter).toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listByScopeNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * Gets all the management locks for a scope.
+ *
+ * @param scope The scope for the lock. When providing a scope for the assignment, use '/subscriptions/{subscriptionId}' for subscriptions, '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}' for resource groups, and '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePathIfPresent}/{resourceType}/{resourceName}' for resources.
+ * @param filter The filter to apply on the operation.
+ * @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> listByScopeAsync(final String scope, final String filter, final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listByScopeSinglePageAsync(scope, filter),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listByScopeNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * Gets all the management locks for a scope.
+ *
+ * @param scope The scope for the lock. When providing a scope for the assignment, use '/subscriptions/{subscriptionId}' for subscriptions, '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}' for resource groups, and '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePathIfPresent}/{resourceType}/{resourceName}' for resources.
+ * @param filter The filter to apply on the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ManagementLockObjectInner> object
+ */
+ public Observable> listByScopeAsync(final String scope, final String filter) {
+ return listByScopeWithServiceResponseAsync(scope, filter)
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Gets all the management locks for a scope.
+ *
+ * @param scope The scope for the lock. When providing a scope for the assignment, use '/subscriptions/{subscriptionId}' for subscriptions, '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}' for resource groups, and '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePathIfPresent}/{resourceType}/{resourceName}' for resources.
+ * @param filter The filter to apply on the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ManagementLockObjectInner> object
+ */
+ public Observable>> listByScopeWithServiceResponseAsync(final String scope, final String filter) {
+ return listByScopeSinglePageAsync(scope, filter)
+ .concatMap(new Func1>, Observable>>>() {
+ @Override
+ public Observable>> call(ServiceResponse> page) {
+ String nextPageLink = page.body().nextPageLink();
+ if (nextPageLink == null) {
+ return Observable.just(page);
+ }
+ return Observable.just(page).concatWith(listByScopeNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * Gets all the management locks for a scope.
+ *
+ ServiceResponse> * @param scope The scope for the lock. When providing a scope for the assignment, use '/subscriptions/{subscriptionId}' for subscriptions, '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}' for resource groups, and '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePathIfPresent}/{resourceType}/{resourceName}' for resources.
+ ServiceResponse> * @param filter The filter to apply on the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<ManagementLockObjectInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listByScopeSinglePageAsync(final String scope, final String filter) {
+ if (scope == null) {
+ throw new IllegalArgumentException("Parameter scope is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ return service.listByScope(scope, filter, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listByScopeDelegate(response);
+ return Observable.just(new ServiceResponse>(result.body(), result.response()));
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse> listByScopeDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory()., CloudException>newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken>() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
/**
* Gets all the management locks for a resource group.
*
@@ -2351,4 +2582,115 @@ private ServiceResponse> listNextDelegate(Re
.build(response);
}
+ /**
+ * Gets all the management locks for a scope.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @throws CloudException thrown if the request is rejected by server
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
+ * @return the PagedList<ManagementLockObjectInner> object if successful.
+ */
+ public PagedList listByScopeNext(final String nextPageLink) {
+ ServiceResponse> response = listByScopeNextSinglePageAsync(nextPageLink).toBlocking().single();
+ return new PagedList(response.body()) {
+ @Override
+ public Page nextPage(String nextPageLink) {
+ return listByScopeNextSinglePageAsync(nextPageLink).toBlocking().single().body();
+ }
+ };
+ }
+
+ /**
+ * Gets all the management locks for a scope.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @param serviceFuture the ServiceFuture object tracking the Retrofit calls
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ public ServiceFuture> listByScopeNextAsync(final String nextPageLink, final ServiceFuture> serviceFuture, final ListOperationCallback serviceCallback) {
+ return AzureServiceFuture.fromPageResponse(
+ listByScopeNextSinglePageAsync(nextPageLink),
+ new Func1>>>() {
+ @Override
+ public Observable>> call(String nextPageLink) {
+ return listByScopeNextSinglePageAsync(nextPageLink);
+ }
+ },
+ serviceCallback);
+ }
+
+ /**
+ * Gets all the management locks for a scope.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ManagementLockObjectInner> object
+ */
+ public Observable> listByScopeNextAsync(final String nextPageLink) {
+ return listByScopeNextWithServiceResponseAsync(nextPageLink)
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Gets all the management locks for a scope.
+ *
+ * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<ManagementLockObjectInner> object
+ */
+ public Observable>> listByScopeNextWithServiceResponseAsync(final String nextPageLink) {
+ return listByScopeNextSinglePageAsync(nextPageLink)
+ .concatMap(new Func1>, Observable>>>() {
+ @Override
+ public Observable>> call(ServiceResponse> page) {
+ String nextPageLink = page.body().nextPageLink();
+ if (nextPageLink == null) {
+ return Observable.just(page);
+ }
+ return Observable.just(page).concatWith(listByScopeNextWithServiceResponseAsync(nextPageLink));
+ }
+ });
+ }
+
+ /**
+ * Gets all the management locks for a scope.
+ *
+ ServiceResponse> * @param nextPageLink The NextLink from the previous successful call to List operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<ManagementLockObjectInner> object wrapped in {@link ServiceResponse} if successful.
+ */
+ public Observable>> listByScopeNextSinglePageAsync(final String nextPageLink) {
+ if (nextPageLink == null) {
+ throw new IllegalArgumentException("Parameter nextPageLink is required and cannot be null.");
+ }
+ String nextUrl = String.format("%s", nextPageLink);
+ return service.listByScopeNext(nextUrl, this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>>() {
+ @Override
+ public Observable>> call(Response response) {
+ try {
+ ServiceResponse> result = listByScopeNextDelegate(response);
+ return Observable.just(new ServiceResponse>(result.body(), result.response()));
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse> listByScopeNextDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory()., CloudException>newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken>() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
}
diff --git a/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/OperationImpl.java b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/OperationImpl.java
new file mode 100644
index 000000000000..67990129fe2b
--- /dev/null
+++ b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/OperationImpl.java
@@ -0,0 +1,37 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.locks.v2016_09_01.implementation;
+
+import com.microsoft.azure.management.locks.v2016_09_01.Operation;
+import com.microsoft.azure.arm.model.implementation.WrapperImpl;
+import com.microsoft.azure.management.locks.v2016_09_01.OperationDisplay;
+
+class OperationImpl extends WrapperImpl implements Operation {
+ private final LocksManager manager;
+ OperationImpl(OperationInner inner, LocksManager manager) {
+ super(inner);
+ this.manager = manager;
+ }
+
+ @Override
+ public LocksManager manager() {
+ return this.manager;
+ }
+
+ @Override
+ public OperationDisplay display() {
+ return this.inner().display();
+ }
+
+ @Override
+ public String name() {
+ return this.inner().name();
+ }
+
+}
diff --git a/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/OperationInner.java b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/OperationInner.java
new file mode 100644
index 000000000000..218a9b8c5f48
--- /dev/null
+++ b/locks/resource-manager/v2016_09_01/src/main/java/com/microsoft/azure/management/locks/v2016_09_01/implementation/OperationInner.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.locks.v2016_09_01.implementation;
+
+import com.microsoft.azure.management.locks.v2016_09_01.OperationDisplay;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Microsoft.Authorization operation.
+ */
+public class OperationInner {
+ /**
+ * Operation name: {provider}/{resource}/{operation}.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * The object that represents the operation.
+ */
+ @JsonProperty(value = "display")
+ private OperationDisplay display;
+
+ /**
+ * Get operation name: {provider}/{resource}/{operation}.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set operation name: {provider}/{resource}/{operation}.
+ *
+ * @param name the name value to set
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the object that represents the operation.
+ *
+ * @return the display value
+ */
+ public OperationDisplay display() {
+ return this.display;
+ }
+
+ /**
+ * Set the object that represents the operation.
+ *
+ * @param display the display value to set
+ * @return the OperationInner object itself.
+ */
+ public OperationInner withDisplay(OperationDisplay display) {
+ this.display = display;
+ return this;
+ }
+
+}
diff --git a/resources/resource-manager/v2018_05_01/pom.xml b/resources/resource-manager/v2018_05_01/pom.xml
new file mode 100644
index 000000000000..8cd08fc2272a
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/pom.xml
@@ -0,0 +1,133 @@
+
+
+ 4.0.0
+ com.microsoft.azure.resources.v2018_05_01
+
+ com.microsoft.azure
+ azure-arm-parent
+ 0.0.3-beta
+ ../../../pom.xml
+
+ azure-mgmt-resources
+ 1.0.0-beta
+ jar
+ Microsoft Azure SDK for Resources Management
+ This package contains Microsoft Resources Management SDK.
+ https://github.com/Azure/azure-sdk-for-java
+
+
+ The MIT License (MIT)
+ http://opensource.org/licenses/MIT
+ repo
+
+
+
+ scm:git:https://github.com/Azure/azure-sdk-for-java
+ scm:git:git@github.com:Azure/azure-sdk-for-java.git
+ HEAD
+
+
+ UTF-8
+
+
+
+
+ microsoft
+ Microsoft
+
+
+
+
+ com.microsoft.azure
+ azure-client-runtime
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+
+
+ junit
+ junit
+ test
+
+
+ com.microsoft.azure
+ azure-client-authentication
+ test
+
+
+ com.microsoft.azure
+ azure-mgmt-resources
+ test
+
+
+ com.microsoft.azure
+ azure-arm-client-runtime
+ test-jar
+ test
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ true
+ true
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+ 1.7
+ 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/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/AliasPathType.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/AliasPathType.java
new file mode 100644
index 000000000000..6786118478a4
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/AliasPathType.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.resources.v2018_05_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The type of the paths for alias.
+ */
+public class AliasPathType {
+ /**
+ * The path of an alias.
+ */
+ @JsonProperty(value = "path")
+ private String path;
+
+ /**
+ * The API versions.
+ */
+ @JsonProperty(value = "apiVersions")
+ private List apiVersions;
+
+ /**
+ * Get the path of an alias.
+ *
+ * @return the path value
+ */
+ public String path() {
+ return this.path;
+ }
+
+ /**
+ * Set the path of an alias.
+ *
+ * @param path the path value to set
+ * @return the AliasPathType object itself.
+ */
+ public AliasPathType withPath(String path) {
+ this.path = path;
+ return this;
+ }
+
+ /**
+ * Get the API versions.
+ *
+ * @return the apiVersions value
+ */
+ public List apiVersions() {
+ return this.apiVersions;
+ }
+
+ /**
+ * Set the API versions.
+ *
+ * @param apiVersions the apiVersions value to set
+ * @return the AliasPathType object itself.
+ */
+ public AliasPathType withApiVersions(List apiVersions) {
+ this.apiVersions = apiVersions;
+ return this;
+ }
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/AliasType.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/AliasType.java
new file mode 100644
index 000000000000..a58af28aaa84
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/AliasType.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.resources.v2018_05_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The alias type.
+ */
+public class AliasType {
+ /**
+ * The alias name.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * The paths for an alias.
+ */
+ @JsonProperty(value = "paths")
+ private List paths;
+
+ /**
+ * Get the alias name.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the alias name.
+ *
+ * @param name the name value to set
+ * @return the AliasType object itself.
+ */
+ public AliasType withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the paths for an alias.
+ *
+ * @return the paths value
+ */
+ public List paths() {
+ return this.paths;
+ }
+
+ /**
+ * Set the paths for an alias.
+ *
+ * @param paths the paths value to set
+ * @return the AliasType object itself.
+ */
+ public AliasType withPaths(List paths) {
+ this.paths = paths;
+ return this;
+ }
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/BasicDependency.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/BasicDependency.java
new file mode 100644
index 000000000000..027d8f9dd8c4
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/BasicDependency.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.resources.v2018_05_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Deployment dependency information.
+ */
+public class BasicDependency {
+ /**
+ * The ID of the dependency.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /**
+ * The dependency resource type.
+ */
+ @JsonProperty(value = "resourceType")
+ private String resourceType;
+
+ /**
+ * The dependency resource name.
+ */
+ @JsonProperty(value = "resourceName")
+ private String resourceName;
+
+ /**
+ * Get the ID of the dependency.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set the ID of the dependency.
+ *
+ * @param id the id value to set
+ * @return the BasicDependency object itself.
+ */
+ public BasicDependency withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get the dependency resource type.
+ *
+ * @return the resourceType value
+ */
+ public String resourceType() {
+ return this.resourceType;
+ }
+
+ /**
+ * Set the dependency resource type.
+ *
+ * @param resourceType the resourceType value to set
+ * @return the BasicDependency object itself.
+ */
+ public BasicDependency withResourceType(String resourceType) {
+ this.resourceType = resourceType;
+ return this;
+ }
+
+ /**
+ * Get the dependency resource name.
+ *
+ * @return the resourceName value
+ */
+ public String resourceName() {
+ return this.resourceName;
+ }
+
+ /**
+ * Set the dependency resource name.
+ *
+ * @param resourceName the resourceName value to set
+ * @return the BasicDependency object itself.
+ */
+ public BasicDependency withResourceName(String resourceName) {
+ this.resourceName = resourceName;
+ return this;
+ }
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DebugSetting.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DebugSetting.java
new file mode 100644
index 000000000000..0616f4c01357
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DebugSetting.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.resources.v2018_05_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The DebugSetting model.
+ */
+public class DebugSetting {
+ /**
+ * Specifies the type of information to log for debugging. The permitted
+ * values are none, requestContent, responseContent, or both requestContent
+ * and responseContent separated by a comma. The default is none. When
+ * setting this value, carefully consider the type of information you are
+ * passing in during deployment. By logging information about the request
+ * or response, you could potentially expose sensitive data that is
+ * retrieved through the deployment operations.
+ */
+ @JsonProperty(value = "detailLevel")
+ private String detailLevel;
+
+ /**
+ * Get specifies the type of information to log for debugging. The permitted values are none, requestContent, responseContent, or both requestContent and responseContent separated by a comma. The default is none. When setting this value, carefully consider the type of information you are passing in during deployment. By logging information about the request or response, you could potentially expose sensitive data that is retrieved through the deployment operations.
+ *
+ * @return the detailLevel value
+ */
+ public String detailLevel() {
+ return this.detailLevel;
+ }
+
+ /**
+ * Set specifies the type of information to log for debugging. The permitted values are none, requestContent, responseContent, or both requestContent and responseContent separated by a comma. The default is none. When setting this value, carefully consider the type of information you are passing in during deployment. By logging information about the request or response, you could potentially expose sensitive data that is retrieved through the deployment operations.
+ *
+ * @param detailLevel the detailLevel value to set
+ * @return the DebugSetting object itself.
+ */
+ public DebugSetting withDetailLevel(String detailLevel) {
+ this.detailLevel = detailLevel;
+ return this;
+ }
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/Dependency.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/Dependency.java
new file mode 100644
index 000000000000..f2ef69ae82a0
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/Dependency.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.resources.v2018_05_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Deployment dependency information.
+ */
+public class Dependency {
+ /**
+ * The list of dependencies.
+ */
+ @JsonProperty(value = "dependsOn")
+ private List dependsOn;
+
+ /**
+ * The ID of the dependency.
+ */
+ @JsonProperty(value = "id")
+ private String id;
+
+ /**
+ * The dependency resource type.
+ */
+ @JsonProperty(value = "resourceType")
+ private String resourceType;
+
+ /**
+ * The dependency resource name.
+ */
+ @JsonProperty(value = "resourceName")
+ private String resourceName;
+
+ /**
+ * Get the list of dependencies.
+ *
+ * @return the dependsOn value
+ */
+ public List dependsOn() {
+ return this.dependsOn;
+ }
+
+ /**
+ * Set the list of dependencies.
+ *
+ * @param dependsOn the dependsOn value to set
+ * @return the Dependency object itself.
+ */
+ public Dependency withDependsOn(List dependsOn) {
+ this.dependsOn = dependsOn;
+ return this;
+ }
+
+ /**
+ * Get the ID of the dependency.
+ *
+ * @return the id value
+ */
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Set the ID of the dependency.
+ *
+ * @param id the id value to set
+ * @return the Dependency object itself.
+ */
+ public Dependency withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Get the dependency resource type.
+ *
+ * @return the resourceType value
+ */
+ public String resourceType() {
+ return this.resourceType;
+ }
+
+ /**
+ * Set the dependency resource type.
+ *
+ * @param resourceType the resourceType value to set
+ * @return the Dependency object itself.
+ */
+ public Dependency withResourceType(String resourceType) {
+ this.resourceType = resourceType;
+ return this;
+ }
+
+ /**
+ * Get the dependency resource name.
+ *
+ * @return the resourceName value
+ */
+ public String resourceName() {
+ return this.resourceName;
+ }
+
+ /**
+ * Set the dependency resource name.
+ *
+ * @param resourceName the resourceName value to set
+ * @return the Dependency object itself.
+ */
+ public Dependency withResourceName(String resourceName) {
+ this.resourceName = resourceName;
+ return this;
+ }
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentExportResult.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentExportResult.java
new file mode 100644
index 000000000000..e6ac4fa3f793
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentExportResult.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.resources.v2018_05_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.resources.v2018_05_01.implementation.ResourcesManager;
+import com.microsoft.azure.management.resources.v2018_05_01.implementation.DeploymentExportResultInner;
+
+/**
+ * Type representing DeploymentExportResult.
+ */
+public interface DeploymentExportResult extends HasInner, HasManager {
+ /**
+ * @return the template value.
+ */
+ Object template();
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentExtended.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentExtended.java
new file mode 100644
index 000000000000..7ea206315a24
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentExtended.java
@@ -0,0 +1,133 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.resources.v2018_05_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.resources.v2018_05_01.implementation.DeploymentExtendedInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Creatable;
+import com.microsoft.azure.arm.model.Updatable;
+import com.microsoft.azure.arm.model.Appliable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.resources.v2018_05_01.implementation.ResourcesManager;
+
+/**
+ * Type representing DeploymentExtended.
+ */
+public interface DeploymentExtended extends HasInner, Indexable, Updatable, Refreshable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the properties value.
+ */
+ DeploymentPropertiesExtended properties();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+ /**
+ * The entirety of the DeploymentExtended definition.
+ */
+ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithResourceGroupName, DefinitionStages.WithProperties, DefinitionStages.WithCreate {
+ }
+
+ /**
+ * Grouping of DeploymentExtended definition stages.
+ */
+ interface DefinitionStages {
+ /**
+ * The first stage of a DeploymentExtended definition.
+ */
+ interface Blank extends WithResourceGroupName {
+ }
+
+ /**
+ * The stage of the deploymentextended definition allowing to specify ResourceGroupName.
+ */
+ interface WithResourceGroupName {
+ /**
+ * Specifies resourceGroupName.
+ * @param resourceGroupName The name of the resource group to deploy the resources to. The name is case insensitive. The resource group must already exist
+ * @return the next definition stage
+ */
+ WithProperties withResourceGroupName(String resourceGroupName);
+ }
+
+ /**
+ * The stage of the deploymentextended definition allowing to specify Properties.
+ */
+ interface WithProperties {
+ /**
+ * Specifies properties.
+ * @param properties The deployment properties
+ * @return the next definition stage
+ */
+ WithCreate withProperties(DeploymentProperties properties);
+ }
+
+ /**
+ * The stage of the deploymentextended definition allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location The location to store the deployment data
+ * @return the next definition stage
+ */
+ WithCreate withLocation(String location);
+ }
+
+ /**
+ * The stage of the definition which contains all the minimum required inputs for
+ * the resource to be created (via {@link WithCreate#create()}), but also allows
+ * for any other optional settings to be specified.
+ */
+ interface WithCreate extends Creatable, DefinitionStages.WithLocation {
+ }
+ }
+ /**
+ * The template for a DeploymentExtended update operation, containing all the settings that can be modified.
+ */
+ interface Update extends Appliable, UpdateStages.WithLocation {
+ }
+
+ /**
+ * Grouping of DeploymentExtended update stages.
+ */
+ interface UpdateStages {
+ /**
+ * The stage of the deploymentextended update allowing to specify Location.
+ */
+ interface WithLocation {
+ /**
+ * Specifies location.
+ * @param location The location to store the deployment data
+ * @return the next update stage
+ */
+ Update withLocation(String location);
+ }
+
+ }
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentExtendedFilter.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentExtendedFilter.java
new file mode 100644
index 000000000000..65730b503985
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentExtendedFilter.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.resources.v2018_05_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Deployment filter.
+ */
+public class DeploymentExtendedFilter {
+ /**
+ * The provisioning state.
+ */
+ @JsonProperty(value = "provisioningState")
+ private String provisioningState;
+
+ /**
+ * Get the provisioning state.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Set the provisioning state.
+ *
+ * @param provisioningState the provisioningState value to set
+ * @return the DeploymentExtendedFilter object itself.
+ */
+ public DeploymentExtendedFilter withProvisioningState(String provisioningState) {
+ this.provisioningState = provisioningState;
+ return this;
+ }
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentMode.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentMode.java
new file mode 100644
index 000000000000..30c1e9f8835a
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentMode.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.resources.v2018_05_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for DeploymentMode.
+ */
+public enum DeploymentMode {
+ /** Enum value Incremental. */
+ INCREMENTAL("Incremental"),
+
+ /** Enum value Complete. */
+ COMPLETE("Complete");
+
+ /** The actual serialized value for a DeploymentMode instance. */
+ private String value;
+
+ DeploymentMode(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a DeploymentMode instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed DeploymentMode object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static DeploymentMode fromString(String value) {
+ DeploymentMode[] items = DeploymentMode.values();
+ for (DeploymentMode item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentOperation.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentOperation.java
new file mode 100644
index 000000000000..62242794dcbf
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentOperation.java
@@ -0,0 +1,37 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.resources.v2018_05_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.resources.v2018_05_01.implementation.DeploymentOperationInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.resources.v2018_05_01.implementation.ResourcesManager;
+
+/**
+ * Type representing DeploymentOperation.
+ */
+public interface DeploymentOperation extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the operationId value.
+ */
+ String operationId();
+
+ /**
+ * @return the properties value.
+ */
+ DeploymentOperationProperties properties();
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentOperationProperties.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentOperationProperties.java
new file mode 100644
index 000000000000..ce0956b439b1
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentOperationProperties.java
@@ -0,0 +1,138 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.resources.v2018_05_01;
+
+import org.joda.time.DateTime;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Deployment operation properties.
+ */
+public class DeploymentOperationProperties {
+ /**
+ * The state of the provisioning.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * The date and time of the operation.
+ */
+ @JsonProperty(value = "timestamp", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime timestamp;
+
+ /**
+ * Deployment operation service request id.
+ */
+ @JsonProperty(value = "serviceRequestId", access = JsonProperty.Access.WRITE_ONLY)
+ private String serviceRequestId;
+
+ /**
+ * Operation status code.
+ */
+ @JsonProperty(value = "statusCode", access = JsonProperty.Access.WRITE_ONLY)
+ private String statusCode;
+
+ /**
+ * Operation status message.
+ */
+ @JsonProperty(value = "statusMessage", access = JsonProperty.Access.WRITE_ONLY)
+ private Object statusMessage;
+
+ /**
+ * The target resource.
+ */
+ @JsonProperty(value = "targetResource", access = JsonProperty.Access.WRITE_ONLY)
+ private TargetResource targetResource;
+
+ /**
+ * The HTTP request message.
+ */
+ @JsonProperty(value = "request", access = JsonProperty.Access.WRITE_ONLY)
+ private HttpMessage request;
+
+ /**
+ * The HTTP response message.
+ */
+ @JsonProperty(value = "response", access = JsonProperty.Access.WRITE_ONLY)
+ private HttpMessage response;
+
+ /**
+ * Get the state of the provisioning.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the date and time of the operation.
+ *
+ * @return the timestamp value
+ */
+ public DateTime timestamp() {
+ return this.timestamp;
+ }
+
+ /**
+ * Get deployment operation service request id.
+ *
+ * @return the serviceRequestId value
+ */
+ public String serviceRequestId() {
+ return this.serviceRequestId;
+ }
+
+ /**
+ * Get operation status code.
+ *
+ * @return the statusCode value
+ */
+ public String statusCode() {
+ return this.statusCode;
+ }
+
+ /**
+ * Get operation status message.
+ *
+ * @return the statusMessage value
+ */
+ public Object statusMessage() {
+ return this.statusMessage;
+ }
+
+ /**
+ * Get the target resource.
+ *
+ * @return the targetResource value
+ */
+ public TargetResource targetResource() {
+ return this.targetResource;
+ }
+
+ /**
+ * Get the HTTP request message.
+ *
+ * @return the request value
+ */
+ public HttpMessage request() {
+ return this.request;
+ }
+
+ /**
+ * Get the HTTP response message.
+ *
+ * @return the response value
+ */
+ public HttpMessage response() {
+ return this.response;
+ }
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentOperations.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentOperations.java
new file mode 100644
index 000000000000..a7bf7ed5d531
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentOperations.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.resources.v2018_05_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.resources.v2018_05_01.implementation.DeploymentOperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing DeploymentOperations.
+ */
+public interface DeploymentOperations extends HasInner {
+ /**
+ * Gets a deployments operation.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deploymentName The name of the deployment.
+ * @param operationId The ID of the operation to get.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAsync(String resourceGroupName, String deploymentName, String operationId);
+
+ /**
+ * Gets all deployments operations for a deployment.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deploymentName The name of the deployment with the operation to get.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listByResourceGroupAsync(final String resourceGroupName, final String deploymentName);
+
+ /**
+ * Gets a deployments operation.
+ *
+ * @param deploymentName The name of the deployment.
+ * @param operationId The ID of the operation to get.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAtSubscriptionScopeAsync(String deploymentName, String operationId);
+
+ /**
+ * Gets all deployments operations for a deployment.
+ *
+ * @param deploymentName The name of the deployment with the operation to get.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAtSubscriptionScopeAsync(final String deploymentName);
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentProperties.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentProperties.java
new file mode 100644
index 000000000000..86540ef31a11
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentProperties.java
@@ -0,0 +1,216 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.resources.v2018_05_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Deployment properties.
+ */
+public class DeploymentProperties {
+ /**
+ * The template content. You use this element when you want to pass the
+ * template syntax directly in the request rather than link to an existing
+ * template. It can be a JObject or well-formed JSON string. Use either the
+ * templateLink property or the template property, but not both.
+ */
+ @JsonProperty(value = "template")
+ private Object template;
+
+ /**
+ * The URI of the template. Use either the templateLink property or the
+ * template property, but not both.
+ */
+ @JsonProperty(value = "templateLink")
+ private TemplateLink templateLink;
+
+ /**
+ * Name and value pairs that define the deployment parameters for the
+ * template. You use this element when you want to provide the parameter
+ * values directly in the request rather than link to an existing parameter
+ * file. Use either the parametersLink property or the parameters property,
+ * but not both. It can be a JObject or a well formed JSON string.
+ */
+ @JsonProperty(value = "parameters")
+ private Object parameters;
+
+ /**
+ * The URI of parameters file. You use this element to link to an existing
+ * parameters file. Use either the parametersLink property or the
+ * parameters property, but not both.
+ */
+ @JsonProperty(value = "parametersLink")
+ private ParametersLink parametersLink;
+
+ /**
+ * The mode that is used to deploy resources. This value can be either
+ * Incremental or Complete. In Incremental mode, resources are deployed
+ * without deleting existing resources that are not included in the
+ * template. In Complete mode, resources are deployed and existing
+ * resources in the resource group that are not included in the template
+ * are deleted. Be careful when using Complete mode as you may
+ * unintentionally delete resources. Possible values include:
+ * 'Incremental', 'Complete'.
+ */
+ @JsonProperty(value = "mode", required = true)
+ private DeploymentMode mode;
+
+ /**
+ * The debug setting of the deployment.
+ */
+ @JsonProperty(value = "debugSetting")
+ private DebugSetting debugSetting;
+
+ /**
+ * The deployment on error behavior.
+ */
+ @JsonProperty(value = "onErrorDeployment")
+ private OnErrorDeployment onErrorDeployment;
+
+ /**
+ * Get the template content. You use this element when you want to pass the template syntax directly in the request rather than link to an existing template. It can be a JObject or well-formed JSON string. Use either the templateLink property or the template property, but not both.
+ *
+ * @return the template value
+ */
+ public Object template() {
+ return this.template;
+ }
+
+ /**
+ * Set the template content. You use this element when you want to pass the template syntax directly in the request rather than link to an existing template. It can be a JObject or well-formed JSON string. Use either the templateLink property or the template property, but not both.
+ *
+ * @param template the template value to set
+ * @return the DeploymentProperties object itself.
+ */
+ public DeploymentProperties withTemplate(Object template) {
+ this.template = template;
+ return this;
+ }
+
+ /**
+ * Get the URI of the template. Use either the templateLink property or the template property, but not both.
+ *
+ * @return the templateLink value
+ */
+ public TemplateLink templateLink() {
+ return this.templateLink;
+ }
+
+ /**
+ * Set the URI of the template. Use either the templateLink property or the template property, but not both.
+ *
+ * @param templateLink the templateLink value to set
+ * @return the DeploymentProperties object itself.
+ */
+ public DeploymentProperties withTemplateLink(TemplateLink templateLink) {
+ this.templateLink = templateLink;
+ return this;
+ }
+
+ /**
+ * Get name and value pairs that define the deployment parameters for the template. You use this element when you want to provide the parameter values directly in the request rather than link to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string.
+ *
+ * @return the parameters value
+ */
+ public Object parameters() {
+ return this.parameters;
+ }
+
+ /**
+ * Set name and value pairs that define the deployment parameters for the template. You use this element when you want to provide the parameter values directly in the request rather than link to an existing parameter file. Use either the parametersLink property or the parameters property, but not both. It can be a JObject or a well formed JSON string.
+ *
+ * @param parameters the parameters value to set
+ * @return the DeploymentProperties object itself.
+ */
+ public DeploymentProperties withParameters(Object parameters) {
+ this.parameters = parameters;
+ return this;
+ }
+
+ /**
+ * Get the URI of parameters file. You use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both.
+ *
+ * @return the parametersLink value
+ */
+ public ParametersLink parametersLink() {
+ return this.parametersLink;
+ }
+
+ /**
+ * Set the URI of parameters file. You use this element to link to an existing parameters file. Use either the parametersLink property or the parameters property, but not both.
+ *
+ * @param parametersLink the parametersLink value to set
+ * @return the DeploymentProperties object itself.
+ */
+ public DeploymentProperties withParametersLink(ParametersLink parametersLink) {
+ this.parametersLink = parametersLink;
+ return this;
+ }
+
+ /**
+ * Get the mode that is used to deploy resources. This value can be either Incremental or Complete. In Incremental mode, resources are deployed without deleting existing resources that are not included in the template. In Complete mode, resources are deployed and existing resources in the resource group that are not included in the template are deleted. Be careful when using Complete mode as you may unintentionally delete resources. Possible values include: 'Incremental', 'Complete'.
+ *
+ * @return the mode value
+ */
+ public DeploymentMode mode() {
+ return this.mode;
+ }
+
+ /**
+ * Set the mode that is used to deploy resources. This value can be either Incremental or Complete. In Incremental mode, resources are deployed without deleting existing resources that are not included in the template. In Complete mode, resources are deployed and existing resources in the resource group that are not included in the template are deleted. Be careful when using Complete mode as you may unintentionally delete resources. Possible values include: 'Incremental', 'Complete'.
+ *
+ * @param mode the mode value to set
+ * @return the DeploymentProperties object itself.
+ */
+ public DeploymentProperties withMode(DeploymentMode mode) {
+ this.mode = mode;
+ return this;
+ }
+
+ /**
+ * Get the debug setting of the deployment.
+ *
+ * @return the debugSetting value
+ */
+ public DebugSetting debugSetting() {
+ return this.debugSetting;
+ }
+
+ /**
+ * Set the debug setting of the deployment.
+ *
+ * @param debugSetting the debugSetting value to set
+ * @return the DeploymentProperties object itself.
+ */
+ public DeploymentProperties withDebugSetting(DebugSetting debugSetting) {
+ this.debugSetting = debugSetting;
+ return this;
+ }
+
+ /**
+ * Get the deployment on error behavior.
+ *
+ * @return the onErrorDeployment value
+ */
+ public OnErrorDeployment onErrorDeployment() {
+ return this.onErrorDeployment;
+ }
+
+ /**
+ * Set the deployment on error behavior.
+ *
+ * @param onErrorDeployment the onErrorDeployment value to set
+ * @return the DeploymentProperties object itself.
+ */
+ public DeploymentProperties withOnErrorDeployment(OnErrorDeployment onErrorDeployment) {
+ this.onErrorDeployment = onErrorDeployment;
+ return this;
+ }
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentPropertiesExtended.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentPropertiesExtended.java
new file mode 100644
index 000000000000..6a865ab5af38
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentPropertiesExtended.java
@@ -0,0 +1,328 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.resources.v2018_05_01;
+
+import org.joda.time.DateTime;
+import java.util.List;
+import com.microsoft.azure.management.resources.v2018_05_01.implementation.ProviderInner;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Deployment properties with additional details.
+ */
+public class DeploymentPropertiesExtended {
+ /**
+ * The state of the provisioning.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * The correlation ID of the deployment.
+ */
+ @JsonProperty(value = "correlationId", access = JsonProperty.Access.WRITE_ONLY)
+ private String correlationId;
+
+ /**
+ * The timestamp of the template deployment.
+ */
+ @JsonProperty(value = "timestamp", access = JsonProperty.Access.WRITE_ONLY)
+ private DateTime timestamp;
+
+ /**
+ * Key/value pairs that represent deployment output.
+ */
+ @JsonProperty(value = "outputs")
+ private Object outputs;
+
+ /**
+ * The list of resource providers needed for the deployment.
+ */
+ @JsonProperty(value = "providers")
+ private List providers;
+
+ /**
+ * The list of deployment dependencies.
+ */
+ @JsonProperty(value = "dependencies")
+ private List dependencies;
+
+ /**
+ * The template content. Use only one of Template or TemplateLink.
+ */
+ @JsonProperty(value = "template")
+ private Object template;
+
+ /**
+ * The URI referencing the template. Use only one of Template or
+ * TemplateLink.
+ */
+ @JsonProperty(value = "templateLink")
+ private TemplateLink templateLink;
+
+ /**
+ * Deployment parameters. Use only one of Parameters or ParametersLink.
+ */
+ @JsonProperty(value = "parameters")
+ private Object parameters;
+
+ /**
+ * The URI referencing the parameters. Use only one of Parameters or
+ * ParametersLink.
+ */
+ @JsonProperty(value = "parametersLink")
+ private ParametersLink parametersLink;
+
+ /**
+ * The deployment mode. Possible values are Incremental and Complete.
+ * Possible values include: 'Incremental', 'Complete'.
+ */
+ @JsonProperty(value = "mode")
+ private DeploymentMode mode;
+
+ /**
+ * The debug setting of the deployment.
+ */
+ @JsonProperty(value = "debugSetting")
+ private DebugSetting debugSetting;
+
+ /**
+ * The deployment on error behavior.
+ */
+ @JsonProperty(value = "onErrorDeployment")
+ private OnErrorDeploymentExtended onErrorDeployment;
+
+ /**
+ * Get the state of the provisioning.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the correlation ID of the deployment.
+ *
+ * @return the correlationId value
+ */
+ public String correlationId() {
+ return this.correlationId;
+ }
+
+ /**
+ * Get the timestamp of the template deployment.
+ *
+ * @return the timestamp value
+ */
+ public DateTime timestamp() {
+ return this.timestamp;
+ }
+
+ /**
+ * Get key/value pairs that represent deployment output.
+ *
+ * @return the outputs value
+ */
+ public Object outputs() {
+ return this.outputs;
+ }
+
+ /**
+ * Set key/value pairs that represent deployment output.
+ *
+ * @param outputs the outputs value to set
+ * @return the DeploymentPropertiesExtended object itself.
+ */
+ public DeploymentPropertiesExtended withOutputs(Object outputs) {
+ this.outputs = outputs;
+ return this;
+ }
+
+ /**
+ * Get the list of resource providers needed for the deployment.
+ *
+ * @return the providers value
+ */
+ public List providers() {
+ return this.providers;
+ }
+
+ /**
+ * Set the list of resource providers needed for the deployment.
+ *
+ * @param providers the providers value to set
+ * @return the DeploymentPropertiesExtended object itself.
+ */
+ public DeploymentPropertiesExtended withProviders(List providers) {
+ this.providers = providers;
+ return this;
+ }
+
+ /**
+ * Get the list of deployment dependencies.
+ *
+ * @return the dependencies value
+ */
+ public List dependencies() {
+ return this.dependencies;
+ }
+
+ /**
+ * Set the list of deployment dependencies.
+ *
+ * @param dependencies the dependencies value to set
+ * @return the DeploymentPropertiesExtended object itself.
+ */
+ public DeploymentPropertiesExtended withDependencies(List dependencies) {
+ this.dependencies = dependencies;
+ return this;
+ }
+
+ /**
+ * Get the template content. Use only one of Template or TemplateLink.
+ *
+ * @return the template value
+ */
+ public Object template() {
+ return this.template;
+ }
+
+ /**
+ * Set the template content. Use only one of Template or TemplateLink.
+ *
+ * @param template the template value to set
+ * @return the DeploymentPropertiesExtended object itself.
+ */
+ public DeploymentPropertiesExtended withTemplate(Object template) {
+ this.template = template;
+ return this;
+ }
+
+ /**
+ * Get the URI referencing the template. Use only one of Template or TemplateLink.
+ *
+ * @return the templateLink value
+ */
+ public TemplateLink templateLink() {
+ return this.templateLink;
+ }
+
+ /**
+ * Set the URI referencing the template. Use only one of Template or TemplateLink.
+ *
+ * @param templateLink the templateLink value to set
+ * @return the DeploymentPropertiesExtended object itself.
+ */
+ public DeploymentPropertiesExtended withTemplateLink(TemplateLink templateLink) {
+ this.templateLink = templateLink;
+ return this;
+ }
+
+ /**
+ * Get deployment parameters. Use only one of Parameters or ParametersLink.
+ *
+ * @return the parameters value
+ */
+ public Object parameters() {
+ return this.parameters;
+ }
+
+ /**
+ * Set deployment parameters. Use only one of Parameters or ParametersLink.
+ *
+ * @param parameters the parameters value to set
+ * @return the DeploymentPropertiesExtended object itself.
+ */
+ public DeploymentPropertiesExtended withParameters(Object parameters) {
+ this.parameters = parameters;
+ return this;
+ }
+
+ /**
+ * Get the URI referencing the parameters. Use only one of Parameters or ParametersLink.
+ *
+ * @return the parametersLink value
+ */
+ public ParametersLink parametersLink() {
+ return this.parametersLink;
+ }
+
+ /**
+ * Set the URI referencing the parameters. Use only one of Parameters or ParametersLink.
+ *
+ * @param parametersLink the parametersLink value to set
+ * @return the DeploymentPropertiesExtended object itself.
+ */
+ public DeploymentPropertiesExtended withParametersLink(ParametersLink parametersLink) {
+ this.parametersLink = parametersLink;
+ return this;
+ }
+
+ /**
+ * Get the deployment mode. Possible values are Incremental and Complete. Possible values include: 'Incremental', 'Complete'.
+ *
+ * @return the mode value
+ */
+ public DeploymentMode mode() {
+ return this.mode;
+ }
+
+ /**
+ * Set the deployment mode. Possible values are Incremental and Complete. Possible values include: 'Incremental', 'Complete'.
+ *
+ * @param mode the mode value to set
+ * @return the DeploymentPropertiesExtended object itself.
+ */
+ public DeploymentPropertiesExtended withMode(DeploymentMode mode) {
+ this.mode = mode;
+ return this;
+ }
+
+ /**
+ * Get the debug setting of the deployment.
+ *
+ * @return the debugSetting value
+ */
+ public DebugSetting debugSetting() {
+ return this.debugSetting;
+ }
+
+ /**
+ * Set the debug setting of the deployment.
+ *
+ * @param debugSetting the debugSetting value to set
+ * @return the DeploymentPropertiesExtended object itself.
+ */
+ public DeploymentPropertiesExtended withDebugSetting(DebugSetting debugSetting) {
+ this.debugSetting = debugSetting;
+ return this;
+ }
+
+ /**
+ * Get the deployment on error behavior.
+ *
+ * @return the onErrorDeployment value
+ */
+ public OnErrorDeploymentExtended onErrorDeployment() {
+ return this.onErrorDeployment;
+ }
+
+ /**
+ * Set the deployment on error behavior.
+ *
+ * @param onErrorDeployment the onErrorDeployment value to set
+ * @return the DeploymentPropertiesExtended object itself.
+ */
+ public DeploymentPropertiesExtended withOnErrorDeployment(OnErrorDeploymentExtended onErrorDeployment) {
+ this.onErrorDeployment = onErrorDeployment;
+ return this;
+ }
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentValidateResult.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentValidateResult.java
new file mode 100644
index 000000000000..3c97e116cc00
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/DeploymentValidateResult.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.resources.v2018_05_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.resources.v2018_05_01.implementation.ResourcesManager;
+import com.microsoft.azure.management.resources.v2018_05_01.implementation.DeploymentValidateResultInner;
+
+/**
+ * Type representing DeploymentValidateResult.
+ */
+public interface DeploymentValidateResult extends HasInner, HasManager {
+ /**
+ * @return the error value.
+ */
+ ResourceManagementErrorWithDetails error();
+
+ /**
+ * @return the properties value.
+ */
+ DeploymentPropertiesExtended properties();
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/Deployments.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/Deployments.java
new file mode 100644
index 000000000000..7725dfaf6a9c
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/Deployments.java
@@ -0,0 +1,137 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.resources.v2018_05_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.resources.v2018_05_01.implementation.DeploymentInner;
+import com.microsoft.azure.management.resources.v2018_05_01.implementation.DeploymentsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Deployments.
+ */
+public interface Deployments extends SupportsCreating, SupportsDeletingByResourceGroup, SupportsBatchDeletion, SupportsGettingByResourceGroup, SupportsListingByResourceGroup, SupportsListing, HasInner {
+ /**
+ * Deletes a deployment from the deployment history.
+ * A template deployment that is currently running cannot be deleted. Deleting a template deployment removes the associated deployment operations. This is an asynchronous operation that returns a status of 202 until the template deployment is successfully deleted. The Location response header contains the URI that is used to obtain the status of the process. While the process is running, a call to the URI in the Location header returns a status of 202. When the process finishes, the URI in the Location header returns a status of 204 on success. If the asynchronous request failed, the URI in the Location header returns an error-level status code.
+ *
+ * @param deploymentName The name of the deployment to delete.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable deleteAtSubscriptionScopeAsync(String deploymentName);
+
+ /**
+ * Checks whether the deployment exists.
+ *
+ * @param deploymentName The name of the deployment to check.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable checkExistenceAtSubscriptionScopeAsync(String deploymentName);
+
+ /**
+ * Deploys resources at subscription scope.
+ * You can provide the template and parameters directly in the request or link to JSON files.
+ *
+ * @param deploymentName The name of the deployment.
+ * @param parameters Additional parameters supplied to the operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable createOrUpdateAtSubscriptionScopeAsync(String deploymentName, DeploymentInner parameters);
+
+ /**
+ * Gets a deployment.
+ *
+ * @param deploymentName The name of the deployment to get.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable getAtSubscriptionScopeAsync(String deploymentName);
+
+ /**
+ * Cancels a currently running template deployment.
+ * You can cancel a deployment only if the provisioningState is Accepted or Running. After the deployment is canceled, the provisioningState is set to Canceled. Canceling a template deployment stops the currently running template deployment and leaves the resources partially deployed.
+ *
+ * @param deploymentName The name of the deployment to cancel.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable cancelAtSubscriptionScopeAsync(String deploymentName);
+
+ /**
+ * Validates whether the specified template is syntactically correct and will be accepted by Azure Resource Manager..
+ *
+ * @param deploymentName The name of the deployment.
+ * @param parameters Parameters to validate.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable validateAtSubscriptionScopeAsync(String deploymentName, DeploymentInner parameters);
+
+ /**
+ * Exports the template used for specified deployment.
+ *
+ * @param deploymentName The name of the deployment from which to get the template.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable exportTemplateAtSubscriptionScopeAsync(String deploymentName);
+
+ /**
+ * Checks whether the deployment exists.
+ *
+ * @param resourceGroupName The name of the resource group with the deployment to check. The name is case insensitive.
+ * @param deploymentName The name of the deployment to check.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable checkExistenceAsync(String resourceGroupName, String deploymentName);
+
+ /**
+ * Cancels a currently running template deployment.
+ * You can cancel a deployment only if the provisioningState is Accepted or Running. After the deployment is canceled, the provisioningState is set to Canceled. Canceling a template deployment stops the currently running template deployment and leaves the resource group partially deployed.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deploymentName The name of the deployment to cancel.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Completable cancelAsync(String resourceGroupName, String deploymentName);
+
+ /**
+ * Validates whether the specified template is syntactically correct and will be accepted by Azure Resource Manager..
+ *
+ * @param resourceGroupName The name of the resource group the template will be deployed to. The name is case insensitive.
+ * @param deploymentName The name of the deployment.
+ * @param parameters Parameters to validate.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable validateAsync(String resourceGroupName, String deploymentName, DeploymentInner parameters);
+
+ /**
+ * Exports the template used for specified deployment.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param deploymentName The name of the deployment from which to get the template.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable exportTemplateAsync(String resourceGroupName, String deploymentName);
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/ExportTemplateRequest.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/ExportTemplateRequest.java
new file mode 100644
index 000000000000..54b066f049a0
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/ExportTemplateRequest.java
@@ -0,0 +1,74 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.resources.v2018_05_01;
+
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Export resource group template request parameters.
+ */
+public class ExportTemplateRequest {
+ /**
+ * The IDs of the resources. The only supported string currently is '*'
+ * (all resources). Future updates will support exporting specific
+ * resources.
+ */
+ @JsonProperty(value = "resources")
+ private List resources;
+
+ /**
+ * The export template options. Supported values include
+ * 'IncludeParameterDefaultValue', 'IncludeComments' or
+ * 'IncludeParameterDefaultValue, IncludeComments.
+ */
+ @JsonProperty(value = "options")
+ private String options;
+
+ /**
+ * Get the IDs of the resources. The only supported string currently is '*' (all resources). Future updates will support exporting specific resources.
+ *
+ * @return the resources value
+ */
+ public List resources() {
+ return this.resources;
+ }
+
+ /**
+ * Set the IDs of the resources. The only supported string currently is '*' (all resources). Future updates will support exporting specific resources.
+ *
+ * @param resources the resources value to set
+ * @return the ExportTemplateRequest object itself.
+ */
+ public ExportTemplateRequest withResources(List resources) {
+ this.resources = resources;
+ return this;
+ }
+
+ /**
+ * Get the export template options. Supported values include 'IncludeParameterDefaultValue', 'IncludeComments' or 'IncludeParameterDefaultValue, IncludeComments.
+ *
+ * @return the options value
+ */
+ public String options() {
+ return this.options;
+ }
+
+ /**
+ * Set the export template options. Supported values include 'IncludeParameterDefaultValue', 'IncludeComments' or 'IncludeParameterDefaultValue, IncludeComments.
+ *
+ * @param options the options value to set
+ * @return the ExportTemplateRequest object itself.
+ */
+ public ExportTemplateRequest withOptions(String options) {
+ this.options = options;
+ return this;
+ }
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/GenericResource.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/GenericResource.java
new file mode 100644
index 000000000000..71522f3ee3bc
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/GenericResource.java
@@ -0,0 +1,76 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.resources.v2018_05_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.resources.v2018_05_01.implementation.GenericResourceInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.resources.v2018_05_01.implementation.ResourcesManager;
+import java.util.Map;
+
+/**
+ * Type representing GenericResource.
+ */
+public interface GenericResource extends HasInner, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the identity value.
+ */
+ Identity identity();
+
+ /**
+ * @return the kind value.
+ */
+ String kind();
+
+ /**
+ * @return the location value.
+ */
+ String location();
+
+ /**
+ * @return the managedBy value.
+ */
+ String managedBy();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+ /**
+ * @return the plan value.
+ */
+ Plan plan();
+
+ /**
+ * @return the properties value.
+ */
+ Object properties();
+
+ /**
+ * @return the sku value.
+ */
+ Sku sku();
+
+ /**
+ * @return the tags value.
+ */
+ Map tags();
+
+ /**
+ * @return the type value.
+ */
+ String type();
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/GenericResourceFilter.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/GenericResourceFilter.java
new file mode 100644
index 000000000000..89c33e87192f
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/GenericResourceFilter.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.resources.v2018_05_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Resource filter.
+ */
+public class GenericResourceFilter {
+ /**
+ * The resource type.
+ */
+ @JsonProperty(value = "resourceType")
+ private String resourceType;
+
+ /**
+ * The tag name.
+ */
+ @JsonProperty(value = "tagname")
+ private String tagname;
+
+ /**
+ * The tag value.
+ */
+ @JsonProperty(value = "tagvalue")
+ private String tagvalue;
+
+ /**
+ * Get the resource type.
+ *
+ * @return the resourceType value
+ */
+ public String resourceType() {
+ return this.resourceType;
+ }
+
+ /**
+ * Set the resource type.
+ *
+ * @param resourceType the resourceType value to set
+ * @return the GenericResourceFilter object itself.
+ */
+ public GenericResourceFilter withResourceType(String resourceType) {
+ this.resourceType = resourceType;
+ return this;
+ }
+
+ /**
+ * Get the tag name.
+ *
+ * @return the tagname value
+ */
+ public String tagname() {
+ return this.tagname;
+ }
+
+ /**
+ * Set the tag name.
+ *
+ * @param tagname the tagname value to set
+ * @return the GenericResourceFilter object itself.
+ */
+ public GenericResourceFilter withTagname(String tagname) {
+ this.tagname = tagname;
+ return this;
+ }
+
+ /**
+ * Get the tag value.
+ *
+ * @return the tagvalue value
+ */
+ public String tagvalue() {
+ return this.tagvalue;
+ }
+
+ /**
+ * Set the tag value.
+ *
+ * @param tagvalue the tagvalue value to set
+ * @return the GenericResourceFilter object itself.
+ */
+ public GenericResourceFilter withTagvalue(String tagvalue) {
+ this.tagvalue = tagvalue;
+ return this;
+ }
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/HttpMessage.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/HttpMessage.java
new file mode 100644
index 000000000000..0a28403b1b43
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/HttpMessage.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.resources.v2018_05_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * HTTP message.
+ */
+public class HttpMessage {
+ /**
+ * HTTP message content.
+ */
+ @JsonProperty(value = "content")
+ private Object content;
+
+ /**
+ * Get hTTP message content.
+ *
+ * @return the content value
+ */
+ public Object content() {
+ return this.content;
+ }
+
+ /**
+ * Set hTTP message content.
+ *
+ * @param content the content value to set
+ * @return the HttpMessage object itself.
+ */
+ public HttpMessage withContent(Object content) {
+ this.content = content;
+ return this;
+ }
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/Identity.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/Identity.java
new file mode 100644
index 000000000000..7791513ca039
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/Identity.java
@@ -0,0 +1,103 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.resources.v2018_05_01;
+
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Identity for the resource.
+ */
+public class Identity {
+ /**
+ * The principal ID of resource identity.
+ */
+ @JsonProperty(value = "principalId", access = JsonProperty.Access.WRITE_ONLY)
+ private String principalId;
+
+ /**
+ * The tenant ID of resource.
+ */
+ @JsonProperty(value = "tenantId", access = JsonProperty.Access.WRITE_ONLY)
+ private String tenantId;
+
+ /**
+ * The identity type. Possible values include: 'SystemAssigned',
+ * 'UserAssigned', 'SystemAssigned, UserAssigned', 'None'.
+ */
+ @JsonProperty(value = "type")
+ private ResourceIdentityType type;
+
+ /**
+ * The list of user identities associated with the resource. The user
+ * identity dictionary key references will be ARM resource ids in the form:
+ * '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
+ */
+ @JsonProperty(value = "userAssignedIdentities")
+ private Map userAssignedIdentities;
+
+ /**
+ * Get the principal ID of resource identity.
+ *
+ * @return the principalId value
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Get the tenant ID of resource.
+ *
+ * @return the tenantId value
+ */
+ public String tenantId() {
+ return this.tenantId;
+ }
+
+ /**
+ * Get the identity type. Possible values include: 'SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned', 'None'.
+ *
+ * @return the type value
+ */
+ public ResourceIdentityType type() {
+ return this.type;
+ }
+
+ /**
+ * Set the identity type. Possible values include: 'SystemAssigned', 'UserAssigned', 'SystemAssigned, UserAssigned', 'None'.
+ *
+ * @param type the type value to set
+ * @return the Identity object itself.
+ */
+ public Identity withType(ResourceIdentityType type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
+ *
+ * @return the userAssignedIdentities value
+ */
+ public Map userAssignedIdentities() {
+ return this.userAssignedIdentities;
+ }
+
+ /**
+ * Set the list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
+ *
+ * @param userAssignedIdentities the userAssignedIdentities value to set
+ * @return the Identity object itself.
+ */
+ public Identity withUserAssignedIdentities(Map userAssignedIdentities) {
+ this.userAssignedIdentities = userAssignedIdentities;
+ return this;
+ }
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/IdentityUserAssignedIdentitiesValue.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/IdentityUserAssignedIdentitiesValue.java
new file mode 100644
index 000000000000..b7efd72403cf
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/IdentityUserAssignedIdentitiesValue.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.resources.v2018_05_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The IdentityUserAssignedIdentitiesValue model.
+ */
+public class IdentityUserAssignedIdentitiesValue {
+ /**
+ * The principal id of user assigned identity.
+ */
+ @JsonProperty(value = "principalId", access = JsonProperty.Access.WRITE_ONLY)
+ private String principalId;
+
+ /**
+ * The client id of user assigned identity.
+ */
+ @JsonProperty(value = "clientId", access = JsonProperty.Access.WRITE_ONLY)
+ private String clientId;
+
+ /**
+ * Get the principal id of user assigned identity.
+ *
+ * @return the principalId value
+ */
+ public String principalId() {
+ return this.principalId;
+ }
+
+ /**
+ * Get the client id of user assigned identity.
+ *
+ * @return the clientId value
+ */
+ public String clientId() {
+ return this.clientId;
+ }
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/OnErrorDeployment.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/OnErrorDeployment.java
new file mode 100644
index 000000000000..4ee919499970
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/OnErrorDeployment.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.resources.v2018_05_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Deployment on error behavior.
+ */
+public class OnErrorDeployment {
+ /**
+ * The deployment on error behavior type. Possible values are
+ * LastSuccessful and SpecificDeployment. Possible values include:
+ * 'LastSuccessful', 'SpecificDeployment'.
+ */
+ @JsonProperty(value = "type")
+ private OnErrorDeploymentType type;
+
+ /**
+ * The deployment to be used on error case.
+ */
+ @JsonProperty(value = "deploymentName")
+ private String deploymentName;
+
+ /**
+ * Get the deployment on error behavior type. Possible values are LastSuccessful and SpecificDeployment. Possible values include: 'LastSuccessful', 'SpecificDeployment'.
+ *
+ * @return the type value
+ */
+ public OnErrorDeploymentType type() {
+ return this.type;
+ }
+
+ /**
+ * Set the deployment on error behavior type. Possible values are LastSuccessful and SpecificDeployment. Possible values include: 'LastSuccessful', 'SpecificDeployment'.
+ *
+ * @param type the type value to set
+ * @return the OnErrorDeployment object itself.
+ */
+ public OnErrorDeployment withType(OnErrorDeploymentType type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the deployment to be used on error case.
+ *
+ * @return the deploymentName value
+ */
+ public String deploymentName() {
+ return this.deploymentName;
+ }
+
+ /**
+ * Set the deployment to be used on error case.
+ *
+ * @param deploymentName the deploymentName value to set
+ * @return the OnErrorDeployment object itself.
+ */
+ public OnErrorDeployment withDeploymentName(String deploymentName) {
+ this.deploymentName = deploymentName;
+ return this;
+ }
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/OnErrorDeploymentExtended.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/OnErrorDeploymentExtended.java
new file mode 100644
index 000000000000..d0cb2a2ce0b8
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/OnErrorDeploymentExtended.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.resources.v2018_05_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Deployment on error behavior with additional details.
+ */
+public class OnErrorDeploymentExtended {
+ /**
+ * The state of the provisioning for the on error deployment.
+ */
+ @JsonProperty(value = "provisioningState", access = JsonProperty.Access.WRITE_ONLY)
+ private String provisioningState;
+
+ /**
+ * The deployment on error behavior type. Possible values are
+ * LastSuccessful and SpecificDeployment. Possible values include:
+ * 'LastSuccessful', 'SpecificDeployment'.
+ */
+ @JsonProperty(value = "type")
+ private OnErrorDeploymentType type;
+
+ /**
+ * The deployment to be used on error case.
+ */
+ @JsonProperty(value = "deploymentName")
+ private String deploymentName;
+
+ /**
+ * Get the state of the provisioning for the on error deployment.
+ *
+ * @return the provisioningState value
+ */
+ public String provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the deployment on error behavior type. Possible values are LastSuccessful and SpecificDeployment. Possible values include: 'LastSuccessful', 'SpecificDeployment'.
+ *
+ * @return the type value
+ */
+ public OnErrorDeploymentType type() {
+ return this.type;
+ }
+
+ /**
+ * Set the deployment on error behavior type. Possible values are LastSuccessful and SpecificDeployment. Possible values include: 'LastSuccessful', 'SpecificDeployment'.
+ *
+ * @param type the type value to set
+ * @return the OnErrorDeploymentExtended object itself.
+ */
+ public OnErrorDeploymentExtended withType(OnErrorDeploymentType type) {
+ this.type = type;
+ return this;
+ }
+
+ /**
+ * Get the deployment to be used on error case.
+ *
+ * @return the deploymentName value
+ */
+ public String deploymentName() {
+ return this.deploymentName;
+ }
+
+ /**
+ * Set the deployment to be used on error case.
+ *
+ * @param deploymentName the deploymentName value to set
+ * @return the OnErrorDeploymentExtended object itself.
+ */
+ public OnErrorDeploymentExtended withDeploymentName(String deploymentName) {
+ this.deploymentName = deploymentName;
+ return this;
+ }
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/OnErrorDeploymentType.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/OnErrorDeploymentType.java
new file mode 100644
index 000000000000..9a50b6b2f366
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/OnErrorDeploymentType.java
@@ -0,0 +1,53 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.resources.v2018_05_01;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Defines values for OnErrorDeploymentType.
+ */
+public enum OnErrorDeploymentType {
+ /** Enum value LastSuccessful. */
+ LAST_SUCCESSFUL("LastSuccessful"),
+
+ /** Enum value SpecificDeployment. */
+ SPECIFIC_DEPLOYMENT("SpecificDeployment");
+
+ /** The actual serialized value for a OnErrorDeploymentType instance. */
+ private String value;
+
+ OnErrorDeploymentType(String value) {
+ this.value = value;
+ }
+
+ /**
+ * Parses a serialized value to a OnErrorDeploymentType instance.
+ *
+ * @param value the serialized value to parse.
+ * @return the parsed OnErrorDeploymentType object, or null if unable to parse.
+ */
+ @JsonCreator
+ public static OnErrorDeploymentType fromString(String value) {
+ OnErrorDeploymentType[] items = OnErrorDeploymentType.values();
+ for (OnErrorDeploymentType item : items) {
+ if (item.toString().equalsIgnoreCase(value)) {
+ return item;
+ }
+ }
+ return null;
+ }
+
+ @JsonValue
+ @Override
+ public String toString() {
+ return this.value;
+ }
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/Operation.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/Operation.java
new file mode 100644
index 000000000000..17f5bd73f46a
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/Operation.java
@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.resources.v2018_05_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.resources.v2018_05_01.implementation.ResourcesManager;
+import com.microsoft.azure.management.resources.v2018_05_01.implementation.OperationInner;
+
+/**
+ * Type representing Operation.
+ */
+public interface Operation extends HasInner, HasManager {
+ /**
+ * @return the display value.
+ */
+ OperationDisplay display();
+
+ /**
+ * @return the name value.
+ */
+ String name();
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/OperationDisplay.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/OperationDisplay.java
new file mode 100644
index 000000000000..c5e999e2f690
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/OperationDisplay.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.resources.v2018_05_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * The object that represents the operation.
+ */
+public class OperationDisplay {
+ /**
+ * Service provider: Microsoft.Resources.
+ */
+ @JsonProperty(value = "provider")
+ private String provider;
+
+ /**
+ * Resource on which the operation is performed: Profile, endpoint, etc.
+ */
+ @JsonProperty(value = "resource")
+ private String resource;
+
+ /**
+ * Operation type: Read, write, delete, etc.
+ */
+ @JsonProperty(value = "operation")
+ private String operation;
+
+ /**
+ * Description of the operation.
+ */
+ @JsonProperty(value = "description")
+ private String description;
+
+ /**
+ * Get service provider: Microsoft.Resources.
+ *
+ * @return the provider value
+ */
+ public String provider() {
+ return this.provider;
+ }
+
+ /**
+ * Set service provider: Microsoft.Resources.
+ *
+ * @param provider the provider value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withProvider(String provider) {
+ this.provider = provider;
+ return this;
+ }
+
+ /**
+ * Get resource on which the operation is performed: Profile, endpoint, etc.
+ *
+ * @return the resource value
+ */
+ public String resource() {
+ return this.resource;
+ }
+
+ /**
+ * Set resource on which the operation is performed: Profile, endpoint, etc.
+ *
+ * @param resource the resource value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withResource(String resource) {
+ this.resource = resource;
+ return this;
+ }
+
+ /**
+ * Get operation type: Read, write, delete, etc.
+ *
+ * @return the operation value
+ */
+ public String operation() {
+ return this.operation;
+ }
+
+ /**
+ * Set operation type: Read, write, delete, etc.
+ *
+ * @param operation the operation value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withOperation(String operation) {
+ this.operation = operation;
+ return this;
+ }
+
+ /**
+ * Get description of the operation.
+ *
+ * @return the description value
+ */
+ public String description() {
+ return this.description;
+ }
+
+ /**
+ * Set description of the operation.
+ *
+ * @param description the description value to set
+ * @return the OperationDisplay object itself.
+ */
+ public OperationDisplay withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/Operations.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/Operations.java
new file mode 100644
index 000000000000..df83e7a72646
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/Operations.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.resources.v2018_05_01;
+
+import rx.Observable;
+import com.microsoft.azure.management.resources.v2018_05_01.implementation.OperationsInner;
+import com.microsoft.azure.arm.model.HasInner;
+
+/**
+ * Type representing Operations.
+ */
+public interface Operations extends HasInner {
+ /**
+ * Lists all of the available Microsoft.Resources REST API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ Observable listAsync();
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/ParametersLink.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/ParametersLink.java
new file mode 100644
index 000000000000..396349741dd7
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/ParametersLink.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.resources.v2018_05_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Entity representing the reference to the deployment parameters.
+ */
+public class ParametersLink {
+ /**
+ * The URI of the parameters file.
+ */
+ @JsonProperty(value = "uri", required = true)
+ private String uri;
+
+ /**
+ * If included, must match the ContentVersion in the template.
+ */
+ @JsonProperty(value = "contentVersion")
+ private String contentVersion;
+
+ /**
+ * Get the URI of the parameters file.
+ *
+ * @return the uri value
+ */
+ public String uri() {
+ return this.uri;
+ }
+
+ /**
+ * Set the URI of the parameters file.
+ *
+ * @param uri the uri value to set
+ * @return the ParametersLink object itself.
+ */
+ public ParametersLink withUri(String uri) {
+ this.uri = uri;
+ return this;
+ }
+
+ /**
+ * Get if included, must match the ContentVersion in the template.
+ *
+ * @return the contentVersion value
+ */
+ public String contentVersion() {
+ return this.contentVersion;
+ }
+
+ /**
+ * Set if included, must match the ContentVersion in the template.
+ *
+ * @param contentVersion the contentVersion value to set
+ * @return the ParametersLink object itself.
+ */
+ public ParametersLink withContentVersion(String contentVersion) {
+ this.contentVersion = contentVersion;
+ return this;
+ }
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/Plan.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/Plan.java
new file mode 100644
index 000000000000..dc4cb359248f
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/Plan.java
@@ -0,0 +1,147 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.resources.v2018_05_01;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Plan for the resource.
+ */
+public class Plan {
+ /**
+ * The plan ID.
+ */
+ @JsonProperty(value = "name")
+ private String name;
+
+ /**
+ * The publisher ID.
+ */
+ @JsonProperty(value = "publisher")
+ private String publisher;
+
+ /**
+ * The offer ID.
+ */
+ @JsonProperty(value = "product")
+ private String product;
+
+ /**
+ * The promotion code.
+ */
+ @JsonProperty(value = "promotionCode")
+ private String promotionCode;
+
+ /**
+ * The plan's version.
+ */
+ @JsonProperty(value = "version")
+ private String version;
+
+ /**
+ * Get the plan ID.
+ *
+ * @return the name value
+ */
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Set the plan ID.
+ *
+ * @param name the name value to set
+ * @return the Plan object itself.
+ */
+ public Plan withName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Get the publisher ID.
+ *
+ * @return the publisher value
+ */
+ public String publisher() {
+ return this.publisher;
+ }
+
+ /**
+ * Set the publisher ID.
+ *
+ * @param publisher the publisher value to set
+ * @return the Plan object itself.
+ */
+ public Plan withPublisher(String publisher) {
+ this.publisher = publisher;
+ return this;
+ }
+
+ /**
+ * Get the offer ID.
+ *
+ * @return the product value
+ */
+ public String product() {
+ return this.product;
+ }
+
+ /**
+ * Set the offer ID.
+ *
+ * @param product the product value to set
+ * @return the Plan object itself.
+ */
+ public Plan withProduct(String product) {
+ this.product = product;
+ return this;
+ }
+
+ /**
+ * Get the promotion code.
+ *
+ * @return the promotionCode value
+ */
+ public String promotionCode() {
+ return this.promotionCode;
+ }
+
+ /**
+ * Set the promotion code.
+ *
+ * @param promotionCode the promotionCode value to set
+ * @return the Plan object itself.
+ */
+ public Plan withPromotionCode(String promotionCode) {
+ this.promotionCode = promotionCode;
+ return this;
+ }
+
+ /**
+ * Get the plan's version.
+ *
+ * @return the version value
+ */
+ public String version() {
+ return this.version;
+ }
+
+ /**
+ * Set the plan's version.
+ *
+ * @param version the version value to set
+ * @return the Plan object itself.
+ */
+ public Plan withVersion(String version) {
+ this.version = version;
+ return this;
+ }
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/Provider.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/Provider.java
new file mode 100644
index 000000000000..72224fd9332f
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/Provider.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.resources.v2018_05_01;
+
+import com.microsoft.azure.arm.model.HasInner;
+import com.microsoft.azure.management.resources.v2018_05_01.implementation.ProviderInner;
+import com.microsoft.azure.arm.model.Indexable;
+import com.microsoft.azure.arm.model.Refreshable;
+import com.microsoft.azure.arm.resources.models.HasManager;
+import com.microsoft.azure.management.resources.v2018_05_01.implementation.ResourcesManager;
+import java.util.List;
+
+/**
+ * Type representing Provider.
+ */
+public interface Provider extends HasInner, Indexable, Refreshable, HasManager {
+ /**
+ * @return the id value.
+ */
+ String id();
+
+ /**
+ * @return the namespace value.
+ */
+ String namespace();
+
+ /**
+ * @return the registrationState value.
+ */
+ String registrationState();
+
+ /**
+ * @return the resourceTypes value.
+ */
+ List resourceTypes();
+
+}
diff --git a/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/ProviderResourceType.java b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/ProviderResourceType.java
new file mode 100644
index 000000000000..749367b5fa1e
--- /dev/null
+++ b/resources/resource-manager/v2018_05_01/src/main/java/com/microsoft/azure/management/resources/v2018_05_01/ProviderResourceType.java
@@ -0,0 +1,149 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.resources.v2018_05_01;
+
+import java.util.List;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Resource type managed by the resource provider.
+ */
+public class ProviderResourceType {
+ /**
+ * The resource type.
+ */
+ @JsonProperty(value = "resourceType")
+ private String resourceType;
+
+ /**
+ * The collection of locations where this resource type can be created.
+ */
+ @JsonProperty(value = "locations")
+ private List locations;
+
+ /**
+ * The aliases that are supported by this resource type.
+ */
+ @JsonProperty(value = "aliases")
+ private List aliases;
+
+ /**
+ * The API version.
+ */
+ @JsonProperty(value = "apiVersions")
+ private List apiVersions;
+
+ /**
+ * The properties.
+ */
+ @JsonProperty(value = "properties")
+ private Map properties;
+
+ /**
+ * Get the resource type.
+ *
+ * @return the resourceType value
+ */
+ public String resourceType() {
+ return this.resourceType;
+ }
+
+ /**
+ * Set the resource type.
+ *
+ * @param resourceType the resourceType value to set
+ * @return the ProviderResourceType object itself.
+ */
+ public ProviderResourceType withResourceType(String resourceType) {
+ this.resourceType = resourceType;
+ return this;
+ }
+
+ /**
+ * Get the collection of locations where this resource type can be created.
+ *
+ * @return the locations value
+ */
+ public List locations() {
+ return this.locations;
+ }
+
+ /**
+ * Set the collection of locations where this resource type can be created.
+ *
+ * @param locations the locations value to set
+ * @return the ProviderResourceType object itself.
+ */
+ public ProviderResourceType withLocations(List locations) {
+ this.locations = locations;
+ return this;
+ }
+
+ /**
+ * Get the aliases that are supported by this resource type.
+ *
+ * @return the aliases value
+ */
+ public List aliases() {
+ return this.aliases;
+ }
+
+ /**
+ * Set the aliases that are supported by this resource type.
+ *
+ * @param aliases the aliases value to set
+ * @return the ProviderResourceType object itself.
+ */
+ public ProviderResourceType withAliases(List aliases) {
+ this.aliases = aliases;
+ return this;
+ }
+
+ /**
+ * Get the API version.
+ *
+ * @return the apiVersions value
+ */
+ public List apiVersions() {
+ return this.apiVersions;
+ }
+
+ /**
+ * Set the API version.
+ *
+ * @param apiVersions the apiVersions value to set
+ * @return the ProviderResourceType object itself.
+ */
+ public ProviderResourceType withApiVersions(List