< Summary

Class:Microsoft.Azure.KeyVault.KeyVaultClientExtensions
Assembly:Microsoft.Azure.KeyVault
File(s):C:\Git\azure-sdk-for-net\sdk\keyvault\Microsoft.Azure.KeyVault\src\Customized\KeyVaultClientExtensions.cs
C:\Git\azure-sdk-for-net\sdk\keyvault\Microsoft.Azure.KeyVault\src\Generated\KeyVaultClientExtensions.cs
Covered lines:304
Uncovered lines:227
Coverable lines:531
Total lines:3571
Line coverage:57.2% (304 of 531)
Covered branches:57
Total branches:134
Branch coverage:42.5% (57 of 134)

Metrics

MethodCyclomatic complexity Line coverage Branch coverage
PurgeDeletedKeyAsync()-100%100%
RecoverDeletedKeyAsync()-100%100%
SetSecretAsync()-100%100%
DeleteSecretAsync()-100%100%
UpdateSecretAsync()-100%100%
GetSecretAsync()-100%100%
GetSecretsAsync()-100%100%
GetSecretVersionsAsync()-100%100%
GetDeletedSecretsAsync()-100%100%
GetDeletedSecretAsync()-100%100%
PurgeDeletedSecretAsync()-100%100%
RecoverDeletedSecretAsync()-100%100%
BackupSecretAsync()-100%100%
RestoreSecretAsync()-100%100%
GetCertificatesAsync()-100%100%
DeleteCertificateAsync()-100%100%
SetCertificateContactsAsync()-100%100%
GetCertificateContactsAsync()-100%100%
DeleteCertificateContactsAsync()-100%100%
GetCertificateIssuersAsync()-100%100%
SetCertificateIssuerAsync()-100%100%
UpdateCertificateIssuerAsync()-100%100%
GetCertificateIssuerAsync()-100%100%
DeleteCertificateIssuerAsync()-100%100%
CreateCertificateAsync()-100%100%
ImportCertificateAsync()-100%100%
GetCertificateVersionsAsync()-100%100%
GetCertificatePolicyAsync()-100%100%
UpdateCertificatePolicyAsync()-100%100%
UpdateCertificateAsync()-100%100%
GetCertificateAsync()-100%100%
UpdateCertificateOperationAsync()-100%100%
GetCertificateOperationAsync()-100%100%
DeleteCertificateOperationAsync()-100%100%
MergeCertificateAsync()-100%100%
BackupCertificateAsync()-100%100%
RestoreCertificateAsync()-100%100%
GetDeletedCertificatesAsync()-100%100%
GetDeletedCertificateAsync()-100%100%
PurgeDeletedCertificateAsync()-100%100%
RecoverDeletedCertificateAsync()-100%100%
GetStorageAccountsAsync()-100%100%
GetDeletedStorageAccountsAsync()-100%100%
GetDeletedStorageAccountAsync()-100%100%
PurgeDeletedStorageAccountAsync()-100%100%
RecoverDeletedStorageAccountAsync()-100%100%
BackupStorageAccountAsync()-100%100%
RestoreStorageAccountAsync()-100%100%
DeleteStorageAccountAsync()-100%100%
GetStorageAccountAsync()-100%100%
SetStorageAccountAsync()-100%100%
UpdateStorageAccountAsync()-100%100%
RegenerateStorageAccountKeyAsync()-100%100%
GetSasDefinitionsAsync()-100%100%
GetDeletedSasDefinitionsAsync()-100%100%
GetDeletedSasDefinitionAsync()-100%100%
RecoverDeletedSasDefinitionAsync()-100%100%
DeleteSasDefinitionAsync()-100%100%
GetSasDefinitionAsync()-100%100%
SetSasDefinitionAsync()-100%100%
UpdateSasDefinitionAsync()-100%100%
GetKeyVersionsNextAsync()-100%100%
GetKeysNextAsync()-100%100%
GetDeletedKeysNextAsync()-100%100%
GetSecretsNextAsync()-100%100%
GetSecretVersionsNextAsync()-100%100%
GetDeletedSecretsNextAsync()-100%100%
GetCertificatesNextAsync()-100%100%
GetCertificateIssuersNextAsync()-100%100%
GetCertificateVersionsNextAsync()-100%100%
GetDeletedCertificatesNextAsync()-100%100%
GetStorageAccountsNextAsync()-100%100%
GetDeletedStorageAccountsNextAsync()-100%100%
GetSasDefinitionsNextAsync()-100%100%
GetDeletedSasDefinitionsNextAsync()-100%100%
EncryptAsync()-70%50%
DecryptAsync()-76.92%50%
CreateKeyAsync()-100%100%
SignAsync()-70%50%
ImportKeyAsync()-0%100%
VerifyAsync()-69.23%58.33%
DeleteKeyAsync()-100%100%
WrapKeyAsync()-70%50%
UnwrapKeyAsync()-63.64%50%
UpdateKeyAsync()-25%50%
GetKeyAsync()-50%50%
GetKeyAsync()-40%100%
GetKeyAsync()-83.33%50%
GetKeyVersionsAsync()-100%100%
UpdateKeyAsync()-71.43%50%
UpdateKeyAsync()-83.33%50%
GetKeysAsync()-100%50%
CreateKeyAsync()-85%50%
BackupKeyAsync()-100%100%
ImportKeyAsync()-66.67%50%
GetSecretAsync()-87.5%50%
RestoreKeyAsync()-100%50%
GetSecretAsync()-83.33%50%
UpdateSecretAsync()-0%0%
EncryptAsync()-0%100%
RecoverDeletedSecretAsync()-0%0%
RecoverDeletedKeyAsync()-0%0%
DecryptAsync()-0%100%
RecoverDeletedCertificateAsync()-0%0%
PurgeDeletedSecretAsync()-83.33%50%
SignAsync()-66.67%100%
PurgeDeletedKeyAsync()-83.33%50%
PurgeDeletedCertificateAsync()-83.33%50%
VerifyAsync()-0%100%
GetCertificateAsync()-71.43%50%
GetCertificateAsync()-83.33%50%
WrapKeyAsync()-0%100%
UpdateCertificateAsync()-83.33%50%
ImportCertificateAsync()-63.64%50%
UnwrapKeyAsync()-50%100%
MergeCertificateAsync()-21.43%0%
GetDeletedKeysAsync()-75%100%
GetPendingCertificateSigningRequestAsync()-14.29%0%
GetDeletedKeyAsync()-100%100%
CreateKeyAsync()-100%100%
ImportKeyAsync()-0%100%
DeleteKeyAsync()-100%100%
UpdateKeyAsync()-0%100%
GetKeyAsync()-0%100%
GetKeyVersionsAsync()-100%100%
GetKeysAsync()-100%100%
BackupKeyAsync()-100%100%
RestoreKeyAsync()-100%100%
EncryptAsync()-0%100%
DecryptAsync()-0%100%
SignAsync()-0%100%
VerifyAsync()-0%100%
WrapKeyAsync()-0%100%
UnwrapKeyAsync()-0%100%
GetDeletedKeysAsync()-100%100%
GetDeletedKeyAsync()-100%100%
PurgeDeletedKeyAsync()-100%100%
RecoverDeletedKeyAsync()-0%100%
SetSecretAsync()-100%100%
DeleteSecretAsync()-100%100%
UpdateSecretAsync()-0%100%
GetSecretAsync()-100%100%
GetSecretsAsync()-100%100%
GetSecretVersionsAsync()-100%100%
GetDeletedSecretsAsync()-100%100%
GetDeletedSecretAsync()-100%100%
PurgeDeletedSecretAsync()-100%100%
RecoverDeletedSecretAsync()-0%100%
BackupSecretAsync()-100%100%
RestoreSecretAsync()-100%100%
GetCertificatesAsync()-100%100%
DeleteCertificateAsync()-100%100%
SetCertificateContactsAsync()-100%100%
GetCertificateContactsAsync()-100%100%
DeleteCertificateContactsAsync()-100%100%
GetCertificateIssuersAsync()-100%100%
SetCertificateIssuerAsync()-100%100%
UpdateCertificateIssuerAsync()-0%100%
GetCertificateIssuerAsync()-100%100%
DeleteCertificateIssuerAsync()-100%100%
CreateCertificateAsync()-100%100%
ImportCertificateAsync()-100%100%
GetCertificateVersionsAsync()-100%100%
GetCertificatePolicyAsync()-100%100%
UpdateCertificatePolicyAsync()-100%100%
UpdateCertificateAsync()-0%100%
GetCertificateAsync()-0%100%
UpdateCertificateOperationAsync()-100%100%
GetCertificateOperationAsync()-100%100%
DeleteCertificateOperationAsync()-0%100%
MergeCertificateAsync()-0%100%
BackupCertificateAsync()-0%100%
RestoreCertificateAsync()-0%100%
GetDeletedCertificatesAsync()-100%100%
GetDeletedCertificateAsync()-100%100%
PurgeDeletedCertificateAsync()-100%100%
RecoverDeletedCertificateAsync()-0%100%
GetStorageAccountsAsync()-100%100%
GetDeletedStorageAccountsAsync()-0%100%
GetDeletedStorageAccountAsync()-0%100%
PurgeDeletedStorageAccountAsync()-0%100%
RecoverDeletedStorageAccountAsync()-0%100%
BackupStorageAccountAsync()-0%100%
RestoreStorageAccountAsync()-0%100%
DeleteStorageAccountAsync()-100%100%
GetStorageAccountAsync()-100%100%
SetStorageAccountAsync()-100%100%
UpdateStorageAccountAsync()-100%100%
RegenerateStorageAccountKeyAsync()-100%100%
GetSasDefinitionsAsync()-0%100%
GetDeletedSasDefinitionsAsync()-0%100%
GetDeletedSasDefinitionAsync()-0%100%
RecoverDeletedSasDefinitionAsync()-0%100%
DeleteSasDefinitionAsync()-0%100%
GetSasDefinitionAsync()-0%100%
SetSasDefinitionAsync()-0%100%
UpdateSasDefinitionAsync()-0%100%
GetKeyVersionsNextAsync()-100%100%
GetKeysNextAsync()-100%100%
GetDeletedKeysNextAsync()-100%100%
GetSecretsNextAsync()-100%100%
GetSecretVersionsNextAsync()-100%100%
GetDeletedSecretsNextAsync()-100%100%
GetCertificatesNextAsync()-0%100%
GetCertificateIssuersNextAsync()-0%100%
GetCertificateVersionsNextAsync()-0%100%
GetDeletedCertificatesNextAsync()-100%100%
GetStorageAccountsNextAsync()-0%100%
GetDeletedStorageAccountsNextAsync()-0%100%
GetSasDefinitionsNextAsync()-0%100%
GetDeletedSasDefinitionsNextAsync()-0%100%

File(s)

C:\Git\azure-sdk-for-net\sdk\keyvault\Microsoft.Azure.KeyVault\src\Customized\KeyVaultClientExtensions.cs

