diff --git a/sdk/keyvault/mgmt-v2018_02_14_preview/pom.xml b/sdk/keyvault/mgmt-v2018_02_14_preview/pom.xml
new file mode 100644
index 0000000000000..cd108aecbd91d
--- /dev/null
+++ b/sdk/keyvault/mgmt-v2018_02_14_preview/pom.xml
@@ -0,0 +1,115 @@
+
+
+ 4.0.0
+ com.microsoft.azure
+ azure-keyvault
+ 1.7.1-SNAPSHOT
+ jar
+ Microsoft Azure SDK for KeyVault
+ This package contains Microsoft KeyVault 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
+ 1.5.3
+
+
+ junit
+ junit
+ 4.12
+ test
+
+
+ com.microsoft.azure
+ azure-client-authentication
+ 1.5.3
+ test
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ true
+ true
+
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+
+ 1.7
+
+
+ com.microsoft.azure.management.apigeneration.LangDefinitionProcessor
+
+
+ true
+ true
+
+ true
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.8
+
+ *.implementation.*;*.utils.*;com.microsoft.schemas._2003._10.serialization;*.blob.core.search
+
+
+ /**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ */
+ ]]>
+
+
+
+
+
+
diff --git a/sdk/keyvault/mgmt-v2018_02_14_preview/src/main/java/com/microsoft/azure/management/keyvault/v20180214preview/KeyVaultManagementClient.java b/sdk/keyvault/mgmt-v2018_02_14_preview/src/main/java/com/microsoft/azure/management/keyvault/v20180214preview/KeyVaultManagementClient.java
new file mode 100644
index 0000000000000..870d37e7836b1
--- /dev/null
+++ b/sdk/keyvault/mgmt-v2018_02_14_preview/src/main/java/com/microsoft/azure/management/keyvault/v20180214preview/KeyVaultManagementClient.java
@@ -0,0 +1,117 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.keyvault.v2018_02_14_preview;
+
+import com.microsoft.azure.AzureClient;
+import com.microsoft.rest.RestClient;
+
+/**
+ * The interface for KeyVaultManagementClient class.
+ */
+public interface KeyVaultManagementClient {
+ /**
+ * Gets the REST client.
+ *
+ * @return the {@link RestClient} object.
+ */
+ RestClient restClient();
+
+ /**
+ * Gets the {@link AzureClient} used for long running operations.
+ * @return the azure client;
+ */
+ AzureClient getAzureClient();
+
+ /**
+ * Gets the User-Agent header for the client.
+ *
+ * @return the user agent string.
+ */
+ String userAgent();
+
+ /**
+ * Gets Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call..
+ *
+ * @return the subscriptionId value.
+ */
+ String subscriptionId();
+
+ /**
+ * Sets Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call..
+ *
+ * @param subscriptionId the subscriptionId value.
+ * @return the service client itself
+ */
+ KeyVaultManagementClient withSubscriptionId(String subscriptionId);
+
+ /**
+ * Gets Client Api Version..
+ *
+ * @return the apiVersion value.
+ */
+ String apiVersion();
+
+ /**
+ * Gets The preferred language for the response..
+ *
+ * @return the acceptLanguage value.
+ */
+ String acceptLanguage();
+
+ /**
+ * Sets The preferred language for the response..
+ *
+ * @param acceptLanguage the acceptLanguage value.
+ * @return the service client itself
+ */
+ KeyVaultManagementClient withAcceptLanguage(String acceptLanguage);
+
+ /**
+ * Gets The retry timeout in seconds for Long Running Operations. Default value is 30..
+ *
+ * @return the longRunningOperationRetryTimeout value.
+ */
+ int longRunningOperationRetryTimeout();
+
+ /**
+ * Sets The retry timeout in seconds for Long Running Operations. Default value is 30..
+ *
+ * @param longRunningOperationRetryTimeout the longRunningOperationRetryTimeout value.
+ * @return the service client itself
+ */
+ KeyVaultManagementClient withLongRunningOperationRetryTimeout(int longRunningOperationRetryTimeout);
+
+ /**
+ * 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.
+ */
+ boolean generateClientRequestId();
+
+ /**
+ * Sets Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true..
+ *
+ * @param generateClientRequestId the generateClientRequestId value.
+ * @return the service client itself
+ */
+ KeyVaultManagementClient withGenerateClientRequestId(boolean generateClientRequestId);
+
+ /**
+ * Gets the Vaults object to access its operations.
+ * @return the Vaults object.
+ */
+ Vaults vaults();
+
+ /**
+ * Gets the Operations object to access its operations.
+ * @return the Operations object.
+ */
+ Operations operations();
+
+}
diff --git a/sdk/keyvault/mgmt-v2018_02_14_preview/src/main/java/com/microsoft/azure/management/keyvault/v20180214preview/Operations.java b/sdk/keyvault/mgmt-v2018_02_14_preview/src/main/java/com/microsoft/azure/management/keyvault/v20180214preview/Operations.java
new file mode 100644
index 0000000000000..524db9a851d73
--- /dev/null
+++ b/sdk/keyvault/mgmt-v2018_02_14_preview/src/main/java/com/microsoft/azure/management/keyvault/v20180214preview/Operations.java
@@ -0,0 +1,102 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.keyvault.v2018_02_14_preview;
+
+import com.microsoft.azure.CloudException;
+import com.microsoft.azure.ListOperationCallback;
+import com.microsoft.azure.management.keyvault.v20180214preview.models.Operation;
+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 rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in Operations.
+ */
+public interface Operations {
+ /**
+ * Lists all of the available Key Vault 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<Operation> object if successful.
+ */
+ PagedList list();
+
+ /**
+ * Lists all of the available Key Vault 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
+ */
+ ServiceFuture> listAsync(final ListOperationCallback serviceCallback);
+
+ /**
+ * Lists all of the available Key Vault Rest API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<Operation> object
+ */
+ Observable> listAsync();
+
+ /**
+ * Lists all of the available Key Vault Rest API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<Operation> object
+ */
+ Observable>> listWithServiceResponseAsync();
+
+ /**
+ * Lists all of the available Key Vault 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<Operation> object if successful.
+ */
+ PagedList listNext(final String nextPageLink);
+
+ /**
+ * Lists all of the available Key Vault 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
+ */
+ ServiceFuture> listNextAsync(final String nextPageLink, final ServiceFuture> serviceFuture, final ListOperationCallback serviceCallback);
+
+ /**
+ * Lists all of the available Key Vault 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<Operation> object
+ */
+ Observable> listNextAsync(final String nextPageLink);
+
+ /**
+ * Lists all of the available Key Vault 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<Operation> object
+ */
+ Observable>> listNextWithServiceResponseAsync(final String nextPageLink);
+
+}
diff --git a/sdk/keyvault/mgmt-v2018_02_14_preview/src/main/java/com/microsoft/azure/management/keyvault/v20180214preview/Vaults.java b/sdk/keyvault/mgmt-v2018_02_14_preview/src/main/java/com/microsoft/azure/management/keyvault/v20180214preview/Vaults.java
new file mode 100644
index 0000000000000..3cf63e4857ef6
--- /dev/null
+++ b/sdk/keyvault/mgmt-v2018_02_14_preview/src/main/java/com/microsoft/azure/management/keyvault/v20180214preview/Vaults.java
@@ -0,0 +1,901 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.keyvault.v2018_02_14_preview;
+
+import com.microsoft.azure.CloudException;
+import com.microsoft.azure.ListOperationCallback;
+import com.microsoft.azure.management.keyvault.v20180214preview.models.AccessPolicyUpdateKind;
+import com.microsoft.azure.management.keyvault.v20180214preview.models.CheckNameAvailabilityResult;
+import com.microsoft.azure.management.keyvault.v20180214preview.models.DeletedVault;
+import com.microsoft.azure.management.keyvault.v20180214preview.models.Vault;
+import com.microsoft.azure.management.keyvault.v20180214preview.models.VaultAccessPolicyParameters;
+import com.microsoft.azure.management.keyvault.v20180214preview.models.VaultAccessPolicyProperties;
+import com.microsoft.azure.management.keyvault.v20180214preview.models.VaultCreateOrUpdateParameters;
+import com.microsoft.azure.management.keyvault.v20180214preview.models.VaultPatchParameters;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.PagedList;
+import com.microsoft.azure.Resource;
+import com.microsoft.rest.ServiceCallback;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import java.io.IOException;
+import java.util.List;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in Vaults.
+ */
+public interface Vaults {
+ /**
+ * Create or update a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the server belongs.
+ * @param vaultName Name of the vault
+ * @param parameters Parameters to create or update the vault
+ * @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 Vault object if successful.
+ */
+ Vault createOrUpdate(String resourceGroupName, String vaultName, VaultCreateOrUpdateParameters parameters);
+
+ /**
+ * Create or update a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the server belongs.
+ * @param vaultName Name of the vault
+ * @param parameters Parameters to create or update the vault
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture createOrUpdateAsync(String resourceGroupName, String vaultName, VaultCreateOrUpdateParameters parameters, final ServiceCallback serviceCallback);
+
+ /**
+ * Create or update a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the server belongs.
+ * @param vaultName Name of the vault
+ * @param parameters Parameters to create or update the vault
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Vault object
+ */
+ Observable createOrUpdateAsync(String resourceGroupName, String vaultName, VaultCreateOrUpdateParameters parameters);
+
+ /**
+ * Create or update a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the server belongs.
+ * @param vaultName Name of the vault
+ * @param parameters Parameters to create or update the vault
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Vault object
+ */
+ Observable> createOrUpdateWithServiceResponseAsync(String resourceGroupName, String vaultName, VaultCreateOrUpdateParameters parameters);
+
+ /**
+ * Create or update a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the server belongs.
+ * @param vaultName Name of the vault
+ * @param parameters Parameters to create or update the vault
+ * @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 Vault object if successful.
+ */
+ Vault beginCreateOrUpdate(String resourceGroupName, String vaultName, VaultCreateOrUpdateParameters parameters);
+
+ /**
+ * Create or update a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the server belongs.
+ * @param vaultName Name of the vault
+ * @param parameters Parameters to create or update the vault
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture beginCreateOrUpdateAsync(String resourceGroupName, String vaultName, VaultCreateOrUpdateParameters parameters, final ServiceCallback serviceCallback);
+
+ /**
+ * Create or update a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the server belongs.
+ * @param vaultName Name of the vault
+ * @param parameters Parameters to create or update the vault
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Vault object
+ */
+ Observable beginCreateOrUpdateAsync(String resourceGroupName, String vaultName, VaultCreateOrUpdateParameters parameters);
+
+ /**
+ * Create or update a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the server belongs.
+ * @param vaultName Name of the vault
+ * @param parameters Parameters to create or update the vault
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Vault object
+ */
+ Observable> beginCreateOrUpdateWithServiceResponseAsync(String resourceGroupName, String vaultName, VaultCreateOrUpdateParameters parameters);
+
+ /**
+ * Update a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the server belongs.
+ * @param vaultName Name of the vault
+ * @param parameters Parameters to patch the vault
+ * @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 Vault object if successful.
+ */
+ Vault update(String resourceGroupName, String vaultName, VaultPatchParameters parameters);
+
+ /**
+ * Update a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the server belongs.
+ * @param vaultName Name of the vault
+ * @param parameters Parameters to patch the vault
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture updateAsync(String resourceGroupName, String vaultName, VaultPatchParameters parameters, final ServiceCallback serviceCallback);
+
+ /**
+ * Update a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the server belongs.
+ * @param vaultName Name of the vault
+ * @param parameters Parameters to patch the vault
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Vault object
+ */
+ Observable updateAsync(String resourceGroupName, String vaultName, VaultPatchParameters parameters);
+
+ /**
+ * Update a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the server belongs.
+ * @param vaultName Name of the vault
+ * @param parameters Parameters to patch the vault
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Vault object
+ */
+ Observable> updateWithServiceResponseAsync(String resourceGroupName, String vaultName, VaultPatchParameters parameters);
+
+ /**
+ * Deletes the specified Azure key vault.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param vaultName The name of the vault to delete
+ * @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
+ */
+ void delete(String resourceGroupName, String vaultName);
+
+ /**
+ * Deletes the specified Azure key vault.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param vaultName The name of the vault to delete
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture deleteAsync(String resourceGroupName, String vaultName, final ServiceCallback serviceCallback);
+
+ /**
+ * Deletes the specified Azure key vault.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param vaultName The name of the vault to delete
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable deleteAsync(String resourceGroupName, String vaultName);
+
+ /**
+ * Deletes the specified Azure key vault.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param vaultName The name of the vault to delete
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable> deleteWithServiceResponseAsync(String resourceGroupName, String vaultName);
+
+ /**
+ * Gets the specified Azure key vault.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param vaultName The name of the vault.
+ * @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 Vault object if successful.
+ */
+ Vault get(String resourceGroupName, String vaultName);
+
+ /**
+ * Gets the specified Azure key vault.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param vaultName The name of the vault.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture getAsync(String resourceGroupName, String vaultName, final ServiceCallback serviceCallback);
+
+ /**
+ * Gets the specified Azure key vault.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param vaultName The name of the vault.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Vault object
+ */
+ Observable getAsync(String resourceGroupName, String vaultName);
+
+ /**
+ * Gets the specified Azure key vault.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param vaultName The name of the vault.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Vault object
+ */
+ Observable> getWithServiceResponseAsync(String resourceGroupName, String vaultName);
+
+ /**
+ * Update access policies in a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param vaultName Name of the vault
+ * @param operationKind Name of the operation. Possible values include: 'add', 'replace', 'remove'
+ * @param properties Properties of the access policy
+ * @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 VaultAccessPolicyParameters object if successful.
+ */
+ VaultAccessPolicyParameters updateAccessPolicy(String resourceGroupName, String vaultName, AccessPolicyUpdateKind operationKind, VaultAccessPolicyProperties properties);
+
+ /**
+ * Update access policies in a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param vaultName Name of the vault
+ * @param operationKind Name of the operation. Possible values include: 'add', 'replace', 'remove'
+ * @param properties Properties of the access policy
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture updateAccessPolicyAsync(String resourceGroupName, String vaultName, AccessPolicyUpdateKind operationKind, VaultAccessPolicyProperties properties, final ServiceCallback serviceCallback);
+
+ /**
+ * Update access policies in a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param vaultName Name of the vault
+ * @param operationKind Name of the operation. Possible values include: 'add', 'replace', 'remove'
+ * @param properties Properties of the access policy
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the VaultAccessPolicyParameters object
+ */
+ Observable updateAccessPolicyAsync(String resourceGroupName, String vaultName, AccessPolicyUpdateKind operationKind, VaultAccessPolicyProperties properties);
+
+ /**
+ * Update access policies in a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param vaultName Name of the vault
+ * @param operationKind Name of the operation. Possible values include: 'add', 'replace', 'remove'
+ * @param properties Properties of the access policy
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the VaultAccessPolicyParameters object
+ */
+ Observable> updateAccessPolicyWithServiceResponseAsync(String resourceGroupName, String vaultName, AccessPolicyUpdateKind operationKind, VaultAccessPolicyProperties properties);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription and within the specified resource group.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @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<Vault> object if successful.
+ */
+ PagedList listByResourceGroup(final String resourceGroupName);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription and within the specified resource group.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture> listByResourceGroupAsync(final String resourceGroupName, final ListOperationCallback serviceCallback);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription and within the specified resource group.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<Vault> object
+ */
+ Observable> listByResourceGroupAsync(final String resourceGroupName);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription and within the specified resource group.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<Vault> object
+ */
+ Observable>> listByResourceGroupWithServiceResponseAsync(final String resourceGroupName);
+ /**
+ * The List operation gets information about the vaults associated with the subscription and within the specified resource group.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param top Maximum number of results to return.
+ * @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<Vault> object if successful.
+ */
+ PagedList listByResourceGroup(final String resourceGroupName, final Integer top);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription and within the specified resource group.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param top Maximum number of results to return.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture> listByResourceGroupAsync(final String resourceGroupName, final Integer top, final ListOperationCallback serviceCallback);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription and within the specified resource group.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param top Maximum number of results to return.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<Vault> object
+ */
+ Observable> listByResourceGroupAsync(final String resourceGroupName, final Integer top);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription and within the specified resource group.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param top Maximum number of results to return.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<Vault> object
+ */
+ Observable>> listByResourceGroupWithServiceResponseAsync(final String resourceGroupName, final Integer top);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription.
+ *
+ * @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<Vault> object if successful.
+ */
+ PagedList listBySubscription();
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription.
+ *
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture> listBySubscriptionAsync(final ListOperationCallback serviceCallback);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<Vault> object
+ */
+ Observable> listBySubscriptionAsync();
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<Vault> object
+ */
+ Observable>> listBySubscriptionWithServiceResponseAsync();
+ /**
+ * The List operation gets information about the vaults associated with the subscription.
+ *
+ * @param top Maximum number of results to return.
+ * @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<Vault> object if successful.
+ */
+ PagedList listBySubscription(final Integer top);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription.
+ *
+ * @param top Maximum number of results to return.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture> listBySubscriptionAsync(final Integer top, final ListOperationCallback serviceCallback);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription.
+ *
+ * @param top Maximum number of results to return.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<Vault> object
+ */
+ Observable> listBySubscriptionAsync(final Integer top);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription.
+ *
+ * @param top Maximum number of results to return.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<Vault> object
+ */
+ Observable>> listBySubscriptionWithServiceResponseAsync(final Integer top);
+
+ /**
+ * Gets information about the deleted vaults in a subscription.
+ *
+ * @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<DeletedVault> object if successful.
+ */
+ PagedList listDeleted();
+
+ /**
+ * Gets information about the deleted vaults in a subscription.
+ *
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture> listDeletedAsync(final ListOperationCallback serviceCallback);
+
+ /**
+ * Gets information about the deleted vaults in a subscription.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<DeletedVault> object
+ */
+ Observable> listDeletedAsync();
+
+ /**
+ * Gets information about the deleted vaults in a subscription.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<DeletedVault> object
+ */
+ Observable>> listDeletedWithServiceResponseAsync();
+
+ /**
+ * Gets the deleted Azure key vault.
+ *
+ * @param vaultName The name of the vault.
+ * @param location The location of the deleted vault.
+ * @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 DeletedVault object if successful.
+ */
+ DeletedVault getDeleted(String vaultName, String location);
+
+ /**
+ * Gets the deleted Azure key vault.
+ *
+ * @param vaultName The name of the vault.
+ * @param location The location of the deleted vault.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture getDeletedAsync(String vaultName, String location, final ServiceCallback serviceCallback);
+
+ /**
+ * Gets the deleted Azure key vault.
+ *
+ * @param vaultName The name of the vault.
+ * @param location The location of the deleted vault.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the DeletedVault object
+ */
+ Observable getDeletedAsync(String vaultName, String location);
+
+ /**
+ * Gets the deleted Azure key vault.
+ *
+ * @param vaultName The name of the vault.
+ * @param location The location of the deleted vault.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the DeletedVault object
+ */
+ Observable> getDeletedWithServiceResponseAsync(String vaultName, String location);
+
+ /**
+ * Permanently deletes the specified vault. aka Purges the deleted Azure key vault.
+ *
+ * @param vaultName The name of the soft-deleted vault.
+ * @param location The location of the soft-deleted vault.
+ * @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
+ */
+ void purgeDeleted(String vaultName, String location);
+
+ /**
+ * Permanently deletes the specified vault. aka Purges the deleted Azure key vault.
+ *
+ * @param vaultName The name of the soft-deleted vault.
+ * @param location The location of the soft-deleted vault.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture purgeDeletedAsync(String vaultName, String location, final ServiceCallback serviceCallback);
+
+ /**
+ * Permanently deletes the specified vault. aka Purges the deleted Azure key vault.
+ *
+ * @param vaultName The name of the soft-deleted vault.
+ * @param location The location of the soft-deleted vault.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable purgeDeletedAsync(String vaultName, String location);
+
+ /**
+ * Permanently deletes the specified vault. aka Purges the deleted Azure key vault.
+ *
+ * @param vaultName The name of the soft-deleted vault.
+ * @param location The location of the soft-deleted vault.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable> purgeDeletedWithServiceResponseAsync(String vaultName, String location);
+
+ /**
+ * Permanently deletes the specified vault. aka Purges the deleted Azure key vault.
+ *
+ * @param vaultName The name of the soft-deleted vault.
+ * @param location The location of the soft-deleted vault.
+ * @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
+ */
+ void beginPurgeDeleted(String vaultName, String location);
+
+ /**
+ * Permanently deletes the specified vault. aka Purges the deleted Azure key vault.
+ *
+ * @param vaultName The name of the soft-deleted vault.
+ * @param location The location of the soft-deleted vault.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture beginPurgeDeletedAsync(String vaultName, String location, final ServiceCallback serviceCallback);
+
+ /**
+ * Permanently deletes the specified vault. aka Purges the deleted Azure key vault.
+ *
+ * @param vaultName The name of the soft-deleted vault.
+ * @param location The location of the soft-deleted vault.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable beginPurgeDeletedAsync(String vaultName, String location);
+
+ /**
+ * Permanently deletes the specified vault. aka Purges the deleted Azure key vault.
+ *
+ * @param vaultName The name of the soft-deleted vault.
+ * @param location The location of the soft-deleted vault.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ Observable> beginPurgeDeletedWithServiceResponseAsync(String vaultName, String location);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription.
+ *
+ * @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<Resource> object if successful.
+ */
+ PagedList listResource();
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription.
+ *
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture> listResourceAsync(final ListOperationCallback serviceCallback);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<Resource> object
+ */
+ Observable> listResourceAsync();
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<Resource> object
+ */
+ Observable>> listResourceWithServiceResponseAsync();
+ /**
+ * The List operation gets information about the vaults associated with the subscription.
+ *
+ * @param top Maximum number of results to return.
+ * @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<Resource> object if successful.
+ */
+ PagedList listResource(final Integer top);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription.
+ *
+ * @param top Maximum number of results to return.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture> listResourceAsync(final Integer top, final ListOperationCallback serviceCallback);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription.
+ *
+ * @param top Maximum number of results to return.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<Resource> object
+ */
+ Observable> listResourceAsync(final Integer top);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription.
+ *
+ * @param top Maximum number of results to return.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<Resource> object
+ */
+ Observable>> listResourceWithServiceResponseAsync(final Integer top);
+
+ /**
+ * Checks that the vault name is valid and is not already in use.
+ *
+ * @param name The vault name.
+ * @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 CheckNameAvailabilityResult object if successful.
+ */
+ CheckNameAvailabilityResult checkNameAvailability(String name);
+
+ /**
+ * Checks that the vault name is valid and is not already in use.
+ *
+ * @param name The vault name.
+ * @param serviceCallback the async ServiceCallback to handle successful and failed responses.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceFuture} object
+ */
+ ServiceFuture checkNameAvailabilityAsync(String name, final ServiceCallback serviceCallback);
+
+ /**
+ * Checks that the vault name is valid and is not already in use.
+ *
+ * @param name The vault name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the CheckNameAvailabilityResult object
+ */
+ Observable checkNameAvailabilityAsync(String name);
+
+ /**
+ * Checks that the vault name is valid and is not already in use.
+ *
+ * @param name The vault name.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the CheckNameAvailabilityResult object
+ */
+ Observable> checkNameAvailabilityWithServiceResponseAsync(String name);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription and within the specified resource group.
+ *
+ * @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<Vault> object if successful.
+ */
+ PagedList listByResourceGroupNext(final String nextPageLink);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription and within the specified resource group.
+ *
+ * @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
+ */
+ ServiceFuture> listByResourceGroupNextAsync(final String nextPageLink, final ServiceFuture> serviceFuture, final ListOperationCallback serviceCallback);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription and within the specified resource group.
+ *
+ * @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<Vault> object
+ */
+ Observable> listByResourceGroupNextAsync(final String nextPageLink);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription and within the specified resource group.
+ *
+ * @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<Vault> object
+ */
+ Observable>> listByResourceGroupNextWithServiceResponseAsync(final String nextPageLink);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription.
+ *
+ * @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<Vault> object if successful.
+ */
+ PagedList listBySubscriptionNext(final String nextPageLink);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription.
+ *
+ * @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
+ */
+ ServiceFuture> listBySubscriptionNextAsync(final String nextPageLink, final ServiceFuture> serviceFuture, final ListOperationCallback serviceCallback);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription.
+ *
+ * @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<Vault> object
+ */
+ Observable> listBySubscriptionNextAsync(final String nextPageLink);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription.
+ *
+ * @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<Vault> object
+ */
+ Observable>> listBySubscriptionNextWithServiceResponseAsync(final String nextPageLink);
+
+ /**
+ * Gets information about the deleted vaults in a subscription.
+ *
+ * @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<DeletedVault> object if successful.
+ */
+ PagedList listDeletedNext(final String nextPageLink);
+
+ /**
+ * Gets information about the deleted vaults in a subscription.
+ *
+ * @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
+ */
+ ServiceFuture> listDeletedNextAsync(final String nextPageLink, final ServiceFuture> serviceFuture, final ListOperationCallback serviceCallback);
+
+ /**
+ * Gets information about the deleted vaults in a subscription.
+ *
+ * @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<DeletedVault> object
+ */
+ Observable> listDeletedNextAsync(final String nextPageLink);
+
+ /**
+ * Gets information about the deleted vaults in a subscription.
+ *
+ * @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<DeletedVault> object
+ */
+ Observable>> listDeletedNextWithServiceResponseAsync(final String nextPageLink);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription.
+ *
+ * @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<Resource> object if successful.
+ */
+ PagedList listResourceNext(final String nextPageLink);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription.
+ *
+ * @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
+ */
+ ServiceFuture> listResourceNextAsync(final String nextPageLink, final ServiceFuture> serviceFuture, final ListOperationCallback serviceCallback);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription.
+ *
+ * @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<Resource> object
+ */
+ Observable> listResourceNextAsync(final String nextPageLink);
+
+ /**
+ * The List operation gets information about the vaults associated with the subscription.
+ *
+ * @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<Resource> object
+ */
+ Observable>> listResourceNextWithServiceResponseAsync(final String nextPageLink);
+
+}
diff --git a/sdk/keyvault/mgmt-v2018_02_14_preview/src/main/java/com/microsoft/azure/management/keyvault/v20180214preview/implementation/KeyVaultManagementClientImpl.java b/sdk/keyvault/mgmt-v2018_02_14_preview/src/main/java/com/microsoft/azure/management/keyvault/v20180214preview/implementation/KeyVaultManagementClientImpl.java
new file mode 100644
index 0000000000000..00f757aeb8df6
--- /dev/null
+++ b/sdk/keyvault/mgmt-v2018_02_14_preview/src/main/java/com/microsoft/azure/management/keyvault/v20180214preview/implementation/KeyVaultManagementClientImpl.java
@@ -0,0 +1,213 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.keyvault.v2018_02_14_preview.implementation;
+
+import com.microsoft.azure.AzureClient;
+import com.microsoft.azure.AzureServiceClient;
+import com.microsoft.azure.management.keyvault.v20180214preview.KeyVaultManagementClient;
+import com.microsoft.azure.management.keyvault.v20180214preview.Operations;
+import com.microsoft.azure.management.keyvault.v20180214preview.Vaults;
+import com.microsoft.rest.credentials.ServiceClientCredentials;
+import com.microsoft.rest.RestClient;
+
+/**
+ * Initializes a new instance of the KeyVaultManagementClientImpl class.
+ */
+public class KeyVaultManagementClientImpl extends AzureServiceClient implements KeyVaultManagementClient {
+ /** the {@link AzureClient} used for long running operations. */
+ private AzureClient azureClient;
+
+ /**
+ * Gets the {@link AzureClient} used for long running operations.
+ * @return the azure client;
+ */
+ public AzureClient getAzureClient() {
+ return this.azureClient;
+ }
+
+ /** Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. */
+ private String subscriptionId;
+
+ /**
+ * Gets Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
+ *
+ * @return the subscriptionId value.
+ */
+ public String subscriptionId() {
+ return this.subscriptionId;
+ }
+
+ /**
+ * Sets Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
+ *
+ * @param subscriptionId the subscriptionId value.
+ * @return the service client itself
+ */
+ public KeyVaultManagementClientImpl withSubscriptionId(String subscriptionId) {
+ this.subscriptionId = subscriptionId;
+ return this;
+ }
+
+ /** Client Api Version. */
+ private String apiVersion;
+
+ /**
+ * Gets Client Api Version.
+ *
+ * @return the apiVersion value.
+ */
+ public String apiVersion() {
+ return this.apiVersion;
+ }
+
+ /** The preferred language for the response. */
+ private String acceptLanguage;
+
+ /**
+ * Gets The preferred language for the response.
+ *
+ * @return the acceptLanguage value.
+ */
+ public String acceptLanguage() {
+ return this.acceptLanguage;
+ }
+
+ /**
+ * Sets The preferred language for the response.
+ *
+ * @param acceptLanguage the acceptLanguage value.
+ * @return the service client itself
+ */
+ public KeyVaultManagementClientImpl withAcceptLanguage(String acceptLanguage) {
+ this.acceptLanguage = acceptLanguage;
+ return this;
+ }
+
+ /** The retry timeout in seconds for Long Running Operations. Default value is 30. */
+ private int longRunningOperationRetryTimeout;
+
+ /**
+ * Gets The retry timeout in seconds for Long Running Operations. Default value is 30.
+ *
+ * @return the longRunningOperationRetryTimeout value.
+ */
+ public int longRunningOperationRetryTimeout() {
+ return this.longRunningOperationRetryTimeout;
+ }
+
+ /**
+ * Sets The retry timeout in seconds for Long Running Operations. Default value is 30.
+ *
+ * @param longRunningOperationRetryTimeout the longRunningOperationRetryTimeout value.
+ * @return the service client itself
+ */
+ public KeyVaultManagementClientImpl withLongRunningOperationRetryTimeout(int longRunningOperationRetryTimeout) {
+ this.longRunningOperationRetryTimeout = longRunningOperationRetryTimeout;
+ return this;
+ }
+
+ /** Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true. */
+ private boolean generateClientRequestId;
+
+ /**
+ * Gets Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
+ *
+ * @return the generateClientRequestId value.
+ */
+ public boolean generateClientRequestId() {
+ return this.generateClientRequestId;
+ }
+
+ /**
+ * Sets Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
+ *
+ * @param generateClientRequestId the generateClientRequestId value.
+ * @return the service client itself
+ */
+ public KeyVaultManagementClientImpl withGenerateClientRequestId(boolean generateClientRequestId) {
+ this.generateClientRequestId = generateClientRequestId;
+ return this;
+ }
+
+ /**
+ * The Vaults object to access its operations.
+ */
+ private Vaults vaults;
+
+ /**
+ * Gets the Vaults object to access its operations.
+ * @return the Vaults object.
+ */
+ public Vaults vaults() {
+ return this.vaults;
+ }
+
+ /**
+ * The Operations object to access its operations.
+ */
+ private Operations operations;
+
+ /**
+ * Gets the Operations object to access its operations.
+ * @return the Operations object.
+ */
+ public Operations operations() {
+ return this.operations;
+ }
+
+ /**
+ * Initializes an instance of KeyVaultManagementClient client.
+ *
+ * @param credentials the management credentials for Azure
+ */
+ public KeyVaultManagementClientImpl(ServiceClientCredentials credentials) {
+ this("https://management.azure.com", credentials);
+ }
+
+ /**
+ * Initializes an instance of KeyVaultManagementClient client.
+ *
+ * @param baseUrl the base URL of the host
+ * @param credentials the management credentials for Azure
+ */
+ public KeyVaultManagementClientImpl(String baseUrl, ServiceClientCredentials credentials) {
+ super(baseUrl, credentials);
+ initialize();
+ }
+
+ /**
+ * Initializes an instance of KeyVaultManagementClient client.
+ *
+ * @param restClient the REST client to connect to Azure.
+ */
+ public KeyVaultManagementClientImpl(RestClient restClient) {
+ super(restClient);
+ initialize();
+ }
+
+ protected void initialize() {
+ this.apiVersion = "2018-02-14-preview";
+ this.acceptLanguage = "en-US";
+ this.longRunningOperationRetryTimeout = 30;
+ this.generateClientRequestId = true;
+ this.vaults = new VaultsImpl(restClient().retrofit(), this);
+ this.operations = new OperationsImpl(restClient().retrofit(), this);
+ this.azureClient = new AzureClient(this);
+ }
+
+ /**
+ * Gets the User-Agent header for the client.
+ *
+ * @return the user agent string.
+ */
+ @Override
+ public String userAgent() {
+ return String.format("%s (%s, %s)", super.userAgent(), "KeyVaultManagementClient", "2018-02-14-preview");
+ }
+}
diff --git a/sdk/keyvault/mgmt-v2018_02_14_preview/src/main/java/com/microsoft/azure/management/keyvault/v20180214preview/implementation/OperationsImpl.java b/sdk/keyvault/mgmt-v2018_02_14_preview/src/main/java/com/microsoft/azure/management/keyvault/v20180214preview/implementation/OperationsImpl.java
new file mode 100644
index 0000000000000..1bf1d53ecf6cb
--- /dev/null
+++ b/sdk/keyvault/mgmt-v2018_02_14_preview/src/main/java/com/microsoft/azure/management/keyvault/v20180214preview/implementation/OperationsImpl.java
@@ -0,0 +1,286 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.keyvault.v2018_02_14_preview.implementation;
+
+import retrofit2.Retrofit;
+import com.microsoft.azure.management.keyvault.v20180214preview.Operations;
+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.management.keyvault.v20180214preview.models.Operation;
+import com.microsoft.azure.management.keyvault.v20180214preview.models.PageImpl;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.PagedList;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import java.io.IOException;
+import java.util.List;
+import okhttp3.ResponseBody;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.Query;
+import retrofit2.http.Url;
+import retrofit2.Response;
+import rx.functions.Func1;
+import rx.Observable;
+
+/**
+ * An instance of this class provides access to all the operations defined
+ * in Operations.
+ */
+public class OperationsImpl implements Operations {
+ /** The Retrofit service to perform REST calls. */
+ private OperationsService service;
+ /** The service client containing this operation class. */
+ private KeyVaultManagementClientImpl client;
+
+ /**
+ * Initializes an instance of OperationsImpl.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public OperationsImpl(Retrofit retrofit, KeyVaultManagementClientImpl client) {
+ this.service = retrofit.create(OperationsService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for Operations to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface OperationsService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.keyvault.v20180214preview.Operations list" })
+ @GET("providers/Microsoft.KeyVault/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.keyvault.v20180214preview.Operations listNext" })
+ @GET
+ Observable> listNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * Lists all of the available Key Vault 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<Operation> 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 Key Vault 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 Key Vault Rest API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<Operation> object
+ */
+ public Observable> listAsync() {
+ return listWithServiceResponseAsync()
+ .map(new Func1>, Page>() {
+ @Override
+ public Page call(ServiceResponse> response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Lists all of the available Key Vault Rest API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the PagedList<Operation> 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 Key Vault Rest API operations.
+ *
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the PagedList<Operation> 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 Key Vault 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<Operation> 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 Key Vault 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 Key Vault 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<Operation> 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 Key Vault 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<Operation> 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 Key Vault 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<Operation> 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/sdk/keyvault/mgmt-v2018_02_14_preview/src/main/java/com/microsoft/azure/management/keyvault/v20180214preview/implementation/VaultsImpl.java b/sdk/keyvault/mgmt-v2018_02_14_preview/src/main/java/com/microsoft/azure/management/keyvault/v20180214preview/implementation/VaultsImpl.java
new file mode 100644
index 0000000000000..df8c7c053442e
--- /dev/null
+++ b/sdk/keyvault/mgmt-v2018_02_14_preview/src/main/java/com/microsoft/azure/management/keyvault/v20180214preview/implementation/VaultsImpl.java
@@ -0,0 +1,2219 @@
+/**
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for
+ * license information.
+ *
+ * Code generated by Microsoft (R) AutoRest Code Generator.
+ */
+
+package com.microsoft.azure.management.keyvault.v2018_02_14_preview.implementation;
+
+import retrofit2.Retrofit;
+import com.microsoft.azure.management.keyvault.v20180214preview.Vaults;
+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.management.keyvault.v20180214preview.models.AccessPolicyUpdateKind;
+import com.microsoft.azure.management.keyvault.v20180214preview.models.CheckNameAvailabilityResult;
+import com.microsoft.azure.management.keyvault.v20180214preview.models.DeletedVault;
+import com.microsoft.azure.management.keyvault.v20180214preview.models.PageImpl;
+import com.microsoft.azure.management.keyvault.v20180214preview.models.Vault;
+import com.microsoft.azure.management.keyvault.v20180214preview.models.VaultAccessPolicyParameters;
+import com.microsoft.azure.management.keyvault.v20180214preview.models.VaultAccessPolicyProperties;
+import com.microsoft.azure.management.keyvault.v20180214preview.models.VaultCheckNameAvailabilityParameters;
+import com.microsoft.azure.management.keyvault.v20180214preview.models.VaultCreateOrUpdateParameters;
+import com.microsoft.azure.management.keyvault.v20180214preview.models.VaultPatchParameters;
+import com.microsoft.azure.Page;
+import com.microsoft.azure.PagedList;
+import com.microsoft.azure.Resource;
+import com.microsoft.rest.ServiceCallback;
+import com.microsoft.rest.ServiceFuture;
+import com.microsoft.rest.ServiceResponse;
+import com.microsoft.rest.Validator;
+import java.io.IOException;
+import java.util.List;
+import okhttp3.ResponseBody;
+import retrofit2.http.Body;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.HTTP;
+import retrofit2.http.PATCH;
+import retrofit2.http.Path;
+import retrofit2.http.POST;
+import retrofit2.http.PUT;
+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 Vaults.
+ */
+public class VaultsImpl implements Vaults {
+ /** The Retrofit service to perform REST calls. */
+ private VaultsService service;
+ /** The service client containing this operation class. */
+ private KeyVaultManagementClientImpl client;
+
+ /**
+ * Initializes an instance of VaultsImpl.
+ *
+ * @param retrofit the Retrofit instance built from a Retrofit Builder.
+ * @param client the instance of the service client containing this operation class.
+ */
+ public VaultsImpl(Retrofit retrofit, KeyVaultManagementClientImpl client) {
+ this.service = retrofit.create(VaultsService.class);
+ this.client = client;
+ }
+
+ /**
+ * The interface defining all the services for Vaults to be
+ * used by Retrofit to perform actually REST calls.
+ */
+ interface VaultsService {
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.keyvault.v20180214preview.Vaults createOrUpdate" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}")
+ Observable> createOrUpdate(@Path("resourceGroupName") String resourceGroupName, @Path("vaultName") String vaultName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Body VaultCreateOrUpdateParameters parameters, @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.keyvault.v20180214preview.Vaults beginCreateOrUpdate" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}")
+ Observable> beginCreateOrUpdate(@Path("resourceGroupName") String resourceGroupName, @Path("vaultName") String vaultName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Body VaultCreateOrUpdateParameters parameters, @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.keyvault.v20180214preview.Vaults update" })
+ @PATCH("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}")
+ Observable> update(@Path("resourceGroupName") String resourceGroupName, @Path("vaultName") String vaultName, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Body VaultPatchParameters parameters, @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.keyvault.v20180214preview.Vaults delete" })
+ @HTTP(path = "subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}", method = "DELETE", hasBody = true)
+ Observable> delete(@Path("resourceGroupName") String resourceGroupName, @Path("vaultName") String vaultName, @Path("subscriptionId") String subscriptionId, @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.keyvault.v20180214preview.Vaults get" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}")
+ Observable> get(@Path("resourceGroupName") String resourceGroupName, @Path("vaultName") String vaultName, @Path("subscriptionId") String subscriptionId, @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.keyvault.v20180214preview.Vaults updateAccessPolicy" })
+ @PUT("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}/accessPolicies/{operationKind}")
+ Observable> updateAccessPolicy(@Path("resourceGroupName") String resourceGroupName, @Path("vaultName") String vaultName, @Path("operationKind") AccessPolicyUpdateKind operationKind, @Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Body VaultAccessPolicyParameters parameters, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.keyvault.v20180214preview.Vaults listByResourceGroup" })
+ @GET("subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults")
+ Observable> listByResourceGroup(@Path("resourceGroupName") String resourceGroupName, @Path("subscriptionId") String subscriptionId, @Query("$top") Integer top, @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.keyvault.v20180214preview.Vaults listBySubscription" })
+ @GET("subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/vaults")
+ Observable> listBySubscription(@Path("subscriptionId") String subscriptionId, @Query("$top") Integer top, @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.keyvault.v20180214preview.Vaults listDeleted" })
+ @GET("subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/deletedVaults")
+ Observable> listDeleted(@Path("subscriptionId") String subscriptionId, @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.keyvault.v20180214preview.Vaults getDeleted" })
+ @GET("subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/locations/{location}/deletedVaults/{vaultName}")
+ Observable> getDeleted(@Path("vaultName") String vaultName, @Path("location") String location, @Path("subscriptionId") String subscriptionId, @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.keyvault.v20180214preview.Vaults purgeDeleted" })
+ @POST("subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/locations/{location}/deletedVaults/{vaultName}/purge")
+ Observable> purgeDeleted(@Path("vaultName") String vaultName, @Path("location") String location, @Path("subscriptionId") String subscriptionId, @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.keyvault.v20180214preview.Vaults beginPurgeDeleted" })
+ @POST("subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/locations/{location}/deletedVaults/{vaultName}/purge")
+ Observable> beginPurgeDeleted(@Path("vaultName") String vaultName, @Path("location") String location, @Path("subscriptionId") String subscriptionId, @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.keyvault.v20180214preview.Vaults listResource" })
+ @GET("subscriptions/{subscriptionId}/resources")
+ Observable> listResource(@Path("subscriptionId") String subscriptionId, @Query("$filter") String filter, @Query("$top") Integer top, @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.keyvault.v20180214preview.Vaults checkNameAvailability" })
+ @POST("subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/checkNameAvailability")
+ Observable> checkNameAvailability(@Path("subscriptionId") String subscriptionId, @Query("api-version") String apiVersion, @Header("accept-language") String acceptLanguage, @Body VaultCheckNameAvailabilityParameters vaultName, @Header("User-Agent") String userAgent);
+
+ @Headers({ "Content-Type: application/json; charset=utf-8", "x-ms-logging-context: com.microsoft.azure.management.keyvault.v20180214preview.Vaults listByResourceGroupNext" })
+ @GET
+ Observable> listByResourceGroupNext(@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.keyvault.v20180214preview.Vaults listBySubscriptionNext" })
+ @GET
+ Observable> listBySubscriptionNext(@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.keyvault.v20180214preview.Vaults listDeletedNext" })
+ @GET
+ Observable> listDeletedNext(@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.keyvault.v20180214preview.Vaults listResourceNext" })
+ @GET
+ Observable> listResourceNext(@Url String nextUrl, @Header("accept-language") String acceptLanguage, @Header("User-Agent") String userAgent);
+
+ }
+
+ /**
+ * Create or update a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the server belongs.
+ * @param vaultName Name of the vault
+ * @param parameters Parameters to create or update the vault
+ * @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 Vault object if successful.
+ */
+ public Vault createOrUpdate(String resourceGroupName, String vaultName, VaultCreateOrUpdateParameters parameters) {
+ return createOrUpdateWithServiceResponseAsync(resourceGroupName, vaultName, parameters).toBlocking().last().body();
+ }
+
+ /**
+ * Create or update a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the server belongs.
+ * @param vaultName Name of the vault
+ * @param parameters Parameters to create or update the vault
+ * @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 createOrUpdateAsync(String resourceGroupName, String vaultName, VaultCreateOrUpdateParameters parameters, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(createOrUpdateWithServiceResponseAsync(resourceGroupName, vaultName, parameters), serviceCallback);
+ }
+
+ /**
+ * Create or update a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the server belongs.
+ * @param vaultName Name of the vault
+ * @param parameters Parameters to create or update the vault
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ public Observable createOrUpdateAsync(String resourceGroupName, String vaultName, VaultCreateOrUpdateParameters parameters) {
+ return createOrUpdateWithServiceResponseAsync(resourceGroupName, vaultName, parameters).map(new Func1, Vault>() {
+ @Override
+ public Vault call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Create or update a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the server belongs.
+ * @param vaultName Name of the vault
+ * @param parameters Parameters to create or update the vault
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable for the request
+ */
+ public Observable> createOrUpdateWithServiceResponseAsync(String resourceGroupName, String vaultName, VaultCreateOrUpdateParameters parameters) {
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (vaultName == null) {
+ throw new IllegalArgumentException("Parameter vaultName is required and cannot be null.");
+ }
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ if (parameters == null) {
+ throw new IllegalArgumentException("Parameter parameters is required and cannot be null.");
+ }
+ Validator.validate(parameters);
+ Observable> observable = service.createOrUpdate(resourceGroupName, vaultName, this.client.subscriptionId(), this.client.apiVersion(), parameters, this.client.acceptLanguage(), this.client.userAgent());
+ return client.getAzureClient().getPutOrPatchResultAsync(observable, new TypeToken() { }.getType());
+ }
+
+ /**
+ * Create or update a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the server belongs.
+ * @param vaultName Name of the vault
+ * @param parameters Parameters to create or update the vault
+ * @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 Vault object if successful.
+ */
+ public Vault beginCreateOrUpdate(String resourceGroupName, String vaultName, VaultCreateOrUpdateParameters parameters) {
+ return beginCreateOrUpdateWithServiceResponseAsync(resourceGroupName, vaultName, parameters).toBlocking().single().body();
+ }
+
+ /**
+ * Create or update a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the server belongs.
+ * @param vaultName Name of the vault
+ * @param parameters Parameters to create or update the vault
+ * @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 beginCreateOrUpdateAsync(String resourceGroupName, String vaultName, VaultCreateOrUpdateParameters parameters, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(beginCreateOrUpdateWithServiceResponseAsync(resourceGroupName, vaultName, parameters), serviceCallback);
+ }
+
+ /**
+ * Create or update a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the server belongs.
+ * @param vaultName Name of the vault
+ * @param parameters Parameters to create or update the vault
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Vault object
+ */
+ public Observable beginCreateOrUpdateAsync(String resourceGroupName, String vaultName, VaultCreateOrUpdateParameters parameters) {
+ return beginCreateOrUpdateWithServiceResponseAsync(resourceGroupName, vaultName, parameters).map(new Func1, Vault>() {
+ @Override
+ public Vault call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Create or update a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the server belongs.
+ * @param vaultName Name of the vault
+ * @param parameters Parameters to create or update the vault
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Vault object
+ */
+ public Observable> beginCreateOrUpdateWithServiceResponseAsync(String resourceGroupName, String vaultName, VaultCreateOrUpdateParameters parameters) {
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (vaultName == null) {
+ throw new IllegalArgumentException("Parameter vaultName is required and cannot be null.");
+ }
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ if (parameters == null) {
+ throw new IllegalArgumentException("Parameter parameters is required and cannot be null.");
+ }
+ Validator.validate(parameters);
+ return service.beginCreateOrUpdate(resourceGroupName, vaultName, this.client.subscriptionId(), this.client.apiVersion(), parameters, this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = beginCreateOrUpdateDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse beginCreateOrUpdateDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .register(201, new TypeToken() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * Update a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the server belongs.
+ * @param vaultName Name of the vault
+ * @param parameters Parameters to patch the vault
+ * @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 Vault object if successful.
+ */
+ public Vault update(String resourceGroupName, String vaultName, VaultPatchParameters parameters) {
+ return updateWithServiceResponseAsync(resourceGroupName, vaultName, parameters).toBlocking().single().body();
+ }
+
+ /**
+ * Update a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the server belongs.
+ * @param vaultName Name of the vault
+ * @param parameters Parameters to patch the vault
+ * @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 updateAsync(String resourceGroupName, String vaultName, VaultPatchParameters parameters, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(updateWithServiceResponseAsync(resourceGroupName, vaultName, parameters), serviceCallback);
+ }
+
+ /**
+ * Update a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the server belongs.
+ * @param vaultName Name of the vault
+ * @param parameters Parameters to patch the vault
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Vault object
+ */
+ public Observable updateAsync(String resourceGroupName, String vaultName, VaultPatchParameters parameters) {
+ return updateWithServiceResponseAsync(resourceGroupName, vaultName, parameters).map(new Func1, Vault>() {
+ @Override
+ public Vault call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Update a key vault in the specified subscription.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the server belongs.
+ * @param vaultName Name of the vault
+ * @param parameters Parameters to patch the vault
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Vault object
+ */
+ public Observable> updateWithServiceResponseAsync(String resourceGroupName, String vaultName, VaultPatchParameters parameters) {
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (vaultName == null) {
+ throw new IllegalArgumentException("Parameter vaultName is required and cannot be null.");
+ }
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
+ }
+ if (this.client.apiVersion() == null) {
+ throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
+ }
+ if (parameters == null) {
+ throw new IllegalArgumentException("Parameter parameters is required and cannot be null.");
+ }
+ Validator.validate(parameters);
+ return service.update(resourceGroupName, vaultName, this.client.subscriptionId(), this.client.apiVersion(), parameters, this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = updateDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse updateDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .register(201, new TypeToken() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * Deletes the specified Azure key vault.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param vaultName The name of the vault to delete
+ * @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
+ */
+ public void delete(String resourceGroupName, String vaultName) {
+ deleteWithServiceResponseAsync(resourceGroupName, vaultName).toBlocking().single().body();
+ }
+
+ /**
+ * Deletes the specified Azure key vault.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param vaultName The name of the vault to delete
+ * @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 deleteAsync(String resourceGroupName, String vaultName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(deleteWithServiceResponseAsync(resourceGroupName, vaultName), serviceCallback);
+ }
+
+ /**
+ * Deletes the specified Azure key vault.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param vaultName The name of the vault to delete
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ public Observable deleteAsync(String resourceGroupName, String vaultName) {
+ return deleteWithServiceResponseAsync(resourceGroupName, vaultName).map(new Func1, Void>() {
+ @Override
+ public Void call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Deletes the specified Azure key vault.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param vaultName The name of the vault to delete
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the {@link ServiceResponse} object if successful.
+ */
+ public Observable> deleteWithServiceResponseAsync(String resourceGroupName, String vaultName) {
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (vaultName == null) {
+ throw new IllegalArgumentException("Parameter vaultName is required and cannot be null.");
+ }
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() 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.delete(resourceGroupName, vaultName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response response) {
+ try {
+ ServiceResponse clientResponse = deleteDelegate(response);
+ return Observable.just(clientResponse);
+ } catch (Throwable t) {
+ return Observable.error(t);
+ }
+ }
+ });
+ }
+
+ private ServiceResponse deleteDelegate(Response response) throws CloudException, IOException, IllegalArgumentException {
+ return this.client.restClient().responseBuilderFactory().newInstance(this.client.serializerAdapter())
+ .register(200, new TypeToken() { }.getType())
+ .registerError(CloudException.class)
+ .build(response);
+ }
+
+ /**
+ * Gets the specified Azure key vault.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param vaultName The name of the vault.
+ * @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 Vault object if successful.
+ */
+ public Vault get(String resourceGroupName, String vaultName) {
+ return getWithServiceResponseAsync(resourceGroupName, vaultName).toBlocking().single().body();
+ }
+
+ /**
+ * Gets the specified Azure key vault.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param vaultName The name of the vault.
+ * @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 getAsync(String resourceGroupName, String vaultName, final ServiceCallback serviceCallback) {
+ return ServiceFuture.fromResponse(getWithServiceResponseAsync(resourceGroupName, vaultName), serviceCallback);
+ }
+
+ /**
+ * Gets the specified Azure key vault.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param vaultName The name of the vault.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Vault object
+ */
+ public Observable getAsync(String resourceGroupName, String vaultName) {
+ return getWithServiceResponseAsync(resourceGroupName, vaultName).map(new Func1, Vault>() {
+ @Override
+ public Vault call(ServiceResponse response) {
+ return response.body();
+ }
+ });
+ }
+
+ /**
+ * Gets the specified Azure key vault.
+ *
+ * @param resourceGroupName The name of the Resource Group to which the vault belongs.
+ * @param vaultName The name of the vault.
+ * @throws IllegalArgumentException thrown if parameters fail the validation
+ * @return the observable to the Vault object
+ */
+ public Observable> getWithServiceResponseAsync(String resourceGroupName, String vaultName) {
+ if (resourceGroupName == null) {
+ throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
+ }
+ if (vaultName == null) {
+ throw new IllegalArgumentException("Parameter vaultName is required and cannot be null.");
+ }
+ if (this.client.subscriptionId() == null) {
+ throw new IllegalArgumentException("Parameter this.client.subscriptionId() 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.get(resourceGroupName, vaultName, this.client.subscriptionId(), this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent())
+ .flatMap(new Func1, Observable>>() {
+ @Override
+ public Observable> call(Response