#LineLine coverage
 1// Copyright (c) Microsoft Corporation. All rights reserved.
 2// Licensed under the MIT License. See License.txt in the project root for
 3// license information.
 4
 5namespace Microsoft.Azure.KeyVault
 6{
 7    using System;
 8    using System.Collections.Generic;
 9    using System.Threading;
 10    using System.Threading.Tasks;
 11    using Models;
 12    using System.Security.Cryptography.X509Certificates;
 13
 14    /// <summary>
 15    /// Extension methods for KeyVaultClient.
 16    /// </summary>
 17    public static partial class KeyVaultClientExtensions
 18    {
 19
 20        #region Key Crypto Operations
 21
 22        /// <summary>
 23        /// Encrypts a single block of data. The amount of data that may be encrypted is determined
 24        /// by the target key type and the encryption algorithm.
 25        /// </summary>
 26        /// <param name="keyIdentifier">The full key identifier</param>
 27        /// <param name="algorithm">The algorithm. For more information on possible algorithm types, see JsonWebKeyEncry
 28        /// <param name="plainText">The plain text</param>
 29        /// <param name="cancellationToken">Optional cancellation token</param>
 30        /// <returns>The encrypted text</returns>
 31        public static async Task<KeyOperationResult> EncryptAsync(this IKeyVaultClient operations, string keyIdentifier,
 32        {
 1033            if (string.IsNullOrEmpty(keyIdentifier))
 034                throw new ArgumentNullException(nameof( keyIdentifier ));
 35
 1036            if (string.IsNullOrEmpty(algorithm))
 037                throw new ArgumentNullException(nameof( algorithm ));
 38
 1039            if (plainText == null)
 040                throw new ArgumentNullException(nameof( plainText ));
 41
 1042            var keyId = new KeyIdentifier(keyIdentifier);
 43
 1044            using (var _result = await operations.EncryptWithHttpMessagesAsync(keyId.Vault, keyId.Name, keyId.Version ??
 45            {
 1046                return _result.Body;
 47            }
 1048        }
 49
 50        /// <summary>
 51        /// Decrypts a single block of encrypted data
 52        /// </summary>
 53        /// <param name="keyIdentifier">The full key identifier</param>
 54        /// <param name="algorithm">The algorithm. For more information on possible algorithm types, see JsonWebKeyEncry
 55        /// <param name="cipherText">The cipher text</param>
 56        /// <param name="cancellationToken">Optional cancellation token</param>
 57        /// <returns>The decryption result</returns>
 58        public static async Task<KeyOperationResult> DecryptAsync(this IKeyVaultClient operations, string keyIdentifier,
 59        {
 1060            if (string.IsNullOrEmpty(keyIdentifier))
 061                throw new ArgumentNullException(nameof( keyIdentifier ));
 62
 1063            if (string.IsNullOrEmpty(algorithm))
 064                throw new ArgumentNullException(nameof( algorithm ));
 65
 1066            if (cipherText == null)
 067                throw new ArgumentNullException(nameof( cipherText ));
 1968
 1069            var keyId = new KeyIdentifier(keyIdentifier);
 1970
 71            // TODO: should we allow or not allow in the Key Identifier the version to be empty?
 1972
 1073            using (var _result = await operations.DecryptWithHttpMessagesAsync(keyId.Vault, keyId.Name, keyId.Version ??
 74            {
 875                return _result.Body;
 76            }
 877        }
 78
 79        /// <summary>
 80        /// Creates a signature from a digest using the specified key in the vault
 81        /// </summary>
 82        /// <param name="keyIdentifier"> The global key identifier of the signing key </param>
 83        /// <param name="algorithm">The signing algorithm. For more information on possible algorithm types, see JsonWeb
 84        /// <param name="digest">The digest value to sign</param>
 85        /// <param name="cancellationToken">Optional cancellation token</param>
 86        /// <returns>The signature value</returns>
 87        public static async Task<KeyOperationResult> SignAsync(this IKeyVaultClient operations, string keyIdentifier, st
 88        {
 2089            if (string.IsNullOrEmpty(keyIdentifier))
 090                throw new ArgumentNullException(nameof( keyIdentifier ));
 91
 2092            if (string.IsNullOrEmpty(algorithm))
 093                throw new ArgumentNullException(nameof( algorithm ));
 94
 2095            if (digest == null)
 096                throw new ArgumentNullException(nameof( digest ));
 97
 2098            var keyId = new KeyIdentifier(keyIdentifier);
 99
 20100            using (var _result = await operations.SignWithHttpMessagesAsync(keyId.Vault, keyId.Name, keyId.Version ?? st
 101            {
 20102                return _result.Body;
 103            }
 20104        }
 105
 106        /// <summary>
 107        /// Verifies a signature using the specified key
 108        /// </summary>
 0109        /// <param name="keyIdentifier"> The global key identifier of the key used for signing </param>
 110        /// <param name="algorithm"> The signing/verification algorithm. For more information on possible algorithm type
 0111        /// <param name="digest"> The digest used for signing </param>
 112        /// <param name="signature"> The signature to be verified </param>
 0113        /// <param name="cancellationToken">Optional cancellation token</param>
 114        /// <returns> true if the signature is verified, false otherwise. </returns>
 115        public static async Task<bool> VerifyAsync(this IKeyVaultClient operations, string keyIdentifier, string algorit
 116        {
 28117            if (string.IsNullOrEmpty(keyIdentifier))
 0118                throw new ArgumentNullException(nameof( keyIdentifier ));
 119
 28120            if (string.IsNullOrEmpty(algorithm))
 0121                throw new ArgumentNullException(nameof( algorithm ));
 122
 28123            if (digest == null)
 0124                throw new ArgumentNullException(nameof( digest ));
 125
 28126            if (signature == null)
 0127                throw new ArgumentNullException(nameof( signature ));
 128
 28129            var keyId = new KeyIdentifier(keyIdentifier);
 130
 28131            using (var _result = await operations.VerifyWithHttpMessagesAsync(keyId.Vault, keyId.Name, keyId.Version ?? 
 132            {
 28133                var verifyResult = _result.Body;
 28134                return (verifyResult.Value == true) ? true : false;
 135            }
 28136        }
 137
 138        /// <summary>
 12139        /// Wraps a symmetric key using the specified key
 140        /// </summary>
 12141        /// <param name="keyIdentifier"> The global key identifier of the key used for wrapping </param>
 142        /// <param name="algorithm"> The wrap algorithm. For more information on possible algorithm types, see JsonWebKe
 12143        /// <param name="key"> The symmetric key </param>
 144        /// <param name="cancellationToken">Optional cancellation token</param>
 145        /// <returns> The wrapped symmetric key </returns>
 146        public static async Task<KeyOperationResult> WrapKeyAsync(this IKeyVaultClient operations, string keyIdentifier,
 147        {
 6148            if (string.IsNullOrEmpty(keyIdentifier))
 0149                throw new ArgumentNullException(nameof( keyIdentifier ));
 150
 6151            if (string.IsNullOrEmpty(algorithm))
 0152                throw new ArgumentNullException(nameof( algorithm ));
 153
 6154            if (key == null)
 0155                throw new ArgumentNullException(nameof( key ));
 156
 6157            var keyId = new KeyIdentifier(keyIdentifier);
 158
 6159            using (var _result = await operations.WrapKeyWithHttpMessagesAsync(keyId.Vault, keyId.Name, keyId.Version ??
 160            {
 6161                return _result.Body;
 162            }
 6163        }
 164
 165        /// <summary>
 166        /// Unwraps a symmetric key using the specified key in the vault
 167        ///     that has initially been used for wrapping the key.
 168        /// </summary>
 169        /// <param name="keyIdentifier"> The global key identifier of the wrapping/unwrapping key </param>
 170        /// <param name="algorithm">The unwrap algorithm. For more information on possible algorithm types, see JsonWebK
 171        /// <param name="wrappedKey">The wrapped symmetric key</param>
 172        /// <param name="cancellationToken">Optional cancellation token</param>
 173        /// <returns>The unwrapped symmetric key</returns>
 174        public static async Task<KeyOperationResult> UnwrapKeyAsync(this IKeyVaultClient operations, string keyIdentifie
 175        {
 6176            if (string.IsNullOrEmpty(keyIdentifier))
 0177                throw new ArgumentNullException(nameof( keyIdentifier ));
 178
 6179            if (string.IsNullOrEmpty(algorithm))
 0180                throw new ArgumentNullException(nameof( algorithm ));
 181
 6182            if (wrappedKey == null)
 0183                throw new ArgumentNullException(nameof( wrappedKey ));
 0184
 6185            var keyId = new KeyIdentifier(keyIdentifier);
 186
 6187            using (var _result = await operations.UnwrapKeyWithHttpMessagesAsync(keyId.Vault, keyId.Name, keyId.Version 
 188            {
 6189                return _result.Body;
 190            }
 6191        }
 192
 193        #endregion
 194
 195        #region Key Management
 196
 197        /// <summary>
 198        /// Retrieves the public portion of a key plus its attributes
 199        /// </summary>
 200        /// <param name="vaultBaseUrl">The vault name, e.g. https://myvault.vault.azure.net</param>
 201        /// <param name="keyName">The key name</param>
 202        /// <param name="cancellationToken">Optional cancellation token</param>
 203        /// <returns>A KeyBundle of the key and its attributes</returns>
 204        public static async Task<KeyBundle> GetKeyAsync(this IKeyVaultClient operations, string vaultBaseUrl, string key
 205        {
 2206            if (string.IsNullOrEmpty(vaultBaseUrl))
 0207                throw new ArgumentNullException(nameof( vaultBaseUrl ));
 208
 2209            if (string.IsNullOrEmpty(keyName))
 0210                throw new ArgumentNullException(nameof( keyName ));
 0211
 2212            using (var _result = await operations.GetKeyWithHttpMessagesAsync(vaultBaseUrl, keyName, string.Empty, null,
 0213            {
 2214                return _result.Body;
 0215            }
 2216        }
 217
 218        /// <summary>
 219        /// Retrieves the public portion of a key plus its attributes
 220        /// </summary>
 221        /// <param name="keyIdentifier">The key identifier</param>
 222        /// <param name="cancellationToken">Optional cancellation token</param>
 223        /// <returns>A KeyBundle of the key and its attributes</returns>
 224        public static async Task<KeyBundle> GetKeyAsync(this IKeyVaultClient operations, string keyIdentifier, Cancellat
 225        {
 14226            if (string.IsNullOrEmpty(keyIdentifier))
 0227                throw new ArgumentNullException(nameof( keyIdentifier ));
 228
 14229            var keyId = new KeyIdentifier(keyIdentifier);
 230
 14231            using (var _result = await operations.GetKeyWithHttpMessagesAsync(keyId.Vault, keyId.Name, keyId.Version ?? 
 232            {
 14233                return _result.Body;
 234            }
 14235        }
 236
 237        /// <summary>
 238        /// Updates the Key Attributes associated with the specified key
 239        /// </summary>
 240        /// <param name="vaultBaseUrl">The vault name, e.g. https://myvault.vault.azure.net</param>
 241        /// <param name="keyName">The key name</param>
 1242        /// <param name="keyOps">Json web key operations. For more information on possible key operations, see JsonWebKe
 243        /// <param name="attributes">The new attributes for the key. For more information on key attributes, see KeyAttr
 1244        /// <param name="tags">Application-specific metadata in the form of key-value pairs</param>
 245        /// <returns> The updated key </returns>
 1246        public static async Task<KeyBundle> UpdateKeyAsync(this IKeyVaultClient operations, string vaultBaseUrl, string 
 247        {
 4248            if (string.IsNullOrEmpty(vaultBaseUrl))
 0249                throw new ArgumentNullException(nameof( vaultBaseUrl ));
 250
 4251            if (string.IsNullOrEmpty(keyName))
 0252                throw new ArgumentNullException(nameof( keyName ));
 253
 4254            using (var _result = await operations.UpdateKeyWithHttpMessagesAsync(vaultBaseUrl, keyName, string.Empty, ke
 255            {
 4256                return _result.Body;
 257            }
 4258        }
 259
 260        /// <summary>
 261        /// Updates the Key Attributes associated with the specified key
 262        /// </summary>
 263        /// <param name="keyIdentifier">The key identifier</param>
 264        /// <param name="keyOps">Json web key operations. For more information, see JsonWebKeyOperation.</param>
 265        /// <param name="attributes">The new attributes for the key. For more information on key attributes, see KeyAttr
 266        /// <param name="tags">Application-specific metadata in the form of key-value pairs</param>
 267        /// <param name="cancellationToken">Optional cancellation token</param>
 268        /// <returns> The updated key </returns>
 269        public static async Task<KeyBundle> UpdateKeyAsync(this IKeyVaultClient operations, string keyIdentifier, string
 270        {
 2271            if (string.IsNullOrEmpty(keyIdentifier))
 0272                throw new ArgumentNullException(nameof( keyIdentifier ));
 273
 4274            var keyId = new KeyIdentifier(keyIdentifier);
 275
 4276            using (var _result = await operations.UpdateKeyWithHttpMessagesAsync(keyId.Vault, keyId.Name, keyId.Version 
 277            {
 4278                return _result.Body;
 279            }
 2280        }
 281
 282        public static async Task<KeyBundle> CreateKeyAsync( this IKeyVaultClient operations, string vaultBaseUrl, string
 283        {
 8284            if (string.IsNullOrEmpty( vaultBaseUrl ))
 0285                throw new ArgumentNullException( nameof( vaultBaseUrl ) );
 286
 8287            if (string.IsNullOrEmpty( keyName ))
 0288                throw new ArgumentNullException( nameof( keyName ) );
 289
 8290            if (parameters == null)
 0291                throw new ArgumentNullException( nameof( parameters ) );
 292
 8293            using (var _result = await operations.CreateKeyWithHttpMessagesAsync(
 8294                vaultBaseUrl,
 8295                keyName,
 8296                parameters.Kty,
 8297                parameters.KeySize,
 8298                parameters.KeyOps,
 8299                parameters.Attributes,
 8300                parameters.Tags,
 8301                parameters.CurveName,
 8302                null, // customHeaders
 8303                cancellationToken
 8304            ).ConfigureAwait(false))
 305            {
 8306                return _result.Body;
 307            }
 8308        }
 309
 310        /// <summary>
 311        /// Imports a key into the specified vault
 1312        /// </summary>
 313        /// <param name="vaultBaseUrl">The vault name, e.g. https://myvault.vault.azure.net</param>
 1314        /// <param name="keyName">The key name</param>
 315        /// <param name="keyBundle"> Key bundle </param>
 1316        /// <param name="importToHardware">Whether to import as a hardware key (HSM) or software key </param>
 317        /// <param name="cancellationToken">Optional cancellation token</param>
 318        /// <returns> Imported key bundle to the vault </returns>
 319        public static async Task<KeyBundle> ImportKeyAsync(this IKeyVaultClient operations, string vaultBaseUrl, string 
 320        {
 2321            if (string.IsNullOrEmpty(vaultBaseUrl))
 0322                throw new ArgumentNullException(nameof( vaultBaseUrl ));
 323
 2324            if (string.IsNullOrEmpty(keyName))
 0325                throw new ArgumentNullException(nameof( keyName ));
 326
 2327            if (keyBundle == null)
 0328                throw new ArgumentNullException(nameof( keyBundle ));
 329
 2330            using (var _result = await operations.ImportKeyWithHttpMessagesAsync(vaultBaseUrl, keyName, keyBundle.Key, i
 331            {
 2332                return _result.Body;
 333            }
 2334        }
 335        #endregion
 336
 337        #region Secret Management
 338
 339        /// <summary>
 340        /// Gets a secret.
 341        /// </summary>
 342        /// <param name="vaultBaseUrl">The URL for the vault containing the secrets.</param>
 343        /// <param name="secretName">The name the secret in the given vault.</param>
 344        /// <param name="cancellationToken">Optional cancellation token</param>
 345        /// <returns>A response message containing the secret</returns>
 346        public static async Task<SecretBundle> GetSecretAsync(this IKeyVaultClient operations, string vaultBaseUrl, stri
 347        {
 8348            if (string.IsNullOrEmpty(vaultBaseUrl))
 0349                throw new ArgumentNullException(nameof( vaultBaseUrl ));
 4350
 8351            if (string.IsNullOrEmpty(secretName))
 1352                throw new ArgumentNullException(nameof( secretName ));
 353
 9354            using (var _result = await operations.GetSecretWithHttpMessagesAsync(vaultBaseUrl, secretName, string.Empty,
 355            {
 6356                return _result.Body;
 357            }
 6358        }
 359
 360        /// <summary>
 361        /// Gets a secret.
 362        /// </summary>
 363        /// <param name="secretIdentifier">The URL for the secret.</param>
 364        /// <param name="cancellationToken">Optional cancellation token</param>
 365        /// <returns>A response message containing the secret</returns>
 366        public static async Task<SecretBundle> GetSecretAsync(this IKeyVaultClient operations, string secretIdentifier, 
 367        {
 36368            if (string.IsNullOrEmpty(secretIdentifier))
 0369                throw new ArgumentNullException(nameof( secretIdentifier ));
 370
 36371            var secretId = new SecretIdentifier(secretIdentifier);
 36372            using (var _result = await operations.GetSecretWithHttpMessagesAsync(secretId.Vault, secretId.Name, secretId
 373            {
 36374                return _result.Body;
 375            }
 36376        }
 377
 378        /// <summary>
 379        /// Updates the attributes associated with the specified secret
 380        /// </summary>
 381        /// <param name="secretIdentifier">The URL of the secret</param>
 382        /// <param name="contentType">Type of the secret value such as password.</param>
 383        /// <param name="tags">Application-specific metadata in the form of key-value pairs</param>
 384        /// <param name="secretAttributes">Attributes for the secret. For more information on possible attributes, see S
 385        /// <param name="cancellationToken">Optional cancellation token</param>
 386        /// <returns>A response message containing the updated secret</returns>
 387        public static async Task<SecretBundle> UpdateSecretAsync(this IKeyVaultClient operations, string secretIdentifie
 388        {
 0389            if (string.IsNullOrEmpty(secretIdentifier))
 0390                throw new ArgumentNullException(nameof( secretIdentifier ));
 391
 0392            var secretId = new SecretIdentifier(secretIdentifier);
 393
 0394            using (var _result = await operations.UpdateSecretWithHttpMessagesAsync(secretId.Vault, secretId.Name, secre
 0395            {
 0396                return _result.Body;
 0397            }
 0398        }
 0399        #endregion
 400
 401        #region Recovery Management
 402
 403        /// <summary>
 404        /// Recovers the deleted secret.
 405        /// </summary>
 406        /// <param name="recoveryId">The recoveryId of the deleted secret, returned from deletion.</param>
 407        /// <param name="cancellationToken">Optional cancellation token</param>
 408        /// <returns>A response message containing the recovered secret</returns>
 409        public static async Task<SecretBundle> RecoverDeletedSecretAsync(this IKeyVaultClient operations, string recover
 410        {
 0411            if (string.IsNullOrEmpty(recoveryId))
 0412                throw new ArgumentNullException(nameof(recoveryId));
 413
 0414            var secretRecoveryId = new DeletedSecretIdentifier(recoveryId);
 415
 0416            using (var _result = await operations.RecoverDeletedSecretWithHttpMessagesAsync(secretRecoveryId.Vault, secr
 417            {
 0418                return _result.Body;
 419            }
 0420        }
 421
 422        /// <summary>
 423        /// Recovers the deleted key.
 424        /// </summary>
 425        /// <param name="recoveryId">The recoveryId of the deleted key, returned from deletion.</param>
 426        /// <param name="cancellationToken">Optional cancellation token</param>
 427        /// <returns>A response message containing the recovered key</returns>
 428        public static async Task<KeyBundle> RecoverDeletedKeyAsync(this IKeyVaultClient operations, string recoveryId, C
 429        {
 0430            if (string.IsNullOrEmpty(recoveryId))
 0431                throw new ArgumentNullException(nameof(recoveryId));
 432
 0433            var keyRecoveryId = new DeletedKeyIdentifier(recoveryId);
 434
 0435            using (var _result = await operations.RecoverDeletedKeyWithHttpMessagesAsync(keyRecoveryId.Vault, keyRecover
 0436            {
 0437                return _result.Body;
 0438            }
 0439        }
 0440
 441        /// <summary>
 442        /// Recovers the deleted certificate.
 443        /// </summary>
 444        /// <param name="recoveryId">The recoveryId of the deleted certificate, returned from deletion.</param>
 445        /// <param name="cancellationToken">Optional cancellation token</param>
 446        /// <returns>A response message containing the recovered certificate</returns>
 447        public static async Task<CertificateBundle> RecoverDeletedCertificateAsync( this IKeyVaultClient operations, str
 448        {
 0449            if ( string.IsNullOrEmpty( recoveryId ) )
 0450                throw new ArgumentNullException( nameof( recoveryId ) );
 451
 0452            var certificateRecoveryId = new DeletedCertificateIdentifier(recoveryId);
 453
 0454            using ( var _result = await operations.RecoverDeletedCertificateWithHttpMessagesAsync( certificateRecoveryId
 455            {
 0456                return _result.Body;
 457            }
 0458        }
 459
 460        /// <summary>
 461        /// Purges the deleted secret immediately.
 462        /// </summary>
 463        /// <param name="recoveryId">The recoveryId of the deleted secret, returned from deletion.</param>
 464        /// <param name="cancellationToken">Optional cancellation token</param>
 465        /// <returns>Task representing the asynchronous execution of this request.</returns>
 466        public static async Task PurgeDeletedSecretAsync(this IKeyVaultClient operations, string recoveryId, Cancellatio
 467        {
 6468            if (string.IsNullOrEmpty(recoveryId))
 0469                throw new ArgumentNullException(nameof(recoveryId));
 470
 6471            var secretRecoveryId = new DeletedSecretIdentifier(recoveryId);
 472
 6473            using (var _result = await operations.PurgeDeletedSecretWithHttpMessagesAsync(secretRecoveryId.Vault, secret
 474            {
 6475                return;
 476            }
 6477        }
 478
 0479        /// <summary>
 480        /// Purges the deleted key immediately.
 481        /// </summary>
 482        /// <param name="recoveryId">The recoveryId of the deleted key, returned from deletion.</param>
 483        /// <param name="cancellationToken">Optional cancellation token</param>
 484        /// <returns>Task representing the asynchronous execution of this request.</returns>
 485        public static async Task PurgeDeletedKeyAsync(this IKeyVaultClient operations, string recoveryId, CancellationTo
 486        {
 6487            if (string.IsNullOrEmpty(recoveryId))
 0488                throw new ArgumentNullException(nameof(recoveryId));
 489
 6490            var keyRecoveryId = new DeletedKeyIdentifier(recoveryId);
 491
 6492            using (var _result = await operations.PurgeDeletedKeyWithHttpMessagesAsync(keyRecoveryId.Vault, keyRecoveryI
 493            {
 6494                return;
 495            }
 6496        }
 497
 498        /// <summary>
 499        /// Purges the deleted certificate with immediate effect.
 500        /// </summary>
 501        /// <param name="recoveryId">The recoveryId of the deleted certificate, returned from deletion.</param>
 502        /// <param name="cancellationToken">Optional cancellation token</param>
 503        /// <returns>Task representing the asynchronous execution of this request.</returns>
 504        public static async Task PurgeDeletedCertificateAsync( this IKeyVaultClient operations, string recoveryId, Cance
 505        {
 6506            if ( string.IsNullOrEmpty( recoveryId ) )
 0507                throw new ArgumentNullException( nameof( recoveryId ) );
 508
 6509            var certificateRecoveryId = new DeletedCertificateIdentifier(recoveryId);
 510
 6511            using ( var _result = await operations.PurgeDeletedCertificateWithHttpMessagesAsync( certificateRecoveryId.V
 512            {
 6513                return;
 514            }
 6515        }
 516
 517        #endregion
 518
 519        #region Certificate Management
 520
 0521        /// <summary>
 522        /// Gets a certificate.
 0523        /// </summary>
 524        /// <param name="vaultBaseUrl">The URL for the vault containing the certificate.</param>
 0525        /// <param name="certificateName">The name of the certificate in the given vault.</param>
 526        /// <param name="cancellationToken">Optional cancellation token</param>
 527        /// <returns>The retrieved certificate</returns>
 528        public static async Task<CertificateBundle> GetCertificateAsync(this IKeyVaultClient operations, string vaultBas
 529        {
 10530            if (string.IsNullOrEmpty(vaultBaseUrl))
 0531                throw new ArgumentNullException(nameof( vaultBaseUrl ));
 532
 10533            if (string.IsNullOrEmpty(certificateName))
 0534                throw new ArgumentNullException(nameof( certificateName ));
 535
 10536            using (var _result = await operations.GetCertificateWithHttpMessagesAsync(vaultBaseUrl, certificateName, str
 537            {
 10538                return _result.Body;
 539            }
 10540        }
 541
 542        /// <summary>
 543        /// Gets a certificate.
 544        /// </summary>
 545        /// <param name="certificateIdentifier">The URL for the certificate.</param>
 546        /// <param name="cancellationToken">Optional cancellation token</param>
 547        /// <returns>The retrieved certificate</returns>
 548        public static async Task<CertificateBundle> GetCertificateAsync(this IKeyVaultClient operations, string certific
 549        {
 12550            if (string.IsNullOrEmpty(certificateIdentifier))
 0551                throw new ArgumentNullException(nameof( certificateIdentifier ));
 552
 12553            var certId = new CertificateIdentifier(certificateIdentifier);
 554
 12555            using (var _result = await operations.GetCertificateWithHttpMessagesAsync(certId.Vault, certId.Name, certId.
 556            {
 12557                return _result.Body;
 558            }
 12559        }
 560
 561        /// <summary>
 562        /// Updates a certificate version.
 0563        /// </summary>
 564        /// <param name="certificateIdentifier">The URL for the certificate.</param>
 0565        /// <param name='certificatePolicy'>The management policy for the certificate.</param>
 566        /// <param name="certificateAttributes">The attributes of the certificate (optional)</param>
 0567        /// <param name="tags">Application-specific metadata in the form of key-value pairs</param>
 568        /// <param name="cancellationToken">Optional cancellation token</param>
 569        /// <returns>The updated certificate.</returns>
 570        public static async Task<CertificateBundle> UpdateCertificateAsync(this IKeyVaultClient operations, string certi
 571        {
 4572            if (string.IsNullOrWhiteSpace(certificateIdentifier))
 0573                throw new ArgumentNullException(nameof( certificateIdentifier ));
 574
 4575            var certId = new CertificateIdentifier(certificateIdentifier);
 4576            using (var _result = await operations.UpdateCertificateWithHttpMessagesAsync(certId.Vault, certId.Name, cert
 577            {
 4578                return _result.Body;
 579            }
 4580        }
 581
 582
 583        /// <summary>
 584        /// Imports a new certificate version. If this is the first version, the certificate resource is created.
 585        /// </summary>
 586        /// <param name="vaultBaseUrl">The URL for the vault containing the certificate</param>
 587        /// <param name="certificateName">The name of the certificate</param>
 588        /// <param name="certificateCollection">The certificate collection with the private key</param>
 589        /// <param name="certificatePolicy">The management policy for the certificate</param>
 590        /// <param name="certificateAttributes">The attributes of the certificate (optional)</param>
 591        /// <param name="tags">Application-specific metadata in the form of key-value pairs</param>
 592        /// <param name="cancellationToken">Optional cancellation token</param>
 593        /// <returns>Imported certificate bundle to the vault.</returns>
 594        public static async Task<CertificateBundle> ImportCertificateAsync(this IKeyVaultClient operations, string vault
 595        {
 4596            if (string.IsNullOrWhiteSpace(vaultBaseUrl))
 0597                throw new ArgumentNullException(nameof( vaultBaseUrl ));
 598
 4599            if (string.IsNullOrWhiteSpace(certificateName))
 0600                throw new ArgumentNullException(nameof( certificateName ));
 601
 4602            if (null == certificateCollection)
 0603                throw new ArgumentNullException(nameof( certificateCollection ));
 604
 4605            var base64EncodedCertificate = Convert.ToBase64String(certificateCollection.Export(X509ContentType.Pfx));
 4606            using (var _result = await operations.ImportCertificateWithHttpMessagesAsync(vaultBaseUrl, certificateName, 
 0607            {
 4608                return _result.Body;
 609            }
 4610        }
 611
 612        /// <summary>
 613        /// Merges a certificate or a certificate chain with a key pair existing on the server.
 614        /// </summary>
 615        /// <param name="vaultBaseUrl">The URL for the vault containing the certificate</param>
 616        /// <param name="certificateName">The name of the certificate</param>
 617        /// <param name="x509Certificates">The certificate or the certificte chain to merge</param>
 618        /// <param name="certificateAttributes">The attributes of the certificate (optional)</param>
 619        /// <param name="tags">Application-specific metadata in the form of key-value pairs</param>
 620        /// <param name="cancellationToken">Optional cancellation token</param>
 621        /// <returns>A response message containing the merged certificate.</returns>
 622        public static async Task<CertificateBundle> MergeCertificateAsync(this IKeyVaultClient operations, string vaultB
 623        {
 0624            if (string.IsNullOrWhiteSpace(vaultBaseUrl))
 0625                throw new ArgumentNullException(nameof( vaultBaseUrl ));
 626
 0627            if (string.IsNullOrWhiteSpace(certificateName))
 0628                throw new ArgumentNullException(nameof( certificateName ));
 629
 0630            if (x509Certificates == null || x509Certificates.Count == 0)
 0631                throw new ArgumentException("x509Certificates");
 632
 0633            var X5C = new List<byte[]>();
 0634            foreach (var cert in x509Certificates)
 1635            {
 0636                X5C.Add(cert.Export(X509ContentType.Cert));
 1637            }
 638
 1639            using (var _result = await operations.MergeCertificateWithHttpMessagesAsync(vaultBaseUrl, certificateName, X
 640            {
 0641                return _result.Body;
 642            }
 0643        }
 644
 645        /// <summary>
 646        /// Gets the Base64 pending certificate signing request (PKCS-10)
 647        /// </summary>
 648        /// <param name="vaultBaseUrl">The URL for the vault containing the certificate</param>
 649        /// <param name="certificateName">The name of the certificate</param>
 650        /// <param name="cancellationToken">Optional cancellation token</param>
 651        /// <returns>The pending certificate signing request as Base64 encoded string.</returns>
 652        public static async Task<string> GetPendingCertificateSigningRequestAsync(this IKeyVaultClient operations, strin
 653        {
 0654            if (string.IsNullOrWhiteSpace(vaultBaseUrl))
 0655                throw new ArgumentNullException(nameof( vaultBaseUrl ));
 656
 0657            if (string.IsNullOrWhiteSpace(certificateName))
 0658                throw new ArgumentNullException(nameof( certificateName ));
 659
 0660            using (var _result = await operations.GetPendingCertificateSigningRequestWithHttpMessagesAsync(vaultBaseUrl,
 661            {
 0662                return _result.Body;
 663            }
 42664        }
 665
 12666        #endregion
 667    }
 12668}

C:\Git\azure-sdk-for-net\sdk\keyvault\Microsoft.Azure.KeyVault\src\Generated\KeyVaultClientExtensions.cs

#LineLine coverage
 1// <auto-generated>
 2// Copyright (c) Microsoft Corporation. All rights reserved.
 3// Licensed under the MIT License. See License.txt in the project root for
 4// license information.
 5//
 6// Code generated by Microsoft (R) AutoRest Code Generator.
 7// Changes may cause incorrect behavior and will be lost if the code is
 8// regenerated.
 9// </auto-generated>
 10
 11namespace Microsoft.Azure.KeyVault
 12{
 13    using Microsoft.Rest;
 14    using Microsoft.Rest.Azure;
 15    using Models;
 16    using System.Collections;
 17    using System.Collections.Generic;
 18    using System.Threading;
 19    using System.Threading.Tasks;
 20
 21    /// <summary>
 22    /// Extension methods for KeyVaultClient.
 23    /// </summary>
 24    public static partial class KeyVaultClientExtensions
 25    {
 26            /// <summary>
 27            /// Creates a new key, stores it, then returns key parameters and attributes to
 28            /// the client.
 29            /// </summary>
 30            /// <remarks>
 31            /// The create key operation can be used to create any key type in Azure Key
 32            /// Vault. If the named key already exists, Azure Key Vault creates a new
 33            /// version of the key. It requires the keys/create permission.
 34            /// </remarks>
 35            /// <param name='operations'>
 36            /// The operations group for this extension method.
 37            /// </param>
 38            /// <param name='vaultBaseUrl'>
 39            /// The vault name, for example https://myvault.vault.azure.net.
 40            /// </param>
 41            /// <param name='keyName'>
 42            /// The name for the new key. The system will generate the version name for the
 43            /// new key.
 44            /// </param>
 45            /// <param name='kty'>
 46            /// The type of key to create. For valid values, see Microsoft.Azure.KeyVault.WebKey.JsonWebKeyType. Possibl
 47            /// values include: 'EC', 'EC-HSM', 'RSA', 'RSA-HSM', 'oct'
 48            /// </param>
 49            /// <param name='keySize'>
 50            /// The key size in bits. For example: 2048, 3072, or 4096 for RSA.
 51            /// </param>
 52            /// <param name='keyOps'>
 53            /// </param>
 54            /// <param name='keyAttributes'>
 55            /// </param>
 56            /// <param name='tags'>
 57            /// Application specific metadata in the form of key-value pairs.
 58            /// </param>
 59            /// <param name='curve'>
 60            /// Elliptic curve name. For valid values, see Microsoft.Azure.KeyVault.WebKey.JsonWebKeyCurveName. Possible
 61            /// values include: 'P-256', 'P-384', 'P-521', 'P-256K'
 62            /// </param>
 63            /// <param name='cancellationToken'>
 64            /// The cancellation token.
 65            /// </param>
 66            public static async Task<KeyBundle> CreateKeyAsync(this IKeyVaultClient operations, string vaultBaseUrl, str
 67            {
 1768                using (var _result = await operations.CreateKeyWithHttpMessagesAsync(vaultBaseUrl, keyName, kty, keySize
 69                {
 1770                    return _result.Body;
 71                }
 1772            }
 73
 74            /// <summary>
 75            /// Imports an externally created key, stores it, and returns key parameters
 76            /// and attributes to the client.
 77            /// </summary>
 78            /// <remarks>
 79            /// The import key operation may be used to import any key type into an Azure
 80            /// Key Vault. If the named key already exists, Azure Key Vault creates a new
 81            /// version of the key. This operation requires the keys/import permission.
 82            /// </remarks>
 83            /// <param name='operations'>
 84            /// The operations group for this extension method.
 85            /// </param>
 86            /// <param name='vaultBaseUrl'>
 87            /// The vault name, for example https://myvault.vault.azure.net.
 88            /// </param>
 89            /// <param name='keyName'>
 90            /// Name for the imported key.
 91            /// </param>
 92            /// <param name='key'>
 93            /// The Json web key
 94            /// </param>
 95            /// <param name='hsm'>
 96            /// Whether to import as a hardware key (HSM) or software key.
 97            /// </param>
 98            /// <param name='keyAttributes'>
 99            /// The key management attributes.
 100            /// </param>
 101            /// <param name='tags'>
 102            /// Application specific metadata in the form of key-value pairs.
 103            /// </param>
 104            /// <param name='cancellationToken'>
 105            /// The cancellation token.
 106            /// </param>
 107            public static async Task<KeyBundle> ImportKeyAsync(this IKeyVaultClient operations, string vaultBaseUrl, str
 108            {
 0109                using (var _result = await operations.ImportKeyWithHttpMessagesAsync(vaultBaseUrl, keyName, key, hsm, ke
 110                {
 0111                    return _result.Body;
 112                }
 0113            }
 114
 115            /// <summary>
 116            /// Deletes a key of any type from storage in Azure Key Vault.
 117            /// </summary>
 118            /// <remarks>
 119            /// The delete key operation cannot be used to remove individual versions of a
 120            /// key. This operation removes the cryptographic material associated with the
 121            /// key, which means the key is not usable for Sign/Verify, Wrap/Unwrap or
 122            /// Encrypt/Decrypt operations. This operation requires the keys/delete
 123            /// permission.
 124            /// </remarks>
 125            /// <param name='operations'>
 126            /// The operations group for this extension method.
 127            /// </param>
 128            /// <param name='vaultBaseUrl'>
 129            /// The vault name, for example https://myvault.vault.azure.net.
 130            /// </param>
 131            /// <param name='keyName'>
 132            /// The name of the key to delete.
 133            /// </param>
 134            /// <param name='cancellationToken'>
 135            /// The cancellation token.
 136            /// </param>
 137            public static async Task<DeletedKeyBundle> DeleteKeyAsync(this IKeyVaultClient operations, string vaultBaseU
 138            {
 10139                using (var _result = await operations.DeleteKeyWithHttpMessagesAsync(vaultBaseUrl, keyName, null, cancel
 140                {
 10141                    return _result.Body;
 142                }
 10143            }
 144
 145            /// <summary>
 146            /// The update key operation changes specified attributes of a stored key and
 147            /// can be applied to any key type and key version stored in Azure Key Vault.
 148            /// </summary>
 149            /// <remarks>
 150            /// In order to perform this operation, the key must already exist in the Key
 151            /// Vault. Note: The cryptographic material of a key itself cannot be changed.
 152            /// This operation requires the keys/update permission.
 153            /// </remarks>
 154            /// <param name='operations'>
 155            /// The operations group for this extension method.
 156            /// </param>
 157            /// <param name='vaultBaseUrl'>
 158            /// The vault name, for example https://myvault.vault.azure.net.
 159            /// </param>
 160            /// <param name='keyName'>
 161            /// The name of key to update.
 162            /// </param>
 163            /// <param name='keyVersion'>
 164            /// The version of the key to update.
 165            /// </param>
 166            /// <param name='keyOps'>
 167            /// Json web key operations. For more information on possible key operations,
 168            /// see Microsoft.Azure.KeyVault.WebKey.JsonWebKeyOperation.
 169            /// </param>
 170            /// <param name='keyAttributes'>
 171            /// </param>
 172            /// <param name='tags'>
 173            /// Application specific metadata in the form of key-value pairs.
 174            /// </param>
 175            /// <param name='cancellationToken'>
 176            /// The cancellation token.
 177            /// </param>
 178            public static async Task<KeyBundle> UpdateKeyAsync(this IKeyVaultClient operations, string vaultBaseUrl, str
 179            {
 0180                using (var _result = await operations.UpdateKeyWithHttpMessagesAsync(vaultBaseUrl, keyName, keyVersion, 
 181                {
 0182                    return _result.Body;
 183                }
 0184            }
 185
 186            /// <summary>
 187            /// Gets the public part of a stored key.
 188            /// </summary>
 189            /// <remarks>
 190            /// The get key operation is applicable to all key types. If the requested key
 191            /// is symmetric, then no key material is released in the response. This
 192            /// operation requires the keys/get permission.
 193            /// </remarks>
 194            /// <param name='operations'>
 195            /// The operations group for this extension method.
 196            /// </param>
 197            /// <param name='vaultBaseUrl'>
 198            /// The vault name, for example https://myvault.vault.azure.net.
 199            /// </param>
 200            /// <param name='keyName'>
 201            /// The name of the key to get.
 202            /// </param>
 203            /// <param name='keyVersion'>
 204            /// Adding the version parameter retrieves a specific version of a key.
 205            /// </param>
 206            /// <param name='cancellationToken'>
 207            /// The cancellation token.
 208            /// </param>
 209            public static async Task<KeyBundle> GetKeyAsync(this IKeyVaultClient operations, string vaultBaseUrl, string
 210            {
 0211                using (var _result = await operations.GetKeyWithHttpMessagesAsync(vaultBaseUrl, keyName, keyVersion, nul
 212                {
 0213                    return _result.Body;
 214                }
 0215            }
 216
 217            /// <summary>
 218            /// Retrieves a list of individual key versions with the same key name.
 219            /// </summary>
 220            /// <remarks>
 221            /// The full key identifier, attributes, and tags are provided in the response.
 222            /// This operation requires the keys/list permission.
 223            /// </remarks>
 224            /// <param name='operations'>
 225            /// The operations group for this extension method.
 226            /// </param>
 227            /// <param name='vaultBaseUrl'>
 228            /// The vault name, for example https://myvault.vault.azure.net.
 229            /// </param>
 230            /// <param name='keyName'>
 231            /// The name of the key.
 232            /// </param>
 233            /// <param name='maxresults'>
 234            /// Maximum number of results to return in a page. If not specified the service
 235            /// will return up to 25 results.
 236            /// </param>
 237            /// <param name='cancellationToken'>
 238            /// The cancellation token.
 239            /// </param>
 240            public static async Task<IPage<KeyItem>> GetKeyVersionsAsync(this IKeyVaultClient operations, string vaultBa
 241            {
 1242                using (var _result = await operations.GetKeyVersionsWithHttpMessagesAsync(vaultBaseUrl, keyName, maxresu
 243                {
 1244                    return _result.Body;
 245                }
 1246            }
 247
 248            /// <summary>
 249            /// List keys in the specified vault.
 250            /// </summary>
 251            /// <remarks>
 252            /// Retrieves a list of the keys in the Key Vault as JSON Web Key structures
 253            /// that contain the public part of a stored key. The LIST operation is
 254            /// applicable to all key types, however only the base key identifier,
 255            /// attributes, and tags are provided in the response. Individual versions of a
 256            /// key are not listed in the response. This operation requires the keys/list
 257            /// permission.
 258            /// </remarks>
 259            /// <param name='operations'>
 260            /// The operations group for this extension method.
 261            /// </param>
 262            /// <param name='vaultBaseUrl'>
 263            /// The vault name, for example https://myvault.vault.azure.net.
 264            /// </param>
 265            /// <param name='maxresults'>
 266            /// Maximum number of results to return in a page. If not specified the service
 267            /// will return up to 25 results.
 268            /// </param>
 269            /// <param name='cancellationToken'>
 270            /// The cancellation token.
 271            /// </param>
 272            public static async Task<IPage<KeyItem>> GetKeysAsync(this IKeyVaultClient operations, string vaultBaseUrl, 
 273            {
 2274                using (var _result = await operations.GetKeysWithHttpMessagesAsync(vaultBaseUrl, maxresults, null, cance
 275                {
 2276                    return _result.Body;
 277                }
 2278            }
 279
 280            /// <summary>
 281            /// Requests that a backup of the specified key be downloaded to the client.
 282            /// </summary>
 283            /// <remarks>
 284            /// The Key Backup operation exports a key from Azure Key Vault in a protected
 285            /// form. Note that this operation does NOT return key material in a form that
 286            /// can be used outside the Azure Key Vault system, the returned key material
 287            /// is either protected to a Azure Key Vault HSM or to Azure Key Vault itself.
 288            /// The intent of this operation is to allow a client to GENERATE a key in one
 289            /// Azure Key Vault instance, BACKUP the key, and then RESTORE it into another
 290            /// Azure Key Vault instance. The BACKUP operation may be used to export, in
 291            /// protected form, any key type from Azure Key Vault. Individual versions of a
 292            /// key cannot be backed up. BACKUP / RESTORE can be performed within
 293            /// geographical boundaries only; meaning that a BACKUP from one geographical
 294            /// area cannot be restored to another geographical area. For example, a backup
 295            /// from the US geographical area cannot be restored in an EU geographical
 296            /// area. This operation requires the key/backup permission.
 297            /// </remarks>
 298            /// <param name='operations'>
 299            /// The operations group for this extension method.
 300            /// </param>
 301            /// <param name='vaultBaseUrl'>
 302            /// The vault name, for example https://myvault.vault.azure.net.
 303            /// </param>
 304            /// <param name='keyName'>
 305            /// The name of the key.
 306            /// </param>
 307            /// <param name='cancellationToken'>
 308            /// The cancellation token.
 309            /// </param>
 310            public static async Task<BackupKeyResult> BackupKeyAsync(this IKeyVaultClient operations, string vaultBaseUr
 311            {
 1312                using (var _result = await operations.BackupKeyWithHttpMessagesAsync(vaultBaseUrl, keyName, null, cancel
 313                {
 1314                    return _result.Body;
 315                }
 1316            }
 317
 318            /// <summary>
 319            /// Restores a backed up key to a vault.
 320            /// </summary>
 321            /// <remarks>
 322            /// Imports a previously backed up key into Azure Key Vault, restoring the key,
 323            /// its key identifier, attributes and access control policies. The RESTORE
 324            /// operation may be used to import a previously backed up key. Individual
 325            /// versions of a key cannot be restored. The key is restored in its entirety
 326            /// with the same key name as it had when it was backed up. If the key name is
 327            /// not available in the target Key Vault, the RESTORE operation will be
 328            /// rejected. While the key name is retained during restore, the final key
 329            /// identifier will change if the key is restored to a different vault. Restore
 330            /// will restore all versions and preserve version identifiers. The RESTORE
 331            /// operation is subject to security constraints: The target Key Vault must be
 332            /// owned by the same Microsoft Azure Subscription as the source Key Vault The
 333            /// user must have RESTORE permission in the target Key Vault. This operation
 334            /// requires the keys/restore permission.
 335            /// </remarks>
 336            /// <param name='operations'>
 337            /// The operations group for this extension method.
 338            /// </param>
 339            /// <param name='vaultBaseUrl'>
 340            /// The vault name, for example https://myvault.vault.azure.net.
 341            /// </param>
 342            /// <param name='keyBundleBackup'>
 343            /// The backup blob associated with a key bundle.
 344            /// </param>
 345            /// <param name='cancellationToken'>
 346            /// The cancellation token.
 347            /// </param>
 348            public static async Task<KeyBundle> RestoreKeyAsync(this IKeyVaultClient operations, string vaultBaseUrl, by
 349            {
 4350                using (var _result = await operations.RestoreKeyWithHttpMessagesAsync(vaultBaseUrl, keyBundleBackup, nul
 351                {
 1352                    return _result.Body;
 353                }
 1354            }
 355
 356            /// <summary>
 357            /// Encrypts an arbitrary sequence of bytes using an encryption key that is
 358            /// stored in a key vault.
 359            /// </summary>
 360            /// <remarks>
 361            /// The ENCRYPT operation encrypts an arbitrary sequence of bytes using an
 362            /// encryption key that is stored in Azure Key Vault. Note that the ENCRYPT
 363            /// operation only supports a single block of data, the size of which is
 364            /// dependent on the target key and the encryption algorithm to be used. The
 365            /// ENCRYPT operation is only strictly necessary for symmetric keys stored in
 366            /// Azure Key Vault since protection with an asymmetric key can be performed
 367            /// using public portion of the key. This operation is supported for asymmetric
 368            /// keys as a convenience for callers that have a key-reference but do not have
 369            /// access to the public key material. This operation requires the keys/encypt
 370            /// permission.
 371            /// </remarks>
 372            /// <param name='operations'>
 373            /// The operations group for this extension method.
 374            /// </param>
 375            /// <param name='vaultBaseUrl'>
 376            /// The vault name, for example https://myvault.vault.azure.net.
 377            /// </param>
 378            /// <param name='keyName'>
 379            /// The name of the key.
 380            /// </param>
 381            /// <param name='keyVersion'>
 382            /// The version of the key.
 383            /// </param>
 384            /// <param name='algorithm'>
 385            /// algorithm identifier. Possible values include: 'RSA-OAEP', 'RSA-OAEP-256',
 386            /// 'RSA1_5'
 387            /// </param>
 388            /// <param name='value'>
 389            /// </param>
 390            /// <param name='cancellationToken'>
 391            /// The cancellation token.
 392            /// </param>
 393            public static async Task<KeyOperationResult> EncryptAsync(this IKeyVaultClient operations, string vaultBaseU
 394            {
 0395                using (var _result = await operations.EncryptWithHttpMessagesAsync(vaultBaseUrl, keyName, keyVersion, al
 396                {
 0397                    return _result.Body;
 398                }
 0399            }
 400
 401            /// <summary>
 402            /// Decrypts a single block of encrypted data.
 403            /// </summary>
 404            /// <remarks>
 405            /// The DECRYPT operation decrypts a well-formed block of ciphertext using the
 406            /// target encryption key and specified algorithm. This operation is the
 407            /// reverse of the ENCRYPT operation; only a single block of data may be
 408            /// decrypted, the size of this block is dependent on the target key and the
 409            /// algorithm to be used. The DECRYPT operation applies to asymmetric and
 410            /// symmetric keys stored in Azure Key Vault since it uses the private portion
 411            /// of the key. This operation requires the keys/decrypt permission.
 412            /// </remarks>
 413            /// <param name='operations'>
 414            /// The operations group for this extension method.
 415            /// </param>
 416            /// <param name='vaultBaseUrl'>
 417            /// The vault name, for example https://myvault.vault.azure.net.
 418            /// </param>
 419            /// <param name='keyName'>
 420            /// The name of the key.
 421            /// </param>
 422            /// <param name='keyVersion'>
 423            /// The version of the key.
 424            /// </param>
 425            /// <param name='algorithm'>
 426            /// algorithm identifier. Possible values include: 'RSA-OAEP', 'RSA-OAEP-256',
 427            /// 'RSA1_5'
 428            /// </param>
 429            /// <param name='value'>
 430            /// </param>
 431            /// <param name='cancellationToken'>
 432            /// The cancellation token.
 433            /// </param>
 434            public static async Task<KeyOperationResult> DecryptAsync(this IKeyVaultClient operations, string vaultBaseU
 435            {
 0436                using (var _result = await operations.DecryptWithHttpMessagesAsync(vaultBaseUrl, keyName, keyVersion, al
 437                {
 0438                    return _result.Body;
 439                }
 0440            }
 441
 442            /// <summary>
 443            /// Creates a signature from a digest using the specified key.
 444            /// </summary>
 445            /// <remarks>
 446            /// The SIGN operation is applicable to asymmetric and symmetric keys stored in
 447            /// Azure Key Vault since this operation uses the private portion of the key.
 448            /// This operation requires the keys/sign permission.
 449            /// </remarks>
 450            /// <param name='operations'>
 451            /// The operations group for this extension method.
 452            /// </param>
 453            /// <param name='vaultBaseUrl'>
 454            /// The vault name, for example https://myvault.vault.azure.net.
 455            /// </param>
 456            /// <param name='keyName'>
 457            /// The name of the key.
 458            /// </param>
 459            /// <param name='keyVersion'>
 460            /// The version of the key.
 461            /// </param>
 462            /// <param name='algorithm'>
 463            /// The signing/verification algorithm identifier. For more information on
 464            /// possible algorithm types, see Microsoft.Azure.KeyVault.WebKey.JsonWebKeySignatureAlgorithm. Possible val
 465            /// include: 'PS256', 'PS384', 'PS512', 'RS256', 'RS384', 'RS512', 'RSNULL',
 466            /// 'ES256', 'ES384', 'ES512', 'ES256K'
 467            /// </param>
 468            /// <param name='value'>
 469            /// </param>
 470            /// <param name='cancellationToken'>
 471            /// The cancellation token.
 472            /// </param>
 473            public static async Task<KeyOperationResult> SignAsync(this IKeyVaultClient operations, string vaultBaseUrl,
 474            {
 0475                using (var _result = await operations.SignWithHttpMessagesAsync(vaultBaseUrl, keyName, keyVersion, algor
 476                {
 0477                    return _result.Body;
 478                }
 0479            }
 480
 481            /// <summary>
 482            /// Verifies a signature using a specified key.
 483            /// </summary>
 484            /// <remarks>
 485            /// The VERIFY operation is applicable to symmetric keys stored in Azure Key
 486            /// Vault. VERIFY is not strictly necessary for asymmetric keys stored in Azure
 487            /// Key Vault since signature verification can be performed using the public
 488            /// portion of the key but this operation is supported as a convenience for
 489            /// callers that only have a key-reference and not the public portion of the
 490            /// key. This operation requires the keys/verify permission.
 491            /// </remarks>
 492            /// <param name='operations'>
 493            /// The operations group for this extension method.
 494            /// </param>
 495            /// <param name='vaultBaseUrl'>
 496            /// The vault name, for example https://myvault.vault.azure.net.
 497            /// </param>
 498            /// <param name='keyName'>
 499            /// The name of the key.
 500            /// </param>
 501            /// <param name='keyVersion'>
 502            /// The version of the key.
 503            /// </param>
 504            /// <param name='algorithm'>
 505            /// The signing/verification algorithm. For more information on possible
 506            /// algorithm types, see Microsoft.Azure.KeyVault.WebKey.JsonWebKeySignatureAlgorithm. Possible values inclu
 507            /// 'PS256', 'PS384', 'PS512', 'RS256', 'RS384', 'RS512', 'RSNULL', 'ES256',
 508            /// 'ES384', 'ES512', 'ES256K'
 509            /// </param>
 510            /// <param name='digest'>
 511            /// The digest used for signing.
 512            /// </param>
 513            /// <param name='signature'>
 514            /// The signature to be verified.
 515            /// </param>
 516            /// <param name='cancellationToken'>
 517            /// The cancellation token.
 518            /// </param>
 519            public static async Task<KeyVerifyResult> VerifyAsync(this IKeyVaultClient operations, string vaultBaseUrl, 
 520            {
 0521                using (var _result = await operations.VerifyWithHttpMessagesAsync(vaultBaseUrl, keyName, keyVersion, alg
 522                {
 0523                    return _result.Body;
 524                }
 0525            }
 526
 527            /// <summary>
 528            /// Wraps a symmetric key using a specified key.
 529            /// </summary>
 530            /// <remarks>
 531            /// The WRAP operation supports encryption of a symmetric key using a key
 532            /// encryption key that has previously been stored in an Azure Key Vault. The
 533            /// WRAP operation is only strictly necessary for symmetric keys stored in
 534            /// Azure Key Vault since protection with an asymmetric key can be performed
 535            /// using the public portion of the key. This operation is supported for
 536            /// asymmetric keys as a convenience for callers that have a key-reference but
 537            /// do not have access to the public key material. This operation requires the
 538            /// keys/wrapKey permission.
 539            /// </remarks>
 540            /// <param name='operations'>
 541            /// The operations group for this extension method.
 542            /// </param>
 543            /// <param name='vaultBaseUrl'>
 544            /// The vault name, for example https://myvault.vault.azure.net.
 545            /// </param>
 546            /// <param name='keyName'>
 547            /// The name of the key.
 548            /// </param>
 549            /// <param name='keyVersion'>
 550            /// The version of the key.
 551            /// </param>
 552            /// <param name='algorithm'>
 553            /// algorithm identifier. Possible values include: 'RSA-OAEP', 'RSA-OAEP-256',
 554            /// 'RSA1_5'
 555            /// </param>
 556            /// <param name='value'>
 557            /// </param>
 558            /// <param name='cancellationToken'>
 559            /// The cancellation token.
 560            /// </param>
 561            public static async Task<KeyOperationResult> WrapKeyAsync(this IKeyVaultClient operations, string vaultBaseU
 562            {
 0563                using (var _result = await operations.WrapKeyWithHttpMessagesAsync(vaultBaseUrl, keyName, keyVersion, al
 564                {
 0565                    return _result.Body;
 566                }
 0567            }
 568
 569            /// <summary>
 570            /// Unwraps a symmetric key using the specified key that was initially used for
 571            /// wrapping that key.
 572            /// </summary>
 573            /// <remarks>
 574            /// The UNWRAP operation supports decryption of a symmetric key using the
 575            /// target key encryption key. This operation is the reverse of the WRAP
 576            /// operation. The UNWRAP operation applies to asymmetric and symmetric keys
 577            /// stored in Azure Key Vault since it uses the private portion of the key.
 578            /// This operation requires the keys/unwrapKey permission.
 579            /// </remarks>
 580            /// <param name='operations'>
 581            /// The operations group for this extension method.
 582            /// </param>
 583            /// <param name='vaultBaseUrl'>
 584            /// The vault name, for example https://myvault.vault.azure.net.
 585            /// </param>
 586            /// <param name='keyName'>
 587            /// The name of the key.
 588            /// </param>
 589            /// <param name='keyVersion'>
 590            /// The version of the key.
 591            /// </param>
 592            /// <param name='algorithm'>
 593            /// algorithm identifier. Possible values include: 'RSA-OAEP', 'RSA-OAEP-256',
 594            /// 'RSA1_5'
 595            /// </param>
 596            /// <param name='value'>
 597            /// </param>
 598            /// <param name='cancellationToken'>
 599            /// The cancellation token.
 600            /// </param>
 601            public static async Task<KeyOperationResult> UnwrapKeyAsync(this IKeyVaultClient operations, string vaultBas
 602            {
 0603                using (var _result = await operations.UnwrapKeyWithHttpMessagesAsync(vaultBaseUrl, keyName, keyVersion, 
 604                {
 0605                    return _result.Body;
 606                }
 0607            }
 608
 609            /// <summary>
 610            /// Lists the deleted keys in the specified vault.
 611            /// </summary>
 612            /// <remarks>
 613            /// Retrieves a list of the keys in the Key Vault as JSON Web Key structures
 614            /// that contain the public part of a deleted key. This operation includes
 615            /// deletion-specific information. The Get Deleted Keys operation is applicable
 616            /// for vaults enabled for soft-delete. While the operation can be invoked on
 617            /// any vault, it will return an error if invoked on a non soft-delete enabled
 618            /// vault. This operation requires the keys/list permission.
 619            /// </remarks>
 620            /// <param name='operations'>
 621            /// The operations group for this extension method.
 622            /// </param>
 623            /// <param name='vaultBaseUrl'>
 624            /// The vault name, for example https://myvault.vault.azure.net.
 625            /// </param>
 626            /// <param name='maxresults'>
 627            /// Maximum number of results to return in a page. If not specified the service
 628            /// will return up to 25 results.
 629            /// </param>
 630            /// <param name='cancellationToken'>
 631            /// The cancellation token.
 632            /// </param>
 633            public static async Task<IPage<DeletedKeyItem>> GetDeletedKeysAsync(this IKeyVaultClient operations, string 
 634            {
 1635                using (var _result = await operations.GetDeletedKeysWithHttpMessagesAsync(vaultBaseUrl, maxresults, null
 636                {
 1637                    return _result.Body;
 638                }
 1639            }
 640
 641            /// <summary>
 642            /// Gets the public part of a deleted key.
 643            /// </summary>
 644            /// <remarks>
 645            /// The Get Deleted Key operation is applicable for soft-delete enabled vaults.
 646            /// While the operation can be invoked on any vault, it will return an error if
 647            /// invoked on a non soft-delete enabled vault. This operation requires the
 648            /// keys/get permission.
 649            /// </remarks>
 650            /// <param name='operations'>
 651            /// The operations group for this extension method.
 652            /// </param>
 653            /// <param name='vaultBaseUrl'>
 654            /// The vault name, for example https://myvault.vault.azure.net.
 655            /// </param>
 656            /// <param name='keyName'>
 657            /// The name of the key.
 658            /// </param>
 659            /// <param name='cancellationToken'>
 660            /// The cancellation token.
 661            /// </param>
 662            public static async Task<DeletedKeyBundle> GetDeletedKeyAsync(this IKeyVaultClient operations, string vaultB
 663            {
 42664                using (var _result = await operations.GetDeletedKeyWithHttpMessagesAsync(vaultBaseUrl, keyName, null, ca
 665                {
 12666                    return _result.Body;
 667                }
 12668            }
 669
 670            /// <summary>
 671            /// Permanently deletes the specified key.
 672            /// </summary>
 673            /// <remarks>
 674            /// The Purge Deleted Key operation is applicable for soft-delete enabled
 675            /// vaults. While the operation can be invoked on any vault, it will return an
 676            /// error if invoked on a non soft-delete enabled vault. This operation
 677            /// requires the keys/purge permission.
 678            /// </remarks>
 679            /// <param name='operations'>
 680            /// The operations group for this extension method.
 681            /// </param>
 682            /// <param name='vaultBaseUrl'>
 683            /// The vault name, for example https://myvault.vault.azure.net.
 684            /// </param>
 685            /// <param name='keyName'>
 686            /// The name of the key
 687            /// </param>
 688            /// <param name='cancellationToken'>
 689            /// The cancellation token.
 690            /// </param>
 691            public static async Task PurgeDeletedKeyAsync(this IKeyVaultClient operations, string vaultBaseUrl, string k
 692            {
 7693                (await operations.PurgeDeletedKeyWithHttpMessagesAsync(vaultBaseUrl, keyName, null, cancellationToken).C
 7694            }
 695
 696            /// <summary>
 697            /// Recovers the deleted key to its latest version.
 698            /// </summary>
 699            /// <remarks>
 700            /// The Recover Deleted Key operation is applicable for deleted keys in
 701            /// soft-delete enabled vaults. It recovers the deleted key back to its latest
 702            /// version under /keys. An attempt to recover an non-deleted key will return
 703            /// an error. Consider this the inverse of the delete operation on soft-delete
 704            /// enabled vaults. This operation requires the keys/recover permission.
 705            /// </remarks>
 706            /// <param name='operations'>
 707            /// The operations group for this extension method.
 708            /// </param>
 709            /// <param name='vaultBaseUrl'>
 710            /// The vault name, for example https://myvault.vault.azure.net.
 711            /// </param>
 712            /// <param name='keyName'>
 713            /// The name of the deleted key.
 714            /// </param>
 715            /// <param name='cancellationToken'>
 716            /// The cancellation token.
 717            /// </param>
 718            public static async Task<KeyBundle> RecoverDeletedKeyAsync(this IKeyVaultClient operations, string vaultBase
 719            {
 0720                using (var _result = await operations.RecoverDeletedKeyWithHttpMessagesAsync(vaultBaseUrl, keyName, null
 721                {
 0722                    return _result.Body;
 723                }
 0724            }
 725
 726            /// <summary>
 727            /// Sets a secret in a specified key vault.
 728            /// </summary>
 729            /// <remarks>
 730            /// The SET operation adds a secret to the Azure Key Vault. If the named secret
 731            /// already exists, Azure Key Vault creates a new version of that secret. This
 732            /// operation requires the secrets/set permission.
 733            /// </remarks>
 734            /// <param name='operations'>
 735            /// The operations group for this extension method.
 736            /// </param>
 737            /// <param name='vaultBaseUrl'>
 738            /// The vault name, for example https://myvault.vault.azure.net.
 739            /// </param>
 740            /// <param name='secretName'>
 741            /// The name of the secret.
 742            /// </param>
 743            /// <param name='value'>
 744            /// The value of the secret.
 745            /// </param>
 746            /// <param name='tags'>
 747            /// Application specific metadata in the form of key-value pairs.
 748            /// </param>
 749            /// <param name='contentType'>
 750            /// Type of the secret value such as a password.
 751            /// </param>
 752            /// <param name='secretAttributes'>
 753            /// The secret management attributes.
 754            /// </param>
 755            /// <param name='cancellationToken'>
 756            /// The cancellation token.
 757            /// </param>
 758            public static async Task<SecretBundle> SetSecretAsync(this IKeyVaultClient operations, string vaultBaseUrl, 
 759            {
 15760                using (var _result = await operations.SetSecretWithHttpMessagesAsync(vaultBaseUrl, secretName, value, ta
 761                {
 15762                    return _result.Body;
 763                }
 15764            }
 765
 766            /// <summary>
 767            /// Deletes a secret from a specified key vault.
 768            /// </summary>
 769            /// <remarks>
 770            /// The DELETE operation applies to any secret stored in Azure Key Vault.
 771            /// DELETE cannot be applied to an individual version of a secret. This
 772            /// operation requires the secrets/delete permission.
 773            /// </remarks>
 774            /// <param name='operations'>
 775            /// The operations group for this extension method.
 776            /// </param>
 777            /// <param name='vaultBaseUrl'>
 778            /// The vault name, for example https://myvault.vault.azure.net.
 779            /// </param>
 780            /// <param name='secretName'>
 781            /// The name of the secret.
 782            /// </param>
 783            /// <param name='cancellationToken'>
 784            /// The cancellation token.
 785            /// </param>
 786            public static async Task<DeletedSecretBundle> DeleteSecretAsync(this IKeyVaultClient operations, string vaul
 787            {
 8788                using (var _result = await operations.DeleteSecretWithHttpMessagesAsync(vaultBaseUrl, secretName, null, 
 789                {
 8790                    return _result.Body;
 791                }
 8792            }
 793
 794            /// <summary>
 795            /// Updates the attributes associated with a specified secret in a given key
 796            /// vault.
 797            /// </summary>
 798            /// <remarks>
 799            /// The UPDATE operation changes specified attributes of an existing stored
 800            /// secret. Attributes that are not specified in the request are left
 801            /// unchanged. The value of a secret itself cannot be changed. This operation
 802            /// requires the secrets/set permission.
 803            /// </remarks>
 804            /// <param name='operations'>
 805            /// The operations group for this extension method.
 806            /// </param>
 807            /// <param name='vaultBaseUrl'>
 808            /// The vault name, for example https://myvault.vault.azure.net.
 809            /// </param>
 810            /// <param name='secretName'>
 811            /// The name of the secret.
 812            /// </param>
 813            /// <param name='secretVersion'>
 814            /// The version of the secret.
 815            /// </param>
 816            /// <param name='contentType'>
 817            /// Type of the secret value such as a password.
 818            /// </param>
 819            /// <param name='secretAttributes'>
 820            /// The secret management attributes.
 821            /// </param>
 822            /// <param name='tags'>
 823            /// Application specific metadata in the form of key-value pairs.
 824            /// </param>
 825            /// <param name='cancellationToken'>
 826            /// The cancellation token.
 827            /// </param>
 828            public static async Task<SecretBundle> UpdateSecretAsync(this IKeyVaultClient operations, string vaultBaseUr
 829            {
 0830                using (var _result = await operations.UpdateSecretWithHttpMessagesAsync(vaultBaseUrl, secretName, secret
 831                {
 0832                    return _result.Body;
 833                }
 0834            }
 835
 836            /// <summary>
 837            /// Get a specified secret from a given key vault.
 838            /// </summary>
 839            /// <remarks>
 840            /// The GET operation is applicable to any secret stored in Azure Key Vault.
 841            /// This operation requires the secrets/get permission.
 842            /// </remarks>
 843            /// <param name='operations'>
 844            /// The operations group for this extension method.
 845            /// </param>
 846            /// <param name='vaultBaseUrl'>
 847            /// The vault name, for example https://myvault.vault.azure.net.
 848            /// </param>
 849            /// <param name='secretName'>
 850            /// The name of the secret.
 851            /// </param>
 852            /// <param name='secretVersion'>
 853            /// The version of the secret.
 854            /// </param>
 855            /// <param name='cancellationToken'>
 856            /// The cancellation token.
 857            /// </param>
 858            public static async Task<SecretBundle> GetSecretAsync(this IKeyVaultClient operations, string vaultBaseUrl, 
 859            {
 2860                using (var _result = await operations.GetSecretWithHttpMessagesAsync(vaultBaseUrl, secretName, secretVer
 861                {
 2862                    return _result.Body;
 863                }
 2864            }
 865
 866            /// <summary>
 867            /// List secrets in a specified key vault.
 868            /// </summary>
 869            /// <remarks>
 870            /// The Get Secrets operation is applicable to the entire vault. However, only
 871            /// the base secret identifier and its attributes are provided in the response.
 872            /// Individual secret versions are not listed in the response. This operation
 873            /// requires the secrets/list permission.
 874            /// </remarks>
 875            /// <param name='operations'>
 876            /// The operations group for this extension method.
 877            /// </param>
 878            /// <param name='vaultBaseUrl'>
 879            /// The vault name, for example https://myvault.vault.azure.net.
 880            /// </param>
 881            /// <param name='maxresults'>
 882            /// Maximum number of results to return in a page. If not specified, the
 883            /// service will return up to 25 results.
 884            /// </param>
 885            /// <param name='cancellationToken'>
 886            /// The cancellation token.
 887            /// </param>
 888            public static async Task<IPage<SecretItem>> GetSecretsAsync(this IKeyVaultClient operations, string vaultBas
 889            {
 1890                using (var _result = await operations.GetSecretsWithHttpMessagesAsync(vaultBaseUrl, maxresults, null, ca
 891                {
 1892                    return _result.Body;
 893                }
 1894            }
 895
 896            /// <summary>
 897            /// List all versions of the specified secret.
 898            /// </summary>
 899            /// <remarks>
 900            /// The full secret identifier and attributes are provided in the response. No
 901            /// values are returned for the secrets. This operations requires the
 902            /// secrets/list permission.
 903            /// </remarks>
 904            /// <param name='operations'>
 905            /// The operations group for this extension method.
 906            /// </param>
 907            /// <param name='vaultBaseUrl'>
 908            /// The vault name, for example https://myvault.vault.azure.net.
 909            /// </param>
 910            /// <param name='secretName'>
 911            /// The name of the secret.
 912            /// </param>
 913            /// <param name='maxresults'>
 914            /// Maximum number of results to return in a page. If not specified, the
 915            /// service will return up to 25 results.
 916            /// </param>
 917            /// <param name='cancellationToken'>
 918            /// The cancellation token.
 919            /// </param>
 920            public static async Task<IPage<SecretItem>> GetSecretVersionsAsync(this IKeyVaultClient operations, string v
 921            {
 1922                using (var _result = await operations.GetSecretVersionsWithHttpMessagesAsync(vaultBaseUrl, secretName, m
 923                {
 1924                    return _result.Body;
 925                }
 1926            }
 927
 928            /// <summary>
 929            /// Lists deleted secrets for the specified vault.
 930            /// </summary>
 931            /// <remarks>
 932            /// The Get Deleted Secrets operation returns the secrets that have been
 933            /// deleted for a vault enabled for soft-delete. This operation requires the
 934            /// secrets/list permission.
 935            /// </remarks>
 936            /// <param name='operations'>
 937            /// The operations group for this extension method.
 938            /// </param>
 939            /// <param name='vaultBaseUrl'>
 940            /// The vault name, for example https://myvault.vault.azure.net.
 941            /// </param>
 942            /// <param name='maxresults'>
 943            /// Maximum number of results to return in a page. If not specified the service
 944            /// will return up to 25 results.
 945            /// </param>
 946            /// <param name='cancellationToken'>
 947            /// The cancellation token.
 948            /// </param>
 949            public static async Task<IPage<DeletedSecretItem>> GetDeletedSecretsAsync(this IKeyVaultClient operations, s
 950            {
 1951                using (var _result = await operations.GetDeletedSecretsWithHttpMessagesAsync(vaultBaseUrl, maxresults, n
 952                {
 1953                    return _result.Body;
 954                }
 1955            }
 956
 957            /// <summary>
 958            /// Gets the specified deleted secret.
 959            /// </summary>
 960            /// <remarks>
 961            /// The Get Deleted Secret operation returns the specified deleted secret along
 962            /// with its attributes. This operation requires the secrets/get permission.
 963            /// </remarks>
 964            /// <param name='operations'>
 965            /// The operations group for this extension method.
 966            /// </param>
 967            /// <param name='vaultBaseUrl'>
 968            /// The vault name, for example https://myvault.vault.azure.net.
 969            /// </param>
 970            /// <param name='secretName'>
 971            /// The name of the secret.
 972            /// </param>
 973            /// <param name='cancellationToken'>
 974            /// The cancellation token.
 975            /// </param>
 976            public static async Task<DeletedSecretBundle> GetDeletedSecretAsync(this IKeyVaultClient operations, string 
 977            {
 33978                using (var _result = await operations.GetDeletedSecretWithHttpMessagesAsync(vaultBaseUrl, secretName, nu
 979                {
 10980                    return _result.Body;
 981                }
 10982            }
 983
 984            /// <summary>
 985            /// Permanently deletes the specified secret.
 986            /// </summary>
 987            /// <remarks>
 988            /// The purge deleted secret operation removes the secret permanently, without
 989            /// the possibility of recovery. This operation can only be enabled on a
 990            /// soft-delete enabled vault. This operation requires the secrets/purge
 991            /// permission.
 992            /// </remarks>
 993            /// <param name='operations'>
 994            /// The operations group for this extension method.
 995            /// </param>
 996            /// <param name='vaultBaseUrl'>
 997            /// The vault name, for example https://myvault.vault.azure.net.
 998            /// </param>
 999            /// <param name='secretName'>
 1000            /// The name of the secret.
 1001            /// </param>
 1002            /// <param name='cancellationToken'>
 1003            /// The cancellation token.
 1004            /// </param>
 1005            public static async Task PurgeDeletedSecretAsync(this IKeyVaultClient operations, string vaultBaseUrl, strin
 1006            {
 51007                (await operations.PurgeDeletedSecretWithHttpMessagesAsync(vaultBaseUrl, secretName, null, cancellationTo
 51008            }
 1009
 1010            /// <summary>
 1011            /// Recovers the deleted secret to the latest version.
 1012            /// </summary>
 1013            /// <remarks>
 1014            /// Recovers the deleted secret in the specified vault. This operation can only
 1015            /// be performed on a soft-delete enabled vault. This operation requires the
 1016            /// secrets/recover permission.
 1017            /// </remarks>
 1018            /// <param name='operations'>
 1019            /// The operations group for this extension method.
 1020            /// </param>
 1021            /// <param name='vaultBaseUrl'>
 1022            /// The vault name, for example https://myvault.vault.azure.net.
 1023            /// </param>
 1024            /// <param name='secretName'>
 1025            /// The name of the deleted secret.
 1026            /// </param>
 1027            /// <param name='cancellationToken'>
 1028            /// The cancellation token.
 1029            /// </param>
 1030            public static async Task<SecretBundle> RecoverDeletedSecretAsync(this IKeyVaultClient operations, string vau
 1031            {
 01032                using (var _result = await operations.RecoverDeletedSecretWithHttpMessagesAsync(vaultBaseUrl, secretName
 1033                {
 01034                    return _result.Body;
 1035                }
 01036            }
 1037
 1038            /// <summary>
 1039            /// Backs up the specified secret.
 1040            /// </summary>
 1041            /// <remarks>
 1042            /// Requests that a backup of the specified secret be downloaded to the client.
 1043            /// All versions of the secret will be downloaded. This operation requires the
 1044            /// secrets/backup permission.
 1045            /// </remarks>
 1046            /// <param name='operations'>
 1047            /// The operations group for this extension method.
 1048            /// </param>
 1049            /// <param name='vaultBaseUrl'>
 1050            /// The vault name, for example https://myvault.vault.azure.net.
 1051            /// </param>
 1052            /// <param name='secretName'>
 1053            /// The name of the secret.
 1054            /// </param>
 1055            /// <param name='cancellationToken'>
 1056            /// The cancellation token.
 1057            /// </param>
 1058            public static async Task<BackupSecretResult> BackupSecretAsync(this IKeyVaultClient operations, string vault
 1059            {
 11060                using (var _result = await operations.BackupSecretWithHttpMessagesAsync(vaultBaseUrl, secretName, null, 
 1061                {
 11062                    return _result.Body;
 1063                }
 11064            }
 1065
 1066            /// <summary>
 1067            /// Restores a backed up secret to a vault.
 1068            /// </summary>
 1069            /// <remarks>
 1070            /// Restores a backed up secret, and all its versions, to a vault. This
 1071            /// operation requires the secrets/restore permission.
 1072            /// </remarks>
 1073            /// <param name='operations'>
 1074            /// The operations group for this extension method.
 1075            /// </param>
 1076            /// <param name='vaultBaseUrl'>
 1077            /// The vault name, for example https://myvault.vault.azure.net.
 1078            /// </param>
 1079            /// <param name='secretBundleBackup'>
 1080            /// The backup blob associated with a secret bundle.
 1081            /// </param>
 1082            /// <param name='cancellationToken'>
 1083            /// The cancellation token.
 1084            /// </param>
 1085            public static async Task<SecretBundle> RestoreSecretAsync(this IKeyVaultClient operations, string vaultBaseU
 1086            {
 41087                using (var _result = await operations.RestoreSecretWithHttpMessagesAsync(vaultBaseUrl, secretBundleBacku
 1088                {
 11089                    return _result.Body;
 1090                }
 11091            }
 1092
 1093            /// <summary>
 1094            /// List certificates in a specified key vault
 1095            /// </summary>
 1096            /// <remarks>
 1097            /// The GetCertificates operation returns the set of certificates resources in
 1098            /// the specified key vault. This operation requires the certificates/list
 1099            /// permission.
 1100            /// </remarks>
 1101            /// <param name='operations'>
 1102            /// The operations group for this extension method.
 1103            /// </param>
 1104            /// <param name='vaultBaseUrl'>
 1105            /// The vault name, for example https://myvault.vault.azure.net.
 1106            /// </param>
 1107            /// <param name='maxresults'>
 1108            /// Maximum number of results to return in a page. If not specified the service
 1109            /// will return up to 25 results.
 1110            /// </param>
 1111            /// <param name='includePending'>
 1112            /// Specifies whether to include certificates which are not completely
 1113            /// provisioned.
 1114            /// </param>
 1115            /// <param name='cancellationToken'>
 1116            /// The cancellation token.
 1117            /// </param>
 1118            public static async Task<IPage<CertificateItem>> GetCertificatesAsync(this IKeyVaultClient operations, strin
 1119            {
 11120                using (var _result = await operations.GetCertificatesWithHttpMessagesAsync(vaultBaseUrl, maxresults, inc
 1121                {
 11122                    return _result.Body;
 1123                }
 11124            }
 1125
 1126            /// <summary>
 1127            /// Deletes a certificate from a specified key vault.
 1128            /// </summary>
 1129            /// <remarks>
 1130            /// Deletes all versions of a certificate object along with its associated
 1131            /// policy. Delete certificate cannot be used to remove individual versions of
 1132            /// a certificate object. This operation requires the certificates/delete
 1133            /// permission.
 1134            /// </remarks>
 1135            /// <param name='operations'>
 1136            /// The operations group for this extension method.
 1137            /// </param>
 1138            /// <param name='vaultBaseUrl'>
 1139            /// The vault name, for example https://myvault.vault.azure.net.
 1140            /// </param>
 1141            /// <param name='certificateName'>
 1142            /// The name of the certificate.
 1143            /// </param>
 1144            /// <param name='cancellationToken'>
 1145            /// The cancellation token.
 1146            /// </param>
 1147            public static async Task<DeletedCertificateBundle> DeleteCertificateAsync(this IKeyVaultClient operations, s
 1148            {
 161149                using (var _result = await operations.DeleteCertificateWithHttpMessagesAsync(vaultBaseUrl, certificateNa
 1150                {
 161151                    return _result.Body;
 1152                }
 161153            }
 1154
 1155            /// <summary>
 1156            /// Sets the certificate contacts for the specified key vault.
 1157            /// </summary>
 1158            /// <remarks>
 1159            /// Sets the certificate contacts for the specified key vault. This operation
 1160            /// requires the certificates/managecontacts permission.
 1161            /// </remarks>
 1162            /// <param name='operations'>
 1163            /// The operations group for this extension method.
 1164            /// </param>
 1165            /// <param name='vaultBaseUrl'>
 1166            /// The vault name, for example https://myvault.vault.azure.net.
 1167            /// </param>
 1168            /// <param name='contacts'>
 1169            /// The contacts for the key vault certificate.
 1170            /// </param>
 1171            /// <param name='cancellationToken'>
 1172            /// The cancellation token.
 1173            /// </param>
 1174            public static async Task<Contacts> SetCertificateContactsAsync(this IKeyVaultClient operations, string vault
 1175            {
 21176                using (var _result = await operations.SetCertificateContactsWithHttpMessagesAsync(vaultBaseUrl, contacts
 1177                {
 21178                    return _result.Body;
 1179                }
 21180            }
 1181
 1182            /// <summary>
 1183            /// Lists the certificate contacts for a specified key vault.
 1184            /// </summary>
 1185            /// <remarks>
 1186            /// The GetCertificateContacts operation returns the set of certificate contact
 1187            /// resources in the specified key vault. This operation requires the
 1188            /// certificates/managecontacts permission.
 1189            /// </remarks>
 1190            /// <param name='operations'>
 1191            /// The operations group for this extension method.
 1192            /// </param>
 1193            /// <param name='vaultBaseUrl'>
 1194            /// The vault name, for example https://myvault.vault.azure.net.
 1195            /// </param>
 1196            /// <param name='cancellationToken'>
 1197            /// The cancellation token.
 1198            /// </param>
 1199            public static async Task<Contacts> GetCertificateContactsAsync(this IKeyVaultClient operations, string vault
 1200            {
 21201                using (var _result = await operations.GetCertificateContactsWithHttpMessagesAsync(vaultBaseUrl, null, ca
 1202                {
 21203                    return _result.Body;
 1204                }
 21205            }
 1206
 1207            /// <summary>
 1208            /// Deletes the certificate contacts for a specified key vault.
 1209            /// </summary>
 1210            /// <remarks>
 1211            /// Deletes the certificate contacts for a specified key vault certificate.
 1212            /// This operation requires the certificates/managecontacts permission.
 1213            /// </remarks>
 1214            /// <param name='operations'>
 1215            /// The operations group for this extension method.
 1216            /// </param>
 1217            /// <param name='vaultBaseUrl'>
 1218            /// The vault name, for example https://myvault.vault.azure.net.
 1219            /// </param>
 1220            /// <param name='cancellationToken'>
 1221            /// The cancellation token.
 1222            /// </param>
 1223            public static async Task<Contacts> DeleteCertificateContactsAsync(this IKeyVaultClient operations, string va
 1224            {
 11225                using (var _result = await operations.DeleteCertificateContactsWithHttpMessagesAsync(vaultBaseUrl, null,
 1226                {
 11227                    return _result.Body;
 1228                }
 11229            }
 1230
 1231            /// <summary>
 1232            /// List certificate issuers for a specified key vault.
 1233            /// </summary>
 1234            /// <remarks>
 1235            /// The GetCertificateIssuers operation returns the set of certificate issuer
 1236            /// resources in the specified key vault. This operation requires the
 1237            /// certificates/manageissuers/getissuers permission.
 1238            /// </remarks>
 1239            /// <param name='operations'>
 1240            /// The operations group for this extension method.
 1241            /// </param>
 1242            /// <param name='vaultBaseUrl'>
 1243            /// The vault name, for example https://myvault.vault.azure.net.
 1244            /// </param>
 1245            /// <param name='maxresults'>
 1246            /// Maximum number of results to return in a page. If not specified the service
 1247            /// will return up to 25 results.
 1248            /// </param>
 1249            /// <param name='cancellationToken'>
 1250            /// The cancellation token.
 1251            /// </param>
 1252            public static async Task<IPage<CertificateIssuerItem>> GetCertificateIssuersAsync(this IKeyVaultClient opera
 1253            {
 21254                using (var _result = await operations.GetCertificateIssuersWithHttpMessagesAsync(vaultBaseUrl, maxresult
 1255                {
 21256                    return _result.Body;
 1257                }
 21258            }
 1259
 1260            /// <summary>
 1261            /// Sets the specified certificate issuer.
 1262            /// </summary>
 1263            /// <remarks>
 1264            /// The SetCertificateIssuer operation adds or updates the specified
 1265            /// certificate issuer. This operation requires the certificates/setissuers
 1266            /// permission.
 1267            /// </remarks>
 1268            /// <param name='operations'>
 1269            /// The operations group for this extension method.
 1270            /// </param>
 1271            /// <param name='vaultBaseUrl'>
 1272            /// The vault name, for example https://myvault.vault.azure.net.
 1273            /// </param>
 1274            /// <param name='issuerName'>
 1275            /// The name of the issuer.
 1276            /// </param>
 1277            /// <param name='provider'>
 1278            /// The issuer provider.
 1279            /// </param>
 1280            /// <param name='credentials'>
 1281            /// The credentials to be used for the issuer.
 1282            /// </param>
 1283            /// <param name='organizationDetails'>
 1284            /// Details of the organization as provided to the issuer.
 1285            /// </param>
 1286            /// <param name='attributes'>
 1287            /// Attributes of the issuer object.
 1288            /// </param>
 1289            /// <param name='cancellationToken'>
 1290            /// The cancellation token.
 1291            /// </param>
 1292            public static async Task<IssuerBundle> SetCertificateIssuerAsync(this IKeyVaultClient operations, string vau
 1293            {
 41294                using (var _result = await operations.SetCertificateIssuerWithHttpMessagesAsync(vaultBaseUrl, issuerName
 1295                {
 41296                    return _result.Body;
 1297                }
 41298            }
 1299
 1300            /// <summary>
 1301            /// Updates the specified certificate issuer.
 1302            /// </summary>
 1303            /// <remarks>
 1304            /// The UpdateCertificateIssuer operation performs an update on the specified
 1305            /// certificate issuer entity. This operation requires the
 1306            /// certificates/setissuers permission.
 1307            /// </remarks>
 1308            /// <param name='operations'>
 1309            /// The operations group for this extension method.
 1310            /// </param>
 1311            /// <param name='vaultBaseUrl'>
 1312            /// The vault name, for example https://myvault.vault.azure.net.
 1313            /// </param>
 1314            /// <param name='issuerName'>
 1315            /// The name of the issuer.
 1316            /// </param>
 1317            /// <param name='provider'>
 1318            /// The issuer provider.
 1319            /// </param>
 1320            /// <param name='credentials'>
 1321            /// The credentials to be used for the issuer.
 1322            /// </param>
 1323            /// <param name='organizationDetails'>
 1324            /// Details of the organization as provided to the issuer.
 1325            /// </param>
 1326            /// <param name='attributes'>
 1327            /// Attributes of the issuer object.
 1328            /// </param>
 1329            /// <param name='cancellationToken'>
 1330            /// The cancellation token.
 1331            /// </param>
 1332            public static async Task<IssuerBundle> UpdateCertificateIssuerAsync(this IKeyVaultClient operations, string 
 1333            {
 01334                using (var _result = await operations.UpdateCertificateIssuerWithHttpMessagesAsync(vaultBaseUrl, issuerN
 1335                {
 01336                    return _result.Body;
 1337                }
 01338            }
 1339
 1340            /// <summary>
 1341            /// Lists the specified certificate issuer.
 1342            /// </summary>
 1343            /// <remarks>
 1344            /// The GetCertificateIssuer operation returns the specified certificate issuer
 1345            /// resources in the specified key vault. This operation requires the
 1346            /// certificates/manageissuers/getissuers permission.
 1347            /// </remarks>
 1348            /// <param name='operations'>
 1349            /// The operations group for this extension method.
 1350            /// </param>
 1351            /// <param name='vaultBaseUrl'>
 1352            /// The vault name, for example https://myvault.vault.azure.net.
 1353            /// </param>
 1354            /// <param name='issuerName'>
 1355            /// The name of the issuer.
 1356            /// </param>
 1357            /// <param name='cancellationToken'>
 1358            /// The cancellation token.
 1359            /// </param>
 1360            public static async Task<IssuerBundle> GetCertificateIssuerAsync(this IKeyVaultClient operations, string vau
 1361            {
 11362                using (var _result = await operations.GetCertificateIssuerWithHttpMessagesAsync(vaultBaseUrl, issuerName
 1363                {
 11364                    return _result.Body;
 1365                }
 11366            }
 1367
 1368            /// <summary>
 1369            /// Deletes the specified certificate issuer.
 1370            /// </summary>
 1371            /// <remarks>
 1372            /// The DeleteCertificateIssuer operation permanently removes the specified
 1373            /// certificate issuer from the vault. This operation requires the
 1374            /// certificates/manageissuers/deleteissuers permission.
 1375            /// </remarks>
 1376            /// <param name='operations'>
 1377            /// The operations group for this extension method.
 1378            /// </param>
 1379            /// <param name='vaultBaseUrl'>
 1380            /// The vault name, for example https://myvault.vault.azure.net.
 1381            /// </param>
 1382            /// <param name='issuerName'>
 1383            /// The name of the issuer.
 1384            /// </param>
 1385            /// <param name='cancellationToken'>
 1386            /// The cancellation token.
 1387            /// </param>
 1388            public static async Task<IssuerBundle> DeleteCertificateIssuerAsync(this IKeyVaultClient operations, string 
 1389            {
 21390                using (var _result = await operations.DeleteCertificateIssuerWithHttpMessagesAsync(vaultBaseUrl, issuerN
 1391                {
 21392                    return _result.Body;
 1393                }
 21394            }
 1395
 1396            /// <summary>
 1397            /// Creates a new certificate.
 1398            /// </summary>
 1399            /// <remarks>
 1400            /// If this is the first version, the certificate resource is created. This
 1401            /// operation requires the certificates/create permission.
 1402            /// </remarks>
 1403            /// <param name='operations'>
 1404            /// The operations group for this extension method.
 1405            /// </param>
 1406            /// <param name='vaultBaseUrl'>
 1407            /// The vault name, for example https://myvault.vault.azure.net.
 1408            /// </param>
 1409            /// <param name='certificateName'>
 1410            /// The name of the certificate.
 1411            /// </param>
 1412            /// <param name='certificatePolicy'>
 1413            /// The management policy for the certificate.
 1414            /// </param>
 1415            /// <param name='certificateAttributes'>
 1416            /// The attributes of the certificate (optional).
 1417            /// </param>
 1418            /// <param name='tags'>
 1419            /// Application specific metadata in the form of key-value pairs.
 1420            /// </param>
 1421            /// <param name='cancellationToken'>
 1422            /// The cancellation token.
 1423            /// </param>
 1424            public static async Task<CertificateOperation> CreateCertificateAsync(this IKeyVaultClient operations, strin
 1425            {
 41426                using (var _result = await operations.CreateCertificateWithHttpMessagesAsync(vaultBaseUrl, certificateNa
 1427                {
 41428                    return _result.Body;
 1429                }
 41430            }
 1431
 1432            /// <summary>
 1433            /// Imports a certificate into a specified key vault.
 1434            /// </summary>
 1435            /// <remarks>
 1436            /// Imports an existing valid certificate, containing a private key, into Azure
 1437            /// Key Vault. The certificate to be imported can be in either PFX or PEM
 1438            /// format. If the certificate is in PEM format the PEM file must contain the
 1439            /// key as well as x509 certificates. This operation requires the
 1440            /// certificates/import permission.
 1441            /// </remarks>
 1442            /// <param name='operations'>
 1443            /// The operations group for this extension method.
 1444            /// </param>
 1445            /// <param name='vaultBaseUrl'>
 1446            /// The vault name, for example https://myvault.vault.azure.net.
 1447            /// </param>
 1448            /// <param name='certificateName'>
 1449            /// The name of the certificate.
 1450            /// </param>
 1451            /// <param name='base64EncodedCertificate'>
 1452            /// Base64 encoded representation of the certificate object to import. This
 1453            /// certificate needs to contain the private key.
 1454            /// </param>
 1455            /// <param name='password'>
 1456            /// If the private key in base64EncodedCertificate is encrypted, the password
 1457            /// used for encryption.
 1458            /// </param>
 1459            /// <param name='certificatePolicy'>
 1460            /// The management policy for the certificate.
 1461            /// </param>
 1462            /// <param name='certificateAttributes'>
 1463            /// The attributes of the certificate (optional).
 1464            /// </param>
 1465            /// <param name='tags'>
 1466            /// Application specific metadata in the form of key-value pairs.
 1467            /// </param>
 1468            /// <param name='cancellationToken'>
 1469            /// The cancellation token.
 1470            /// </param>
 1471            public static async Task<CertificateBundle> ImportCertificateAsync(this IKeyVaultClient operations, string v
 1472            {
 111473                using (var _result = await operations.ImportCertificateWithHttpMessagesAsync(vaultBaseUrl, certificateNa
 1474                {
 111475                    return _result.Body;
 1476                }
 111477            }
 1478
 1479            /// <summary>
 1480            /// List the versions of a certificate.
 1481            /// </summary>
 1482            /// <remarks>
 1483            /// The GetCertificateVersions operation returns the versions of a certificate
 1484            /// in the specified key vault. This operation requires the certificates/list
 1485            /// permission.
 1486            /// </remarks>
 1487            /// <param name='operations'>
 1488            /// The operations group for this extension method.
 1489            /// </param>
 1490            /// <param name='vaultBaseUrl'>
 1491            /// The vault name, for example https://myvault.vault.azure.net.
 1492            /// </param>
 1493            /// <param name='certificateName'>
 1494            /// The name of the certificate.
 1495            /// </param>
 1496            /// <param name='maxresults'>
 1497            /// Maximum number of results to return in a page. If not specified the service
 1498            /// will return up to 25 results.
 1499            /// </param>
 1500            /// <param name='cancellationToken'>
 1501            /// The cancellation token.
 1502            /// </param>
 1503            public static async Task<IPage<CertificateItem>> GetCertificateVersionsAsync(this IKeyVaultClient operations
 1504            {
 11505                using (var _result = await operations.GetCertificateVersionsWithHttpMessagesAsync(vaultBaseUrl, certific
 1506                {
 11507                    return _result.Body;
 1508                }
 11509            }
 1510
 1511            /// <summary>
 1512            /// Lists the policy for a certificate.
 1513            /// </summary>
 1514            /// <remarks>
 1515            /// The GetCertificatePolicy operation returns the specified certificate policy
 1516            /// resources in the specified key vault. This operation requires the
 1517            /// certificates/get permission.
 1518            /// </remarks>
 1519            /// <param name='operations'>
 1520            /// The operations group for this extension method.
 1521            /// </param>
 1522            /// <param name='vaultBaseUrl'>
 1523            /// The vault name, for example https://myvault.vault.azure.net.
 1524            /// </param>
 1525            /// <param name='certificateName'>
 1526            /// The name of the certificate in a given key vault.
 1527            /// </param>
 1528            /// <param name='cancellationToken'>
 1529            /// The cancellation token.
 1530            /// </param>
 1531            public static async Task<CertificatePolicy> GetCertificatePolicyAsync(this IKeyVaultClient operations, strin
 1532            {
 21533                using (var _result = await operations.GetCertificatePolicyWithHttpMessagesAsync(vaultBaseUrl, certificat
 1534                {
 21535                    return _result.Body;
 1536                }
 21537            }
 1538
 1539            /// <summary>
 1540            /// Updates the policy for a certificate.
 1541            /// </summary>
 1542            /// <remarks>
 1543            /// Set specified members in the certificate policy. Leave others as null. This
 1544            /// operation requires the certificates/update permission.
 1545            /// </remarks>
 1546            /// <param name='operations'>
 1547            /// The operations group for this extension method.
 1548            /// </param>
 1549            /// <param name='vaultBaseUrl'>
 1550            /// The vault name, for example https://myvault.vault.azure.net.
 1551            /// </param>
 1552            /// <param name='certificateName'>
 1553            /// The name of the certificate in the given vault.
 1554            /// </param>
 1555            /// <param name='certificatePolicy'>
 1556            /// The policy for the certificate.
 1557            /// </param>
 1558            /// <param name='cancellationToken'>
 1559            /// The cancellation token.
 1560            /// </param>
 1561            public static async Task<CertificatePolicy> UpdateCertificatePolicyAsync(this IKeyVaultClient operations, st
 1562            {
 11563                using (var _result = await operations.UpdateCertificatePolicyWithHttpMessagesAsync(vaultBaseUrl, certifi
 1564                {
 11565                    return _result.Body;
 1566                }
 11567            }
 1568
 1569            /// <summary>
 1570            /// Updates the specified attributes associated with the given certificate.
 1571            /// </summary>
 1572            /// <remarks>
 1573            /// The UpdateCertificate operation applies the specified update on the given
 1574            /// certificate; the only elements updated are the certificate's attributes.
 1575            /// This operation requires the certificates/update permission.
 1576            /// </remarks>
 1577            /// <param name='operations'>
 1578            /// The operations group for this extension method.
 1579            /// </param>
 1580            /// <param name='vaultBaseUrl'>
 1581            /// The vault name, for example https://myvault.vault.azure.net.
 1582            /// </param>
 1583            /// <param name='certificateName'>
 1584            /// The name of the certificate in the given key vault.
 1585            /// </param>
 1586            /// <param name='certificateVersion'>
 1587            /// The version of the certificate.
 1588            /// </param>
 1589            /// <param name='certificatePolicy'>
 1590            /// The management policy for the certificate.
 1591            /// </param>
 1592            /// <param name='certificateAttributes'>
 1593            /// The attributes of the certificate (optional).
 1594            /// </param>
 1595            /// <param name='tags'>
 1596            /// Application specific metadata in the form of key-value pairs.
 1597            /// </param>
 1598            /// <param name='cancellationToken'>
 1599            /// The cancellation token.
 1600            /// </param>
 1601            public static async Task<CertificateBundle> UpdateCertificateAsync(this IKeyVaultClient operations, string v
 1602            {
 01603                using (var _result = await operations.UpdateCertificateWithHttpMessagesAsync(vaultBaseUrl, certificateNa
 1604                {
 01605                    return _result.Body;
 1606                }
 01607            }
 1608
 1609            /// <summary>
 1610            /// Gets information about a certificate.
 1611            /// </summary>
 1612            /// <remarks>
 1613            /// Gets information about a specific certificate. This operation requires the
 1614            /// certificates/get permission.
 1615            /// </remarks>
 1616            /// <param name='operations'>
 1617            /// The operations group for this extension method.
 1618            /// </param>
 1619            /// <param name='vaultBaseUrl'>
 1620            /// The vault name, for example https://myvault.vault.azure.net.
 1621            /// </param>
 1622            /// <param name='certificateName'>
 1623            /// The name of the certificate in the given vault.
 1624            /// </param>
 1625            /// <param name='certificateVersion'>
 1626            /// The version of the certificate.
 1627            /// </param>
 1628            /// <param name='cancellationToken'>
 1629            /// The cancellation token.
 1630            /// </param>
 1631            public static async Task<CertificateBundle> GetCertificateAsync(this IKeyVaultClient operations, string vaul
 1632            {
 01633                using (var _result = await operations.GetCertificateWithHttpMessagesAsync(vaultBaseUrl, certificateName,
 1634                {
 01635                    return _result.Body;
 1636                }
 01637            }
 1638
 1639            /// <summary>
 1640            /// Updates a certificate operation.
 1641            /// </summary>
 1642            /// <remarks>
 1643            /// Updates a certificate creation operation that is already in progress. This
 1644            /// operation requires the certificates/update permission.
 1645            /// </remarks>
 1646            /// <param name='operations'>
 1647            /// The operations group for this extension method.
 1648            /// </param>
 1649            /// <param name='vaultBaseUrl'>
 1650            /// The vault name, for example https://myvault.vault.azure.net.
 1651            /// </param>
 1652            /// <param name='certificateName'>
 1653            /// The name of the certificate.
 1654            /// </param>
 1655            /// <param name='cancellationRequested'>
 1656            /// Indicates if cancellation was requested on the certificate operation.
 1657            /// </param>
 1658            /// <param name='cancellationToken'>
 1659            /// The cancellation token.
 1660            /// </param>
 1661            public static async Task<CertificateOperation> UpdateCertificateOperationAsync(this IKeyVaultClient operatio
 1662            {
 11663                using (var _result = await operations.UpdateCertificateOperationWithHttpMessagesAsync(vaultBaseUrl, cert
 1664                {
 11665                    return _result.Body;
 1666                }
 11667            }
 1668
 1669            /// <summary>
 1670            /// Gets the creation operation of a certificate.
 1671            /// </summary>
 1672            /// <remarks>
 1673            /// Gets the creation operation associated with a specified certificate. This
 1674            /// operation requires the certificates/get permission.
 1675            /// </remarks>
 1676            /// <param name='operations'>
 1677            /// The operations group for this extension method.
 1678            /// </param>
 1679            /// <param name='vaultBaseUrl'>
 1680            /// The vault name, for example https://myvault.vault.azure.net.
 1681            /// </param>
 1682            /// <param name='certificateName'>
 1683            /// The name of the certificate.
 1684            /// </param>
 1685            /// <param name='cancellationToken'>
 1686            /// The cancellation token.
 1687            /// </param>
 1688            public static async Task<CertificateOperation> GetCertificateOperationAsync(this IKeyVaultClient operations,
 1689            {
 71690                using (var _result = await operations.GetCertificateOperationWithHttpMessagesAsync(vaultBaseUrl, certifi
 1691                {
 71692                    return _result.Body;
 1693                }
 71694            }
 1695
 1696            /// <summary>
 1697            /// Deletes the creation operation for a specific certificate.
 1698            /// </summary>
 1699            /// <remarks>
 1700            /// Deletes the creation operation for a specified certificate that is in the
 1701            /// process of being created. The certificate is no longer created. This
 1702            /// operation requires the certificates/update permission.
 1703            /// </remarks>
 1704            /// <param name='operations'>
 1705            /// The operations group for this extension method.
 1706            /// </param>
 1707            /// <param name='vaultBaseUrl'>
 1708            /// The vault name, for example https://myvault.vault.azure.net.
 1709            /// </param>
 1710            /// <param name='certificateName'>
 1711            /// The name of the certificate.
 1712            /// </param>
 1713            /// <param name='cancellationToken'>
 1714            /// The cancellation token.
 1715            /// </param>
 1716            public static async Task<CertificateOperation> DeleteCertificateOperationAsync(this IKeyVaultClient operatio
 1717            {
 01718                using (var _result = await operations.DeleteCertificateOperationWithHttpMessagesAsync(vaultBaseUrl, cert
 1719                {
 01720                    return _result.Body;
 1721                }
 01722            }
 1723
 1724            /// <summary>
 1725            /// Merges a certificate or a certificate chain with a key pair existing on the
 1726            /// server.
 1727            /// </summary>
 1728            /// <remarks>
 1729            /// The MergeCertificate operation performs the merging of a certificate or
 1730            /// certificate chain with a key pair currently available in the service. This
 1731            /// operation requires the certificates/create permission.
 1732            /// </remarks>
 1733            /// <param name='operations'>
 1734            /// The operations group for this extension method.
 1735            /// </param>
 1736            /// <param name='vaultBaseUrl'>
 1737            /// The vault name, for example https://myvault.vault.azure.net.
 1738            /// </param>
 1739            /// <param name='certificateName'>
 1740            /// The name of the certificate.
 1741            /// </param>
 1742            /// <param name='x509Certificates'>
 1743            /// The certificate or the certificate chain to merge.
 1744            /// </param>
 1745            /// <param name='certificateAttributes'>
 1746            /// The attributes of the certificate (optional).
 1747            /// </param>
 1748            /// <param name='tags'>
 1749            /// Application specific metadata in the form of key-value pairs.
 1750            /// </param>
 1751            /// <param name='cancellationToken'>
 1752            /// The cancellation token.
 1753            /// </param>
 1754            public static async Task<CertificateBundle> MergeCertificateAsync(this IKeyVaultClient operations, string va
 1755            {
 01756                using (var _result = await operations.MergeCertificateWithHttpMessagesAsync(vaultBaseUrl, certificateNam
 1757                {
 01758                    return _result.Body;
 1759                }
 01760            }
 1761
 1762            /// <summary>
 1763            /// Backs up the specified certificate.
 1764            /// </summary>
 1765            /// <remarks>
 1766            /// Requests that a backup of the specified certificate be downloaded to the
 1767            /// client. All versions of the certificate will be downloaded. This operation
 1768            /// requires the certificates/backup permission.
 1769            /// </remarks>
 1770            /// <param name='operations'>
 1771            /// The operations group for this extension method.
 1772            /// </param>
 1773            /// <param name='vaultBaseUrl'>
 1774            /// The vault name, for example https://myvault.vault.azure.net.
 1775            /// </param>
 1776            /// <param name='certificateName'>
 1777            /// The name of the certificate.
 1778            /// </param>
 1779            /// <param name='cancellationToken'>
 1780            /// The cancellation token.
 1781            /// </param>
 1782            public static async Task<BackupCertificateResult> BackupCertificateAsync(this IKeyVaultClient operations, st
 1783            {
 01784                using (var _result = await operations.BackupCertificateWithHttpMessagesAsync(vaultBaseUrl, certificateNa
 1785                {
 01786                    return _result.Body;
 1787                }
 01788            }
 1789
 1790            /// <summary>
 1791            /// Restores a backed up certificate to a vault.
 1792            /// </summary>
 1793            /// <remarks>
 1794            /// Restores a backed up certificate, and all its versions, to a vault. This
 1795            /// operation requires the certificates/restore permission.
 1796            /// </remarks>
 1797            /// <param name='operations'>
 1798            /// The operations group for this extension method.
 1799            /// </param>
 1800            /// <param name='vaultBaseUrl'>
 1801            /// The vault name, for example https://myvault.vault.azure.net.
 1802            /// </param>
 1803            /// <param name='certificateBundleBackup'>
 1804            /// The backup blob associated with a certificate bundle.
 1805            /// </param>
 1806            /// <param name='cancellationToken'>
 1807            /// The cancellation token.
 1808            /// </param>
 1809            public static async Task<CertificateBundle> RestoreCertificateAsync(this IKeyVaultClient operations, string 
 1810            {
 01811                using (var _result = await operations.RestoreCertificateWithHttpMessagesAsync(vaultBaseUrl, certificateB
 1812                {
 01813                    return _result.Body;
 1814                }
 01815            }
 1816
 1817            /// <summary>
 1818            /// Lists the deleted certificates in the specified vault currently available
 1819            /// for recovery.
 1820            /// </summary>
 1821            /// <remarks>
 1822            /// The GetDeletedCertificates operation retrieves the certificates in the
 1823            /// current vault which are in a deleted state and ready for recovery or
 1824            /// purging. This operation includes deletion-specific information. This
 1825            /// operation requires the certificates/get/list permission. This operation can
 1826            /// only be enabled on soft-delete enabled vaults.
 1827            /// </remarks>
 1828            /// <param name='operations'>
 1829            /// The operations group for this extension method.
 1830            /// </param>
 1831            /// <param name='vaultBaseUrl'>
 1832            /// The vault name, for example https://myvault.vault.azure.net.
 1833            /// </param>
 1834            /// <param name='maxresults'>
 1835            /// Maximum number of results to return in a page. If not specified the service
 1836            /// will return up to 25 results.
 1837            /// </param>
 1838            /// <param name='includePending'>
 1839            /// Specifies whether to include certificates which are not completely
 1840            /// provisioned.
 1841            /// </param>
 1842            /// <param name='cancellationToken'>
 1843            /// The cancellation token.
 1844            /// </param>
 1845            public static async Task<IPage<DeletedCertificateItem>> GetDeletedCertificatesAsync(this IKeyVaultClient ope
 1846            {
 11847                using (var _result = await operations.GetDeletedCertificatesWithHttpMessagesAsync(vaultBaseUrl, maxresul
 1848                {
 11849                    return _result.Body;
 1850                }
 11851            }
 1852
 1853            /// <summary>
 1854            /// Retrieves information about the specified deleted certificate.
 1855            /// </summary>
 1856            /// <remarks>
 1857            /// The GetDeletedCertificate operation retrieves the deleted certificate
 1858            /// information plus its attributes, such as retention interval, scheduled
 1859            /// permanent deletion and the current deletion recovery level. This operation
 1860            /// requires the certificates/get permission.
 1861            /// </remarks>
 1862            /// <param name='operations'>
 1863            /// The operations group for this extension method.
 1864            /// </param>
 1865            /// <param name='vaultBaseUrl'>
 1866            /// The vault name, for example https://myvault.vault.azure.net.
 1867            /// </param>
 1868            /// <param name='certificateName'>
 1869            /// The name of the certificate
 1870            /// </param>
 1871            /// <param name='cancellationToken'>
 1872            /// The cancellation token.
 1873            /// </param>
 1874            public static async Task<DeletedCertificateBundle> GetDeletedCertificateAsync(this IKeyVaultClient operation
 1875            {
 251876                using (var _result = await operations.GetDeletedCertificateWithHttpMessagesAsync(vaultBaseUrl, certifica
 1877                {
 71878                    return _result.Body;
 1879                }
 71880            }
 1881
 1882            /// <summary>
 1883            /// Permanently deletes the specified deleted certificate.
 1884            /// </summary>
 1885            /// <remarks>
 1886            /// The PurgeDeletedCertificate operation performs an irreversible deletion of
 1887            /// the specified certificate, without possibility for recovery. The operation
 1888            /// is not available if the recovery level does not specify 'Purgeable'. This
 1889            /// operation requires the certificate/purge permission.
 1890            /// </remarks>
 1891            /// <param name='operations'>
 1892            /// The operations group for this extension method.
 1893            /// </param>
 1894            /// <param name='vaultBaseUrl'>
 1895            /// The vault name, for example https://myvault.vault.azure.net.
 1896            /// </param>
 1897            /// <param name='certificateName'>
 1898            /// The name of the certificate
 1899            /// </param>
 1900            /// <param name='cancellationToken'>
 1901            /// The cancellation token.
 1902            /// </param>
 1903            public static async Task PurgeDeletedCertificateAsync(this IKeyVaultClient operations, string vaultBaseUrl, 
 1904            {
 21905                (await operations.PurgeDeletedCertificateWithHttpMessagesAsync(vaultBaseUrl, certificateName, null, canc
 21906            }
 1907
 1908            /// <summary>
 1909            /// Recovers the deleted certificate back to its current version under
 1910            /// /certificates.
 1911            /// </summary>
 1912            /// <remarks>
 1913            /// The RecoverDeletedCertificate operation performs the reversal of the Delete
 1914            /// operation. The operation is applicable in vaults enabled for soft-delete,
 1915            /// and must be issued during the retention interval (available in the deleted
 1916            /// certificate's attributes). This operation requires the certificates/recover
 1917            /// permission.
 1918            /// </remarks>
 1919            /// <param name='operations'>
 1920            /// The operations group for this extension method.
 1921            /// </param>
 1922            /// <param name='vaultBaseUrl'>
 1923            /// The vault name, for example https://myvault.vault.azure.net.
 1924            /// </param>
 1925            /// <param name='certificateName'>
 1926            /// The name of the deleted certificate
 1927            /// </param>
 1928            /// <param name='cancellationToken'>
 1929            /// The cancellation token.
 1930            /// </param>
 1931            public static async Task<CertificateBundle> RecoverDeletedCertificateAsync(this IKeyVaultClient operations, 
 1932            {
 01933                using (var _result = await operations.RecoverDeletedCertificateWithHttpMessagesAsync(vaultBaseUrl, certi
 1934                {
 01935                    return _result.Body;
 1936                }
 01937            }
 1938
 1939            /// <summary>
 1940            /// List storage accounts managed by the specified key vault. This operation
 1941            /// requires the storage/list permission.
 1942            /// </summary>
 1943            /// <param name='operations'>
 1944            /// The operations group for this extension method.
 1945            /// </param>
 1946            /// <param name='vaultBaseUrl'>
 1947            /// The vault name, for example https://myvault.vault.azure.net.
 1948            /// </param>
 1949            /// <param name='maxresults'>
 1950            /// Maximum number of results to return in a page. If not specified the service
 1951            /// will return up to 25 results.
 1952            /// </param>
 1953            /// <param name='cancellationToken'>
 1954            /// The cancellation token.
 1955            /// </param>
 1956            public static async Task<IPage<StorageAccountItem>> GetStorageAccountsAsync(this IKeyVaultClient operations,
 1957            {
 11958                using (var _result = await operations.GetStorageAccountsWithHttpMessagesAsync(vaultBaseUrl, maxresults, 
 1959                {
 11960                    return _result.Body;
 1961                }
 11962            }
 1963
 1964            /// <summary>
 1965            /// Lists deleted storage accounts for the specified vault.
 1966            /// </summary>
 1967            /// <remarks>
 1968            /// The Get Deleted Storage Accounts operation returns the storage accounts
 1969            /// that have been deleted for a vault enabled for soft-delete. This operation
 1970            /// requires the storage/list permission.
 1971            /// </remarks>
 1972            /// <param name='operations'>
 1973            /// The operations group for this extension method.
 1974            /// </param>
 1975            /// <param name='vaultBaseUrl'>
 1976            /// The vault name, for example https://myvault.vault.azure.net.
 1977            /// </param>
 1978            /// <param name='maxresults'>
 1979            /// Maximum number of results to return in a page. If not specified the service
 1980            /// will return up to 25 results.
 1981            /// </param>
 1982            /// <param name='cancellationToken'>
 1983            /// The cancellation token.
 1984            /// </param>
 1985            public static async Task<IPage<DeletedStorageAccountItem>> GetDeletedStorageAccountsAsync(this IKeyVaultClie
 1986            {
 01987                using (var _result = await operations.GetDeletedStorageAccountsWithHttpMessagesAsync(vaultBaseUrl, maxre
 1988                {
 01989                    return _result.Body;
 1990                }
 01991            }
 1992
 1993            /// <summary>
 1994            /// Gets the specified deleted storage account.
 1995            /// </summary>
 1996            /// <remarks>
 1997            /// The Get Deleted Storage Account operation returns the specified deleted
 1998            /// storage account along with its attributes. This operation requires the
 1999            /// storage/get permission.
 2000            /// </remarks>
 2001            /// <param name='operations'>
 2002            /// The operations group for this extension method.
 2003            /// </param>
 2004            /// <param name='vaultBaseUrl'>
 2005            /// The vault name, for example https://myvault.vault.azure.net.
 2006            /// </param>
 2007            /// <param name='storageAccountName'>
 2008            /// The name of the storage account.
 2009            /// </param>
 2010            /// <param name='cancellationToken'>
 2011            /// The cancellation token.
 2012            /// </param>
 2013            public static async Task<DeletedStorageBundle> GetDeletedStorageAccountAsync(this IKeyVaultClient operations
 2014            {
 02015                using (var _result = await operations.GetDeletedStorageAccountWithHttpMessagesAsync(vaultBaseUrl, storag
 2016                {
 02017                    return _result.Body;
 2018                }
 02019            }
 2020
 2021            /// <summary>
 2022            /// Permanently deletes the specified storage account.
 2023            /// </summary>
 2024            /// <remarks>
 2025            /// The purge deleted storage account operation removes the secret permanently,
 2026            /// without the possibility of recovery. This operation can only be performed
 2027            /// on a soft-delete enabled vault. This operation requires the storage/purge
 2028            /// permission.
 2029            /// </remarks>
 2030            /// <param name='operations'>
 2031            /// The operations group for this extension method.
 2032            /// </param>
 2033            /// <param name='vaultBaseUrl'>
 2034            /// The vault name, for example https://myvault.vault.azure.net.
 2035            /// </param>
 2036            /// <param name='storageAccountName'>
 2037            /// The name of the storage account.
 2038            /// </param>
 2039            /// <param name='cancellationToken'>
 2040            /// The cancellation token.
 2041            /// </param>
 2042            public static async Task PurgeDeletedStorageAccountAsync(this IKeyVaultClient operations, string vaultBaseUr
 2043            {
 02044                (await operations.PurgeDeletedStorageAccountWithHttpMessagesAsync(vaultBaseUrl, storageAccountName, null
 02045            }
 2046
 2047            /// <summary>
 2048            /// Recovers the deleted storage account.
 2049            /// </summary>
 2050            /// <remarks>
 2051            /// Recovers the deleted storage account in the specified vault. This operation
 2052            /// can only be performed on a soft-delete enabled vault. This operation
 2053            /// requires the storage/recover permission.
 2054            /// </remarks>
 2055            /// <param name='operations'>
 2056            /// The operations group for this extension method.
 2057            /// </param>
 2058            /// <param name='vaultBaseUrl'>
 2059            /// The vault name, for example https://myvault.vault.azure.net.
 2060            /// </param>
 2061            /// <param name='storageAccountName'>
 2062            /// The name of the storage account.
 2063            /// </param>
 2064            /// <param name='cancellationToken'>
 2065            /// The cancellation token.
 2066            /// </param>
 2067            public static async Task<StorageBundle> RecoverDeletedStorageAccountAsync(this IKeyVaultClient operations, s
 2068            {
 02069                using (var _result = await operations.RecoverDeletedStorageAccountWithHttpMessagesAsync(vaultBaseUrl, st
 2070                {
 02071                    return _result.Body;
 2072                }
 02073            }
 2074
 2075            /// <summary>
 2076            /// Backs up the specified storage account.
 2077            /// </summary>
 2078            /// <remarks>
 2079            /// Requests that a backup of the specified storage account be downloaded to
 2080            /// the client. This operation requires the storage/backup permission.
 2081            /// </remarks>
 2082            /// <param name='operations'>
 2083            /// The operations group for this extension method.
 2084            /// </param>
 2085            /// <param name='vaultBaseUrl'>
 2086            /// The vault name, for example https://myvault.vault.azure.net.
 2087            /// </param>
 2088            /// <param name='storageAccountName'>
 2089            /// The name of the storage account.
 2090            /// </param>
 2091            /// <param name='cancellationToken'>
 2092            /// The cancellation token.
 2093            /// </param>
 2094            public static async Task<BackupStorageResult> BackupStorageAccountAsync(this IKeyVaultClient operations, str
 2095            {
 02096                using (var _result = await operations.BackupStorageAccountWithHttpMessagesAsync(vaultBaseUrl, storageAcc
 2097                {
 02098                    return _result.Body;
 2099                }
 02100            }
 2101
 2102            /// <summary>
 2103            /// Restores a backed up storage account to a vault.
 2104            /// </summary>
 2105            /// <remarks>
 2106            /// Restores a backed up storage account to a vault. This operation requires
 2107            /// the storage/restore permission.
 2108            /// </remarks>
 2109            /// <param name='operations'>
 2110            /// The operations group for this extension method.
 2111            /// </param>
 2112            /// <param name='vaultBaseUrl'>
 2113            /// The vault name, for example https://myvault.vault.azure.net.
 2114            /// </param>
 2115            /// <param name='storageBundleBackup'>
 2116            /// The backup blob associated with a storage account.
 2117            /// </param>
 2118            /// <param name='cancellationToken'>
 2119            /// The cancellation token.
 2120            /// </param>
 2121            public static async Task<StorageBundle> RestoreStorageAccountAsync(this IKeyVaultClient operations, string v
 2122            {
 02123                using (var _result = await operations.RestoreStorageAccountWithHttpMessagesAsync(vaultBaseUrl, storageBu
 2124                {
 02125                    return _result.Body;
 2126                }
 02127            }
 2128
 2129            /// <summary>
 2130            /// Deletes a storage account. This operation requires the storage/delete
 2131            /// permission.
 2132            /// </summary>
 2133            /// <param name='operations'>
 2134            /// The operations group for this extension method.
 2135            /// </param>
 2136            /// <param name='vaultBaseUrl'>
 2137            /// The vault name, for example https://myvault.vault.azure.net.
 2138            /// </param>
 2139            /// <param name='storageAccountName'>
 2140            /// The name of the storage account.
 2141            /// </param>
 2142            /// <param name='cancellationToken'>
 2143            /// The cancellation token.
 2144            /// </param>
 2145            public static async Task<DeletedStorageBundle> DeleteStorageAccountAsync(this IKeyVaultClient operations, st
 2146            {
 72147                using (var _result = await operations.DeleteStorageAccountWithHttpMessagesAsync(vaultBaseUrl, storageAcc
 2148                {
 72149                    return _result.Body;
 2150                }
 72151            }
 2152
 2153            /// <summary>
 2154            /// Gets information about a specified storage account. This operation requires
 2155            /// the storage/get permission.
 2156            /// </summary>
 2157            /// <param name='operations'>
 2158            /// The operations group for this extension method.
 2159            /// </param>
 2160            /// <param name='vaultBaseUrl'>
 2161            /// The vault name, for example https://myvault.vault.azure.net.
 2162            /// </param>
 2163            /// <param name='storageAccountName'>
 2164            /// The name of the storage account.
 2165            /// </param>
 2166            /// <param name='cancellationToken'>
 2167            /// The cancellation token.
 2168            /// </param>
 2169            public static async Task<StorageBundle> GetStorageAccountAsync(this IKeyVaultClient operations, string vault
 2170            {
 12171                using (var _result = await operations.GetStorageAccountWithHttpMessagesAsync(vaultBaseUrl, storageAccoun
 2172                {
 12173                    return _result.Body;
 2174                }
 12175            }
 2176
 2177            /// <summary>
 2178            /// Creates or updates a new storage account. This operation requires the
 2179            /// storage/set permission.
 2180            /// </summary>
 2181            /// <param name='operations'>
 2182            /// The operations group for this extension method.
 2183            /// </param>
 2184            /// <param name='vaultBaseUrl'>
 2185            /// The vault name, for example https://myvault.vault.azure.net.
 2186            /// </param>
 2187            /// <param name='storageAccountName'>
 2188            /// The name of the storage account.
 2189            /// </param>
 2190            /// <param name='resourceId'>
 2191            /// Storage account resource id.
 2192            /// </param>
 2193            /// <param name='activeKeyName'>
 2194            /// Current active storage account key name.
 2195            /// </param>
 2196            /// <param name='autoRegenerateKey'>
 2197            /// whether keyvault should manage the storage account for the user.
 2198            /// </param>
 2199            /// <param name='regenerationPeriod'>
 2200            /// The key regeneration time duration specified in ISO-8601 format.
 2201            /// </param>
 2202            /// <param name='storageAccountAttributes'>
 2203            /// The attributes of the storage account.
 2204            /// </param>
 2205            /// <param name='tags'>
 2206            /// Application specific metadata in the form of key-value pairs.
 2207            /// </param>
 2208            /// <param name='cancellationToken'>
 2209            /// The cancellation token.
 2210            /// </param>
 2211            public static async Task<StorageBundle> SetStorageAccountAsync(this IKeyVaultClient operations, string vault
 2212            {
 72213                using (var _result = await operations.SetStorageAccountWithHttpMessagesAsync(vaultBaseUrl, storageAccoun
 2214                {
 72215                    return _result.Body;
 2216                }
 72217            }
 2218
 2219            /// <summary>
 2220            /// Updates the specified attributes associated with the given storage account.
 2221            /// This operation requires the storage/set/update permission.
 2222            /// </summary>
 2223            /// <param name='operations'>
 2224            /// The operations group for this extension method.
 2225            /// </param>
 2226            /// <param name='vaultBaseUrl'>
 2227            /// The vault name, for example https://myvault.vault.azure.net.
 2228            /// </param>
 2229            /// <param name='storageAccountName'>
 2230            /// The name of the storage account.
 2231            /// </param>
 2232            /// <param name='activeKeyName'>
 2233            /// The current active storage account key name.
 2234            /// </param>
 2235            /// <param name='autoRegenerateKey'>
 2236            /// whether keyvault should manage the storage account for the user.
 2237            /// </param>
 2238            /// <param name='regenerationPeriod'>
 2239            /// The key regeneration time duration specified in ISO-8601 format.
 2240            /// </param>
 2241            /// <param name='storageAccountAttributes'>
 2242            /// The attributes of the storage account.
 2243            /// </param>
 2244            /// <param name='tags'>
 2245            /// Application specific metadata in the form of key-value pairs.
 2246            /// </param>
 2247            /// <param name='cancellationToken'>
 2248            /// The cancellation token.
 2249            /// </param>
 2250            public static async Task<StorageBundle> UpdateStorageAccountAsync(this IKeyVaultClient operations, string va
 2251            {
 12252                using (var _result = await operations.UpdateStorageAccountWithHttpMessagesAsync(vaultBaseUrl, storageAcc
 2253                {
 12254                    return _result.Body;
 2255                }
 12256            }
 2257
 2258            /// <summary>
 2259            /// Regenerates the specified key value for the given storage account. This
 2260            /// operation requires the storage/regeneratekey permission.
 2261            /// </summary>
 2262            /// <param name='operations'>
 2263            /// The operations group for this extension method.
 2264            /// </param>
 2265            /// <param name='vaultBaseUrl'>
 2266            /// The vault name, for example https://myvault.vault.azure.net.
 2267            /// </param>
 2268            /// <param name='storageAccountName'>
 2269            /// The name of the storage account.
 2270            /// </param>
 2271            /// <param name='keyName'>
 2272            /// The storage account key name.
 2273            /// </param>
 2274            /// <param name='cancellationToken'>
 2275            /// The cancellation token.
 2276            /// </param>
 2277            public static async Task<StorageBundle> RegenerateStorageAccountKeyAsync(this IKeyVaultClient operations, st
 2278            {
 12279                using (var _result = await operations.RegenerateStorageAccountKeyWithHttpMessagesAsync(vaultBaseUrl, sto
 2280                {
 12281                    return _result.Body;
 2282                }
 12283            }
 2284
 2285            /// <summary>
 2286            /// List storage SAS definitions for the given storage account. This operation
 2287            /// requires the storage/listsas permission.
 2288            /// </summary>
 2289            /// <param name='operations'>
 2290            /// The operations group for this extension method.
 2291            /// </param>
 2292            /// <param name='vaultBaseUrl'>
 2293            /// The vault name, for example https://myvault.vault.azure.net.
 2294            /// </param>
 2295            /// <param name='storageAccountName'>
 2296            /// The name of the storage account.
 2297            /// </param>
 2298            /// <param name='maxresults'>
 2299            /// Maximum number of results to return in a page. If not specified the service
 2300            /// will return up to 25 results.
 2301            /// </param>
 2302            /// <param name='cancellationToken'>
 2303            /// The cancellation token.
 2304            /// </param>
 2305            public static async Task<IPage<SasDefinitionItem>> GetSasDefinitionsAsync(this IKeyVaultClient operations, s
 2306            {
 02307                using (var _result = await operations.GetSasDefinitionsWithHttpMessagesAsync(vaultBaseUrl, storageAccoun
 2308                {
 02309                    return _result.Body;
 2310                }
 02311            }
 2312
 2313            /// <summary>
 2314            /// Lists deleted SAS definitions for the specified vault and storage account.
 2315            /// </summary>
 2316            /// <remarks>
 2317            /// The Get Deleted Sas Definitions operation returns the SAS definitions that
 2318            /// have been deleted for a vault enabled for soft-delete. This operation
 2319            /// requires the storage/listsas permission.
 2320            /// </remarks>
 2321            /// <param name='operations'>
 2322            /// The operations group for this extension method.
 2323            /// </param>
 2324            /// <param name='vaultBaseUrl'>
 2325            /// The vault name, for example https://myvault.vault.azure.net.
 2326            /// </param>
 2327            /// <param name='storageAccountName'>
 2328            /// The name of the storage account.
 2329            /// </param>
 2330            /// <param name='maxresults'>
 2331            /// Maximum number of results to return in a page. If not specified the service
 2332            /// will return up to 25 results.
 2333            /// </param>
 2334            /// <param name='cancellationToken'>
 2335            /// The cancellation token.
 2336            /// </param>
 2337            public static async Task<IPage<DeletedSasDefinitionItem>> GetDeletedSasDefinitionsAsync(this IKeyVaultClient
 2338            {
 02339                using (var _result = await operations.GetDeletedSasDefinitionsWithHttpMessagesAsync(vaultBaseUrl, storag
 2340                {
 02341                    return _result.Body;
 2342                }
 02343            }
 2344
 2345            /// <summary>
 2346            /// Gets the specified deleted sas definition.
 2347            /// </summary>
 2348            /// <remarks>
 2349            /// The Get Deleted SAS Definition operation returns the specified deleted SAS
 2350            /// definition along with its attributes. This operation requires the
 2351            /// storage/getsas permission.
 2352            /// </remarks>
 2353            /// <param name='operations'>
 2354            /// The operations group for this extension method.
 2355            /// </param>
 2356            /// <param name='vaultBaseUrl'>
 2357            /// The vault name, for example https://myvault.vault.azure.net.
 2358            /// </param>
 2359            /// <param name='storageAccountName'>
 2360            /// The name of the storage account.
 2361            /// </param>
 2362            /// <param name='sasDefinitionName'>
 2363            /// The name of the SAS definition.
 2364            /// </param>
 2365            /// <param name='cancellationToken'>
 2366            /// The cancellation token.
 2367            /// </param>
 2368            public static async Task<DeletedSasDefinitionBundle> GetDeletedSasDefinitionAsync(this IKeyVaultClient opera
 2369            {
 02370                using (var _result = await operations.GetDeletedSasDefinitionWithHttpMessagesAsync(vaultBaseUrl, storage
 2371                {
 02372                    return _result.Body;
 2373                }
 02374            }
 2375
 2376            /// <summary>
 2377            /// Recovers the deleted SAS definition.
 2378            /// </summary>
 2379            /// <remarks>
 2380            /// Recovers the deleted SAS definition for the specified storage account. This
 2381            /// operation can only be performed on a soft-delete enabled vault. This
 2382            /// operation requires the storage/recover permission.
 2383            /// </remarks>
 2384            /// <param name='operations'>
 2385            /// The operations group for this extension method.
 2386            /// </param>
 2387            /// <param name='vaultBaseUrl'>
 2388            /// The vault name, for example https://myvault.vault.azure.net.
 2389            /// </param>
 2390            /// <param name='storageAccountName'>
 2391            /// The name of the storage account.
 2392            /// </param>
 2393            /// <param name='sasDefinitionName'>
 2394            /// The name of the SAS definition.
 2395            /// </param>
 2396            /// <param name='cancellationToken'>
 2397            /// The cancellation token.
 2398            /// </param>
 2399            public static async Task<SasDefinitionBundle> RecoverDeletedSasDefinitionAsync(this IKeyVaultClient operatio
 2400            {
 02401                using (var _result = await operations.RecoverDeletedSasDefinitionWithHttpMessagesAsync(vaultBaseUrl, sto
 2402                {
 02403                    return _result.Body;
 2404                }
 02405            }
 2406
 2407            /// <summary>
 2408            /// Deletes a SAS definition from a specified storage account. This operation
 2409            /// requires the storage/deletesas permission.
 2410            /// </summary>
 2411            /// <param name='operations'>
 2412            /// The operations group for this extension method.
 2413            /// </param>
 2414            /// <param name='vaultBaseUrl'>
 2415            /// The vault name, for example https://myvault.vault.azure.net.
 2416            /// </param>
 2417            /// <param name='storageAccountName'>
 2418            /// The name of the storage account.
 2419            /// </param>
 2420            /// <param name='sasDefinitionName'>
 2421            /// The name of the SAS definition.
 2422            /// </param>
 2423            /// <param name='cancellationToken'>
 2424            /// The cancellation token.
 2425            /// </param>
 2426            public static async Task<DeletedSasDefinitionBundle> DeleteSasDefinitionAsync(this IKeyVaultClient operation
 2427            {
 02428                using (var _result = await operations.DeleteSasDefinitionWithHttpMessagesAsync(vaultBaseUrl, storageAcco
 2429                {
 02430                    return _result.Body;
 2431                }
 02432            }
 2433
 2434            /// <summary>
 2435            /// Gets information about a SAS definition for the specified storage account.
 2436            /// This operation requires the storage/getsas permission.
 2437            /// </summary>
 2438            /// <param name='operations'>
 2439            /// The operations group for this extension method.
 2440            /// </param>
 2441            /// <param name='vaultBaseUrl'>
 2442            /// The vault name, for example https://myvault.vault.azure.net.
 2443            /// </param>
 2444            /// <param name='storageAccountName'>
 2445            /// The name of the storage account.
 2446            /// </param>
 2447            /// <param name='sasDefinitionName'>
 2448            /// The name of the SAS definition.
 2449            /// </param>
 2450            /// <param name='cancellationToken'>
 2451            /// The cancellation token.
 2452            /// </param>
 2453            public static async Task<SasDefinitionBundle> GetSasDefinitionAsync(this IKeyVaultClient operations, string 
 2454            {
 02455                using (var _result = await operations.GetSasDefinitionWithHttpMessagesAsync(vaultBaseUrl, storageAccount
 2456                {
 02457                    return _result.Body;
 2458                }
 02459            }
 2460
 2461            /// <summary>
 2462            /// Creates or updates a new SAS definition for the specified storage account.
 2463            /// This operation requires the storage/setsas permission.
 2464            /// </summary>
 2465            /// <param name='operations'>
 2466            /// The operations group for this extension method.
 2467            /// </param>
 2468            /// <param name='vaultBaseUrl'>
 2469            /// The vault name, for example https://myvault.vault.azure.net.
 2470            /// </param>
 2471            /// <param name='storageAccountName'>
 2472            /// The name of the storage account.
 2473            /// </param>
 2474            /// <param name='sasDefinitionName'>
 2475            /// The name of the SAS definition.
 2476            /// </param>
 2477            /// <param name='templateUri'>
 2478            /// The SAS definition token template signed with an arbitrary key.  Tokens
 2479            /// created according to the SAS definition will have the same properties as
 2480            /// the template.
 2481            /// </param>
 2482            /// <param name='sasType'>
 2483            /// The type of SAS token the SAS definition will create. Possible values
 2484            /// include: 'account', 'service'
 2485            /// </param>
 2486            /// <param name='validityPeriod'>
 2487            /// The validity period of SAS tokens created according to the SAS definition.
 2488            /// </param>
 2489            /// <param name='sasDefinitionAttributes'>
 2490            /// The attributes of the SAS definition.
 2491            /// </param>
 2492            /// <param name='tags'>
 2493            /// Application specific metadata in the form of key-value pairs.
 2494            /// </param>
 2495            /// <param name='cancellationToken'>
 2496            /// The cancellation token.
 2497            /// </param>
 2498            public static async Task<SasDefinitionBundle> SetSasDefinitionAsync(this IKeyVaultClient operations, string 
 2499            {
 02500                using (var _result = await operations.SetSasDefinitionWithHttpMessagesAsync(vaultBaseUrl, storageAccount
 2501                {
 02502                    return _result.Body;
 2503                }
 02504            }
 2505
 2506            /// <summary>
 2507            /// Updates the specified attributes associated with the given SAS definition.
 2508            /// This operation requires the storage/setsas permission.
 2509            /// </summary>
 2510            /// <param name='operations'>
 2511            /// The operations group for this extension method.
 2512            /// </param>
 2513            /// <param name='vaultBaseUrl'>
 2514            /// The vault name, for example https://myvault.vault.azure.net.
 2515            /// </param>
 2516            /// <param name='storageAccountName'>
 2517            /// The name of the storage account.
 2518            /// </param>
 2519            /// <param name='sasDefinitionName'>
 2520            /// The name of the SAS definition.
 2521            /// </param>
 2522            /// <param name='templateUri'>
 2523            /// The SAS definition token template signed with an arbitrary key.  Tokens
 2524            /// created according to the SAS definition will have the same properties as
 2525            /// the template.
 2526            /// </param>
 2527            /// <param name='sasType'>
 2528            /// The type of SAS token the SAS definition will create. Possible values
 2529            /// include: 'account', 'service'
 2530            /// </param>
 2531            /// <param name='validityPeriod'>
 2532            /// The validity period of SAS tokens created according to the SAS definition.
 2533            /// </param>
 2534            /// <param name='sasDefinitionAttributes'>
 2535            /// The attributes of the SAS definition.
 2536            /// </param>
 2537            /// <param name='tags'>
 2538            /// Application specific metadata in the form of key-value pairs.
 2539            /// </param>
 2540            /// <param name='cancellationToken'>
 2541            /// The cancellation token.
 2542            /// </param>
 2543            public static async Task<SasDefinitionBundle> UpdateSasDefinitionAsync(this IKeyVaultClient operations, stri
 2544            {
 02545                using (var _result = await operations.UpdateSasDefinitionWithHttpMessagesAsync(vaultBaseUrl, storageAcco
 2546                {
 02547                    return _result.Body;
 2548                }
 02549            }
 2550
 2551            /// <summary>
 2552            /// Retrieves a list of individual key versions with the same key name.
 2553            /// </summary>
 2554            /// <remarks>
 2555            /// The full key identifier, attributes, and tags are provided in the response.
 2556            /// This operation requires the keys/list permission.
 2557            /// </remarks>
 2558            /// <param name='operations'>
 2559            /// The operations group for this extension method.
 2560            /// </param>
 2561            /// <param name='nextPageLink'>
 2562            /// The NextLink from the previous successful call to List operation.
 2563            /// </param>
 2564            /// <param name='cancellationToken'>
 2565            /// The cancellation token.
 2566            /// </param>
 2567            public static async Task<IPage<KeyItem>> GetKeyVersionsNextAsync(this IKeyVaultClient operations, string nex
 2568            {
 82569                using (var _result = await operations.GetKeyVersionsNextWithHttpMessagesAsync(nextPageLink, null, cancel
 2570                {
 82571                    return _result.Body;
 2572                }
 82573            }
 2574
 2575            /// <summary>
 2576            /// List keys in the specified vault.
 2577            /// </summary>
 2578            /// <remarks>
 2579            /// Retrieves a list of the keys in the Key Vault as JSON Web Key structures
 2580            /// that contain the public part of a stored key. The LIST operation is
 2581            /// applicable to all key types, however only the base key identifier,
 2582            /// attributes, and tags are provided in the response. Individual versions of a
 2583            /// key are not listed in the response. This operation requires the keys/list
 2584            /// permission.
 2585            /// </remarks>
 2586            /// <param name='operations'>
 2587            /// The operations group for this extension method.
 2588            /// </param>
 2589            /// <param name='nextPageLink'>
 2590            /// The NextLink from the previous successful call to List operation.
 2591            /// </param>
 2592            /// <param name='cancellationToken'>
 2593            /// The cancellation token.
 2594            /// </param>
 2595            public static async Task<IPage<KeyItem>> GetKeysNextAsync(this IKeyVaultClient operations, string nextPageLi
 2596            {
 112597                using (var _result = await operations.GetKeysNextWithHttpMessagesAsync(nextPageLink, null, cancellationT
 2598                {
 112599                    return _result.Body;
 2600                }
 112601            }
 2602
 2603            /// <summary>
 2604            /// Lists the deleted keys in the specified vault.
 2605            /// </summary>
 2606            /// <remarks>
 2607            /// Retrieves a list of the keys in the Key Vault as JSON Web Key structures
 2608            /// that contain the public part of a deleted key. This operation includes
 2609            /// deletion-specific information. The Get Deleted Keys operation is applicable
 2610            /// for vaults enabled for soft-delete. While the operation can be invoked on
 2611            /// any vault, it will return an error if invoked on a non soft-delete enabled
 2612            /// vault. This operation requires the keys/list permission.
 2613            /// </remarks>
 2614            /// <param name='operations'>
 2615            /// The operations group for this extension method.
 2616            /// </param>
 2617            /// <param name='nextPageLink'>
 2618            /// The NextLink from the previous successful call to List operation.
 2619            /// </param>
 2620            /// <param name='cancellationToken'>
 2621            /// The cancellation token.
 2622            /// </param>
 2623            public static async Task<IPage<DeletedKeyItem>> GetDeletedKeysNextAsync(this IKeyVaultClient operations, str
 2624            {
 282625                using (var _result = await operations.GetDeletedKeysNextWithHttpMessagesAsync(nextPageLink, null, cancel
 2626                {
 282627                    return _result.Body;
 2628                }
 282629            }
 2630
 2631            /// <summary>
 2632            /// List secrets in a specified key vault.
 2633            /// </summary>
 2634            /// <remarks>
 2635            /// The Get Secrets operation is applicable to the entire vault. However, only
 2636            /// the base secret identifier and its attributes are provided in the response.
 2637            /// Individual secret versions are not listed in the response. This operation
 2638            /// requires the secrets/list permission.
 2639            /// </remarks>
 2640            /// <param name='operations'>
 2641            /// The operations group for this extension method.
 2642            /// </param>
 2643            /// <param name='nextPageLink'>
 2644            /// The NextLink from the previous successful call to List operation.
 2645            /// </param>
 2646            /// <param name='cancellationToken'>
 2647            /// The cancellation token.
 2648            /// </param>
 2649            public static async Task<IPage<SecretItem>> GetSecretsNextAsync(this IKeyVaultClient operations, string next
 2650            {
 52651                using (var _result = await operations.GetSecretsNextWithHttpMessagesAsync(nextPageLink, null, cancellati
 2652                {
 52653                    return _result.Body;
 2654                }
 52655            }
 2656
 2657            /// <summary>
 2658            /// List all versions of the specified secret.
 2659            /// </summary>
 2660            /// <remarks>
 2661            /// The full secret identifier and attributes are provided in the response. No
 2662            /// values are returned for the secrets. This operations requires the
 2663            /// secrets/list permission.
 2664            /// </remarks>
 2665            /// <param name='operations'>
 2666            /// The operations group for this extension method.
 2667            /// </param>
 2668            /// <param name='nextPageLink'>
 2669            /// The NextLink from the previous successful call to List operation.
 2670            /// </param>
 2671            /// <param name='cancellationToken'>
 2672            /// The cancellation token.
 2673            /// </param>
 2674            public static async Task<IPage<SecretItem>> GetSecretVersionsNextAsync(this IKeyVaultClient operations, stri
 2675            {
 52676                using (var _result = await operations.GetSecretVersionsNextWithHttpMessagesAsync(nextPageLink, null, can
 2677                {
 52678                    return _result.Body;
 2679                }
 52680            }
 2681
 2682            /// <summary>
 2683            /// Lists deleted secrets for the specified vault.
 2684            /// </summary>
 2685            /// <remarks>
 2686            /// The Get Deleted Secrets operation returns the secrets that have been
 2687            /// deleted for a vault enabled for soft-delete. This operation requires the
 2688            /// secrets/list permission.
 2689            /// </remarks>
 2690            /// <param name='operations'>
 2691            /// The operations group for this extension method.
 2692            /// </param>
 2693            /// <param name='nextPageLink'>
 2694            /// The NextLink from the previous successful call to List operation.
 2695            /// </param>
 2696            /// <param name='cancellationToken'>
 2697            /// The cancellation token.
 2698            /// </param>
 2699            public static async Task<IPage<DeletedSecretItem>> GetDeletedSecretsNextAsync(this IKeyVaultClient operation
 2700            {
 272701                using (var _result = await operations.GetDeletedSecretsNextWithHttpMessagesAsync(nextPageLink, null, can
 2702                {
 272703                    return _result.Body;
 2704                }
 272705            }
 2706
 2707            /// <summary>
 2708            /// List certificates in a specified key vault
 2709            /// </summary>
 2710            /// <remarks>
 2711            /// The GetCertificates operation returns the set of certificates resources in
 2712            /// the specified key vault. This operation requires the certificates/list
 2713            /// permission.
 2714            /// </remarks>
 2715            /// <param name='operations'>
 2716            /// The operations group for this extension method.
 2717            /// </param>
 2718            /// <param name='nextPageLink'>
 2719            /// The NextLink from the previous successful call to List operation.
 2720            /// </param>
 2721            /// <param name='cancellationToken'>
 2722            /// The cancellation token.
 2723            /// </param>
 2724            public static async Task<IPage<CertificateItem>> GetCertificatesNextAsync(this IKeyVaultClient operations, s
 2725            {
 02726                using (var _result = await operations.GetCertificatesNextWithHttpMessagesAsync(nextPageLink, null, cance
 2727                {
 02728                    return _result.Body;
 2729                }
 02730            }
 2731
 2732            /// <summary>
 2733            /// List certificate issuers for a specified key vault.
 2734            /// </summary>
 2735            /// <remarks>
 2736            /// The GetCertificateIssuers operation returns the set of certificate issuer
 2737            /// resources in the specified key vault. This operation requires the
 2738            /// certificates/manageissuers/getissuers permission.
 2739            /// </remarks>
 2740            /// <param name='operations'>
 2741            /// The operations group for this extension method.
 2742            /// </param>
 2743            /// <param name='nextPageLink'>
 2744            /// The NextLink from the previous successful call to List operation.
 2745            /// </param>
 2746            /// <param name='cancellationToken'>
 2747            /// The cancellation token.
 2748            /// </param>
 2749            public static async Task<IPage<CertificateIssuerItem>> GetCertificateIssuersNextAsync(this IKeyVaultClient o
 2750            {
 02751                using (var _result = await operations.GetCertificateIssuersNextWithHttpMessagesAsync(nextPageLink, null,
 2752                {
 02753                    return _result.Body;
 2754                }
 02755            }
 2756
 2757            /// <summary>
 2758            /// List the versions of a certificate.
 2759            /// </summary>
 2760            /// <remarks>
 2761            /// The GetCertificateVersions operation returns the versions of a certificate
 2762            /// in the specified key vault. This operation requires the certificates/list
 2763            /// permission.
 2764            /// </remarks>
 2765            /// <param name='operations'>
 2766            /// The operations group for this extension method.
 2767            /// </param>
 2768            /// <param name='nextPageLink'>
 2769            /// The NextLink from the previous successful call to List operation.
 2770            /// </param>
 2771            /// <param name='cancellationToken'>
 2772            /// The cancellation token.
 2773            /// </param>
 2774            public static async Task<IPage<CertificateItem>> GetCertificateVersionsNextAsync(this IKeyVaultClient operat
 2775            {
 02776                using (var _result = await operations.GetCertificateVersionsNextWithHttpMessagesAsync(nextPageLink, null
 2777                {
 02778                    return _result.Body;
 2779                }
 02780            }
 2781
 2782            /// <summary>
 2783            /// Lists the deleted certificates in the specified vault currently available
 2784            /// for recovery.
 2785            /// </summary>
 2786            /// <remarks>
 2787            /// The GetDeletedCertificates operation retrieves the certificates in the
 2788            /// current vault which are in a deleted state and ready for recovery or
 2789            /// purging. This operation includes deletion-specific information. This
 2790            /// operation requires the certificates/get/list permission. This operation can
 2791            /// only be enabled on soft-delete enabled vaults.
 2792            /// </remarks>
 2793            /// <param name='operations'>
 2794            /// The operations group for this extension method.
 2795            /// </param>
 2796            /// <param name='nextPageLink'>
 2797            /// The NextLink from the previous successful call to List operation.
 2798            /// </param>
 2799            /// <param name='cancellationToken'>
 2800            /// The cancellation token.
 2801            /// </param>
 2802            public static async Task<IPage<DeletedCertificateItem>> GetDeletedCertificatesNextAsync(this IKeyVaultClient
 2803            {
 32804                using (var _result = await operations.GetDeletedCertificatesNextWithHttpMessagesAsync(nextPageLink, null
 2805                {
 32806                    return _result.Body;
 2807                }
 32808            }
 2809
 2810            /// <summary>
 2811            /// List storage accounts managed by the specified key vault. This operation
 2812            /// requires the storage/list permission.
 2813            /// </summary>
 2814            /// <param name='operations'>
 2815            /// The operations group for this extension method.
 2816            /// </param>
 2817            /// <param name='nextPageLink'>
 2818            /// The NextLink from the previous successful call to List operation.
 2819            /// </param>
 2820            /// <param name='cancellationToken'>
 2821            /// The cancellation token.
 2822            /// </param>
 2823            public static async Task<IPage<StorageAccountItem>> GetStorageAccountsNextAsync(this IKeyVaultClient operati
 2824            {
 02825                using (var _result = await operations.GetStorageAccountsNextWithHttpMessagesAsync(nextPageLink, null, ca
 2826                {
 02827                    return _result.Body;
 2828                }
 02829            }
 2830
 2831            /// <summary>
 2832            /// Lists deleted storage accounts for the specified vault.
 2833            /// </summary>
 2834            /// <remarks>
 2835            /// The Get Deleted Storage Accounts operation returns the storage accounts
 2836            /// that have been deleted for a vault enabled for soft-delete. This operation
 2837            /// requires the storage/list permission.
 2838            /// </remarks>
 2839            /// <param name='operations'>
 2840            /// The operations group for this extension method.
 2841            /// </param>
 2842            /// <param name='nextPageLink'>
 2843            /// The NextLink from the previous successful call to List operation.
 2844            /// </param>
 2845            /// <param name='cancellationToken'>
 2846            /// The cancellation token.
 2847            /// </param>
 2848            public static async Task<IPage<DeletedStorageAccountItem>> GetDeletedStorageAccountsNextAsync(this IKeyVault
 2849            {
 02850                using (var _result = await operations.GetDeletedStorageAccountsNextWithHttpMessagesAsync(nextPageLink, n
 2851                {
 02852                    return _result.Body;
 2853                }
 02854            }
 2855
 2856            /// <summary>
 2857            /// List storage SAS definitions for the given storage account. This operation
 2858            /// requires the storage/listsas permission.
 2859            /// </summary>
 2860            /// <param name='operations'>
 2861            /// The operations group for this extension method.
 2862            /// </param>
 2863            /// <param name='nextPageLink'>
 2864            /// The NextLink from the previous successful call to List operation.
 2865            /// </param>
 2866            /// <param name='cancellationToken'>
 2867            /// The cancellation token.
 2868            /// </param>
 2869            public static async Task<IPage<SasDefinitionItem>> GetSasDefinitionsNextAsync(this IKeyVaultClient operation
 2870            {
 02871                using (var _result = await operations.GetSasDefinitionsNextWithHttpMessagesAsync(nextPageLink, null, can
 2872                {
 02873                    return _result.Body;
 2874                }
 02875            }
 2876
 2877            /// <summary>
 2878            /// Lists deleted SAS definitions for the specified vault and storage account.
 2879            /// </summary>
 2880            /// <remarks>
 2881            /// The Get Deleted Sas Definitions operation returns the SAS definitions that
 2882            /// have been deleted for a vault enabled for soft-delete. This operation
 2883            /// requires the storage/listsas permission.
 2884            /// </remarks>
 2885            /// <param name='operations'>
 2886            /// The operations group for this extension method.
 2887            /// </param>
 2888            /// <param name='nextPageLink'>
 2889            /// The NextLink from the previous successful call to List operation.
 2890            /// </param>
 2891            /// <param name='cancellationToken'>
 2892            /// The cancellation token.
 2893            /// </param>
 2894            public static async Task<IPage<DeletedSasDefinitionItem>> GetDeletedSasDefinitionsNextAsync(this IKeyVaultCl
 2895            {
 02896                using (var _result = await operations.GetDeletedSasDefinitionsNextWithHttpMessagesAsync(nextPageLink, nu
 2897                {
 02898                    return _result.Body;
 2899                }
 02900            }
 2901
 2902    }
 2903}

Methods/Properties

EncryptAsync()
DecryptAsync()
CreateKeyAsync()
SignAsync()
ImportKeyAsync()
VerifyAsync()
DeleteKeyAsync()
WrapKeyAsync()
UnwrapKeyAsync()
UpdateKeyAsync()
GetKeyAsync()
GetKeyAsync()
GetKeyAsync()
GetKeyVersionsAsync()
UpdateKeyAsync()
UpdateKeyAsync()
GetKeysAsync()
CreateKeyAsync()
BackupKeyAsync()
ImportKeyAsync()
GetSecretAsync()
RestoreKeyAsync()
GetSecretAsync()
UpdateSecretAsync()
EncryptAsync()
RecoverDeletedSecretAsync()
RecoverDeletedKeyAsync()
DecryptAsync()
RecoverDeletedCertificateAsync()
PurgeDeletedSecretAsync()
SignAsync()
PurgeDeletedKeyAsync()
PurgeDeletedCertificateAsync()
VerifyAsync()
GetCertificateAsync()
GetCertificateAsync()
WrapKeyAsync()
UpdateCertificateAsync()
ImportCertificateAsync()
UnwrapKeyAsync()
MergeCertificateAsync()
GetDeletedKeysAsync()
GetPendingCertificateSigningRequestAsync()
GetDeletedKeyAsync()
CreateKeyAsync()
ImportKeyAsync()
DeleteKeyAsync()
UpdateKeyAsync()
GetKeyAsync()
GetKeyVersionsAsync()
GetKeysAsync()
BackupKeyAsync()
RestoreKeyAsync()
EncryptAsync()
DecryptAsync()
SignAsync()
VerifyAsync()
WrapKeyAsync()
UnwrapKeyAsync()
GetDeletedKeysAsync()
GetDeletedKeyAsync()
PurgeDeletedKeyAsync()
RecoverDeletedKeyAsync()
SetSecretAsync()
DeleteSecretAsync()
UpdateSecretAsync()
GetSecretAsync()
GetSecretsAsync()
GetSecretVersionsAsync()
GetDeletedSecretsAsync()
GetDeletedSecretAsync()
PurgeDeletedSecretAsync()
RecoverDeletedSecretAsync()
BackupSecretAsync()
RestoreSecretAsync()
GetCertificatesAsync()
DeleteCertificateAsync()
SetCertificateContactsAsync()
GetCertificateContactsAsync()
DeleteCertificateContactsAsync()
GetCertificateIssuersAsync()
SetCertificateIssuerAsync()
UpdateCertificateIssuerAsync()
GetCertificateIssuerAsync()
DeleteCertificateIssuerAsync()
CreateCertificateAsync()
ImportCertificateAsync()
GetCertificateVersionsAsync()
GetCertificatePolicyAsync()
UpdateCertificatePolicyAsync()
UpdateCertificateAsync()
GetCertificateAsync()
UpdateCertificateOperationAsync()
GetCertificateOperationAsync()
DeleteCertificateOperationAsync()
MergeCertificateAsync()
BackupCertificateAsync()
RestoreCertificateAsync()
GetDeletedCertificatesAsync()
GetDeletedCertificateAsync()
PurgeDeletedCertificateAsync()
RecoverDeletedCertificateAsync()
GetStorageAccountsAsync()
GetDeletedStorageAccountsAsync()
GetDeletedStorageAccountAsync()
PurgeDeletedStorageAccountAsync()
RecoverDeletedStorageAccountAsync()
BackupStorageAccountAsync()
RestoreStorageAccountAsync()
DeleteStorageAccountAsync()
GetStorageAccountAsync()
SetStorageAccountAsync()
UpdateStorageAccountAsync()
RegenerateStorageAccountKeyAsync()
GetSasDefinitionsAsync()
GetDeletedSasDefinitionsAsync()
GetDeletedSasDefinitionAsync()
RecoverDeletedSasDefinitionAsync()
DeleteSasDefinitionAsync()
GetSasDefinitionAsync()
SetSasDefinitionAsync()
UpdateSasDefinitionAsync()
GetKeyVersionsNextAsync()
GetKeysNextAsync()
GetDeletedKeysNextAsync()
GetSecretsNextAsync()
GetSecretVersionsNextAsync()
GetDeletedSecretsNextAsync()
GetCertificatesNextAsync()
GetCertificateIssuersNextAsync()
GetCertificateVersionsNextAsync()
GetDeletedCertificatesNextAsync()
GetStorageAccountsNextAsync()
GetDeletedStorageAccountsNextAsync()
GetSasDefinitionsNextAsync()
GetDeletedSasDefinitionsNextAsync()