diff --git a/src/KeyVault/Microsoft.Azure.KeyVault.Extensions.Tests/Tests/KeyVaultKeyResolverTests.cs b/src/KeyVault/Microsoft.Azure.KeyVault.Extensions.Tests/Tests/KeyVaultKeyResolverTests.cs index 32a4fb3fbdb7..cf5e05a555cf 100644 --- a/src/KeyVault/Microsoft.Azure.KeyVault.Extensions.Tests/Tests/KeyVaultKeyResolverTests.cs +++ b/src/KeyVault/Microsoft.Azure.KeyVault.Extensions.Tests/Tests/KeyVaultKeyResolverTests.cs @@ -53,12 +53,19 @@ private KeyVaultClient GetKeyVaultClient() HttpMockServer.Variables["VaultAddress"] = _vaultAddress; HttpMockServer.Variables["KeyName"] = _keyName; HttpMockServer.Variables["KeyVersion"] = _keyVersion; + HttpMockServer.Variables[ "SoftDeleteEnabled" ] = _softDeleteEnabled.ToString( ); } else { _vaultAddress = HttpMockServer.Variables["VaultAddress"]; _keyName = HttpMockServer.Variables["KeyName"]; _keyVersion = HttpMockServer.Variables["KeyVersion"]; + + string softDeleteSetting = String.Empty; + if ( HttpMockServer.Variables.TryGetValue( "SoftDeleteEnabled", out softDeleteSetting ) ) + { + Boolean.TryParse( softDeleteSetting, out _softDeleteEnabled ); + } } _keyIdentifier = new KeyIdentifier(_vaultAddress, _keyName, _keyVersion); return fixture.CreateKeyVaultClient(); diff --git a/src/KeyVault/Microsoft.Azure.KeyVault.TestFramework/KeyVaultTestFixture.cs b/src/KeyVault/Microsoft.Azure.KeyVault.TestFramework/KeyVaultTestFixture.cs index 15830252c5a0..94eddc42bea7 100644 --- a/src/KeyVault/Microsoft.Azure.KeyVault.TestFramework/KeyVaultTestFixture.cs +++ b/src/KeyVault/Microsoft.Azure.KeyVault.TestFramework/KeyVaultTestFixture.cs @@ -56,7 +56,7 @@ public KeyVaultTestFixture() retryExecutor = new RetryPolicy(new ExponentialBackoffRetryStrategy(8, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(60), TimeSpan.FromSeconds(5))); } else { - retryExecutor = new RetryPolicy(new FixedIntervalRetryStrategy(0)); + retryExecutor = new RetryPolicy( new FixedIntervalRetryStrategy( 5, TimeSpan.FromSeconds( 5.0 ) ) ); } } diff --git a/src/KeyVault/Microsoft.Azure.KeyVault.Tests/KeyVaultOperationsTest.cs b/src/KeyVault/Microsoft.Azure.KeyVault.Tests/KeyVaultOperationsTest.cs index 36bf5911ae19..b3af905782d2 100644 --- a/src/KeyVault/Microsoft.Azure.KeyVault.Tests/KeyVaultOperationsTest.cs +++ b/src/KeyVault/Microsoft.Azure.KeyVault.Tests/KeyVaultOperationsTest.cs @@ -52,12 +52,19 @@ private void Initialize() HttpMockServer.Variables["VaultAddress"] = _vaultAddress; HttpMockServer.Variables["KeyName"] = _keyName; HttpMockServer.Variables["KeyVersion"] = _keyVersion; + HttpMockServer.Variables[ "SoftDeleteEnabled" ] = _softDeleteEnabled.ToString( ); } else { _vaultAddress = HttpMockServer.Variables["VaultAddress"]; _keyName = HttpMockServer.Variables["KeyName"]; _keyVersion = HttpMockServer.Variables["KeyVersion"]; + + string softDeleteSetting = String.Empty; + if ( HttpMockServer.Variables.TryGetValue( "SoftDeleteEnabled", out softDeleteSetting ) ) + { + Boolean.TryParse( softDeleteSetting, out _softDeleteEnabled ); + } } } @@ -474,14 +481,14 @@ public void KeyVaultUpdateKeyAttributesWithNoChangeTest() } [Fact] - public void KeyVaultBackupRestoreTest() + public void KeyVaultKeyBackupRestoreTest() { using (MockContext context = MockContext.Start(this.GetType().FullName)) { var client = GetKeyVaultClient(); - var keyName = "BackupRestoreTest"; + var keyName = "KeyBackupRestoreTest"; var attribute = new KeyAttributes() { @@ -532,6 +539,64 @@ public void KeyVaultBackupRestoreTest() } } + [Fact] + public void KeyVaultSecretBackupRestoreTest( ) + { + using ( MockContext context = MockContext.Start( this.GetType( ).FullName ) ) + { + + var client = GetKeyVaultClient(); + + var name = "SecretBackupRestoreTest"; + + var attributes = new SecretAttributes() + { + Enabled = true, + Expires = new DateTime(2030, 1, 1).ToUniversalTime(), + NotBefore = new DateTime(2010, 1, 1).ToUniversalTime() + }; + + var created = client.SetSecretAsync(_vaultAddress, name, "if found please return to secretbackuprestoretest", tags: null, contentType: "text", secretAttributes: attributes ) + .GetAwaiter() + .GetResult(); + + try + { + // Backup the secret + var backupResponse = client.BackupSecretAsync(_vaultAddress, name).GetAwaiter().GetResult(); + + client.DeleteSecretAsync( _vaultAddress, name ).Wait( ); + + if ( _softDeleteEnabled ) + { + this.fixture.WaitOnDeletedSecret( client, _vaultAddress, name ); + + client.PurgeDeletedSecretAsync( _vaultAddress, name ).Wait( ); + } + + // Restore the backedup secret + var restoredDeletedSecret = + this.fixture.retryExecutor.ExecuteAction(() => client.RestoreSecretAsync(_vaultAddress, backupResponse.Value).GetAwaiter().GetResult()); + + VerifySecretAttributesAreEqual( restoredDeletedSecret.Attributes, created.Attributes ); + Assert.Equal( created.Id, restoredDeletedSecret.Id ); + } + finally + { + this.fixture.WaitOnSecret( client, _vaultAddress, name ); + + client.DeleteSecretAsync( _vaultAddress, name ).Wait( ); + + if ( _softDeleteEnabled ) + { + this.fixture.WaitOnDeletedSecret( client, _vaultAddress, name ); + + client.PurgeDeletedSecretAsync( _vaultAddress, name ).Wait( ); + } + } + } + } + [Fact] public void KeyVaultListKeysTest() { @@ -642,12 +707,13 @@ public void KeyVaultListKeyVersionsTest() [Fact] public void KeyVaultGetDeletedKeyTest() { - if (!_softDeleteEnabled) return; - using (MockContext context = MockContext.Start(this.GetType().FullName)) { var client = GetKeyVaultClient(); + // settings may not be loaded until the client is fully initialized + if ( !_softDeleteEnabled ) return; + var keyName = "GetDeletedKeyTest"; var attributes = new KeyAttributes(); var tags = new Dictionary() { { "purpose", "unit test" }, { "test name ", "GetDeletedKeyTest" } }; @@ -677,13 +743,13 @@ public void KeyVaultGetDeletedKeyTest() [Fact] public void KeyVaultKeyCreateDeleteRecoverPurgeTest() { - if (!_softDeleteEnabled) return; - using (MockContext context = MockContext.Start(this.GetType().FullName)) { - var client = GetKeyVaultClient(); + // settings may not be loaded until the client is fully initialized + if ( !_softDeleteEnabled ) return; + var keyName = "CreateDeleteRecoverPurgeTest"; var attributes = new KeyAttributes(); var tags = new Dictionary() { { "purpose", "unit test" }, { "test name ", "CreateDeleteRecoverPurgeTest" } }; @@ -766,11 +832,13 @@ public void KeyVaultKeyCreateDeleteRecoverPurgeTest() [Fact] public void KeyVaultListDeletedKeysTest() { - if (!_softDeleteEnabled) return; - using (MockContext context = MockContext.Start(this.GetType().FullName)) { var client = GetKeyVaultClient(); + + // settings may not be loaded until the client is fully initialized + if ( !_softDeleteEnabled ) return; + string keyNamePrefix = "listdeletedkeytest"; int numKeys = 3; int maxResults = 1; @@ -1129,12 +1197,13 @@ public void KeyVaultTestSecretExtendedAttributes() [Fact] public void KeyVaultGetDeletedSecretTest() { - if (!_softDeleteEnabled) return; - using (MockContext context = MockContext.Start(this.GetType().FullName)) { var client = GetKeyVaultClient(); + // settings may not be loaded until the client is fully initialized + if ( !_softDeleteEnabled ) return; + var secretName = "GetDeletedSecretTest"; var secretValue = "mysecretvalue"; var secretOlder = client.SetSecretAsync(_vaultAddress, secretName, secretValue).GetAwaiter().GetResult(); @@ -1162,13 +1231,13 @@ public void KeyVaultGetDeletedSecretTest() [Fact] public void KeyVaultSecretCreateDeleteRecoverPurgeTest() { - if (!_softDeleteEnabled) return; - using (MockContext context = MockContext.Start(this.GetType().FullName)) { - var client = GetKeyVaultClient(); + // settings may not be loaded until the client is fully initialized + if ( !_softDeleteEnabled ) return; + string secretName = "SecretCreateDeleteRecoverPurgeTest"; string originalSecretValue = "mysecretvalue"; @@ -1254,12 +1323,13 @@ public void KeyVaultSecretCreateDeleteRecoverPurgeTest() [Fact] public void KeyVaultListDeletedSecretsTest() { - if (!_softDeleteEnabled) return; - using (MockContext context = MockContext.Start(this.GetType().FullName)) { var client = GetKeyVaultClient(); + // settings may not be loaded until the client is fully initialized + if ( !_softDeleteEnabled ) return; + int numSecrets = 3; int maxResults = 1; @@ -2840,6 +2910,13 @@ private void VerifyKeyAttributesAreEqual(KeyAttributes keyAttribute1, KeyAttribu Assert.Equal(keyAttribute1.Enabled ?? true, keyAttribute2.Enabled ?? true); } + private void VerifySecretAttributesAreEqual( SecretAttributes leftAttributes, SecretAttributes rightAttributes ) + { + Assert.Equal( leftAttributes.Expires, rightAttributes.Expires ); + Assert.Equal( leftAttributes.NotBefore, rightAttributes.NotBefore ); + Assert.Equal( leftAttributes.Enabled ?? true, rightAttributes.Enabled ?? true ); + } + private void VerifyKeyOperationsAreEqual(IList firstOperations, IList secondOperations) { Assert.False(firstOperations == null && secondOperations != null); diff --git a/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultBackupRestoreTest.json b/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultBackupRestoreTest.json deleted file mode 100644 index 3626b3bdf558..000000000000 --- a/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultBackupRestoreTest.json +++ /dev/null @@ -1,406 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "//keys/BackupRestoreTest/create?api-version=2016-10-01", - "EncodedRequestUri": "Ly9rZXlzL0JhY2t1cFJlc3RvcmVUZXN0L2NyZWF0ZT9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", - "RequestMethod": "POST", - "RequestBody": "{\r\n \"kty\": \"RSA\",\r\n \"key_size\": 2048,\r\n \"key_ops\": [\r\n \"encrypt\",\r\n \"decrypt\",\r\n \"sign\",\r\n \"verify\",\r\n \"wrapKey\",\r\n \"unwrapKey\"\r\n ],\r\n \"attributes\": {\r\n \"enabled\": false,\r\n \"nbf\": 1262332800,\r\n \"exp\": 1893484800\r\n }\r\n}", - "RequestHeaders": { - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Content-Length": [ - "251" - ], - "x-ms-client-request-id": [ - "d6a61411-869f-4ab3-a2ac-bef3385bfbb2" - ], - "accept-language": [ - "en-US" - ], - "User-Agent": [ - "FxVersion/4.6.24709.01", - "Microsoft.Azure.KeyVault.KeyVaultClient/2.0.6" - ] - }, - "ResponseBody": "{\r\n \"key\": {\r\n \"kid\": \"https://testvault1021.vault.azure.net/keys/BackupRestoreTest/de83072dee6d4f7886947b6776e66d1a\",\r\n \"kty\": \"RSA\",\r\n \"key_ops\": [\r\n \"encrypt\",\r\n \"decrypt\",\r\n \"sign\",\r\n \"verify\",\r\n \"wrapKey\",\r\n \"unwrapKey\"\r\n ],\r\n \"n\": \"qIJMru9B0l7lPVzdxoYXMnRmKZnodMkXRoBTTmUSgeV3FWZcEnOQ_OKrP1UJJF2nrhYU3ExcAqf8Z86flgSMhQrlSIe1V49r8psggNHgtWrI_gCNs0HOp4JPlwaCTp1i1GscnKAYXoDuEg7a3X5yAW7bwYxV_UQREOodFz9QYpMjt4nvKHLajGO6h2jJ5W71fXMUpsuhAR3BL9GFfBq6uJmdl-MwOZZanQGqcqZMt5gThUXS2g_7Xnm7aiKtEaztXlr3S9LLfA791sZW5lWv5WaHcVilKybBVfR0Y0urCEC9GykfE3Epkm0boKRj6BudaBMk0t-VWNRgCP2sXySP5w\",\r\n \"e\": \"AQAB\"\r\n },\r\n \"attributes\": {\r\n \"enabled\": false,\r\n \"nbf\": 1262332800,\r\n \"exp\": 1893484800,\r\n \"created\": 1483991568,\r\n \"updated\": 1483991568\r\n }\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "660" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Cache-Control": [ - "no-cache" - ], - "Date": [ - "Mon, 09 Jan 2017 19:52:48 GMT" - ], - "Pragma": [ - "no-cache" - ], - "Server": [ - "Microsoft-IIS/8.5" - ], - "x-ms-keyvault-region": [ - "eastus" - ], - "x-ms-request-id": [ - "c97d79f0-6dde-4564-bd48-e7849d2429e6" - ], - "x-ms-keyvault-service-version": [ - "1.0.0.793" - ], - "X-AspNet-Version": [ - "4.0.30319" - ], - "X-Powered-By": [ - "ASP.NET" - ], - "Strict-Transport-Security": [ - "max-age=31536000;includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "//keys/BackupRestoreTest/backup?api-version=2016-10-01", - "EncodedRequestUri": "Ly9rZXlzL0JhY2t1cFJlc3RvcmVUZXN0L2JhY2t1cD9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", - "RequestMethod": "POST", - "RequestBody": "", - "RequestHeaders": { - "x-ms-client-request-id": [ - "d6bd6eef-6724-40ec-bb36-6cf1b71f1811" - ], - "accept-language": [ - "en-US" - ], - "User-Agent": [ - "FxVersion/4.6.24709.01", - "Microsoft.Azure.KeyVault.KeyVaultClient/2.0.6" - ] - }, - "ResponseBody": "{\r\n \"value\": \"JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUkwTXpnMVlqQTNZaTFrTlRRM0xUUXlaVFV0WVdVNVpTMDJNVEJrWXpNNVpHWmhaamdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLkg3Q2dzYktfejRVMExDOEFtRXJyamtvOTZlcUpmX1U2R252b2hrTGdUMllXdWQ1dFlVSnlmQWlMbDZ1Y2VVc28wX29xc3N0TktzT3dYZU9nX3FVWUQtV194aDlkOFR5RE9iZ0k0eWxROEg0bXd2TU95cGlOSzJoQUtSQ1JzUFpTVWlESGJLa3lPSEI1bGFscVZyV3IwQUhoX3RGQ3pUTWE5ejVHd2E1My1HbWxid3VYLUhvZG5LNkJncVVWUWktdFlhRjc1UlJXZHBaZGg3Ti1naHBCWG4wVDhaWlRDN0ZscDJaNnE1RlotYjNxQll2RWhPVjlwUVFtTXVHSTBNQl9vRzFQSWY2MXhIN2VlbDZkSWVtRGZobHpvMlJSSGdUVFFJWFBfSFQtZnQ5T0pXdkh1MUhUNE41ZURrUnY0ZFFfbzg1MWRpZFRxdVZhV2FNTTJYd2pzZy42N0w1a0ZSdXU3MDdHbHpiaTNMV1RRLmZSb194T0hiVVMtbTlaRnNVVkpyTFpCaTg1eGxFX1JDMHBQRy1ZdXZyN3Q4TVctN1JBd0NkTldDazVpT1VMaXZpWlRORktfQUxTeFJTLVY4U1c2SDMzY0FuUWNKdUhnZTRFaGxyYklfQkZqWE5LdUlsTkNhS1Fpc2lVdkx4RGpTQkpFaGpxNHBVTUl1anROMVFqSVk1aDB1aHN5LW94WnVULXgtX2RuU2F6dkwtWGF5RWZieTM1dU9Wb1JfWFNoUU1DeEY1MEF2aS1FZE1IbWJwdmd3aXlIYVpkLXR6SGtyOXg1cXo2TlV6TG15SVZyX1d3RUNaUkZLM1RILU1nZ05zd1Q4SHNiRGxlN0txU1JkNVk5Z2RzNUxGUVFWN2pfMGpob0pjb3BnOEFyNFM2by1FMVZDQ296azU2bDdreHNvTU40blRGd2ZKVElzTUg5QU5QdXlMM0RLalZuOXAxc2lzRER4ZktSb2lYZTdMVC1vT1Q3QmM0dU4zOFZiSVdIaktMLUxVSjBzYTBKM2ZXRllKUTVWMUgyU3JPNkNrQWQ3akMtcmpsSFpsUWIwLWNvcDU2T3EyRXR6YU40Vi05REQ2LTNya0ZfcUxsekpDUG1kZm5jU211eG9FZmJDcnFuQTN0c044XzZMUTJpUHdLTE5HWnpCMUFaRGlaeWtYTDA2RUdwZUVPMWJzTFd6Y3ozaEV4TVVNejlRZDdCWnEwT1RtMG5hZ0k0S3hpaXdNRUtfcU14RlZGSGhtZTNNcEJnaE50NnhJT2lCSTlOdnhUd2M2MTV3VEtXT0tmZVZfNkhtcndjMmJLellwOVJoM09xM3dYWUtnbzFyTVJCdnpJQ3BhZ0FGSEFrek1wRlNxZ25lbnRKQV9rRnNRWWVfdHVsODNUN0FhZ2Q4eF9nTE1COEdyc1ExLURvcTVIWjJRM3hHaUUtS3hRRkRYYnVEWkhBbzR0VC1ZWjR5b0c1SE91OEVSZGRUcllJVHJMVW9lMlB4a0FQSXR0ejREZVduRU4tYmp5QUdnOVpPUG9Md3JZS1V4eTVYU2FFTHRhM2o4RTV6UTU0eXg5TmY5UGlPMTFFWi1DVW9DVlpyenRZNXRWaUFHOUdVWGhEdTdEZjZUbTk4YXZaRGMyOFl2VHpaaGNfaVY2Tk1JUUVmYkI1dEVJb3JYRE5LdkVLWW45akFGRTc2MldQejJ0VUNDMExZcjgzbXZzcEtja1dReE9IR2ZBcUNSZWFxa3EtN3U5QU9zVzVxRnhFa2FoZTlwWjZ5ZzJaaTBmUW9uVkNrcFZIdDhGWGFhWWcwb05aMTNvRk1MbWY3ZnBlVG5Ta3VVdmZScVJKcjVTS09vX0czdG12bkc1V2dtaDVRSEJPcnYxb0QyekhUSF9sTnBXQ0JVZnRGYS1HY1BhUkdlYk1OMm9NY1ZJUUNzSDdwVHVwTHJkdEphRVQ2aHNxYm5QeTJPWlo1OXRkaE9yb3A5TEdEMDJSckRpR3VFTDBpYmZ4aThLOVpaQlk3cnRJeEo0N1hpWlBpejFrbWM0eWRsdFZtaUdWVGExbFV5ZlFTeWphcE1pckY4YUxFUHk4amxXTjZ6ell4aHd6dUQtMWhKbFVWX3ZjV3dBcDJvQXNLTXA5NnZJRmxhQmp4bVN2TXdUckhHcDlOeldnOHo3WWJrUDh2SWl6anZ5eGNfVnNGRDFNODFVS284RHhwTDFVeVItY3RCWHg0aTJJVDRBLXVkeWtYcURiN0o5X2RUOGFfeFl4NHJ3ZngyTHI1cHpjbS1RNGl0U3JHUVdfX3Z4cnVXWTZlOHRrM284UUZoemNtQzh6Smh0X25jb2c5UlAtR2s0Q3RDVEgxTWdXa1lpQ0NzMGdFUG9NOWU0MUtLak9IMUFRcERqTnRhMGpGZm03aFBRYU5odXpjaEJ2eHZLT3JhT1RCaGZLS2FjbkJJSVBQS0E3c2pqTFdza3lIM3FhNGo4ZFZBUUVQSEE0eWhZS1cxMGFJS2lCLTdoeXU3dEV0S1NkVDh5SXlKSzRfaXlzanFzTmZ4REZPMU5QbzVlVVlza1V0c1B2TXFNSGR2dWh6RWg3bEI4czVheFVjZjAzeThQd3Y2TVBHU1YxVXVIaGhsNURaSHRSdURJaThWMUJFcm9SMWZzRUlxTGZlRTZtRFRmdDl2UDFUOEJjTl9XQUM4djNYVGo5TWwxY05wZnFlQ3RQRVl0U3JCeFdpQ08wMVpYVEJVbm5LMGc5allrTVJWWGJCRkxPZUVGWVYwdkxpbUt4bmVvdjhNNTZZOVk3S3VHOE1LWlVVeXA1bjBpbTc2RXZLMXd4cVNGTFNzY0JIS3VPRzJfeF8wNE54U2x2ZXo0aGluNy1vUW9IOHhLOUpvR2Y2dVlLZFJBY201S0hZbGNPRkVscFk3ZUxPNmtBSFhvQ0RJSlpaXzF5dnlNV29GeHVlUjF2b28wU1BLWWc5V1gyczk0aVI5MWhvSkZfZ2tVSjN5eFdGQmVFVk9GQ0VINmdyWTN5X2pObzRIeTY1MnE1QlcxampkUHhCRXlkVVRUenhWeG5lOFV2Qk4ydUtBYkhyTXZkT2ZYcjNfa3FvSUg5RS1VLXNzVENpeUVIS185VWpMLTBEOUpkYmVyMl8zdlZVUmVWTTRaTWVFY3pucU8xRFJhYlJDVzQ5Uy1GaGFsT0t5bzNsVExMSlR2OXZpcjFnYVNFcU1ZNGYwN3ZXZmJtcTFWNDRYMFVmakhLYmpWYlZaYldjVmZpbVZGeEY4cl90blBVcnExZVUzM2hxNGJtVmlFQkZLOFZSZ1N2eTF3WXZRZHBVbFlTamgxTThVNlNOZVktRGFPOTA5SXJUQThzZmFOR3pOcTlLNkljaVgwWFhJMnEzeGw5RVhOWVByQWg4M1UxSXY1a0c3Tmx6eXZhMkxWLV9SUnVMUjF3YjJ5ZnhUTy1BSXZ1UUx3VnJqa2tmXy1uNVltc2t4aW8xRFp3ZzlPYzBYYzFjZGNOS1RBb1NTdlUwUV9zNWFWNi02QzE0cV93SjhzZXJtR05mUnlJVm9tb0tBZ3hVdTdTSkZCQjg4TWg0dEJJN25fa2x6UGVReXZjMU8wV2EzTlRfOFd6Q2I5YUdiZlQxYXhTaEY1RlZBMXRpTzNSdkNBZjBjM0VzLUQyc1BONHp5M09RNWRIY2xBV09VRGtHakliVFlzVnc2ajlCalo5V0txSTdXbk9aeXBXOWZjeTZIU0JwWDlwUHB0XzFya1RDbkxWTXdCU0htTXZTLVlTTVZjWVlSZjN0a2UzMFRIMjV2NUh5MVpwRnBWa1RkTm82WkhWNEROeWJNeHNWQzBlZmpCeFNCUFNUSjdoZmw1Wm1JLVJfd2RpbkZGUGY5WFE2ZlF3OW9oV1ZBVWhEZ1pBVVVleHV4MjZsYVUxYktrY2luMm15RE51M2U5aGtZSTVSOWxQclJCOFo2c3JkRmxiU0RPSVg1UENnVTVQYU1TZml1SmNnNmVfVC1Bd3pvRTJoZGVNaTZOVVpxSzA3S1gzOWJoRkp1b1NjVm5mNmpTdVpGbDlQSG5pZUJuZnVMV1F5cW9WTm9jdmpfV2pYZng0ZGVmcHQ4MzVDNkxpRVhaR2pFZTFiR3pJcnNXTW9ZeXVIcGoyRDFsM19rZi1pdEdPYkhlVm9NV3lJS2pLZnZBbFlMNmtUMmVjRFVhNEtKRnFCSmhnM3pKWkYwb2F2S2dKc0JDSkhXenV2RXR0T1F0R3hGQUozSmE4ZmdDNTA0cXJJYVlsVVdYaUdvcGxLNVI5bkZHdEFXQnV4MUpYYkhMNVVfUE00YUw4UmFKNVl3ZThyQkktby0zR1FITFFXX3RJS2xjQzdyUm5pZTgwSjFOTUNXVTVxejl2QWExbXhZQ2VVU2Y0VHlMcXk0eHpBNEp6VTlKWW5EWGxid1N4VE8wQUNKSUIteGVjN0lTWDdzS21SYmoxOE44X0ZJYnEzaTEtQTd6VWM3UExXd0pqWlFoS2p4ODdoUkN0djRmNzE0V2w2dDF0djhvczF6UkdTZURKMWgteHZ2dW44RUxadTdQeGJVZzBla0plRVhnX09tc3NPMzlXYUpNMHkxNVM2YTlIQ2xsZ3ctWjhqT1dzanQwVlhBOEhhNmpJOEROb2tiZTVTSXp0amRGQTV3Wkc1Y3BZbHN1b3R6YmlPbHFqSWNxSS1hZkcxMzFLSUdDbU02bC1QbnQzNUdqSHJkVzlnd3RUSkE4Q0FfdUdlRHJuUnlQWlVDX2luUlpycl9DRFcxN19nT0xOSnhuampKM0g1VTRzaDBoanZYVk1nY1BkdllFOXlFcU84Z0pYQWk0b1FRSUMtM2loYm9qYWtpblBNdjV1US05aG02XzdUVk1mTlFMejN6b09tT0l5emprQnpPV1RmUmpPSFhJRjgzYjYwaGNJWmhwVm85Y3ZvbWtzT2ktWTc0TjlOVUlDVUdvdmxNdldVSG1aYWJTNmd1VHRFczZSTm13akYyNzQ0cDhxTnNmMVJ0V2x0TEY3UXpwaS1XaW9WUm5tT0pqQVJ0Q29Wcy1BSjdvcVNnN0l3OEhYUVJDdXc1NXk0T1NWRW54Wm9NZ0tsdTNXVlBCUHN5NU5YODN1YTNwVjZwSzNKMDRMZE4zQk1WbWV6MkRDcUV0ZWdJT1J5WTljT0NZM1NtbUQtM3dEUzdXd3ZQSFp6U3JBbWt3X05CMUZLZkZDWkJ0T3liN2lCNDRkVDRxVjlVcHAybDEwcHJ0LVJxMjRwZlRaU0dqZFJ3MWJtcXJ2RGo0WjBiNWFCaHFYMVFCckoxZXdYSjIwcUJZekdLMERoLTRLUG9BcVBJSXVjc2lWLTV4YVI2TVFJVXVXbC1OS3VKZkZBamFsd2hYU2x5QXZycl9EUGFNWkhYOGxxd0VtdHBubmZPUGpiR1dNc1pLWW1LY3pGVGViaEVUb2V0R3FmWGQ0bXpQaGkyX240by1RTjU0YThvMFdJWWxwaE5kT0pNNGZ3ejdhZVMyMGFxYnZKc05iSi1BYVZ6VFJCc0tRSEZSMzhlcTk4aWNKc1hSd2FQcmpKTUtzbDlrT0ctZEFKNWZYR282eGlINUt2MUVWNGVya1FkTFRrLXhva1hlb3ZuNmx3QkNfMVF3MzJPUWNmQWh0UExFcDRaaHREdEVKWkZrTmxrRmlvZGFKNFBJa2lOdkdGMzlwVWNLNnlHeElIWThUejAyeC1pd2xhR2pPZU9CbkRzZjM4UVg1STNWTUczOE0zaDN6V3UzdUVYZnBkOVg0UlMybngxb3VTdEtrdFZFcjZuSHhSTmhNdTVMcFZ2bzBWa1JvS1ZIdkJaeWF3STI2Yno2RkdPaTgyUlMzU3Q5VXdsWkpndmI4X08xZmFIUlZhbEh0MHpJSDYxRlhNdXA4Wl9LanJ2Q0dYdEYxV2FWRlJMNjBOMFVBQVpSaFc1ejU4dmpsLU14RC1za2FhUlBlZzd3S0Y1QVB3RlBBb21KZy1NTzA3TW9ZajhLcDdVOE5Ybzg0dXQ5b0pDN0diYi1USndXbHQ5QllLN0d6Y2NhMU9VU1ZESlVkYk55Y3dwWGlieDNKdkljUTZwbHFVSlpzVW9mX2xySUtqZ1VGTjR5ajdzSlJmdUNZZmdHSU5yLWRTNXRqTEpucWZpRjBHUk56MEZZU3lfNmtTdFJEa3pwQ09Xam1LNDhZaHhLa3dUSktFVG9GNXp2T2o5WDRHX0t1YmFFZ0p2dDlwNkZvWkRVTEhlVTRHdFVTRnRyRVdNVGFRT3FPeWJDSHA2NGxydXdQSFJuN2k0VjJaa1lFa1p3WUw5dGRQMzFicEdOSkhGVlJjYU1fYlpFZnpCVTdaVzFfMktUQVY5ZWFza085TUpGZTlraVg2X2xydVNMQWlXMjFmUEhfZEZWR0VLeVozOE1DS1dKZHIwZDRGanBkWUhyYXU3bFJ0bUdjSWtTcWZ4NXhCdkR1dERmdXFkM1hSMnUzMXVzUVJRcVVMOGJJZTRkUFlZX2p1YmpLRjNDbWJRa01QNXlkZmlRaTdjc19qanZnVGVIYUxrc056bmoyUjlFa082dWMwaFhEdGRoMUZDbDZSTU1pTTJBZDd5MDJ2RU9raG1GU2RraDFieUQ2eWJvYUN0T2JrcEdXYTI2TjlTNWFQMk5DUS1HQmVhTF83SXc1NkhQN1lYN0VxWngxOVRBYVNNQWM1WGFZZVFtUEc1WXRqSEliOXdOMTVjQ2tkcmNQWDlxTUp4clNwdm9zbXRHc3FrTjhLTWFyUEJEempRMm4tUENYOTB2Y05sUk9kZFg5a2M0dUNaSnRkUXFIbG5WMHhDa0lpWXJBbjl6Um9kdW52eTRLQVM5OGdwZmdzcVV3QVN6LWFmQ3lOSDFMVGZQakZPTEIyLVFuQjBYWWZqcjdVbG9Ba0JMZ1Rla3ZOM0hCcXB3Um1ydUpQQVRmdG4tUUNtNUpFSmlQaUpRM0UxZzQtX3h5RnlTeFRNMXdQVmR1THhqRDNZd0lEZ3hsRE5hSTBBY2pHRGNXdmhyU2dmcmpVU2xWWjZ5NXRXaWtrTE01TENpMEZYUmxlYWdNZXJKQVhmQTVtdE1MQ1o5T3BMVFMxOFRIOTVJTHNXbG10cXlXRUthOFRqYTBYYVVHeWdOLTN6d3FCNXFjYXFiNUJLUUM4TTlRcmJrTE5neENVUDdlREVEdktoVnNIYVpFUm5MYldmMUNTQXFIcDRRN2Eza0toNEVDRW5tQ1F2VHAyM3JPclZlRG0xUVJFQVRZVy1YRzMwZHAyT1BCRW51dmlpU2U1Tl9JUGpoWktidEI4QW1FcVFKUUpMZ3dtZmRtdWNhb25NdTRfMFI4elVwX1Z5MkFibnI4elJsUTVrcTlSVnI0R3c5UkdOdDRFeTZ0ZU1RNnNPcW5BaXk4NkZ0Q0txRm8wTTZ2NENHdjFpUzI3MUVDTkRjZFNIYVJNUFVDNFEtQjdMZjVIYlRBdTNTcUc3NHZPYmF1YXRrODhJRkNNWEI4Z3MtMEdtZWVfemFxTlNGTDd1aWlrOGltcEt2Q1NIYi13THBfWXBRWnMwRGVYdjdYWTBWV0xFd1VVeW53XzUwNkNBVFlTYk9FV08xeTVWc0JuNmxuSWxSUEVNdlA0QV9aQ1pPWERQWk9KMWFsU0F5MXlLdUhqb0k5RzZsWnNLTEt0eElBZ2U1bjNvb1Q3c211WVdfUU9MSzgzaEdTMy0yc2tob0dXWkF2SkxUM3Y4RldyVFZ4R3FYanR2WjhEMk5UUHNjNGVmVGJ6Y0pfZnJ2UlJEZUtGSkhseVFDU3N0MldOdllfNTFtczRHam1WMzNYWDFmZjdMTzNWVVcwNV9uX0NlWThKMkt4MGhFZTlmNnFpaUpzYXd2OHhXNDZvS0pOU2dPZGFLV0g0d0Exb0dVVURFSVczclBsU2hkUGpDYl9tOEdGZHd0VlRDcEtVVjhlTFJPbnEyZ3hiSUFPQmF6MVVVdm91clZtX25WTHRTSTlxdjlVVWdLbGNOOU1qUlk2dkpEdllma21tMk9QbTNkTGRIeUhDc08zR3d5MGJoUFlScVZ3MFoySUw1dkNLT2JuZVA4UkRxMmp0aXBTTkZrajdlbl8xa1lyc3lnd1lXWVRsU2NXSGE4VlpYUTM0T1JLMVZ1cUppMVpYUHlmbGFEN2RIQ0JSV2JacHQ4cE5TUkJCMGNNdWNTd3pDdGhrczVGclQ5U1NpU2Nob0Y2a2VudGZtZ3c4ck9OVzRfa1JJaEVNbXpCNnd6dnlMeHAzSFdvV2Zac2t1ZDRXWEpTTk16VDMyMUl6TkE3aXRRZ2ozQ3djRjk3SG9zWGdpczFhSzNNYThSMUl0U0dwRmhVTGZFT25oeVBURDhwTWo2ZWdrcjZ1WWFHSEVSNmhmNVdoNFJScU1DNkQ5RDdTeTBESWp1NzgxN2RVVE1SMXFXTkhBbDZJNEk5R2pHaXZnRlZKZEViREtJXzBaaGVFbmFOUHA2S1ROZnItTkZIUDhzYmllQVZBcC1RSUNqOXdGRG13OTBqTTZsWklhOXpYbkFMSGI4SlBSOEtLUzJrT3JJaXFLUjhJSEhXd3NlcF9nOXJwTnA4YVBxRDF6N3pGdExMSjFLdEFIMDRJWkFEbndmZmxTdkF1WVlaY2R4OU1saTlON1RDbkV3TllSRnFFMHZiR182ZE9wdmQtV21KbVBHWXRqYTN0dTJ6M1lsUnZqaTJaSHlCVTdZaEt3RG80bDBaTjIxQ3c2T0ZiV09JVFR5Z3haRjdDVEZlaW05Z2dXQjUxWkFrSWtuM2J6bHpkTkxycnhHaTdxb0pjeHMxMUhmdkREcXZ0eThhN2kzWjBJblNTX0lnajlmaXlrNlBueUZkRlJNM25ZMWhQVHI4Yk9wMDhGYVI2TFRaN3JYSmZ2UkZaRzZNR3haSjZNS2dQVHpEZDZycmFmQWJtZlZuenZNY3k0cnlwZm9CLVhuTVZzb2NTYUU1UXhQbkNPV3FRVzNaLXdIR0JrZWM3Q1dacjNlVUdEWmhqUWstR0k4UFA1bEpWUTBCT25aclFBWktCMHkyMERjaWMyUm9JeHdnSnhMUzAtakVMMmRvVm1EaTJTUGY5eXVxYmNIVEpLLW9Ba0o4MC1yNzk5N2JNSGpCUWpHd2JiV2ZLdnEtNDBxYVpBYVNqNGZicGc1TkJteVNhNVNFaXBmemR0a0lYc2Jfb08xUWRGbGxxenowZGNCRG1HbE9FaENpb3lxWHpoNVFkeEEuRkFfYzA3ZTR3ODNoaURQMERrTGNQZw\"\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "9470" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Cache-Control": [ - "no-cache" - ], - "Date": [ - "Mon, 09 Jan 2017 19:52:48 GMT" - ], - "Pragma": [ - "no-cache" - ], - "Server": [ - "Microsoft-IIS/8.5" - ], - "x-ms-keyvault-region": [ - "eastus" - ], - "x-ms-request-id": [ - "79e421a0-cbd9-466e-a476-cdbc9cbf21c4" - ], - "x-ms-keyvault-service-version": [ - "1.0.0.793" - ], - "X-AspNet-Version": [ - "4.0.30319" - ], - "X-Powered-By": [ - "ASP.NET" - ], - "Strict-Transport-Security": [ - "max-age=31536000;includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "//keys/BackupRestoreTest?api-version=2016-10-01", - "EncodedRequestUri": "Ly9rZXlzL0JhY2t1cFJlc3RvcmVUZXN0P2FwaS12ZXJzaW9uPTIwMTYtMTAtMDE=", - "RequestMethod": "DELETE", - "RequestBody": "", - "RequestHeaders": { - "x-ms-client-request-id": [ - "89d1800d-0b4a-49a4-ad41-e62e51cf841c" - ], - "accept-language": [ - "en-US" - ], - "User-Agent": [ - "FxVersion/4.6.24709.01", - "Microsoft.Azure.KeyVault.KeyVaultClient/2.0.6" - ] - }, - "ResponseBody": "{\r\n \"key\": {\r\n \"kid\": \"https://testvault1021.vault.azure.net/keys/BackupRestoreTest/de83072dee6d4f7886947b6776e66d1a\",\r\n \"kty\": \"RSA\",\r\n \"key_ops\": [\r\n \"encrypt\",\r\n \"decrypt\",\r\n \"sign\",\r\n \"verify\",\r\n \"wrapKey\",\r\n \"unwrapKey\"\r\n ],\r\n \"n\": \"qIJMru9B0l7lPVzdxoYXMnRmKZnodMkXRoBTTmUSgeV3FWZcEnOQ_OKrP1UJJF2nrhYU3ExcAqf8Z86flgSMhQrlSIe1V49r8psggNHgtWrI_gCNs0HOp4JPlwaCTp1i1GscnKAYXoDuEg7a3X5yAW7bwYxV_UQREOodFz9QYpMjt4nvKHLajGO6h2jJ5W71fXMUpsuhAR3BL9GFfBq6uJmdl-MwOZZanQGqcqZMt5gThUXS2g_7Xnm7aiKtEaztXlr3S9LLfA791sZW5lWv5WaHcVilKybBVfR0Y0urCEC9GykfE3Epkm0boKRj6BudaBMk0t-VWNRgCP2sXySP5w\",\r\n \"e\": \"AQAB\"\r\n },\r\n \"attributes\": {\r\n \"enabled\": false,\r\n \"nbf\": 1262332800,\r\n \"exp\": 1893484800,\r\n \"created\": 1483991568,\r\n \"updated\": 1483991568\r\n }\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "660" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Cache-Control": [ - "no-cache" - ], - "Date": [ - "Mon, 09 Jan 2017 19:52:48 GMT" - ], - "Pragma": [ - "no-cache" - ], - "Server": [ - "Microsoft-IIS/8.5" - ], - "x-ms-keyvault-region": [ - "eastus" - ], - "x-ms-request-id": [ - "a60587f9-3934-49d0-a496-8cc749fe9bbe" - ], - "x-ms-keyvault-service-version": [ - "1.0.0.793" - ], - "X-AspNet-Version": [ - "4.0.30319" - ], - "X-Powered-By": [ - "ASP.NET" - ], - "Strict-Transport-Security": [ - "max-age=31536000;includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "//keys/BackupRestoreTest?api-version=2016-10-01", - "EncodedRequestUri": "Ly9rZXlzL0JhY2t1cFJlc3RvcmVUZXN0P2FwaS12ZXJzaW9uPTIwMTYtMTAtMDE=", - "RequestMethod": "DELETE", - "RequestBody": "", - "RequestHeaders": { - "x-ms-client-request-id": [ - "afaf0483-abce-44e2-b08b-b86a5a1d7c35" - ], - "accept-language": [ - "en-US" - ], - "User-Agent": [ - "FxVersion/4.6.24709.01", - "Microsoft.Azure.KeyVault.KeyVaultClient/2.0.6" - ] - }, - "ResponseBody": "{\r\n \"key\": {\r\n \"kid\": \"https://testvault1021.vault.azure.net/keys/BackupRestoreTest/de83072dee6d4f7886947b6776e66d1a\",\r\n \"kty\": \"RSA\",\r\n \"key_ops\": [\r\n \"encrypt\",\r\n \"decrypt\",\r\n \"sign\",\r\n \"verify\",\r\n \"wrapKey\",\r\n \"unwrapKey\"\r\n ],\r\n \"n\": \"qIJMru9B0l7lPVzdxoYXMnRmKZnodMkXRoBTTmUSgeV3FWZcEnOQ_OKrP1UJJF2nrhYU3ExcAqf8Z86flgSMhQrlSIe1V49r8psggNHgtWrI_gCNs0HOp4JPlwaCTp1i1GscnKAYXoDuEg7a3X5yAW7bwYxV_UQREOodFz9QYpMjt4nvKHLajGO6h2jJ5W71fXMUpsuhAR3BL9GFfBq6uJmdl-MwOZZanQGqcqZMt5gThUXS2g_7Xnm7aiKtEaztXlr3S9LLfA791sZW5lWv5WaHcVilKybBVfR0Y0urCEC9GykfE3Epkm0boKRj6BudaBMk0t-VWNRgCP2sXySP5w\",\r\n \"e\": \"AQAB\"\r\n },\r\n \"attributes\": {\r\n \"enabled\": false,\r\n \"nbf\": 1262332800,\r\n \"exp\": 1893484800,\r\n \"created\": 1483991568,\r\n \"updated\": 1483991568\r\n }\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "660" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Cache-Control": [ - "no-cache" - ], - "Date": [ - "Mon, 09 Jan 2017 19:52:48 GMT" - ], - "Pragma": [ - "no-cache" - ], - "Server": [ - "Microsoft-IIS/8.5" - ], - "x-ms-keyvault-region": [ - "eastus" - ], - "x-ms-request-id": [ - "fd17307a-0be6-49fa-8e08-f1ecc8e6a6dc" - ], - "x-ms-keyvault-service-version": [ - "1.0.0.793" - ], - "X-AspNet-Version": [ - "4.0.30319" - ], - "X-Powered-By": [ - "ASP.NET" - ], - "Strict-Transport-Security": [ - "max-age=31536000;includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "//keys/restore?api-version=2016-10-01", - "EncodedRequestUri": "Ly9rZXlzL3Jlc3RvcmU/YXBpLXZlcnNpb249MjAxNi0xMC0wMQ==", - "RequestMethod": "POST", - "RequestBody": "{\r\n \"value\": \"JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUkwTXpnMVlqQTNZaTFrTlRRM0xUUXlaVFV0WVdVNVpTMDJNVEJrWXpNNVpHWmhaamdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLkg3Q2dzYktfejRVMExDOEFtRXJyamtvOTZlcUpmX1U2R252b2hrTGdUMllXdWQ1dFlVSnlmQWlMbDZ1Y2VVc28wX29xc3N0TktzT3dYZU9nX3FVWUQtV194aDlkOFR5RE9iZ0k0eWxROEg0bXd2TU95cGlOSzJoQUtSQ1JzUFpTVWlESGJLa3lPSEI1bGFscVZyV3IwQUhoX3RGQ3pUTWE5ejVHd2E1My1HbWxid3VYLUhvZG5LNkJncVVWUWktdFlhRjc1UlJXZHBaZGg3Ti1naHBCWG4wVDhaWlRDN0ZscDJaNnE1RlotYjNxQll2RWhPVjlwUVFtTXVHSTBNQl9vRzFQSWY2MXhIN2VlbDZkSWVtRGZobHpvMlJSSGdUVFFJWFBfSFQtZnQ5T0pXdkh1MUhUNE41ZURrUnY0ZFFfbzg1MWRpZFRxdVZhV2FNTTJYd2pzZy42N0w1a0ZSdXU3MDdHbHpiaTNMV1RRLmZSb194T0hiVVMtbTlaRnNVVkpyTFpCaTg1eGxFX1JDMHBQRy1ZdXZyN3Q4TVctN1JBd0NkTldDazVpT1VMaXZpWlRORktfQUxTeFJTLVY4U1c2SDMzY0FuUWNKdUhnZTRFaGxyYklfQkZqWE5LdUlsTkNhS1Fpc2lVdkx4RGpTQkpFaGpxNHBVTUl1anROMVFqSVk1aDB1aHN5LW94WnVULXgtX2RuU2F6dkwtWGF5RWZieTM1dU9Wb1JfWFNoUU1DeEY1MEF2aS1FZE1IbWJwdmd3aXlIYVpkLXR6SGtyOXg1cXo2TlV6TG15SVZyX1d3RUNaUkZLM1RILU1nZ05zd1Q4SHNiRGxlN0txU1JkNVk5Z2RzNUxGUVFWN2pfMGpob0pjb3BnOEFyNFM2by1FMVZDQ296azU2bDdreHNvTU40blRGd2ZKVElzTUg5QU5QdXlMM0RLalZuOXAxc2lzRER4ZktSb2lYZTdMVC1vT1Q3QmM0dU4zOFZiSVdIaktMLUxVSjBzYTBKM2ZXRllKUTVWMUgyU3JPNkNrQWQ3akMtcmpsSFpsUWIwLWNvcDU2T3EyRXR6YU40Vi05REQ2LTNya0ZfcUxsekpDUG1kZm5jU211eG9FZmJDcnFuQTN0c044XzZMUTJpUHdLTE5HWnpCMUFaRGlaeWtYTDA2RUdwZUVPMWJzTFd6Y3ozaEV4TVVNejlRZDdCWnEwT1RtMG5hZ0k0S3hpaXdNRUtfcU14RlZGSGhtZTNNcEJnaE50NnhJT2lCSTlOdnhUd2M2MTV3VEtXT0tmZVZfNkhtcndjMmJLellwOVJoM09xM3dYWUtnbzFyTVJCdnpJQ3BhZ0FGSEFrek1wRlNxZ25lbnRKQV9rRnNRWWVfdHVsODNUN0FhZ2Q4eF9nTE1COEdyc1ExLURvcTVIWjJRM3hHaUUtS3hRRkRYYnVEWkhBbzR0VC1ZWjR5b0c1SE91OEVSZGRUcllJVHJMVW9lMlB4a0FQSXR0ejREZVduRU4tYmp5QUdnOVpPUG9Md3JZS1V4eTVYU2FFTHRhM2o4RTV6UTU0eXg5TmY5UGlPMTFFWi1DVW9DVlpyenRZNXRWaUFHOUdVWGhEdTdEZjZUbTk4YXZaRGMyOFl2VHpaaGNfaVY2Tk1JUUVmYkI1dEVJb3JYRE5LdkVLWW45akFGRTc2MldQejJ0VUNDMExZcjgzbXZzcEtja1dReE9IR2ZBcUNSZWFxa3EtN3U5QU9zVzVxRnhFa2FoZTlwWjZ5ZzJaaTBmUW9uVkNrcFZIdDhGWGFhWWcwb05aMTNvRk1MbWY3ZnBlVG5Ta3VVdmZScVJKcjVTS09vX0czdG12bkc1V2dtaDVRSEJPcnYxb0QyekhUSF9sTnBXQ0JVZnRGYS1HY1BhUkdlYk1OMm9NY1ZJUUNzSDdwVHVwTHJkdEphRVQ2aHNxYm5QeTJPWlo1OXRkaE9yb3A5TEdEMDJSckRpR3VFTDBpYmZ4aThLOVpaQlk3cnRJeEo0N1hpWlBpejFrbWM0eWRsdFZtaUdWVGExbFV5ZlFTeWphcE1pckY4YUxFUHk4amxXTjZ6ell4aHd6dUQtMWhKbFVWX3ZjV3dBcDJvQXNLTXA5NnZJRmxhQmp4bVN2TXdUckhHcDlOeldnOHo3WWJrUDh2SWl6anZ5eGNfVnNGRDFNODFVS284RHhwTDFVeVItY3RCWHg0aTJJVDRBLXVkeWtYcURiN0o5X2RUOGFfeFl4NHJ3ZngyTHI1cHpjbS1RNGl0U3JHUVdfX3Z4cnVXWTZlOHRrM284UUZoemNtQzh6Smh0X25jb2c5UlAtR2s0Q3RDVEgxTWdXa1lpQ0NzMGdFUG9NOWU0MUtLak9IMUFRcERqTnRhMGpGZm03aFBRYU5odXpjaEJ2eHZLT3JhT1RCaGZLS2FjbkJJSVBQS0E3c2pqTFdza3lIM3FhNGo4ZFZBUUVQSEE0eWhZS1cxMGFJS2lCLTdoeXU3dEV0S1NkVDh5SXlKSzRfaXlzanFzTmZ4REZPMU5QbzVlVVlza1V0c1B2TXFNSGR2dWh6RWg3bEI4czVheFVjZjAzeThQd3Y2TVBHU1YxVXVIaGhsNURaSHRSdURJaThWMUJFcm9SMWZzRUlxTGZlRTZtRFRmdDl2UDFUOEJjTl9XQUM4djNYVGo5TWwxY05wZnFlQ3RQRVl0U3JCeFdpQ08wMVpYVEJVbm5LMGc5allrTVJWWGJCRkxPZUVGWVYwdkxpbUt4bmVvdjhNNTZZOVk3S3VHOE1LWlVVeXA1bjBpbTc2RXZLMXd4cVNGTFNzY0JIS3VPRzJfeF8wNE54U2x2ZXo0aGluNy1vUW9IOHhLOUpvR2Y2dVlLZFJBY201S0hZbGNPRkVscFk3ZUxPNmtBSFhvQ0RJSlpaXzF5dnlNV29GeHVlUjF2b28wU1BLWWc5V1gyczk0aVI5MWhvSkZfZ2tVSjN5eFdGQmVFVk9GQ0VINmdyWTN5X2pObzRIeTY1MnE1QlcxampkUHhCRXlkVVRUenhWeG5lOFV2Qk4ydUtBYkhyTXZkT2ZYcjNfa3FvSUg5RS1VLXNzVENpeUVIS185VWpMLTBEOUpkYmVyMl8zdlZVUmVWTTRaTWVFY3pucU8xRFJhYlJDVzQ5Uy1GaGFsT0t5bzNsVExMSlR2OXZpcjFnYVNFcU1ZNGYwN3ZXZmJtcTFWNDRYMFVmakhLYmpWYlZaYldjVmZpbVZGeEY4cl90blBVcnExZVUzM2hxNGJtVmlFQkZLOFZSZ1N2eTF3WXZRZHBVbFlTamgxTThVNlNOZVktRGFPOTA5SXJUQThzZmFOR3pOcTlLNkljaVgwWFhJMnEzeGw5RVhOWVByQWg4M1UxSXY1a0c3Tmx6eXZhMkxWLV9SUnVMUjF3YjJ5ZnhUTy1BSXZ1UUx3VnJqa2tmXy1uNVltc2t4aW8xRFp3ZzlPYzBYYzFjZGNOS1RBb1NTdlUwUV9zNWFWNi02QzE0cV93SjhzZXJtR05mUnlJVm9tb0tBZ3hVdTdTSkZCQjg4TWg0dEJJN25fa2x6UGVReXZjMU8wV2EzTlRfOFd6Q2I5YUdiZlQxYXhTaEY1RlZBMXRpTzNSdkNBZjBjM0VzLUQyc1BONHp5M09RNWRIY2xBV09VRGtHakliVFlzVnc2ajlCalo5V0txSTdXbk9aeXBXOWZjeTZIU0JwWDlwUHB0XzFya1RDbkxWTXdCU0htTXZTLVlTTVZjWVlSZjN0a2UzMFRIMjV2NUh5MVpwRnBWa1RkTm82WkhWNEROeWJNeHNWQzBlZmpCeFNCUFNUSjdoZmw1Wm1JLVJfd2RpbkZGUGY5WFE2ZlF3OW9oV1ZBVWhEZ1pBVVVleHV4MjZsYVUxYktrY2luMm15RE51M2U5aGtZSTVSOWxQclJCOFo2c3JkRmxiU0RPSVg1UENnVTVQYU1TZml1SmNnNmVfVC1Bd3pvRTJoZGVNaTZOVVpxSzA3S1gzOWJoRkp1b1NjVm5mNmpTdVpGbDlQSG5pZUJuZnVMV1F5cW9WTm9jdmpfV2pYZng0ZGVmcHQ4MzVDNkxpRVhaR2pFZTFiR3pJcnNXTW9ZeXVIcGoyRDFsM19rZi1pdEdPYkhlVm9NV3lJS2pLZnZBbFlMNmtUMmVjRFVhNEtKRnFCSmhnM3pKWkYwb2F2S2dKc0JDSkhXenV2RXR0T1F0R3hGQUozSmE4ZmdDNTA0cXJJYVlsVVdYaUdvcGxLNVI5bkZHdEFXQnV4MUpYYkhMNVVfUE00YUw4UmFKNVl3ZThyQkktby0zR1FITFFXX3RJS2xjQzdyUm5pZTgwSjFOTUNXVTVxejl2QWExbXhZQ2VVU2Y0VHlMcXk0eHpBNEp6VTlKWW5EWGxid1N4VE8wQUNKSUIteGVjN0lTWDdzS21SYmoxOE44X0ZJYnEzaTEtQTd6VWM3UExXd0pqWlFoS2p4ODdoUkN0djRmNzE0V2w2dDF0djhvczF6UkdTZURKMWgteHZ2dW44RUxadTdQeGJVZzBla0plRVhnX09tc3NPMzlXYUpNMHkxNVM2YTlIQ2xsZ3ctWjhqT1dzanQwVlhBOEhhNmpJOEROb2tiZTVTSXp0amRGQTV3Wkc1Y3BZbHN1b3R6YmlPbHFqSWNxSS1hZkcxMzFLSUdDbU02bC1QbnQzNUdqSHJkVzlnd3RUSkE4Q0FfdUdlRHJuUnlQWlVDX2luUlpycl9DRFcxN19nT0xOSnhuampKM0g1VTRzaDBoanZYVk1nY1BkdllFOXlFcU84Z0pYQWk0b1FRSUMtM2loYm9qYWtpblBNdjV1US05aG02XzdUVk1mTlFMejN6b09tT0l5emprQnpPV1RmUmpPSFhJRjgzYjYwaGNJWmhwVm85Y3ZvbWtzT2ktWTc0TjlOVUlDVUdvdmxNdldVSG1aYWJTNmd1VHRFczZSTm13akYyNzQ0cDhxTnNmMVJ0V2x0TEY3UXpwaS1XaW9WUm5tT0pqQVJ0Q29Wcy1BSjdvcVNnN0l3OEhYUVJDdXc1NXk0T1NWRW54Wm9NZ0tsdTNXVlBCUHN5NU5YODN1YTNwVjZwSzNKMDRMZE4zQk1WbWV6MkRDcUV0ZWdJT1J5WTljT0NZM1NtbUQtM3dEUzdXd3ZQSFp6U3JBbWt3X05CMUZLZkZDWkJ0T3liN2lCNDRkVDRxVjlVcHAybDEwcHJ0LVJxMjRwZlRaU0dqZFJ3MWJtcXJ2RGo0WjBiNWFCaHFYMVFCckoxZXdYSjIwcUJZekdLMERoLTRLUG9BcVBJSXVjc2lWLTV4YVI2TVFJVXVXbC1OS3VKZkZBamFsd2hYU2x5QXZycl9EUGFNWkhYOGxxd0VtdHBubmZPUGpiR1dNc1pLWW1LY3pGVGViaEVUb2V0R3FmWGQ0bXpQaGkyX240by1RTjU0YThvMFdJWWxwaE5kT0pNNGZ3ejdhZVMyMGFxYnZKc05iSi1BYVZ6VFJCc0tRSEZSMzhlcTk4aWNKc1hSd2FQcmpKTUtzbDlrT0ctZEFKNWZYR282eGlINUt2MUVWNGVya1FkTFRrLXhva1hlb3ZuNmx3QkNfMVF3MzJPUWNmQWh0UExFcDRaaHREdEVKWkZrTmxrRmlvZGFKNFBJa2lOdkdGMzlwVWNLNnlHeElIWThUejAyeC1pd2xhR2pPZU9CbkRzZjM4UVg1STNWTUczOE0zaDN6V3UzdUVYZnBkOVg0UlMybngxb3VTdEtrdFZFcjZuSHhSTmhNdTVMcFZ2bzBWa1JvS1ZIdkJaeWF3STI2Yno2RkdPaTgyUlMzU3Q5VXdsWkpndmI4X08xZmFIUlZhbEh0MHpJSDYxRlhNdXA4Wl9LanJ2Q0dYdEYxV2FWRlJMNjBOMFVBQVpSaFc1ejU4dmpsLU14RC1za2FhUlBlZzd3S0Y1QVB3RlBBb21KZy1NTzA3TW9ZajhLcDdVOE5Ybzg0dXQ5b0pDN0diYi1USndXbHQ5QllLN0d6Y2NhMU9VU1ZESlVkYk55Y3dwWGlieDNKdkljUTZwbHFVSlpzVW9mX2xySUtqZ1VGTjR5ajdzSlJmdUNZZmdHSU5yLWRTNXRqTEpucWZpRjBHUk56MEZZU3lfNmtTdFJEa3pwQ09Xam1LNDhZaHhLa3dUSktFVG9GNXp2T2o5WDRHX0t1YmFFZ0p2dDlwNkZvWkRVTEhlVTRHdFVTRnRyRVdNVGFRT3FPeWJDSHA2NGxydXdQSFJuN2k0VjJaa1lFa1p3WUw5dGRQMzFicEdOSkhGVlJjYU1fYlpFZnpCVTdaVzFfMktUQVY5ZWFza085TUpGZTlraVg2X2xydVNMQWlXMjFmUEhfZEZWR0VLeVozOE1DS1dKZHIwZDRGanBkWUhyYXU3bFJ0bUdjSWtTcWZ4NXhCdkR1dERmdXFkM1hSMnUzMXVzUVJRcVVMOGJJZTRkUFlZX2p1YmpLRjNDbWJRa01QNXlkZmlRaTdjc19qanZnVGVIYUxrc056bmoyUjlFa082dWMwaFhEdGRoMUZDbDZSTU1pTTJBZDd5MDJ2RU9raG1GU2RraDFieUQ2eWJvYUN0T2JrcEdXYTI2TjlTNWFQMk5DUS1HQmVhTF83SXc1NkhQN1lYN0VxWngxOVRBYVNNQWM1WGFZZVFtUEc1WXRqSEliOXdOMTVjQ2tkcmNQWDlxTUp4clNwdm9zbXRHc3FrTjhLTWFyUEJEempRMm4tUENYOTB2Y05sUk9kZFg5a2M0dUNaSnRkUXFIbG5WMHhDa0lpWXJBbjl6Um9kdW52eTRLQVM5OGdwZmdzcVV3QVN6LWFmQ3lOSDFMVGZQakZPTEIyLVFuQjBYWWZqcjdVbG9Ba0JMZ1Rla3ZOM0hCcXB3Um1ydUpQQVRmdG4tUUNtNUpFSmlQaUpRM0UxZzQtX3h5RnlTeFRNMXdQVmR1THhqRDNZd0lEZ3hsRE5hSTBBY2pHRGNXdmhyU2dmcmpVU2xWWjZ5NXRXaWtrTE01TENpMEZYUmxlYWdNZXJKQVhmQTVtdE1MQ1o5T3BMVFMxOFRIOTVJTHNXbG10cXlXRUthOFRqYTBYYVVHeWdOLTN6d3FCNXFjYXFiNUJLUUM4TTlRcmJrTE5neENVUDdlREVEdktoVnNIYVpFUm5MYldmMUNTQXFIcDRRN2Eza0toNEVDRW5tQ1F2VHAyM3JPclZlRG0xUVJFQVRZVy1YRzMwZHAyT1BCRW51dmlpU2U1Tl9JUGpoWktidEI4QW1FcVFKUUpMZ3dtZmRtdWNhb25NdTRfMFI4elVwX1Z5MkFibnI4elJsUTVrcTlSVnI0R3c5UkdOdDRFeTZ0ZU1RNnNPcW5BaXk4NkZ0Q0txRm8wTTZ2NENHdjFpUzI3MUVDTkRjZFNIYVJNUFVDNFEtQjdMZjVIYlRBdTNTcUc3NHZPYmF1YXRrODhJRkNNWEI4Z3MtMEdtZWVfemFxTlNGTDd1aWlrOGltcEt2Q1NIYi13THBfWXBRWnMwRGVYdjdYWTBWV0xFd1VVeW53XzUwNkNBVFlTYk9FV08xeTVWc0JuNmxuSWxSUEVNdlA0QV9aQ1pPWERQWk9KMWFsU0F5MXlLdUhqb0k5RzZsWnNLTEt0eElBZ2U1bjNvb1Q3c211WVdfUU9MSzgzaEdTMy0yc2tob0dXWkF2SkxUM3Y4RldyVFZ4R3FYanR2WjhEMk5UUHNjNGVmVGJ6Y0pfZnJ2UlJEZUtGSkhseVFDU3N0MldOdllfNTFtczRHam1WMzNYWDFmZjdMTzNWVVcwNV9uX0NlWThKMkt4MGhFZTlmNnFpaUpzYXd2OHhXNDZvS0pOU2dPZGFLV0g0d0Exb0dVVURFSVczclBsU2hkUGpDYl9tOEdGZHd0VlRDcEtVVjhlTFJPbnEyZ3hiSUFPQmF6MVVVdm91clZtX25WTHRTSTlxdjlVVWdLbGNOOU1qUlk2dkpEdllma21tMk9QbTNkTGRIeUhDc08zR3d5MGJoUFlScVZ3MFoySUw1dkNLT2JuZVA4UkRxMmp0aXBTTkZrajdlbl8xa1lyc3lnd1lXWVRsU2NXSGE4VlpYUTM0T1JLMVZ1cUppMVpYUHlmbGFEN2RIQ0JSV2JacHQ4cE5TUkJCMGNNdWNTd3pDdGhrczVGclQ5U1NpU2Nob0Y2a2VudGZtZ3c4ck9OVzRfa1JJaEVNbXpCNnd6dnlMeHAzSFdvV2Zac2t1ZDRXWEpTTk16VDMyMUl6TkE3aXRRZ2ozQ3djRjk3SG9zWGdpczFhSzNNYThSMUl0U0dwRmhVTGZFT25oeVBURDhwTWo2ZWdrcjZ1WWFHSEVSNmhmNVdoNFJScU1DNkQ5RDdTeTBESWp1NzgxN2RVVE1SMXFXTkhBbDZJNEk5R2pHaXZnRlZKZEViREtJXzBaaGVFbmFOUHA2S1ROZnItTkZIUDhzYmllQVZBcC1RSUNqOXdGRG13OTBqTTZsWklhOXpYbkFMSGI4SlBSOEtLUzJrT3JJaXFLUjhJSEhXd3NlcF9nOXJwTnA4YVBxRDF6N3pGdExMSjFLdEFIMDRJWkFEbndmZmxTdkF1WVlaY2R4OU1saTlON1RDbkV3TllSRnFFMHZiR182ZE9wdmQtV21KbVBHWXRqYTN0dTJ6M1lsUnZqaTJaSHlCVTdZaEt3RG80bDBaTjIxQ3c2T0ZiV09JVFR5Z3haRjdDVEZlaW05Z2dXQjUxWkFrSWtuM2J6bHpkTkxycnhHaTdxb0pjeHMxMUhmdkREcXZ0eThhN2kzWjBJblNTX0lnajlmaXlrNlBueUZkRlJNM25ZMWhQVHI4Yk9wMDhGYVI2TFRaN3JYSmZ2UkZaRzZNR3haSjZNS2dQVHpEZDZycmFmQWJtZlZuenZNY3k0cnlwZm9CLVhuTVZzb2NTYUU1UXhQbkNPV3FRVzNaLXdIR0JrZWM3Q1dacjNlVUdEWmhqUWstR0k4UFA1bEpWUTBCT25aclFBWktCMHkyMERjaWMyUm9JeHdnSnhMUzAtakVMMmRvVm1EaTJTUGY5eXVxYmNIVEpLLW9Ba0o4MC1yNzk5N2JNSGpCUWpHd2JiV2ZLdnEtNDBxYVpBYVNqNGZicGc1TkJteVNhNVNFaXBmemR0a0lYc2Jfb08xUWRGbGxxenowZGNCRG1HbE9FaENpb3lxWHpoNVFkeEEuRkFfYzA3ZTR3ODNoaURQMERrTGNQZw\"\r\n}", - "RequestHeaders": { - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Content-Length": [ - "9477" - ], - "x-ms-client-request-id": [ - "a833808e-138d-4026-9afe-427872f293a6" - ], - "accept-language": [ - "en-US" - ], - "User-Agent": [ - "FxVersion/4.6.24709.01", - "Microsoft.Azure.KeyVault.KeyVaultClient/2.0.6" - ] - }, - "ResponseBody": "{\r\n \"key\": {\r\n \"kid\": \"https://testvault1021.vault.azure.net/keys/BackupRestoreTest/de83072dee6d4f7886947b6776e66d1a\",\r\n \"kty\": \"RSA\",\r\n \"key_ops\": [\r\n \"encrypt\",\r\n \"decrypt\",\r\n \"sign\",\r\n \"verify\",\r\n \"wrapKey\",\r\n \"unwrapKey\"\r\n ],\r\n \"n\": \"qIJMru9B0l7lPVzdxoYXMnRmKZnodMkXRoBTTmUSgeV3FWZcEnOQ_OKrP1UJJF2nrhYU3ExcAqf8Z86flgSMhQrlSIe1V49r8psggNHgtWrI_gCNs0HOp4JPlwaCTp1i1GscnKAYXoDuEg7a3X5yAW7bwYxV_UQREOodFz9QYpMjt4nvKHLajGO6h2jJ5W71fXMUpsuhAR3BL9GFfBq6uJmdl-MwOZZanQGqcqZMt5gThUXS2g_7Xnm7aiKtEaztXlr3S9LLfA791sZW5lWv5WaHcVilKybBVfR0Y0urCEC9GykfE3Epkm0boKRj6BudaBMk0t-VWNRgCP2sXySP5w\",\r\n \"e\": \"AQAB\"\r\n },\r\n \"attributes\": {\r\n \"enabled\": false,\r\n \"nbf\": 1262332800,\r\n \"exp\": 1893484800,\r\n \"created\": 1483991568,\r\n \"updated\": 1483991568\r\n }\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "660" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Cache-Control": [ - "no-cache" - ], - "Date": [ - "Mon, 09 Jan 2017 19:52:48 GMT" - ], - "Pragma": [ - "no-cache" - ], - "Server": [ - "Microsoft-IIS/8.5" - ], - "x-ms-keyvault-region": [ - "eastus" - ], - "x-ms-request-id": [ - "dffff270-81e4-4625-83b3-05f298298f94" - ], - "x-ms-keyvault-service-version": [ - "1.0.0.793" - ], - "X-AspNet-Version": [ - "4.0.30319" - ], - "X-Powered-By": [ - "ASP.NET" - ], - "Strict-Transport-Security": [ - "max-age=31536000;includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "StatusCode": 200 - }, - { - "RequestUri": "//keys/BackupRestoreTest/?api-version=2016-10-01", - "EncodedRequestUri": "Ly9rZXlzL0JhY2t1cFJlc3RvcmVUZXN0Lz9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", - "RequestMethod": "GET", - "RequestBody": "", - "RequestHeaders": { - "x-ms-client-request-id": [ - "bc00621f-9444-4495-9863-e9cef8075b72" - ], - "accept-language": [ - "en-US" - ], - "User-Agent": [ - "FxVersion/4.6.24709.01", - "Microsoft.Azure.KeyVault.KeyVaultClient/2.0.6" - ] - }, - "ResponseBody": "{\r\n \"key\": {\r\n \"kid\": \"https://testvault1021.vault.azure.net/keys/BackupRestoreTest/de83072dee6d4f7886947b6776e66d1a\",\r\n \"kty\": \"RSA\",\r\n \"key_ops\": [\r\n \"encrypt\",\r\n \"decrypt\",\r\n \"sign\",\r\n \"verify\",\r\n \"wrapKey\",\r\n \"unwrapKey\"\r\n ],\r\n \"n\": \"qIJMru9B0l7lPVzdxoYXMnRmKZnodMkXRoBTTmUSgeV3FWZcEnOQ_OKrP1UJJF2nrhYU3ExcAqf8Z86flgSMhQrlSIe1V49r8psggNHgtWrI_gCNs0HOp4JPlwaCTp1i1GscnKAYXoDuEg7a3X5yAW7bwYxV_UQREOodFz9QYpMjt4nvKHLajGO6h2jJ5W71fXMUpsuhAR3BL9GFfBq6uJmdl-MwOZZanQGqcqZMt5gThUXS2g_7Xnm7aiKtEaztXlr3S9LLfA791sZW5lWv5WaHcVilKybBVfR0Y0urCEC9GykfE3Epkm0boKRj6BudaBMk0t-VWNRgCP2sXySP5w\",\r\n \"e\": \"AQAB\"\r\n },\r\n \"attributes\": {\r\n \"enabled\": false,\r\n \"nbf\": 1262332800,\r\n \"exp\": 1893484800,\r\n \"created\": 1483991568,\r\n \"updated\": 1483991568\r\n }\r\n}", - "ResponseHeaders": { - "Content-Length": [ - "660" - ], - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Expires": [ - "-1" - ], - "Cache-Control": [ - "no-cache" - ], - "Date": [ - "Mon, 09 Jan 2017 19:52:48 GMT" - ], - "Pragma": [ - "no-cache" - ], - "Server": [ - "Microsoft-IIS/8.5" - ], - "x-ms-keyvault-region": [ - "eastus" - ], - "x-ms-request-id": [ - "5babc4b0-993a-4584-945a-5461d97cb694" - ], - "x-ms-keyvault-service-version": [ - "1.0.0.793" - ], - "X-AspNet-Version": [ - "4.0.30319" - ], - "X-Powered-By": [ - "ASP.NET" - ], - "Strict-Transport-Security": [ - "max-age=31536000;includeSubDomains" - ], - "X-Content-Type-Options": [ - "nosniff" - ] - }, - "StatusCode": 200 - } - ], - "Names": {}, - "Variables": { - "VaultAddress": "https://testvault1021.vault.azure.net/", - "KeyName": "sdktestkey", - "KeyVersion": "d015b4371d884032b7138b49e82102c8" - } -} \ No newline at end of file diff --git a/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultGetDeletedKeyTest.json b/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultGetDeletedKeyTest.json index 2d5f7660b6d1..6bf094e559a8 100644 --- a/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultGetDeletedKeyTest.json +++ b/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultGetDeletedKeyTest.json @@ -645,6 +645,7 @@ "Variables": { "VaultAddress": "https://karlaugsoftdeletesdk.vault-int.azure-int.net", "KeyName": "sdktestkey", - "KeyVersion": "cf7c860fb9db4564a1389db973a52436" + "KeyVersion": "cf7c860fb9db4564a1389db973a52436", + "SoftDeleteEnabled": "true" } } \ No newline at end of file diff --git a/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultGetDeletedSecretTest.json b/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultGetDeletedSecretTest.json index 98ac059b62c1..1162145efad2 100644 --- a/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultGetDeletedSecretTest.json +++ b/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultGetDeletedSecretTest.json @@ -453,6 +453,7 @@ "Variables": { "VaultAddress": "https://karlaugsoftdeletesdk.vault-int.azure-int.net", "KeyName": "sdktestkey", - "KeyVersion": "4ac8dbcb697b44a2bff598b1a21e371c" + "KeyVersion": "4ac8dbcb697b44a2bff598b1a21e371c", + "SoftDeleteEnabled": "true" } } \ No newline at end of file diff --git a/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultKeyBackupRestoreTest.json b/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultKeyBackupRestoreTest.json new file mode 100644 index 000000000000..61652ff9780b --- /dev/null +++ b/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultKeyBackupRestoreTest.json @@ -0,0 +1,1181 @@ +{ + "Entries": [ + { + "RequestUri": "//keys/KeyBackupRestoreTest/create?api-version=2016-10-01", + "EncodedRequestUri": "Ly9rZXlzL0tleUJhY2t1cFJlc3RvcmVUZXN0L2NyZWF0ZT9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"kty\": \"RSA\",\r\n \"key_size\": 2048,\r\n \"key_ops\": [\r\n \"encrypt\",\r\n \"decrypt\",\r\n \"sign\",\r\n \"verify\",\r\n \"wrapKey\",\r\n \"unwrapKey\"\r\n ],\r\n \"attributes\": {\r\n \"purgeDisabled\": false,\r\n \"enabled\": false,\r\n \"nbf\": 1262332800,\r\n \"exp\": 1893484800\r\n }\r\n}", + "RequestHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "280" + ], + "x-ms-client-request-id": [ + "1557f2e9-3191-4489-826c-e2fb4840f0c5" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"key\": {\r\n \"kid\": \"https://kv-sdk-test.vault-int.azure-int.net/keys/KeyBackupRestoreTest/b1634f7d6662425d967888b6abb3f413\",\r\n \"kty\": \"RSA\",\r\n \"key_ops\": [\r\n \"encrypt\",\r\n \"decrypt\",\r\n \"sign\",\r\n \"verify\",\r\n \"wrapKey\",\r\n \"unwrapKey\"\r\n ],\r\n \"n\": \"sutrU6YgaSoSGtNeDijrmXbC6fRjqwz1GIjczBJBFyKZwP_2hC1tRSlxoAHcpViObrhwo9gHQiIFg2jkZAMfYEQk3D6G1MutjEfcQGHi-3ReWV0BDDtkBvOuT8TWsGATQ9kYKgtWOWuFjEARxVzHaThuEbs-e_cHsPIglwcBUvPoMS-vrwyzowJaT95MMxLZUq42Xji3gKIbUhAEZ27z_tkEdQtkBpBorBzChkXdDak6D7XnIjsVQHnMRCwVMgRfIrT06ILdEBeq3eCjCx_jwvGrUyO4PwEm35ToMf-EXirz8X1Ea3JFZ2r5zIbSnoGst1okaQNbynXBlcOcGcVviQ\",\r\n \"e\": \"AQAB\"\r\n },\r\n \"attributes\": {\r\n \"enabled\": false,\r\n \"nbf\": 1262332800,\r\n \"exp\": 1893484800,\r\n \"created\": 1491343158,\r\n \"updated\": 1491343158,\r\n \"purgedisabled\": false\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "691" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 21:59:18 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "ab3f3ea0-3f22-4f3d-b158-9f46f5550c4c" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 200 + }, + { + "RequestUri": "//keys/KeyBackupRestoreTest/backup?api-version=2016-10-01", + "EncodedRequestUri": "Ly9rZXlzL0tleUJhY2t1cFJlc3RvcmVUZXN0L2JhY2t1cD9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "5a19b950-292e-48a9-b74d-8916e351025e" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"value\": \"JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUppTlRjMk5ESTVaaTB5TlRZNExUUTFZbVV0WW1aaFlTMHpOMlZrTURkbVl6QmpPREVpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLk00Qzg3SE5zMTZqcFdwSkVUQ1dmZE5SUWcwNDV1ZU1hblA2NHNmcGtYaFpjVzBrVldNYVBjVmkwaHYxeXpWdTZ2bnAycHY1ejdfY204alR6WkQ3VVd3NllpVC0xZ1RsbFlGSS1tRWVpU2xuSHJMNnpVTEtONnBuR2p6UVdEUHhJb2c5Slh5bFFkSW9xdWxVX3NVcnN6SEttQWFSQS1xdVZmNFlZaElVbm94eW1pQjA5MkJ6Tm5BcFB1UllIQ0JsMUstRjQ5aW1UWk9BcnVHX1dEeGhKMUo3SEhJWEJzVElGTEpQX0ItOTVpS1A0SHNhTEpqREZBTmJxV3JoSC1OQXc1aWZDTWRsSlBMbTdsU0NJV3JsVVVZLVpPR2tpNnVUUm9kdUhjMGYza2lXOEhuUHJqYkkyRHd6am0zQWQ3dnMxMXpnMzBtZUNvU19ZTWtsb2VPM0RRUS5UWE1sNjNvYWREREc1dDd1WG5aLVRBLlFVeUhrY2JpZU95R21LTWdxUF9QTjIteTJDMW9MNDNneGNvQkxidkM0c0h0VmNoYWtQMU9lWmdwRll0My1UbjRscDNNak83ZFF0a09ZeXd0c080TE13TUFsMXdvM0RHSDNaNHhVd1BQdHJGSV9uaWg0Z1IxS0ZMdXVZVE9CdUlkQ3MtVFpreVZOV1FreUh6VUpkcUx5SlhoOUlUdDJVSDJwOEJVTVZnZU5mdU5ONWd6MVlxa1Q4Um9aWmFRUnNkdnZWalRWazE4cWpFbG5YZ0I0ckFGWWIzcGZNdzhJbjBhc0E4Rkotc1JHdEZPTFhTbWs5M2dHTnp0ZnJQMUxYalpyU19iQkduc3UzMWItSEZJR1hNX3drdzZQUjBlSGZ2dGQ5Z1ZQMWpvREdWV3R1OFBDTlp1ek90ZlRMRG9VWVFvYkU2dmVpVEdRVzEwdWRQOW15S2FxaGtjSHBnc0trVzN4VjdRTDFRSFg2UjRUT0VTY1F1Qm5vQ3J3UlN0RnpuY29Mb2tmREdXYmZiWUdsb3F5THo4Y0IyaVZERTM3eUZUQzJEY2dMeW9tYklUWklvUU9EUHIwcEdOa2Y3WU4ycHU1UVRBZXN0ZnRqWWtlbUhfNEZadFcteFcxT1YwUDU3THgzcGpGcVFyaTR5YW1kUHYtS2F5YWwyUVNmV1p3RE5rX3h1cTFxT2dlb0NWMGhwSVFuYXBLYzBvVG8tTFdqMk1IazBBbFhQdWhyUmM0UHktWGJ2NGFRUE9qY0puMkZTZmF5YkQzejNiSzVPMklrNm9WZ2NwNjNhWDk0UUJFTXJjbGlpalhDRXpXS1ZTUmNBQVAxbWxUSVJiYW5paVFuMHhJQ3hUcXM1VVlvSW1fcFJ0YVB6N08xUGd6V3F3M2d4Vi1sSUZEd3cyNU5TR3pqS3VfTk9zUE5WVWtpa2xmWHJOZEpqME5oMFVObHFRejg2TWpnVnNadDVWQkZ3Q2VHQUhhMjdHTXdhVkd3M0dwNXpxbDJFU1E4Q3l0b2JSYUxQZ1RJNURESncza3E4M2dsa0pqSndzcmpIQ3JXaEM4b2tSck9la3NLMU8zbmpuTnlSMkQ5VmE2S3N4V2RXYzg0Tkd4Z1JURVpyWXA0SFFDcl8zMGpQdU9DbUwtTXA2cnF0OG0wSW1VTkUxZWUtc2NCbE8xLWpHcjc2QktRdVZQMUpOV2o5MTRETFE4aDNvMlhDT0g1ZndMRmRiLUhJWkZfazQ3eWZqSENmbm9TSm5LdUdiV05RUDc0TzI1MlFPSlFCOHhFSmpJbHFRdXI1SmhldDFFUWowYjZ1WFZhMHh4cTRlWjdDb0tIQ1FfZmRPbnd3aTNpaXNiQXd0Z183YndrdnpwUG9pSW40ZDY5bVk3NHBRRURsYzBzbTY3ZGJ4LWxFQW5faTFmNUVNVGVSWFgtUG9xSmRZaGItanlCbnR0d0dUQnIzSkJUVGFZOFpIZmhJem9MdTA2N0lqVGFHNFltZHRwc2JTajVramR2b19wR2t4UkVoaUw1em03RWdiZXo0Ui1JaE11N2pNd2lNSjJKUU9fMF9oVG5oY3NYeXBzbEpWN3NWSVY4UmJkcTY1Uk40UGlZUzU5ZVRBVUxKOFFaaWRyaUFfbkY1czFwQTNpLXA4Z1Q2YWx3bldCV0wwLUp2U1AteW9BVk8zS0ZIOWVDVnpxZ0FLeDNrQVhiNTJLMEtCZGQ5aXdiVlZoTU1VR3Zpbi00eThDRWd1dVB1S01lVm5fbTV1WkJpZFpTRWxLWnhpUE9WS0NzTUdLUTkxT29XR1pLelVwYmJ5NVNyTDJ5bFZoT3ZPZWVaSXJndVFCM1hvNjZJa2NFQ3daMHV6Z29zVHRfSm5JZVpqVHFZTU1WYTQzTEtjQmZBdVMzTnp6akhvNEhGb2JaWFdGc1RZN1pZdUFid0JtWkFFbWZhWDE3SlRSVlRKa3E3STRnamFXa04zaHFPdHJHZ3R6bEJSc2lvbE5YSWdyaGl0em5HUEdlcVpZYW4wZ190Q3BoWnpIT0hwX1BwSjlhcGNNeUxHRVp6NU11cE1rRVdwQlUteEs5WDJJLTVRSUx1eGcxSXF4aVNOLTZRTmlyXzdJdFhPT09GMVpyemMtNkRKMVpBaS1EdjRvRDlBcFM3c1lQQXNVQ1VYMU53Y2JkMVM2YkZlWEpwdDFzR0pUVE5jSFljV1pVUmxLZVlmNWpzVkZGMTczcHBiSG5NUnMtM3JWWkFrQzdnOUVrN3YxNFZpSEtqaHFfSlplZXJ2MFdKNHhpWExhVmIxZlN2azNQWXBTeGd5TDdtcF9sT3hpNS1GX1NQc3NVdTJwWnhYS1lqcG1wUDhnSHlKa1R6WGJ4SXJaWV9oMXBJNXFuSTZ4YTFqRkpiTUNuWUNRbHZTWWhIY1AycG1sM0FMeDBJNk9yUmY2Y25WNlUwWVNZWkcwemEtRXRKUU1nX3dHU2lMcV9LNk4yRWNUVDRFR1otZTJzN0VqLUQtVWxoLUthb19MS2k0Q2czaTEyYnNZRnBZcDROU1JlWnJVQjNHZEZrOGhhZWdQcVROdFhsR1IyWjNSd29SWHRkNXM0MnVxVC1fWlI1ZDBQclZRR1VNTUZ6Wk1Ga3E2Y1hNeXhzTjRXa283UGUyZW11Wl80ZkN6U2pFRmhpS0Rvel9ac3ZpZUZzUDZSdVFjQWtRM096R2xWYXpaYzl5ZUZjWDFCaWppQXg1OG5QMklNdmJDMVNPeDZJdnhRalZKU1NtdDI2c1dYTERTbjlpYWpkWUVTQmc4U0x5a0d3eDVMMUNzWEs2MFBtWEgwUGRkRkktak9oTDhXT2UwclBWSnoycklOeFhFMzVMRVFKaFBKY19qUFVONU9pV2d0YWd6Y2xJNjM2TWIwZFRYd0V4OWlHVURORXgzRmFJMEN5dW1UdURLNVJiaDFVdjNsVXhLSGdEcFJIX0JnYTh0a1RObHN4WDlmS0NVT2lqeVJiR3dzN0ZtWUZyYjdYMDJxYjU3bE9wZW1KbGVNSjBTbzRhWG5Yd1VTcTN3V0ZJTzRkVUN6dWZQRTloRkstYTVhRXVHVlk4Z2tsYzNJSVhsMHBxZXdSeVZJNDUzQWJBY2tXLU9WTUZCOGMwQ3hyMFZKWi1YUF9nLUd3YmpLWFRzUW44NlpPT0JjTFByUm9La3pRejRFamNjd1NBUTk0cko1Wm9YMmdFV3dEZTZTT0Etd283cnViSC1MLXdSck91Uk8zeUlVT0JrM1ZnLTRuLWlINjhSRkpVWkpLVTJmOG93TmVMUlBLV0xEVXBHUTJYSUphUXp2ZllIYThVeUR0bDQ2M3lOOElzN3djZ09ydmJlTXlMbVdJTDQ1WDl1TkNOVTRRaXFaRTM3dzFjUG1GOEhOSndwLXdBS2l2S29OMWZuR0xfT0xOMExBcnFxSV9PYUVFbWRVUUpCQVNQdS1JYWZNNE8xdGVVS1d6MGpjRjhockVwTkFNQnlrSUJmdUdCQ3NiRk5Qc1VwNENvWGlaZjBuWU5jMllrUnJDdnpHZXNpUzBOWXlvM3oyV2xoTnpkWU4xRG9DcS1Dd3hFb3V4dVphUGxVTW1zaFFJZUttMmFQT2dQTUIyd1NkWnlmUDEtMnZwNlN1c2lpbjJWYi1zcGdWMkcySXVqcWNNSFlnUnpJRFJrS0tHQklScFpsRDF6SlI2V3FjbkJ0Vjg0VlFGRG12NGFqMWRLUWM4Z2dhQ09NdVpicUtJQUhYcjhDRy1CbVpNM2pmb3o0YmVXbHZ0ZUJZWjJkaHB4ZXkwVzVYZ1hhaV9EYXl4U0ZxVmhOT2dkcFVuMVptRXFCVmVOSGNwWmxTTS0xU2dKallOREI4eVNIa2s5ZUhvSTV0QVAwMENfVWpjLUhoeFp3Zkxtem8tNWlmVDVoN1JvU2VWUjdxT2t2ZDhhd0RjU1FQNlA0UnltMEVsc0liRHY2TG81OXRXeFNlaGQwdTlJUE0tSnhmSElpSHJhWDVxc0l2WHhzYjI5MURTdl9GNy0yU25WS3hFZHY5bDhteFlrYTFGWGp4SEZvbFVoMmVIMFlMOHdwdVgwYTg0NXZoUzJvZ2dFYkNmZDJ5akowVHFOYTljeUlVaDFYVVVmS0RJT1BrQVNjdEdjbG90eE1vLWNfMkxTY3BKby13MlpiWlRfYXVURHJyeTN2V1V1VnNHMkNBa0pXVFlpRGloZjViMVc0VDlUM2VEZGJ3TEZjcHJDTE93Wjg0MlpMcGw0Njh4cDlwNThTa2s1aEtLV3h2YnBlTzhmdmctUjgxLU50QXVTWUtaZ2tNeFEwUlZUSkQwX052dE5yWXRzMUhZQ01NUzBUdkZZMzhweUl1aHVFN21ZNko3Z3ljckt5c2RYVkFYQTdjYzJNVUlJYkhVT3BlcEdZWlJQVzAyeHdoQUZlbmU1eHpIb3BjWkRlcTFvYl9vUDZtLUdFZEo4RzZqb2JQdmlEaW91Z0wweGc0d21RSkNjbnQ0UU5LdmlDQWZzNzhfWm5qUmNyQkU2LTJBUkRURGpwVkxKTzRPVTRVWWdzLUM2TGw3TktVUUNIWUNCNWlqM3VLTDV4eWluX2wxeFYya1VvR3g0TjdXTl93VEhpR1g2ejlMWEdocXY0bmhyNXBSLVFET01wTVhMU2VPeDEycko4OU9rYzVDZDJfbjV4cTJHUy1BVkFiTVd0ZGtjT1pSamJCSWE2VzhxNGFnLTNZbnZTSlkyaGljU2FNb0otY2dzUTVydC1fai1xcnQzMXJiRHc4cnpGazRleV9pNHZXbjk0bF9xODRGYmlKRVU4WFNaRnRtT0ZURkU1QnVoMm11U01TZ2hIMm5ZSFA0Q1ZDVzYtQU94cnU1UWlEZ0c5SkhRMTYyOTI5dFN2YXFjaV9ZSUVwVXU2YnBGS0RwQ1NmZUVMc2s1NVNMRnZHZnIzRkkzbmtNOFVYbkhUMGpNUnpLQ2VSTUliNUdYc2tJSEZCaE5BWElqd1pCRW1DZWphZlc4Wmh0SnFPOWxVOGc0a2hxRnFEUzhmcUFvU2Nub2U0VGZwbW1hUlFPMEViVUM2dk1Xdno4b091ZFdxbFBLN2NCVjYxd09uakNBaFFKenRkTHFzUF9kYkV4ZERvOUVqaVplYVB0NWNsOXJ4bEY1MzM3WFB5OUo4ZnI2M1JoYlV3aGdUSUxTWFh1NEpvOEVrZk5ZVjk2MjA2SW43WWE5SkVnZUNKOWp5anhkNTBabGhDaWtOamFaTDlpTlNYNnd5cmtDWlo3SUpyQ0gzbEd4Zl8wRHB1SWxMdzZ0Zm9GNXlTaDdHVnBYYy1xM3o3S3FDQ2E0RjN6aEU2WHN3WVE5SGdrVjdwRkc4Q0tDaEp4andoSVVjS2NLSlp3MkhSLW92VDVJTi04ZjhrQi1xaTBOeGgxWTIzeWRoVE1NVHRqN1pLNGZCNWJKRlY2WmduNWtiTXR0d2FOcWVjNnRZRmEzcVJnbUtoZW1YVTVsNjJyZ09nbkJlbjNCZEZ5MlJXVjVRSzZaeW9WQV94N0M5UGVFcVVLUTloLWQtb3NXVVUzVkJsRUgzSDh5UEs5aXlXWFhseDFZeC1xMmFGVFFlTlhqTW40TWhwMkRXZS1OUzFxTEFJM21zVmRKTVA4S0p5R3pJY3RfaGJOV2NSelhKUE5tRklaSWhjbTJJVU04Zml3aTZNcGhWdDZXZjVzQjZVdUFmVl82R1E2QlVwaENwclN6allUcTlEYVdkSnJYTUdvMW9TQ3FyRm5ZWGtxTkpLdWNFeURIU3dZZlVjc2RYZGZKMjFnYmUwUWF0X092dnJzcFpkbm8wdDhQY1NWQU5YeGdOVmhLRDgzTHphWEJrZ1lpbWZpQ3NmaExXbm9lQkZNbXhocC1MU0xJOUh0UU5oLVNxQWJBb0JyV05WUXNNeGIxaUYyTzhxYkJfWTBOeE5EYXZCU0l3QWNTOHRzUHVrd2RlUWNpV0tmZ2tJWng3c3JvWVViNE1zUUU1Q2ZoN0cxb0Vpc1dEX2hTNEFOVmFLbnJMeWNmZm5uM2UxenA0b3lvak9KVFJ0M1l6OUZCZDVLSjRRYjJWblh1MVJYNXgxd3JsYVZtY1B5eXlidk8zbTBFc3l3TkV6R001RTBLbFZiZ2NHTE9LT2NrbzZDbVlXVnh3RW5fSG9Sdmc5R3V6aEpjVzFKbXdoU29LeEFNUUpaRDNucGNkMjg4cWF2SUl5NHRHdTNtUkFCU1FRQmR5eUlVNmF3WWIxUjVhTEQ1YXhmUnlzZzl0OThBeDNLVGs5QlpFanFrcTVKXzRHckNtbzhNbndBVzhxUWN6U3VmNDNUbzVhWDBjVGFYb3p5SVdZM3FIMmNZZndYelMzZzFQT3RzU0FlNG5oaUtnVkxCYzh6MjZBV2F5RVZMX0htMGZXMlBGZGwzVVV3WU1KODllMmdhZGZCNTUyVnJuU2tmblBWSkhaUFMydHJuMGxCNlhhVTJOUDRoT2g0OUJUMTRpankwNUZiZHR0U29wMm5PYVNubmQ5NUV2dnhWdzRCYTd2S1hIblZvMHJoZlhWS2VSOHJUOFFRNU44c3NnY0xyLXRrM0U4WlhRZURuejZObkxVbUFpaDBFeTNMaC1XZzNVSmdKb1FiNDM1S1ZBX3ZKcFV1SnY0SmxSeHV4dVJLcHVYS2x5TEh4SjhQb1pUOGlzT1d6MFdJWk5xdWthdHY0TW5Nd09fbEhZa1RJLTZtQ3BwSHdkUkhrdk5ReWNZUDN5SzNXNVl4bU5LY1p4V1hQOFlxQ2F4UFhfZEJUWmNBOE0xb1FfUHpvaU5fRXlYdWx6VU1iR0J1UldoMklqWVdkdHdDT3c5SHQ5bTBlelQzZEk3M0ZBV0dXZkdJZXg4UC1sLXJBYUtLQ1A5RW81Slc3dGQ4T2s3bU5ES1p0ZjloSkNWNFNpSEhVUzNxdUZNVWVRMnQ2UHdUN1B4US1uMDk3Ri1zZ0ZzaTlJUmIzeEZsaHVHaUJpX1o1ckR5UUlsV0h6QmFUZ29iSmg0UTB5UHFhSExhM2ROOFVLRUxRblFXc2RCWHhmN2I1RUg1UTBranJ0bGVhUEVhOWhqd1Z6RTZDNk9OOWE4ZHpkSzVVenhsY0FieEZoZ3RaZVAwZFdkNXNET0I3bzhCbnFpYTllczNjZ192S2FSaXZvd3YySUItckxEWDJESGpPU2ZlNUR4TEpGQUNrVmtZM09hX1pEVDN1YmVBT0FJZ2dOUFRjVEpIRm9rTzFzbVlxN21lRlllUkpCWWpNMmVmRTJpWF9iNnRxbG42ZFZidENlOGhiRTJaYlVHZ0pzYjVRVHczWWlSb3BvREJZR1RCWVgwTXRMNE9GcUVCbTg5Sm1iaERzMG1SZFlvcmR0d2FndVVXRVFhTi1uNDNLVFdQeWxSR3k2emRNWE5KTWstWXE4NlF2MGMySV90c2pPa2tBakg3VEJIQVpsZVJLcFNlYXo2UEpJWHpmTzViV3NabGhWZnN0NUFYUjRNVWZBLXEtb3NFSHg0eEpFM2VjdmFxZGhkcnJoOVBLMC1zbl91MDBMV0hzcEJnd1pWNDVGc0RteXJGaHF6ZDFOQXRFOXlpVzYzXzJ0Q2pYVXVVcHpqYnN3MlhHaEtlVTZmQmkwTVFsalNUTEM3VFhtRkJFRy1OYjdXQUpFWmwtU181a0ZzdnZDdWJHeG5ZNVNOZ1AyNmJaSUYtX2xKSDk5WHk2YzhBdFhleUJydFh6emxGZmVlbjVBYjRhM2NTTlB6YnR5aGZfVG1yVWZJdG5SZ0JhOU1ORTB6M0ZDT29MUkQwMXlqQS1MdnMxc1ozRWdwZHMzOGhZcVdNTTNGUjN0MGtFZDhUWXRZcmNFdVVVQmNmVmJWdW9NTGxoRm5XYm5XNXRuWWtOVlU5SGRoNkdya04wdXJ6UzZKdnZIRTBPUlA2UDN1ME9fVWVlYTQzbnBBMGhwNmw0UFBoTnVRM21RRGRaX0pzRlEtcTJFdUpFOHRUdVVkdXczVmZhNkNDZlhiUVNlUW9JUWVWdHRYS2t1aUZoN042QXVXeXlsaDlia1V5LURMWmgtZUxsRnpXb2xES1hWdW9qUDJiZy1Gb1B3b0lWVTNxVVJoazVTQXlCT2FSM2pVZmx4YnAtUGRLNVJBcWJ1SVc3Y0lXUGx1amd5NXBVdVROVjJ3Mnlxa19VNTJGdzNEYXlZNXBzaEpWdXF1MFJiZHd3UGZhYXRvejVpUXVPblo2VjdDQWhvSW9oUjAzanVHLWFNZTlKYXQ4NGJ5WENPVF9waEU2OHdxTVpzaWV2VGs2NzRhZXlvckdkYk9BbjBTQWpjR2YwMnpWVWtrRWlQNkRudnptRXA1NEZlSlR2Y285VHlLUGlVUmU2SzdTR0hxREw1MEp0bjFFWVdhVGtqeHhRVXp1a21MWURLcHpGZFVBSUZadktGR1BTRmVEbFpTQ25IR2FlVWR6blFfWnhycFZlOG1UZVpJZTZ0ejg2QzdmUGFDX0hXWXZJLXNrRGoxQ2Y4Rm9FNzk2bEEwRWIzZk5ISkhXV2R6OVZBYngwSTNEcmJfd0JRWWFsdTBZa2FUUnI2dklyb25nanBOLU03VXV1dWdoRnFsaFVmR0JpTGh2M2lxcWRFWTl4X1RKWFc0anVfNVBqcXNtTU9VT1ltMG1NdnZTbGgzUDFQVGJCRlE1WXZvOVZWcV92bTNRWDhTOW45WDhLLXNFd1VVRUxjM05RcFVXNEp6c0t5dWFYVTNNcE5RenZxZ1UwWVp1MldoWFBZLWV5cUxWVXJFbXNjMWgtay0tSFhFT3BHOVNZemd3Q090RGRHcHNrdXdlVVR2eUluRXpaTlBMWEZ3Skx4S25oTVRwMElORG1tbFN2WVdWRzZhaEFHUF9OUlpBUHBsQVQ5NF9HUUNlUmVzUjZIbnN2MHc2TWVaYjU1MU5SSHE1dEdmYWd0ZGhiZnVjN0Q3Z2tJcEtzMEJZLVZPbVJSckNQR3V5YnhBeE9NbGVuRnAyUE9aTUY5Mk9CMFJhTi1ZTE5hVG9nZEtJTTlKcnNMVS1nZlJPZ1dFanZMSGhEYVd0dlFfLVFqMVZCUW1URno3c3NLSmJoNG9YQmZXZ1poTm1VeUUyWWREdnhQaWQzRDZEektMSlU0azNlUEJGUUZvVXo1a1BTQWhfc0FDbkNMU1ctaU43ZG1GUFRrYURlZEFnTHJuM3AwNmxKWE5XNERDT1ExLTN4YXVoQkdHS3RBSXFwVE82VDFlcmx1R09wOGszbnh2RF9QSlVTc1BQUzVpd2YxSW9fRUcxSUdPRXRFbHdSa1Fjb3ZLZFltMTAzUUFyWGt6STlqdjhRRXRsdHBQbWdENlh0YVVWVWtjTTY5RXg4emZaUzlocy1aa0xfbnpfOXJWQTNsTTlvam1lLUVNZXJTd05WZVBaLWVwUEJVWXlHbkY2eF9CUU9LWWxjV3BKaTdncy1mcHZIZnlqVVlQUW1QZjVkZlhEQ19xVzJUMG1EaEI0Y05SLUdnY09PQ3BjaUZoby15OWVaWWJ4bU1CTVA4U3NPNk44QzVtUS1YRFRQdVloZGN2c1QtcG0zVlF5ZGZWZDY4TmNXeVY1NGVfWlRtSl90ZW9LNk5OUHEtZFloNEVvbElVemVYc05MbVhPX1dQZzh6dmlSZlRrNGtZdjJobUZqcFlOdUdVd2s5NVdsYkszWGJMaDRmVEpvTHB6RGxrVy1JUFdrblVMUE9FMmQzTUJiZDFpMHZveEVuRjh5eXA2aXpqTmhQRFpuWmFuWHFycXVpNlBfWXpQZS1jYmxoRjl5VnpFTEEwbkJUREJhNUgxX201NWRtNDczNEVRclFfOXo0Y2dCeTlDYndaa000cVJ4c0syX1NUYnJKRTNUUG5hVzQzOGF2bENHekZ0MzBUSlY2bGx5U2d3RVBXNkk3b0w5UWpKQ3oyTVVVWnRvUjZaYXl1U3duQS5jNkhoeG92Nk12Vm1rd1ljSE1yZkxR\"\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "10664" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 21:59:18 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "ba82bcc4-fba9-43a9-bf35-c8dfbd5c9346" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 200 + }, + { + "RequestUri": "//keys/KeyBackupRestoreTest?api-version=2016-10-01", + "EncodedRequestUri": "Ly9rZXlzL0tleUJhY2t1cFJlc3RvcmVUZXN0P2FwaS12ZXJzaW9uPTIwMTYtMTAtMDE=", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "842336da-b83b-4429-95a2-04dc5eef5f09" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"recoveryId\": \"https://kv-sdk-test.vault-int.azure-int.net/deletedkeys/KeyBackupRestoreTest\",\r\n \"deletedDate\": 1491343158,\r\n \"scheduledPurgeDate\": 1499119158,\r\n \"key\": {\r\n \"kid\": \"https://kv-sdk-test.vault-int.azure-int.net/keys/KeyBackupRestoreTest/b1634f7d6662425d967888b6abb3f413\",\r\n \"kty\": \"RSA\",\r\n \"key_ops\": [\r\n \"encrypt\",\r\n \"decrypt\",\r\n \"sign\",\r\n \"verify\",\r\n \"wrapKey\",\r\n \"unwrapKey\"\r\n ],\r\n \"n\": \"sutrU6YgaSoSGtNeDijrmXbC6fRjqwz1GIjczBJBFyKZwP_2hC1tRSlxoAHcpViObrhwo9gHQiIFg2jkZAMfYEQk3D6G1MutjEfcQGHi-3ReWV0BDDtkBvOuT8TWsGATQ9kYKgtWOWuFjEARxVzHaThuEbs-e_cHsPIglwcBUvPoMS-vrwyzowJaT95MMxLZUq42Xji3gKIbUhAEZ27z_tkEdQtkBpBorBzChkXdDak6D7XnIjsVQHnMRCwVMgRfIrT06ILdEBeq3eCjCx_jwvGrUyO4PwEm35ToMf-EXirz8X1Ea3JFZ2r5zIbSnoGst1okaQNbynXBlcOcGcVviQ\",\r\n \"e\": \"AQAB\"\r\n },\r\n \"attributes\": {\r\n \"enabled\": false,\r\n \"nbf\": 1262332800,\r\n \"exp\": 1893484800,\r\n \"created\": 1491343158,\r\n \"updated\": 1491343158,\r\n \"purgedisabled\": false\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "840" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 21:59:18 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "4367f340-8fa3-4572-b1d4-8d3193d47bbf" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 200 + }, + { + "RequestUri": "//keys/KeyBackupRestoreTest?api-version=2016-10-01", + "EncodedRequestUri": "Ly9rZXlzL0tleUJhY2t1cFJlc3RvcmVUZXN0P2FwaS12ZXJzaW9uPTIwMTYtMTAtMDE=", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "bafe34a5-d0ec-4528-95bf-6ae97e1ac34a" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"recoveryId\": \"https://kv-sdk-test.vault-int.azure-int.net/deletedkeys/KeyBackupRestoreTest\",\r\n \"deletedDate\": 1491343202,\r\n \"scheduledPurgeDate\": 1499119202,\r\n \"key\": {\r\n \"kid\": \"https://kv-sdk-test.vault-int.azure-int.net/keys/KeyBackupRestoreTest/b1634f7d6662425d967888b6abb3f413\",\r\n \"kty\": \"RSA\",\r\n \"key_ops\": [\r\n \"encrypt\",\r\n \"decrypt\",\r\n \"sign\",\r\n \"verify\",\r\n \"wrapKey\",\r\n \"unwrapKey\"\r\n ],\r\n \"n\": \"sutrU6YgaSoSGtNeDijrmXbC6fRjqwz1GIjczBJBFyKZwP_2hC1tRSlxoAHcpViObrhwo9gHQiIFg2jkZAMfYEQk3D6G1MutjEfcQGHi-3ReWV0BDDtkBvOuT8TWsGATQ9kYKgtWOWuFjEARxVzHaThuEbs-e_cHsPIglwcBUvPoMS-vrwyzowJaT95MMxLZUq42Xji3gKIbUhAEZ27z_tkEdQtkBpBorBzChkXdDak6D7XnIjsVQHnMRCwVMgRfIrT06ILdEBeq3eCjCx_jwvGrUyO4PwEm35ToMf-EXirz8X1Ea3JFZ2r5zIbSnoGst1okaQNbynXBlcOcGcVviQ\",\r\n \"e\": \"AQAB\"\r\n },\r\n \"attributes\": {\r\n \"enabled\": false,\r\n \"nbf\": 1262332800,\r\n \"exp\": 1893484800,\r\n \"created\": 1491343158,\r\n \"updated\": 1491343158,\r\n \"purgedisabled\": false\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "840" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:00:02 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "44bd9226-bf1b-480a-b7d0-1e96ec4d8508" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 200 + }, + { + "RequestUri": "//deletedkeys/KeyBackupRestoreTest?api-version=2016-10-01", + "EncodedRequestUri": "Ly9kZWxldGVka2V5cy9LZXlCYWNrdXBSZXN0b3JlVGVzdD9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "45a19465-296d-4767-bf01-b3dd63d2c1cc" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"KeyNotFound\",\r\n \"message\": \"Deleted Key not found: KeyBackupRestoreTest\"\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "88" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 21:59:19 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "a4411114-ed21-4783-9900-de17567fa850" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 404 + }, + { + "RequestUri": "//deletedkeys/KeyBackupRestoreTest?api-version=2016-10-01", + "EncodedRequestUri": "Ly9kZWxldGVka2V5cy9LZXlCYWNrdXBSZXN0b3JlVGVzdD9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "a1da562e-095d-41d9-a949-d20861d6316c" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"KeyNotFound\",\r\n \"message\": \"Deleted Key not found: KeyBackupRestoreTest\"\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "88" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 21:59:19 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "9899099f-969f-487d-a008-ac3171c7304f" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 404 + }, + { + "RequestUri": "//deletedkeys/KeyBackupRestoreTest?api-version=2016-10-01", + "EncodedRequestUri": "Ly9kZWxldGVka2V5cy9LZXlCYWNrdXBSZXN0b3JlVGVzdD9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "0bf3f132-f2d0-4364-85e4-e453a3e05e81" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"KeyNotFound\",\r\n \"message\": \"Deleted Key not found: KeyBackupRestoreTest\"\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "88" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 21:59:26 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "deeeab4d-d71f-4fc3-95c5-35c1973bf66e" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 404 + }, + { + "RequestUri": "//deletedkeys/KeyBackupRestoreTest?api-version=2016-10-01", + "EncodedRequestUri": "Ly9kZWxldGVka2V5cy9LZXlCYWNrdXBSZXN0b3JlVGVzdD9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "c61931a5-50bb-4b28-bba6-62f9a134d9eb" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"recoveryId\": \"https://kv-sdk-test.vault-int.azure-int.net/deletedkeys/KeyBackupRestoreTest\",\r\n \"deletedDate\": 1491343158,\r\n \"scheduledPurgeDate\": 1499119158,\r\n \"key\": {\r\n \"kid\": \"https://kv-sdk-test.vault-int.azure-int.net/keys/KeyBackupRestoreTest/b1634f7d6662425d967888b6abb3f413\",\r\n \"kty\": \"RSA\",\r\n \"key_ops\": [\r\n \"encrypt\",\r\n \"decrypt\",\r\n \"sign\",\r\n \"verify\",\r\n \"wrapKey\",\r\n \"unwrapKey\"\r\n ],\r\n \"n\": \"sutrU6YgaSoSGtNeDijrmXbC6fRjqwz1GIjczBJBFyKZwP_2hC1tRSlxoAHcpViObrhwo9gHQiIFg2jkZAMfYEQk3D6G1MutjEfcQGHi-3ReWV0BDDtkBvOuT8TWsGATQ9kYKgtWOWuFjEARxVzHaThuEbs-e_cHsPIglwcBUvPoMS-vrwyzowJaT95MMxLZUq42Xji3gKIbUhAEZ27z_tkEdQtkBpBorBzChkXdDak6D7XnIjsVQHnMRCwVMgRfIrT06ILdEBeq3eCjCx_jwvGrUyO4PwEm35ToMf-EXirz8X1Ea3JFZ2r5zIbSnoGst1okaQNbynXBlcOcGcVviQ\",\r\n \"e\": \"AQAB\"\r\n },\r\n \"attributes\": {\r\n \"enabled\": false,\r\n \"nbf\": 1262332800,\r\n \"exp\": 1893484800,\r\n \"created\": 1491343158,\r\n \"updated\": 1491343158,\r\n \"purgedisabled\": false\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "840" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 21:59:40 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "c7fd718e-031c-44a1-9173-e2e12924427b" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 200 + }, + { + "RequestUri": "//deletedkeys/KeyBackupRestoreTest?api-version=2016-10-01", + "EncodedRequestUri": "Ly9kZWxldGVka2V5cy9LZXlCYWNrdXBSZXN0b3JlVGVzdD9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "54a00a00-46df-4fee-92eb-6bd047a9f69e" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"KeyNotFound\",\r\n \"message\": \"Deleted Key not found: KeyBackupRestoreTest\"\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "88" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:00:02 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "477afdf7-52b4-4230-ba5f-7e9a0faa601e" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 404 + }, + { + "RequestUri": "//deletedkeys/KeyBackupRestoreTest?api-version=2016-10-01", + "EncodedRequestUri": "Ly9kZWxldGVka2V5cy9LZXlCYWNrdXBSZXN0b3JlVGVzdD9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "fbe30dc9-1aae-4a38-af22-c72c1aa0543d" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"KeyNotFound\",\r\n \"message\": \"Deleted Key not found: KeyBackupRestoreTest\"\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "88" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:00:02 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "55ede3e5-87d7-4c3c-82d7-62f4069a2015" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 404 + }, + { + "RequestUri": "//deletedkeys/KeyBackupRestoreTest?api-version=2016-10-01", + "EncodedRequestUri": "Ly9kZWxldGVka2V5cy9LZXlCYWNrdXBSZXN0b3JlVGVzdD9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "917ea360-e19f-41a2-9752-b0d402a5833d" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"recoveryId\": \"https://kv-sdk-test.vault-int.azure-int.net/deletedkeys/KeyBackupRestoreTest\",\r\n \"deletedDate\": 1491343202,\r\n \"scheduledPurgeDate\": 1499119202,\r\n \"key\": {\r\n \"kid\": \"https://kv-sdk-test.vault-int.azure-int.net/keys/KeyBackupRestoreTest/b1634f7d6662425d967888b6abb3f413\",\r\n \"kty\": \"RSA\",\r\n \"key_ops\": [\r\n \"encrypt\",\r\n \"decrypt\",\r\n \"sign\",\r\n \"verify\",\r\n \"wrapKey\",\r\n \"unwrapKey\"\r\n ],\r\n \"n\": \"sutrU6YgaSoSGtNeDijrmXbC6fRjqwz1GIjczBJBFyKZwP_2hC1tRSlxoAHcpViObrhwo9gHQiIFg2jkZAMfYEQk3D6G1MutjEfcQGHi-3ReWV0BDDtkBvOuT8TWsGATQ9kYKgtWOWuFjEARxVzHaThuEbs-e_cHsPIglwcBUvPoMS-vrwyzowJaT95MMxLZUq42Xji3gKIbUhAEZ27z_tkEdQtkBpBorBzChkXdDak6D7XnIjsVQHnMRCwVMgRfIrT06ILdEBeq3eCjCx_jwvGrUyO4PwEm35ToMf-EXirz8X1Ea3JFZ2r5zIbSnoGst1okaQNbynXBlcOcGcVviQ\",\r\n \"e\": \"AQAB\"\r\n },\r\n \"attributes\": {\r\n \"enabled\": false,\r\n \"nbf\": 1262332800,\r\n \"exp\": 1893484800,\r\n \"created\": 1491343158,\r\n \"updated\": 1491343158,\r\n \"purgedisabled\": false\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "840" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:00:07 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "eb9ba6f8-168c-4fec-ac3d-7990b5649266" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 200 + }, + { + "RequestUri": "//deletedkeys/KeyBackupRestoreTest?api-version=2016-10-01", + "EncodedRequestUri": "Ly9kZWxldGVka2V5cy9LZXlCYWNrdXBSZXN0b3JlVGVzdD9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "70703fb5-34c8-4592-b28d-8bb88ebf44a4" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "", + "ResponseHeaders": { + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 21:59:40 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "178b93b7-9138-463d-bf10-9b775cc119d4" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 204 + }, + { + "RequestUri": "//deletedkeys/KeyBackupRestoreTest?api-version=2016-10-01", + "EncodedRequestUri": "Ly9kZWxldGVka2V5cy9LZXlCYWNrdXBSZXN0b3JlVGVzdD9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "840d5c30-d1a9-44c9-9ea8-ec5bc49b77a1" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "", + "ResponseHeaders": { + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:00:08 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "bf85968a-1fba-435f-93af-2987dcff6b04" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 204 + }, + { + "RequestUri": "//keys/restore?api-version=2016-10-01", + "EncodedRequestUri": "Ly9rZXlzL3Jlc3RvcmU/YXBpLXZlcnNpb249MjAxNi0xMC0wMQ==", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"value\": \"JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUppTlRjMk5ESTVaaTB5TlRZNExUUTFZbVV0WW1aaFlTMHpOMlZrTURkbVl6QmpPREVpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLk00Qzg3SE5zMTZqcFdwSkVUQ1dmZE5SUWcwNDV1ZU1hblA2NHNmcGtYaFpjVzBrVldNYVBjVmkwaHYxeXpWdTZ2bnAycHY1ejdfY204alR6WkQ3VVd3NllpVC0xZ1RsbFlGSS1tRWVpU2xuSHJMNnpVTEtONnBuR2p6UVdEUHhJb2c5Slh5bFFkSW9xdWxVX3NVcnN6SEttQWFSQS1xdVZmNFlZaElVbm94eW1pQjA5MkJ6Tm5BcFB1UllIQ0JsMUstRjQ5aW1UWk9BcnVHX1dEeGhKMUo3SEhJWEJzVElGTEpQX0ItOTVpS1A0SHNhTEpqREZBTmJxV3JoSC1OQXc1aWZDTWRsSlBMbTdsU0NJV3JsVVVZLVpPR2tpNnVUUm9kdUhjMGYza2lXOEhuUHJqYkkyRHd6am0zQWQ3dnMxMXpnMzBtZUNvU19ZTWtsb2VPM0RRUS5UWE1sNjNvYWREREc1dDd1WG5aLVRBLlFVeUhrY2JpZU95R21LTWdxUF9QTjIteTJDMW9MNDNneGNvQkxidkM0c0h0VmNoYWtQMU9lWmdwRll0My1UbjRscDNNak83ZFF0a09ZeXd0c080TE13TUFsMXdvM0RHSDNaNHhVd1BQdHJGSV9uaWg0Z1IxS0ZMdXVZVE9CdUlkQ3MtVFpreVZOV1FreUh6VUpkcUx5SlhoOUlUdDJVSDJwOEJVTVZnZU5mdU5ONWd6MVlxa1Q4Um9aWmFRUnNkdnZWalRWazE4cWpFbG5YZ0I0ckFGWWIzcGZNdzhJbjBhc0E4Rkotc1JHdEZPTFhTbWs5M2dHTnp0ZnJQMUxYalpyU19iQkduc3UzMWItSEZJR1hNX3drdzZQUjBlSGZ2dGQ5Z1ZQMWpvREdWV3R1OFBDTlp1ek90ZlRMRG9VWVFvYkU2dmVpVEdRVzEwdWRQOW15S2FxaGtjSHBnc0trVzN4VjdRTDFRSFg2UjRUT0VTY1F1Qm5vQ3J3UlN0RnpuY29Mb2tmREdXYmZiWUdsb3F5THo4Y0IyaVZERTM3eUZUQzJEY2dMeW9tYklUWklvUU9EUHIwcEdOa2Y3WU4ycHU1UVRBZXN0ZnRqWWtlbUhfNEZadFcteFcxT1YwUDU3THgzcGpGcVFyaTR5YW1kUHYtS2F5YWwyUVNmV1p3RE5rX3h1cTFxT2dlb0NWMGhwSVFuYXBLYzBvVG8tTFdqMk1IazBBbFhQdWhyUmM0UHktWGJ2NGFRUE9qY0puMkZTZmF5YkQzejNiSzVPMklrNm9WZ2NwNjNhWDk0UUJFTXJjbGlpalhDRXpXS1ZTUmNBQVAxbWxUSVJiYW5paVFuMHhJQ3hUcXM1VVlvSW1fcFJ0YVB6N08xUGd6V3F3M2d4Vi1sSUZEd3cyNU5TR3pqS3VfTk9zUE5WVWtpa2xmWHJOZEpqME5oMFVObHFRejg2TWpnVnNadDVWQkZ3Q2VHQUhhMjdHTXdhVkd3M0dwNXpxbDJFU1E4Q3l0b2JSYUxQZ1RJNURESncza3E4M2dsa0pqSndzcmpIQ3JXaEM4b2tSck9la3NLMU8zbmpuTnlSMkQ5VmE2S3N4V2RXYzg0Tkd4Z1JURVpyWXA0SFFDcl8zMGpQdU9DbUwtTXA2cnF0OG0wSW1VTkUxZWUtc2NCbE8xLWpHcjc2QktRdVZQMUpOV2o5MTRETFE4aDNvMlhDT0g1ZndMRmRiLUhJWkZfazQ3eWZqSENmbm9TSm5LdUdiV05RUDc0TzI1MlFPSlFCOHhFSmpJbHFRdXI1SmhldDFFUWowYjZ1WFZhMHh4cTRlWjdDb0tIQ1FfZmRPbnd3aTNpaXNiQXd0Z183YndrdnpwUG9pSW40ZDY5bVk3NHBRRURsYzBzbTY3ZGJ4LWxFQW5faTFmNUVNVGVSWFgtUG9xSmRZaGItanlCbnR0d0dUQnIzSkJUVGFZOFpIZmhJem9MdTA2N0lqVGFHNFltZHRwc2JTajVramR2b19wR2t4UkVoaUw1em03RWdiZXo0Ui1JaE11N2pNd2lNSjJKUU9fMF9oVG5oY3NYeXBzbEpWN3NWSVY4UmJkcTY1Uk40UGlZUzU5ZVRBVUxKOFFaaWRyaUFfbkY1czFwQTNpLXA4Z1Q2YWx3bldCV0wwLUp2U1AteW9BVk8zS0ZIOWVDVnpxZ0FLeDNrQVhiNTJLMEtCZGQ5aXdiVlZoTU1VR3Zpbi00eThDRWd1dVB1S01lVm5fbTV1WkJpZFpTRWxLWnhpUE9WS0NzTUdLUTkxT29XR1pLelVwYmJ5NVNyTDJ5bFZoT3ZPZWVaSXJndVFCM1hvNjZJa2NFQ3daMHV6Z29zVHRfSm5JZVpqVHFZTU1WYTQzTEtjQmZBdVMzTnp6akhvNEhGb2JaWFdGc1RZN1pZdUFid0JtWkFFbWZhWDE3SlRSVlRKa3E3STRnamFXa04zaHFPdHJHZ3R6bEJSc2lvbE5YSWdyaGl0em5HUEdlcVpZYW4wZ190Q3BoWnpIT0hwX1BwSjlhcGNNeUxHRVp6NU11cE1rRVdwQlUteEs5WDJJLTVRSUx1eGcxSXF4aVNOLTZRTmlyXzdJdFhPT09GMVpyemMtNkRKMVpBaS1EdjRvRDlBcFM3c1lQQXNVQ1VYMU53Y2JkMVM2YkZlWEpwdDFzR0pUVE5jSFljV1pVUmxLZVlmNWpzVkZGMTczcHBiSG5NUnMtM3JWWkFrQzdnOUVrN3YxNFZpSEtqaHFfSlplZXJ2MFdKNHhpWExhVmIxZlN2azNQWXBTeGd5TDdtcF9sT3hpNS1GX1NQc3NVdTJwWnhYS1lqcG1wUDhnSHlKa1R6WGJ4SXJaWV9oMXBJNXFuSTZ4YTFqRkpiTUNuWUNRbHZTWWhIY1AycG1sM0FMeDBJNk9yUmY2Y25WNlUwWVNZWkcwemEtRXRKUU1nX3dHU2lMcV9LNk4yRWNUVDRFR1otZTJzN0VqLUQtVWxoLUthb19MS2k0Q2czaTEyYnNZRnBZcDROU1JlWnJVQjNHZEZrOGhhZWdQcVROdFhsR1IyWjNSd29SWHRkNXM0MnVxVC1fWlI1ZDBQclZRR1VNTUZ6Wk1Ga3E2Y1hNeXhzTjRXa283UGUyZW11Wl80ZkN6U2pFRmhpS0Rvel9ac3ZpZUZzUDZSdVFjQWtRM096R2xWYXpaYzl5ZUZjWDFCaWppQXg1OG5QMklNdmJDMVNPeDZJdnhRalZKU1NtdDI2c1dYTERTbjlpYWpkWUVTQmc4U0x5a0d3eDVMMUNzWEs2MFBtWEgwUGRkRkktak9oTDhXT2UwclBWSnoycklOeFhFMzVMRVFKaFBKY19qUFVONU9pV2d0YWd6Y2xJNjM2TWIwZFRYd0V4OWlHVURORXgzRmFJMEN5dW1UdURLNVJiaDFVdjNsVXhLSGdEcFJIX0JnYTh0a1RObHN4WDlmS0NVT2lqeVJiR3dzN0ZtWUZyYjdYMDJxYjU3bE9wZW1KbGVNSjBTbzRhWG5Yd1VTcTN3V0ZJTzRkVUN6dWZQRTloRkstYTVhRXVHVlk4Z2tsYzNJSVhsMHBxZXdSeVZJNDUzQWJBY2tXLU9WTUZCOGMwQ3hyMFZKWi1YUF9nLUd3YmpLWFRzUW44NlpPT0JjTFByUm9La3pRejRFamNjd1NBUTk0cko1Wm9YMmdFV3dEZTZTT0Etd283cnViSC1MLXdSck91Uk8zeUlVT0JrM1ZnLTRuLWlINjhSRkpVWkpLVTJmOG93TmVMUlBLV0xEVXBHUTJYSUphUXp2ZllIYThVeUR0bDQ2M3lOOElzN3djZ09ydmJlTXlMbVdJTDQ1WDl1TkNOVTRRaXFaRTM3dzFjUG1GOEhOSndwLXdBS2l2S29OMWZuR0xfT0xOMExBcnFxSV9PYUVFbWRVUUpCQVNQdS1JYWZNNE8xdGVVS1d6MGpjRjhockVwTkFNQnlrSUJmdUdCQ3NiRk5Qc1VwNENvWGlaZjBuWU5jMllrUnJDdnpHZXNpUzBOWXlvM3oyV2xoTnpkWU4xRG9DcS1Dd3hFb3V4dVphUGxVTW1zaFFJZUttMmFQT2dQTUIyd1NkWnlmUDEtMnZwNlN1c2lpbjJWYi1zcGdWMkcySXVqcWNNSFlnUnpJRFJrS0tHQklScFpsRDF6SlI2V3FjbkJ0Vjg0VlFGRG12NGFqMWRLUWM4Z2dhQ09NdVpicUtJQUhYcjhDRy1CbVpNM2pmb3o0YmVXbHZ0ZUJZWjJkaHB4ZXkwVzVYZ1hhaV9EYXl4U0ZxVmhOT2dkcFVuMVptRXFCVmVOSGNwWmxTTS0xU2dKallOREI4eVNIa2s5ZUhvSTV0QVAwMENfVWpjLUhoeFp3Zkxtem8tNWlmVDVoN1JvU2VWUjdxT2t2ZDhhd0RjU1FQNlA0UnltMEVsc0liRHY2TG81OXRXeFNlaGQwdTlJUE0tSnhmSElpSHJhWDVxc0l2WHhzYjI5MURTdl9GNy0yU25WS3hFZHY5bDhteFlrYTFGWGp4SEZvbFVoMmVIMFlMOHdwdVgwYTg0NXZoUzJvZ2dFYkNmZDJ5akowVHFOYTljeUlVaDFYVVVmS0RJT1BrQVNjdEdjbG90eE1vLWNfMkxTY3BKby13MlpiWlRfYXVURHJyeTN2V1V1VnNHMkNBa0pXVFlpRGloZjViMVc0VDlUM2VEZGJ3TEZjcHJDTE93Wjg0MlpMcGw0Njh4cDlwNThTa2s1aEtLV3h2YnBlTzhmdmctUjgxLU50QXVTWUtaZ2tNeFEwUlZUSkQwX052dE5yWXRzMUhZQ01NUzBUdkZZMzhweUl1aHVFN21ZNko3Z3ljckt5c2RYVkFYQTdjYzJNVUlJYkhVT3BlcEdZWlJQVzAyeHdoQUZlbmU1eHpIb3BjWkRlcTFvYl9vUDZtLUdFZEo4RzZqb2JQdmlEaW91Z0wweGc0d21RSkNjbnQ0UU5LdmlDQWZzNzhfWm5qUmNyQkU2LTJBUkRURGpwVkxKTzRPVTRVWWdzLUM2TGw3TktVUUNIWUNCNWlqM3VLTDV4eWluX2wxeFYya1VvR3g0TjdXTl93VEhpR1g2ejlMWEdocXY0bmhyNXBSLVFET01wTVhMU2VPeDEycko4OU9rYzVDZDJfbjV4cTJHUy1BVkFiTVd0ZGtjT1pSamJCSWE2VzhxNGFnLTNZbnZTSlkyaGljU2FNb0otY2dzUTVydC1fai1xcnQzMXJiRHc4cnpGazRleV9pNHZXbjk0bF9xODRGYmlKRVU4WFNaRnRtT0ZURkU1QnVoMm11U01TZ2hIMm5ZSFA0Q1ZDVzYtQU94cnU1UWlEZ0c5SkhRMTYyOTI5dFN2YXFjaV9ZSUVwVXU2YnBGS0RwQ1NmZUVMc2s1NVNMRnZHZnIzRkkzbmtNOFVYbkhUMGpNUnpLQ2VSTUliNUdYc2tJSEZCaE5BWElqd1pCRW1DZWphZlc4Wmh0SnFPOWxVOGc0a2hxRnFEUzhmcUFvU2Nub2U0VGZwbW1hUlFPMEViVUM2dk1Xdno4b091ZFdxbFBLN2NCVjYxd09uakNBaFFKenRkTHFzUF9kYkV4ZERvOUVqaVplYVB0NWNsOXJ4bEY1MzM3WFB5OUo4ZnI2M1JoYlV3aGdUSUxTWFh1NEpvOEVrZk5ZVjk2MjA2SW43WWE5SkVnZUNKOWp5anhkNTBabGhDaWtOamFaTDlpTlNYNnd5cmtDWlo3SUpyQ0gzbEd4Zl8wRHB1SWxMdzZ0Zm9GNXlTaDdHVnBYYy1xM3o3S3FDQ2E0RjN6aEU2WHN3WVE5SGdrVjdwRkc4Q0tDaEp4andoSVVjS2NLSlp3MkhSLW92VDVJTi04ZjhrQi1xaTBOeGgxWTIzeWRoVE1NVHRqN1pLNGZCNWJKRlY2WmduNWtiTXR0d2FOcWVjNnRZRmEzcVJnbUtoZW1YVTVsNjJyZ09nbkJlbjNCZEZ5MlJXVjVRSzZaeW9WQV94N0M5UGVFcVVLUTloLWQtb3NXVVUzVkJsRUgzSDh5UEs5aXlXWFhseDFZeC1xMmFGVFFlTlhqTW40TWhwMkRXZS1OUzFxTEFJM21zVmRKTVA4S0p5R3pJY3RfaGJOV2NSelhKUE5tRklaSWhjbTJJVU04Zml3aTZNcGhWdDZXZjVzQjZVdUFmVl82R1E2QlVwaENwclN6allUcTlEYVdkSnJYTUdvMW9TQ3FyRm5ZWGtxTkpLdWNFeURIU3dZZlVjc2RYZGZKMjFnYmUwUWF0X092dnJzcFpkbm8wdDhQY1NWQU5YeGdOVmhLRDgzTHphWEJrZ1lpbWZpQ3NmaExXbm9lQkZNbXhocC1MU0xJOUh0UU5oLVNxQWJBb0JyV05WUXNNeGIxaUYyTzhxYkJfWTBOeE5EYXZCU0l3QWNTOHRzUHVrd2RlUWNpV0tmZ2tJWng3c3JvWVViNE1zUUU1Q2ZoN0cxb0Vpc1dEX2hTNEFOVmFLbnJMeWNmZm5uM2UxenA0b3lvak9KVFJ0M1l6OUZCZDVLSjRRYjJWblh1MVJYNXgxd3JsYVZtY1B5eXlidk8zbTBFc3l3TkV6R001RTBLbFZiZ2NHTE9LT2NrbzZDbVlXVnh3RW5fSG9Sdmc5R3V6aEpjVzFKbXdoU29LeEFNUUpaRDNucGNkMjg4cWF2SUl5NHRHdTNtUkFCU1FRQmR5eUlVNmF3WWIxUjVhTEQ1YXhmUnlzZzl0OThBeDNLVGs5QlpFanFrcTVKXzRHckNtbzhNbndBVzhxUWN6U3VmNDNUbzVhWDBjVGFYb3p5SVdZM3FIMmNZZndYelMzZzFQT3RzU0FlNG5oaUtnVkxCYzh6MjZBV2F5RVZMX0htMGZXMlBGZGwzVVV3WU1KODllMmdhZGZCNTUyVnJuU2tmblBWSkhaUFMydHJuMGxCNlhhVTJOUDRoT2g0OUJUMTRpankwNUZiZHR0U29wMm5PYVNubmQ5NUV2dnhWdzRCYTd2S1hIblZvMHJoZlhWS2VSOHJUOFFRNU44c3NnY0xyLXRrM0U4WlhRZURuejZObkxVbUFpaDBFeTNMaC1XZzNVSmdKb1FiNDM1S1ZBX3ZKcFV1SnY0SmxSeHV4dVJLcHVYS2x5TEh4SjhQb1pUOGlzT1d6MFdJWk5xdWthdHY0TW5Nd09fbEhZa1RJLTZtQ3BwSHdkUkhrdk5ReWNZUDN5SzNXNVl4bU5LY1p4V1hQOFlxQ2F4UFhfZEJUWmNBOE0xb1FfUHpvaU5fRXlYdWx6VU1iR0J1UldoMklqWVdkdHdDT3c5SHQ5bTBlelQzZEk3M0ZBV0dXZkdJZXg4UC1sLXJBYUtLQ1A5RW81Slc3dGQ4T2s3bU5ES1p0ZjloSkNWNFNpSEhVUzNxdUZNVWVRMnQ2UHdUN1B4US1uMDk3Ri1zZ0ZzaTlJUmIzeEZsaHVHaUJpX1o1ckR5UUlsV0h6QmFUZ29iSmg0UTB5UHFhSExhM2ROOFVLRUxRblFXc2RCWHhmN2I1RUg1UTBranJ0bGVhUEVhOWhqd1Z6RTZDNk9OOWE4ZHpkSzVVenhsY0FieEZoZ3RaZVAwZFdkNXNET0I3bzhCbnFpYTllczNjZ192S2FSaXZvd3YySUItckxEWDJESGpPU2ZlNUR4TEpGQUNrVmtZM09hX1pEVDN1YmVBT0FJZ2dOUFRjVEpIRm9rTzFzbVlxN21lRlllUkpCWWpNMmVmRTJpWF9iNnRxbG42ZFZidENlOGhiRTJaYlVHZ0pzYjVRVHczWWlSb3BvREJZR1RCWVgwTXRMNE9GcUVCbTg5Sm1iaERzMG1SZFlvcmR0d2FndVVXRVFhTi1uNDNLVFdQeWxSR3k2emRNWE5KTWstWXE4NlF2MGMySV90c2pPa2tBakg3VEJIQVpsZVJLcFNlYXo2UEpJWHpmTzViV3NabGhWZnN0NUFYUjRNVWZBLXEtb3NFSHg0eEpFM2VjdmFxZGhkcnJoOVBLMC1zbl91MDBMV0hzcEJnd1pWNDVGc0RteXJGaHF6ZDFOQXRFOXlpVzYzXzJ0Q2pYVXVVcHpqYnN3MlhHaEtlVTZmQmkwTVFsalNUTEM3VFhtRkJFRy1OYjdXQUpFWmwtU181a0ZzdnZDdWJHeG5ZNVNOZ1AyNmJaSUYtX2xKSDk5WHk2YzhBdFhleUJydFh6emxGZmVlbjVBYjRhM2NTTlB6YnR5aGZfVG1yVWZJdG5SZ0JhOU1ORTB6M0ZDT29MUkQwMXlqQS1MdnMxc1ozRWdwZHMzOGhZcVdNTTNGUjN0MGtFZDhUWXRZcmNFdVVVQmNmVmJWdW9NTGxoRm5XYm5XNXRuWWtOVlU5SGRoNkdya04wdXJ6UzZKdnZIRTBPUlA2UDN1ME9fVWVlYTQzbnBBMGhwNmw0UFBoTnVRM21RRGRaX0pzRlEtcTJFdUpFOHRUdVVkdXczVmZhNkNDZlhiUVNlUW9JUWVWdHRYS2t1aUZoN042QXVXeXlsaDlia1V5LURMWmgtZUxsRnpXb2xES1hWdW9qUDJiZy1Gb1B3b0lWVTNxVVJoazVTQXlCT2FSM2pVZmx4YnAtUGRLNVJBcWJ1SVc3Y0lXUGx1amd5NXBVdVROVjJ3Mnlxa19VNTJGdzNEYXlZNXBzaEpWdXF1MFJiZHd3UGZhYXRvejVpUXVPblo2VjdDQWhvSW9oUjAzanVHLWFNZTlKYXQ4NGJ5WENPVF9waEU2OHdxTVpzaWV2VGs2NzRhZXlvckdkYk9BbjBTQWpjR2YwMnpWVWtrRWlQNkRudnptRXA1NEZlSlR2Y285VHlLUGlVUmU2SzdTR0hxREw1MEp0bjFFWVdhVGtqeHhRVXp1a21MWURLcHpGZFVBSUZadktGR1BTRmVEbFpTQ25IR2FlVWR6blFfWnhycFZlOG1UZVpJZTZ0ejg2QzdmUGFDX0hXWXZJLXNrRGoxQ2Y4Rm9FNzk2bEEwRWIzZk5ISkhXV2R6OVZBYngwSTNEcmJfd0JRWWFsdTBZa2FUUnI2dklyb25nanBOLU03VXV1dWdoRnFsaFVmR0JpTGh2M2lxcWRFWTl4X1RKWFc0anVfNVBqcXNtTU9VT1ltMG1NdnZTbGgzUDFQVGJCRlE1WXZvOVZWcV92bTNRWDhTOW45WDhLLXNFd1VVRUxjM05RcFVXNEp6c0t5dWFYVTNNcE5RenZxZ1UwWVp1MldoWFBZLWV5cUxWVXJFbXNjMWgtay0tSFhFT3BHOVNZemd3Q090RGRHcHNrdXdlVVR2eUluRXpaTlBMWEZ3Skx4S25oTVRwMElORG1tbFN2WVdWRzZhaEFHUF9OUlpBUHBsQVQ5NF9HUUNlUmVzUjZIbnN2MHc2TWVaYjU1MU5SSHE1dEdmYWd0ZGhiZnVjN0Q3Z2tJcEtzMEJZLVZPbVJSckNQR3V5YnhBeE9NbGVuRnAyUE9aTUY5Mk9CMFJhTi1ZTE5hVG9nZEtJTTlKcnNMVS1nZlJPZ1dFanZMSGhEYVd0dlFfLVFqMVZCUW1URno3c3NLSmJoNG9YQmZXZ1poTm1VeUUyWWREdnhQaWQzRDZEektMSlU0azNlUEJGUUZvVXo1a1BTQWhfc0FDbkNMU1ctaU43ZG1GUFRrYURlZEFnTHJuM3AwNmxKWE5XNERDT1ExLTN4YXVoQkdHS3RBSXFwVE82VDFlcmx1R09wOGszbnh2RF9QSlVTc1BQUzVpd2YxSW9fRUcxSUdPRXRFbHdSa1Fjb3ZLZFltMTAzUUFyWGt6STlqdjhRRXRsdHBQbWdENlh0YVVWVWtjTTY5RXg4emZaUzlocy1aa0xfbnpfOXJWQTNsTTlvam1lLUVNZXJTd05WZVBaLWVwUEJVWXlHbkY2eF9CUU9LWWxjV3BKaTdncy1mcHZIZnlqVVlQUW1QZjVkZlhEQ19xVzJUMG1EaEI0Y05SLUdnY09PQ3BjaUZoby15OWVaWWJ4bU1CTVA4U3NPNk44QzVtUS1YRFRQdVloZGN2c1QtcG0zVlF5ZGZWZDY4TmNXeVY1NGVfWlRtSl90ZW9LNk5OUHEtZFloNEVvbElVemVYc05MbVhPX1dQZzh6dmlSZlRrNGtZdjJobUZqcFlOdUdVd2s5NVdsYkszWGJMaDRmVEpvTHB6RGxrVy1JUFdrblVMUE9FMmQzTUJiZDFpMHZveEVuRjh5eXA2aXpqTmhQRFpuWmFuWHFycXVpNlBfWXpQZS1jYmxoRjl5VnpFTEEwbkJUREJhNUgxX201NWRtNDczNEVRclFfOXo0Y2dCeTlDYndaa000cVJ4c0syX1NUYnJKRTNUUG5hVzQzOGF2bENHekZ0MzBUSlY2bGx5U2d3RVBXNkk3b0w5UWpKQ3oyTVVVWnRvUjZaYXl1U3duQS5jNkhoeG92Nk12Vm1rd1ljSE1yZkxR\"\r\n}", + "RequestHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "10671" + ], + "x-ms-client-request-id": [ + "5bbb5041-3b13-46f0-8734-ab1cdfe5728c" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"Conflict\",\r\n \"message\": \"Conflict while restoring key https://kv-sdk-test.vault-int.azure-int.net/keys/KeyBackupRestoreTest/b1634f7d6662425d967888b6abb3f413 - key already exists or concurrent access\"\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "215" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 21:59:41 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "5afd03ed-160c-405f-8c3f-9cd7cb90fb21" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 409 + }, + { + "RequestUri": "//keys/restore?api-version=2016-10-01", + "EncodedRequestUri": "Ly9rZXlzL3Jlc3RvcmU/YXBpLXZlcnNpb249MjAxNi0xMC0wMQ==", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"value\": \"JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUppTlRjMk5ESTVaaTB5TlRZNExUUTFZbVV0WW1aaFlTMHpOMlZrTURkbVl6QmpPREVpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLk00Qzg3SE5zMTZqcFdwSkVUQ1dmZE5SUWcwNDV1ZU1hblA2NHNmcGtYaFpjVzBrVldNYVBjVmkwaHYxeXpWdTZ2bnAycHY1ejdfY204alR6WkQ3VVd3NllpVC0xZ1RsbFlGSS1tRWVpU2xuSHJMNnpVTEtONnBuR2p6UVdEUHhJb2c5Slh5bFFkSW9xdWxVX3NVcnN6SEttQWFSQS1xdVZmNFlZaElVbm94eW1pQjA5MkJ6Tm5BcFB1UllIQ0JsMUstRjQ5aW1UWk9BcnVHX1dEeGhKMUo3SEhJWEJzVElGTEpQX0ItOTVpS1A0SHNhTEpqREZBTmJxV3JoSC1OQXc1aWZDTWRsSlBMbTdsU0NJV3JsVVVZLVpPR2tpNnVUUm9kdUhjMGYza2lXOEhuUHJqYkkyRHd6am0zQWQ3dnMxMXpnMzBtZUNvU19ZTWtsb2VPM0RRUS5UWE1sNjNvYWREREc1dDd1WG5aLVRBLlFVeUhrY2JpZU95R21LTWdxUF9QTjIteTJDMW9MNDNneGNvQkxidkM0c0h0VmNoYWtQMU9lWmdwRll0My1UbjRscDNNak83ZFF0a09ZeXd0c080TE13TUFsMXdvM0RHSDNaNHhVd1BQdHJGSV9uaWg0Z1IxS0ZMdXVZVE9CdUlkQ3MtVFpreVZOV1FreUh6VUpkcUx5SlhoOUlUdDJVSDJwOEJVTVZnZU5mdU5ONWd6MVlxa1Q4Um9aWmFRUnNkdnZWalRWazE4cWpFbG5YZ0I0ckFGWWIzcGZNdzhJbjBhc0E4Rkotc1JHdEZPTFhTbWs5M2dHTnp0ZnJQMUxYalpyU19iQkduc3UzMWItSEZJR1hNX3drdzZQUjBlSGZ2dGQ5Z1ZQMWpvREdWV3R1OFBDTlp1ek90ZlRMRG9VWVFvYkU2dmVpVEdRVzEwdWRQOW15S2FxaGtjSHBnc0trVzN4VjdRTDFRSFg2UjRUT0VTY1F1Qm5vQ3J3UlN0RnpuY29Mb2tmREdXYmZiWUdsb3F5THo4Y0IyaVZERTM3eUZUQzJEY2dMeW9tYklUWklvUU9EUHIwcEdOa2Y3WU4ycHU1UVRBZXN0ZnRqWWtlbUhfNEZadFcteFcxT1YwUDU3THgzcGpGcVFyaTR5YW1kUHYtS2F5YWwyUVNmV1p3RE5rX3h1cTFxT2dlb0NWMGhwSVFuYXBLYzBvVG8tTFdqMk1IazBBbFhQdWhyUmM0UHktWGJ2NGFRUE9qY0puMkZTZmF5YkQzejNiSzVPMklrNm9WZ2NwNjNhWDk0UUJFTXJjbGlpalhDRXpXS1ZTUmNBQVAxbWxUSVJiYW5paVFuMHhJQ3hUcXM1VVlvSW1fcFJ0YVB6N08xUGd6V3F3M2d4Vi1sSUZEd3cyNU5TR3pqS3VfTk9zUE5WVWtpa2xmWHJOZEpqME5oMFVObHFRejg2TWpnVnNadDVWQkZ3Q2VHQUhhMjdHTXdhVkd3M0dwNXpxbDJFU1E4Q3l0b2JSYUxQZ1RJNURESncza3E4M2dsa0pqSndzcmpIQ3JXaEM4b2tSck9la3NLMU8zbmpuTnlSMkQ5VmE2S3N4V2RXYzg0Tkd4Z1JURVpyWXA0SFFDcl8zMGpQdU9DbUwtTXA2cnF0OG0wSW1VTkUxZWUtc2NCbE8xLWpHcjc2QktRdVZQMUpOV2o5MTRETFE4aDNvMlhDT0g1ZndMRmRiLUhJWkZfazQ3eWZqSENmbm9TSm5LdUdiV05RUDc0TzI1MlFPSlFCOHhFSmpJbHFRdXI1SmhldDFFUWowYjZ1WFZhMHh4cTRlWjdDb0tIQ1FfZmRPbnd3aTNpaXNiQXd0Z183YndrdnpwUG9pSW40ZDY5bVk3NHBRRURsYzBzbTY3ZGJ4LWxFQW5faTFmNUVNVGVSWFgtUG9xSmRZaGItanlCbnR0d0dUQnIzSkJUVGFZOFpIZmhJem9MdTA2N0lqVGFHNFltZHRwc2JTajVramR2b19wR2t4UkVoaUw1em03RWdiZXo0Ui1JaE11N2pNd2lNSjJKUU9fMF9oVG5oY3NYeXBzbEpWN3NWSVY4UmJkcTY1Uk40UGlZUzU5ZVRBVUxKOFFaaWRyaUFfbkY1czFwQTNpLXA4Z1Q2YWx3bldCV0wwLUp2U1AteW9BVk8zS0ZIOWVDVnpxZ0FLeDNrQVhiNTJLMEtCZGQ5aXdiVlZoTU1VR3Zpbi00eThDRWd1dVB1S01lVm5fbTV1WkJpZFpTRWxLWnhpUE9WS0NzTUdLUTkxT29XR1pLelVwYmJ5NVNyTDJ5bFZoT3ZPZWVaSXJndVFCM1hvNjZJa2NFQ3daMHV6Z29zVHRfSm5JZVpqVHFZTU1WYTQzTEtjQmZBdVMzTnp6akhvNEhGb2JaWFdGc1RZN1pZdUFid0JtWkFFbWZhWDE3SlRSVlRKa3E3STRnamFXa04zaHFPdHJHZ3R6bEJSc2lvbE5YSWdyaGl0em5HUEdlcVpZYW4wZ190Q3BoWnpIT0hwX1BwSjlhcGNNeUxHRVp6NU11cE1rRVdwQlUteEs5WDJJLTVRSUx1eGcxSXF4aVNOLTZRTmlyXzdJdFhPT09GMVpyemMtNkRKMVpBaS1EdjRvRDlBcFM3c1lQQXNVQ1VYMU53Y2JkMVM2YkZlWEpwdDFzR0pUVE5jSFljV1pVUmxLZVlmNWpzVkZGMTczcHBiSG5NUnMtM3JWWkFrQzdnOUVrN3YxNFZpSEtqaHFfSlplZXJ2MFdKNHhpWExhVmIxZlN2azNQWXBTeGd5TDdtcF9sT3hpNS1GX1NQc3NVdTJwWnhYS1lqcG1wUDhnSHlKa1R6WGJ4SXJaWV9oMXBJNXFuSTZ4YTFqRkpiTUNuWUNRbHZTWWhIY1AycG1sM0FMeDBJNk9yUmY2Y25WNlUwWVNZWkcwemEtRXRKUU1nX3dHU2lMcV9LNk4yRWNUVDRFR1otZTJzN0VqLUQtVWxoLUthb19MS2k0Q2czaTEyYnNZRnBZcDROU1JlWnJVQjNHZEZrOGhhZWdQcVROdFhsR1IyWjNSd29SWHRkNXM0MnVxVC1fWlI1ZDBQclZRR1VNTUZ6Wk1Ga3E2Y1hNeXhzTjRXa283UGUyZW11Wl80ZkN6U2pFRmhpS0Rvel9ac3ZpZUZzUDZSdVFjQWtRM096R2xWYXpaYzl5ZUZjWDFCaWppQXg1OG5QMklNdmJDMVNPeDZJdnhRalZKU1NtdDI2c1dYTERTbjlpYWpkWUVTQmc4U0x5a0d3eDVMMUNzWEs2MFBtWEgwUGRkRkktak9oTDhXT2UwclBWSnoycklOeFhFMzVMRVFKaFBKY19qUFVONU9pV2d0YWd6Y2xJNjM2TWIwZFRYd0V4OWlHVURORXgzRmFJMEN5dW1UdURLNVJiaDFVdjNsVXhLSGdEcFJIX0JnYTh0a1RObHN4WDlmS0NVT2lqeVJiR3dzN0ZtWUZyYjdYMDJxYjU3bE9wZW1KbGVNSjBTbzRhWG5Yd1VTcTN3V0ZJTzRkVUN6dWZQRTloRkstYTVhRXVHVlk4Z2tsYzNJSVhsMHBxZXdSeVZJNDUzQWJBY2tXLU9WTUZCOGMwQ3hyMFZKWi1YUF9nLUd3YmpLWFRzUW44NlpPT0JjTFByUm9La3pRejRFamNjd1NBUTk0cko1Wm9YMmdFV3dEZTZTT0Etd283cnViSC1MLXdSck91Uk8zeUlVT0JrM1ZnLTRuLWlINjhSRkpVWkpLVTJmOG93TmVMUlBLV0xEVXBHUTJYSUphUXp2ZllIYThVeUR0bDQ2M3lOOElzN3djZ09ydmJlTXlMbVdJTDQ1WDl1TkNOVTRRaXFaRTM3dzFjUG1GOEhOSndwLXdBS2l2S29OMWZuR0xfT0xOMExBcnFxSV9PYUVFbWRVUUpCQVNQdS1JYWZNNE8xdGVVS1d6MGpjRjhockVwTkFNQnlrSUJmdUdCQ3NiRk5Qc1VwNENvWGlaZjBuWU5jMllrUnJDdnpHZXNpUzBOWXlvM3oyV2xoTnpkWU4xRG9DcS1Dd3hFb3V4dVphUGxVTW1zaFFJZUttMmFQT2dQTUIyd1NkWnlmUDEtMnZwNlN1c2lpbjJWYi1zcGdWMkcySXVqcWNNSFlnUnpJRFJrS0tHQklScFpsRDF6SlI2V3FjbkJ0Vjg0VlFGRG12NGFqMWRLUWM4Z2dhQ09NdVpicUtJQUhYcjhDRy1CbVpNM2pmb3o0YmVXbHZ0ZUJZWjJkaHB4ZXkwVzVYZ1hhaV9EYXl4U0ZxVmhOT2dkcFVuMVptRXFCVmVOSGNwWmxTTS0xU2dKallOREI4eVNIa2s5ZUhvSTV0QVAwMENfVWpjLUhoeFp3Zkxtem8tNWlmVDVoN1JvU2VWUjdxT2t2ZDhhd0RjU1FQNlA0UnltMEVsc0liRHY2TG81OXRXeFNlaGQwdTlJUE0tSnhmSElpSHJhWDVxc0l2WHhzYjI5MURTdl9GNy0yU25WS3hFZHY5bDhteFlrYTFGWGp4SEZvbFVoMmVIMFlMOHdwdVgwYTg0NXZoUzJvZ2dFYkNmZDJ5akowVHFOYTljeUlVaDFYVVVmS0RJT1BrQVNjdEdjbG90eE1vLWNfMkxTY3BKby13MlpiWlRfYXVURHJyeTN2V1V1VnNHMkNBa0pXVFlpRGloZjViMVc0VDlUM2VEZGJ3TEZjcHJDTE93Wjg0MlpMcGw0Njh4cDlwNThTa2s1aEtLV3h2YnBlTzhmdmctUjgxLU50QXVTWUtaZ2tNeFEwUlZUSkQwX052dE5yWXRzMUhZQ01NUzBUdkZZMzhweUl1aHVFN21ZNko3Z3ljckt5c2RYVkFYQTdjYzJNVUlJYkhVT3BlcEdZWlJQVzAyeHdoQUZlbmU1eHpIb3BjWkRlcTFvYl9vUDZtLUdFZEo4RzZqb2JQdmlEaW91Z0wweGc0d21RSkNjbnQ0UU5LdmlDQWZzNzhfWm5qUmNyQkU2LTJBUkRURGpwVkxKTzRPVTRVWWdzLUM2TGw3TktVUUNIWUNCNWlqM3VLTDV4eWluX2wxeFYya1VvR3g0TjdXTl93VEhpR1g2ejlMWEdocXY0bmhyNXBSLVFET01wTVhMU2VPeDEycko4OU9rYzVDZDJfbjV4cTJHUy1BVkFiTVd0ZGtjT1pSamJCSWE2VzhxNGFnLTNZbnZTSlkyaGljU2FNb0otY2dzUTVydC1fai1xcnQzMXJiRHc4cnpGazRleV9pNHZXbjk0bF9xODRGYmlKRVU4WFNaRnRtT0ZURkU1QnVoMm11U01TZ2hIMm5ZSFA0Q1ZDVzYtQU94cnU1UWlEZ0c5SkhRMTYyOTI5dFN2YXFjaV9ZSUVwVXU2YnBGS0RwQ1NmZUVMc2s1NVNMRnZHZnIzRkkzbmtNOFVYbkhUMGpNUnpLQ2VSTUliNUdYc2tJSEZCaE5BWElqd1pCRW1DZWphZlc4Wmh0SnFPOWxVOGc0a2hxRnFEUzhmcUFvU2Nub2U0VGZwbW1hUlFPMEViVUM2dk1Xdno4b091ZFdxbFBLN2NCVjYxd09uakNBaFFKenRkTHFzUF9kYkV4ZERvOUVqaVplYVB0NWNsOXJ4bEY1MzM3WFB5OUo4ZnI2M1JoYlV3aGdUSUxTWFh1NEpvOEVrZk5ZVjk2MjA2SW43WWE5SkVnZUNKOWp5anhkNTBabGhDaWtOamFaTDlpTlNYNnd5cmtDWlo3SUpyQ0gzbEd4Zl8wRHB1SWxMdzZ0Zm9GNXlTaDdHVnBYYy1xM3o3S3FDQ2E0RjN6aEU2WHN3WVE5SGdrVjdwRkc4Q0tDaEp4andoSVVjS2NLSlp3MkhSLW92VDVJTi04ZjhrQi1xaTBOeGgxWTIzeWRoVE1NVHRqN1pLNGZCNWJKRlY2WmduNWtiTXR0d2FOcWVjNnRZRmEzcVJnbUtoZW1YVTVsNjJyZ09nbkJlbjNCZEZ5MlJXVjVRSzZaeW9WQV94N0M5UGVFcVVLUTloLWQtb3NXVVUzVkJsRUgzSDh5UEs5aXlXWFhseDFZeC1xMmFGVFFlTlhqTW40TWhwMkRXZS1OUzFxTEFJM21zVmRKTVA4S0p5R3pJY3RfaGJOV2NSelhKUE5tRklaSWhjbTJJVU04Zml3aTZNcGhWdDZXZjVzQjZVdUFmVl82R1E2QlVwaENwclN6allUcTlEYVdkSnJYTUdvMW9TQ3FyRm5ZWGtxTkpLdWNFeURIU3dZZlVjc2RYZGZKMjFnYmUwUWF0X092dnJzcFpkbm8wdDhQY1NWQU5YeGdOVmhLRDgzTHphWEJrZ1lpbWZpQ3NmaExXbm9lQkZNbXhocC1MU0xJOUh0UU5oLVNxQWJBb0JyV05WUXNNeGIxaUYyTzhxYkJfWTBOeE5EYXZCU0l3QWNTOHRzUHVrd2RlUWNpV0tmZ2tJWng3c3JvWVViNE1zUUU1Q2ZoN0cxb0Vpc1dEX2hTNEFOVmFLbnJMeWNmZm5uM2UxenA0b3lvak9KVFJ0M1l6OUZCZDVLSjRRYjJWblh1MVJYNXgxd3JsYVZtY1B5eXlidk8zbTBFc3l3TkV6R001RTBLbFZiZ2NHTE9LT2NrbzZDbVlXVnh3RW5fSG9Sdmc5R3V6aEpjVzFKbXdoU29LeEFNUUpaRDNucGNkMjg4cWF2SUl5NHRHdTNtUkFCU1FRQmR5eUlVNmF3WWIxUjVhTEQ1YXhmUnlzZzl0OThBeDNLVGs5QlpFanFrcTVKXzRHckNtbzhNbndBVzhxUWN6U3VmNDNUbzVhWDBjVGFYb3p5SVdZM3FIMmNZZndYelMzZzFQT3RzU0FlNG5oaUtnVkxCYzh6MjZBV2F5RVZMX0htMGZXMlBGZGwzVVV3WU1KODllMmdhZGZCNTUyVnJuU2tmblBWSkhaUFMydHJuMGxCNlhhVTJOUDRoT2g0OUJUMTRpankwNUZiZHR0U29wMm5PYVNubmQ5NUV2dnhWdzRCYTd2S1hIblZvMHJoZlhWS2VSOHJUOFFRNU44c3NnY0xyLXRrM0U4WlhRZURuejZObkxVbUFpaDBFeTNMaC1XZzNVSmdKb1FiNDM1S1ZBX3ZKcFV1SnY0SmxSeHV4dVJLcHVYS2x5TEh4SjhQb1pUOGlzT1d6MFdJWk5xdWthdHY0TW5Nd09fbEhZa1RJLTZtQ3BwSHdkUkhrdk5ReWNZUDN5SzNXNVl4bU5LY1p4V1hQOFlxQ2F4UFhfZEJUWmNBOE0xb1FfUHpvaU5fRXlYdWx6VU1iR0J1UldoMklqWVdkdHdDT3c5SHQ5bTBlelQzZEk3M0ZBV0dXZkdJZXg4UC1sLXJBYUtLQ1A5RW81Slc3dGQ4T2s3bU5ES1p0ZjloSkNWNFNpSEhVUzNxdUZNVWVRMnQ2UHdUN1B4US1uMDk3Ri1zZ0ZzaTlJUmIzeEZsaHVHaUJpX1o1ckR5UUlsV0h6QmFUZ29iSmg0UTB5UHFhSExhM2ROOFVLRUxRblFXc2RCWHhmN2I1RUg1UTBranJ0bGVhUEVhOWhqd1Z6RTZDNk9OOWE4ZHpkSzVVenhsY0FieEZoZ3RaZVAwZFdkNXNET0I3bzhCbnFpYTllczNjZ192S2FSaXZvd3YySUItckxEWDJESGpPU2ZlNUR4TEpGQUNrVmtZM09hX1pEVDN1YmVBT0FJZ2dOUFRjVEpIRm9rTzFzbVlxN21lRlllUkpCWWpNMmVmRTJpWF9iNnRxbG42ZFZidENlOGhiRTJaYlVHZ0pzYjVRVHczWWlSb3BvREJZR1RCWVgwTXRMNE9GcUVCbTg5Sm1iaERzMG1SZFlvcmR0d2FndVVXRVFhTi1uNDNLVFdQeWxSR3k2emRNWE5KTWstWXE4NlF2MGMySV90c2pPa2tBakg3VEJIQVpsZVJLcFNlYXo2UEpJWHpmTzViV3NabGhWZnN0NUFYUjRNVWZBLXEtb3NFSHg0eEpFM2VjdmFxZGhkcnJoOVBLMC1zbl91MDBMV0hzcEJnd1pWNDVGc0RteXJGaHF6ZDFOQXRFOXlpVzYzXzJ0Q2pYVXVVcHpqYnN3MlhHaEtlVTZmQmkwTVFsalNUTEM3VFhtRkJFRy1OYjdXQUpFWmwtU181a0ZzdnZDdWJHeG5ZNVNOZ1AyNmJaSUYtX2xKSDk5WHk2YzhBdFhleUJydFh6emxGZmVlbjVBYjRhM2NTTlB6YnR5aGZfVG1yVWZJdG5SZ0JhOU1ORTB6M0ZDT29MUkQwMXlqQS1MdnMxc1ozRWdwZHMzOGhZcVdNTTNGUjN0MGtFZDhUWXRZcmNFdVVVQmNmVmJWdW9NTGxoRm5XYm5XNXRuWWtOVlU5SGRoNkdya04wdXJ6UzZKdnZIRTBPUlA2UDN1ME9fVWVlYTQzbnBBMGhwNmw0UFBoTnVRM21RRGRaX0pzRlEtcTJFdUpFOHRUdVVkdXczVmZhNkNDZlhiUVNlUW9JUWVWdHRYS2t1aUZoN042QXVXeXlsaDlia1V5LURMWmgtZUxsRnpXb2xES1hWdW9qUDJiZy1Gb1B3b0lWVTNxVVJoazVTQXlCT2FSM2pVZmx4YnAtUGRLNVJBcWJ1SVc3Y0lXUGx1amd5NXBVdVROVjJ3Mnlxa19VNTJGdzNEYXlZNXBzaEpWdXF1MFJiZHd3UGZhYXRvejVpUXVPblo2VjdDQWhvSW9oUjAzanVHLWFNZTlKYXQ4NGJ5WENPVF9waEU2OHdxTVpzaWV2VGs2NzRhZXlvckdkYk9BbjBTQWpjR2YwMnpWVWtrRWlQNkRudnptRXA1NEZlSlR2Y285VHlLUGlVUmU2SzdTR0hxREw1MEp0bjFFWVdhVGtqeHhRVXp1a21MWURLcHpGZFVBSUZadktGR1BTRmVEbFpTQ25IR2FlVWR6blFfWnhycFZlOG1UZVpJZTZ0ejg2QzdmUGFDX0hXWXZJLXNrRGoxQ2Y4Rm9FNzk2bEEwRWIzZk5ISkhXV2R6OVZBYngwSTNEcmJfd0JRWWFsdTBZa2FUUnI2dklyb25nanBOLU03VXV1dWdoRnFsaFVmR0JpTGh2M2lxcWRFWTl4X1RKWFc0anVfNVBqcXNtTU9VT1ltMG1NdnZTbGgzUDFQVGJCRlE1WXZvOVZWcV92bTNRWDhTOW45WDhLLXNFd1VVRUxjM05RcFVXNEp6c0t5dWFYVTNNcE5RenZxZ1UwWVp1MldoWFBZLWV5cUxWVXJFbXNjMWgtay0tSFhFT3BHOVNZemd3Q090RGRHcHNrdXdlVVR2eUluRXpaTlBMWEZ3Skx4S25oTVRwMElORG1tbFN2WVdWRzZhaEFHUF9OUlpBUHBsQVQ5NF9HUUNlUmVzUjZIbnN2MHc2TWVaYjU1MU5SSHE1dEdmYWd0ZGhiZnVjN0Q3Z2tJcEtzMEJZLVZPbVJSckNQR3V5YnhBeE9NbGVuRnAyUE9aTUY5Mk9CMFJhTi1ZTE5hVG9nZEtJTTlKcnNMVS1nZlJPZ1dFanZMSGhEYVd0dlFfLVFqMVZCUW1URno3c3NLSmJoNG9YQmZXZ1poTm1VeUUyWWREdnhQaWQzRDZEektMSlU0azNlUEJGUUZvVXo1a1BTQWhfc0FDbkNMU1ctaU43ZG1GUFRrYURlZEFnTHJuM3AwNmxKWE5XNERDT1ExLTN4YXVoQkdHS3RBSXFwVE82VDFlcmx1R09wOGszbnh2RF9QSlVTc1BQUzVpd2YxSW9fRUcxSUdPRXRFbHdSa1Fjb3ZLZFltMTAzUUFyWGt6STlqdjhRRXRsdHBQbWdENlh0YVVWVWtjTTY5RXg4emZaUzlocy1aa0xfbnpfOXJWQTNsTTlvam1lLUVNZXJTd05WZVBaLWVwUEJVWXlHbkY2eF9CUU9LWWxjV3BKaTdncy1mcHZIZnlqVVlQUW1QZjVkZlhEQ19xVzJUMG1EaEI0Y05SLUdnY09PQ3BjaUZoby15OWVaWWJ4bU1CTVA4U3NPNk44QzVtUS1YRFRQdVloZGN2c1QtcG0zVlF5ZGZWZDY4TmNXeVY1NGVfWlRtSl90ZW9LNk5OUHEtZFloNEVvbElVemVYc05MbVhPX1dQZzh6dmlSZlRrNGtZdjJobUZqcFlOdUdVd2s5NVdsYkszWGJMaDRmVEpvTHB6RGxrVy1JUFdrblVMUE9FMmQzTUJiZDFpMHZveEVuRjh5eXA2aXpqTmhQRFpuWmFuWHFycXVpNlBfWXpQZS1jYmxoRjl5VnpFTEEwbkJUREJhNUgxX201NWRtNDczNEVRclFfOXo0Y2dCeTlDYndaa000cVJ4c0syX1NUYnJKRTNUUG5hVzQzOGF2bENHekZ0MzBUSlY2bGx5U2d3RVBXNkk3b0w5UWpKQ3oyTVVVWnRvUjZaYXl1U3duQS5jNkhoeG92Nk12Vm1rd1ljSE1yZkxR\"\r\n}", + "RequestHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "10671" + ], + "x-ms-client-request-id": [ + "44d68676-d0e3-4e7b-bbb2-a88d6d222a11" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"Conflict\",\r\n \"message\": \"Conflict while restoring key https://kv-sdk-test.vault-int.azure-int.net/keys/KeyBackupRestoreTest/b1634f7d6662425d967888b6abb3f413 - key already exists or concurrent access\"\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "215" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 21:59:41 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "2e23cbb5-92f0-47b9-b4b9-b982e76efa28" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 409 + }, + { + "RequestUri": "//keys/restore?api-version=2016-10-01", + "EncodedRequestUri": "Ly9rZXlzL3Jlc3RvcmU/YXBpLXZlcnNpb249MjAxNi0xMC0wMQ==", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"value\": \"JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUppTlRjMk5ESTVaaTB5TlRZNExUUTFZbVV0WW1aaFlTMHpOMlZrTURkbVl6QmpPREVpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLk00Qzg3SE5zMTZqcFdwSkVUQ1dmZE5SUWcwNDV1ZU1hblA2NHNmcGtYaFpjVzBrVldNYVBjVmkwaHYxeXpWdTZ2bnAycHY1ejdfY204alR6WkQ3VVd3NllpVC0xZ1RsbFlGSS1tRWVpU2xuSHJMNnpVTEtONnBuR2p6UVdEUHhJb2c5Slh5bFFkSW9xdWxVX3NVcnN6SEttQWFSQS1xdVZmNFlZaElVbm94eW1pQjA5MkJ6Tm5BcFB1UllIQ0JsMUstRjQ5aW1UWk9BcnVHX1dEeGhKMUo3SEhJWEJzVElGTEpQX0ItOTVpS1A0SHNhTEpqREZBTmJxV3JoSC1OQXc1aWZDTWRsSlBMbTdsU0NJV3JsVVVZLVpPR2tpNnVUUm9kdUhjMGYza2lXOEhuUHJqYkkyRHd6am0zQWQ3dnMxMXpnMzBtZUNvU19ZTWtsb2VPM0RRUS5UWE1sNjNvYWREREc1dDd1WG5aLVRBLlFVeUhrY2JpZU95R21LTWdxUF9QTjIteTJDMW9MNDNneGNvQkxidkM0c0h0VmNoYWtQMU9lWmdwRll0My1UbjRscDNNak83ZFF0a09ZeXd0c080TE13TUFsMXdvM0RHSDNaNHhVd1BQdHJGSV9uaWg0Z1IxS0ZMdXVZVE9CdUlkQ3MtVFpreVZOV1FreUh6VUpkcUx5SlhoOUlUdDJVSDJwOEJVTVZnZU5mdU5ONWd6MVlxa1Q4Um9aWmFRUnNkdnZWalRWazE4cWpFbG5YZ0I0ckFGWWIzcGZNdzhJbjBhc0E4Rkotc1JHdEZPTFhTbWs5M2dHTnp0ZnJQMUxYalpyU19iQkduc3UzMWItSEZJR1hNX3drdzZQUjBlSGZ2dGQ5Z1ZQMWpvREdWV3R1OFBDTlp1ek90ZlRMRG9VWVFvYkU2dmVpVEdRVzEwdWRQOW15S2FxaGtjSHBnc0trVzN4VjdRTDFRSFg2UjRUT0VTY1F1Qm5vQ3J3UlN0RnpuY29Mb2tmREdXYmZiWUdsb3F5THo4Y0IyaVZERTM3eUZUQzJEY2dMeW9tYklUWklvUU9EUHIwcEdOa2Y3WU4ycHU1UVRBZXN0ZnRqWWtlbUhfNEZadFcteFcxT1YwUDU3THgzcGpGcVFyaTR5YW1kUHYtS2F5YWwyUVNmV1p3RE5rX3h1cTFxT2dlb0NWMGhwSVFuYXBLYzBvVG8tTFdqMk1IazBBbFhQdWhyUmM0UHktWGJ2NGFRUE9qY0puMkZTZmF5YkQzejNiSzVPMklrNm9WZ2NwNjNhWDk0UUJFTXJjbGlpalhDRXpXS1ZTUmNBQVAxbWxUSVJiYW5paVFuMHhJQ3hUcXM1VVlvSW1fcFJ0YVB6N08xUGd6V3F3M2d4Vi1sSUZEd3cyNU5TR3pqS3VfTk9zUE5WVWtpa2xmWHJOZEpqME5oMFVObHFRejg2TWpnVnNadDVWQkZ3Q2VHQUhhMjdHTXdhVkd3M0dwNXpxbDJFU1E4Q3l0b2JSYUxQZ1RJNURESncza3E4M2dsa0pqSndzcmpIQ3JXaEM4b2tSck9la3NLMU8zbmpuTnlSMkQ5VmE2S3N4V2RXYzg0Tkd4Z1JURVpyWXA0SFFDcl8zMGpQdU9DbUwtTXA2cnF0OG0wSW1VTkUxZWUtc2NCbE8xLWpHcjc2QktRdVZQMUpOV2o5MTRETFE4aDNvMlhDT0g1ZndMRmRiLUhJWkZfazQ3eWZqSENmbm9TSm5LdUdiV05RUDc0TzI1MlFPSlFCOHhFSmpJbHFRdXI1SmhldDFFUWowYjZ1WFZhMHh4cTRlWjdDb0tIQ1FfZmRPbnd3aTNpaXNiQXd0Z183YndrdnpwUG9pSW40ZDY5bVk3NHBRRURsYzBzbTY3ZGJ4LWxFQW5faTFmNUVNVGVSWFgtUG9xSmRZaGItanlCbnR0d0dUQnIzSkJUVGFZOFpIZmhJem9MdTA2N0lqVGFHNFltZHRwc2JTajVramR2b19wR2t4UkVoaUw1em03RWdiZXo0Ui1JaE11N2pNd2lNSjJKUU9fMF9oVG5oY3NYeXBzbEpWN3NWSVY4UmJkcTY1Uk40UGlZUzU5ZVRBVUxKOFFaaWRyaUFfbkY1czFwQTNpLXA4Z1Q2YWx3bldCV0wwLUp2U1AteW9BVk8zS0ZIOWVDVnpxZ0FLeDNrQVhiNTJLMEtCZGQ5aXdiVlZoTU1VR3Zpbi00eThDRWd1dVB1S01lVm5fbTV1WkJpZFpTRWxLWnhpUE9WS0NzTUdLUTkxT29XR1pLelVwYmJ5NVNyTDJ5bFZoT3ZPZWVaSXJndVFCM1hvNjZJa2NFQ3daMHV6Z29zVHRfSm5JZVpqVHFZTU1WYTQzTEtjQmZBdVMzTnp6akhvNEhGb2JaWFdGc1RZN1pZdUFid0JtWkFFbWZhWDE3SlRSVlRKa3E3STRnamFXa04zaHFPdHJHZ3R6bEJSc2lvbE5YSWdyaGl0em5HUEdlcVpZYW4wZ190Q3BoWnpIT0hwX1BwSjlhcGNNeUxHRVp6NU11cE1rRVdwQlUteEs5WDJJLTVRSUx1eGcxSXF4aVNOLTZRTmlyXzdJdFhPT09GMVpyemMtNkRKMVpBaS1EdjRvRDlBcFM3c1lQQXNVQ1VYMU53Y2JkMVM2YkZlWEpwdDFzR0pUVE5jSFljV1pVUmxLZVlmNWpzVkZGMTczcHBiSG5NUnMtM3JWWkFrQzdnOUVrN3YxNFZpSEtqaHFfSlplZXJ2MFdKNHhpWExhVmIxZlN2azNQWXBTeGd5TDdtcF9sT3hpNS1GX1NQc3NVdTJwWnhYS1lqcG1wUDhnSHlKa1R6WGJ4SXJaWV9oMXBJNXFuSTZ4YTFqRkpiTUNuWUNRbHZTWWhIY1AycG1sM0FMeDBJNk9yUmY2Y25WNlUwWVNZWkcwemEtRXRKUU1nX3dHU2lMcV9LNk4yRWNUVDRFR1otZTJzN0VqLUQtVWxoLUthb19MS2k0Q2czaTEyYnNZRnBZcDROU1JlWnJVQjNHZEZrOGhhZWdQcVROdFhsR1IyWjNSd29SWHRkNXM0MnVxVC1fWlI1ZDBQclZRR1VNTUZ6Wk1Ga3E2Y1hNeXhzTjRXa283UGUyZW11Wl80ZkN6U2pFRmhpS0Rvel9ac3ZpZUZzUDZSdVFjQWtRM096R2xWYXpaYzl5ZUZjWDFCaWppQXg1OG5QMklNdmJDMVNPeDZJdnhRalZKU1NtdDI2c1dYTERTbjlpYWpkWUVTQmc4U0x5a0d3eDVMMUNzWEs2MFBtWEgwUGRkRkktak9oTDhXT2UwclBWSnoycklOeFhFMzVMRVFKaFBKY19qUFVONU9pV2d0YWd6Y2xJNjM2TWIwZFRYd0V4OWlHVURORXgzRmFJMEN5dW1UdURLNVJiaDFVdjNsVXhLSGdEcFJIX0JnYTh0a1RObHN4WDlmS0NVT2lqeVJiR3dzN0ZtWUZyYjdYMDJxYjU3bE9wZW1KbGVNSjBTbzRhWG5Yd1VTcTN3V0ZJTzRkVUN6dWZQRTloRkstYTVhRXVHVlk4Z2tsYzNJSVhsMHBxZXdSeVZJNDUzQWJBY2tXLU9WTUZCOGMwQ3hyMFZKWi1YUF9nLUd3YmpLWFRzUW44NlpPT0JjTFByUm9La3pRejRFamNjd1NBUTk0cko1Wm9YMmdFV3dEZTZTT0Etd283cnViSC1MLXdSck91Uk8zeUlVT0JrM1ZnLTRuLWlINjhSRkpVWkpLVTJmOG93TmVMUlBLV0xEVXBHUTJYSUphUXp2ZllIYThVeUR0bDQ2M3lOOElzN3djZ09ydmJlTXlMbVdJTDQ1WDl1TkNOVTRRaXFaRTM3dzFjUG1GOEhOSndwLXdBS2l2S29OMWZuR0xfT0xOMExBcnFxSV9PYUVFbWRVUUpCQVNQdS1JYWZNNE8xdGVVS1d6MGpjRjhockVwTkFNQnlrSUJmdUdCQ3NiRk5Qc1VwNENvWGlaZjBuWU5jMllrUnJDdnpHZXNpUzBOWXlvM3oyV2xoTnpkWU4xRG9DcS1Dd3hFb3V4dVphUGxVTW1zaFFJZUttMmFQT2dQTUIyd1NkWnlmUDEtMnZwNlN1c2lpbjJWYi1zcGdWMkcySXVqcWNNSFlnUnpJRFJrS0tHQklScFpsRDF6SlI2V3FjbkJ0Vjg0VlFGRG12NGFqMWRLUWM4Z2dhQ09NdVpicUtJQUhYcjhDRy1CbVpNM2pmb3o0YmVXbHZ0ZUJZWjJkaHB4ZXkwVzVYZ1hhaV9EYXl4U0ZxVmhOT2dkcFVuMVptRXFCVmVOSGNwWmxTTS0xU2dKallOREI4eVNIa2s5ZUhvSTV0QVAwMENfVWpjLUhoeFp3Zkxtem8tNWlmVDVoN1JvU2VWUjdxT2t2ZDhhd0RjU1FQNlA0UnltMEVsc0liRHY2TG81OXRXeFNlaGQwdTlJUE0tSnhmSElpSHJhWDVxc0l2WHhzYjI5MURTdl9GNy0yU25WS3hFZHY5bDhteFlrYTFGWGp4SEZvbFVoMmVIMFlMOHdwdVgwYTg0NXZoUzJvZ2dFYkNmZDJ5akowVHFOYTljeUlVaDFYVVVmS0RJT1BrQVNjdEdjbG90eE1vLWNfMkxTY3BKby13MlpiWlRfYXVURHJyeTN2V1V1VnNHMkNBa0pXVFlpRGloZjViMVc0VDlUM2VEZGJ3TEZjcHJDTE93Wjg0MlpMcGw0Njh4cDlwNThTa2s1aEtLV3h2YnBlTzhmdmctUjgxLU50QXVTWUtaZ2tNeFEwUlZUSkQwX052dE5yWXRzMUhZQ01NUzBUdkZZMzhweUl1aHVFN21ZNko3Z3ljckt5c2RYVkFYQTdjYzJNVUlJYkhVT3BlcEdZWlJQVzAyeHdoQUZlbmU1eHpIb3BjWkRlcTFvYl9vUDZtLUdFZEo4RzZqb2JQdmlEaW91Z0wweGc0d21RSkNjbnQ0UU5LdmlDQWZzNzhfWm5qUmNyQkU2LTJBUkRURGpwVkxKTzRPVTRVWWdzLUM2TGw3TktVUUNIWUNCNWlqM3VLTDV4eWluX2wxeFYya1VvR3g0TjdXTl93VEhpR1g2ejlMWEdocXY0bmhyNXBSLVFET01wTVhMU2VPeDEycko4OU9rYzVDZDJfbjV4cTJHUy1BVkFiTVd0ZGtjT1pSamJCSWE2VzhxNGFnLTNZbnZTSlkyaGljU2FNb0otY2dzUTVydC1fai1xcnQzMXJiRHc4cnpGazRleV9pNHZXbjk0bF9xODRGYmlKRVU4WFNaRnRtT0ZURkU1QnVoMm11U01TZ2hIMm5ZSFA0Q1ZDVzYtQU94cnU1UWlEZ0c5SkhRMTYyOTI5dFN2YXFjaV9ZSUVwVXU2YnBGS0RwQ1NmZUVMc2s1NVNMRnZHZnIzRkkzbmtNOFVYbkhUMGpNUnpLQ2VSTUliNUdYc2tJSEZCaE5BWElqd1pCRW1DZWphZlc4Wmh0SnFPOWxVOGc0a2hxRnFEUzhmcUFvU2Nub2U0VGZwbW1hUlFPMEViVUM2dk1Xdno4b091ZFdxbFBLN2NCVjYxd09uakNBaFFKenRkTHFzUF9kYkV4ZERvOUVqaVplYVB0NWNsOXJ4bEY1MzM3WFB5OUo4ZnI2M1JoYlV3aGdUSUxTWFh1NEpvOEVrZk5ZVjk2MjA2SW43WWE5SkVnZUNKOWp5anhkNTBabGhDaWtOamFaTDlpTlNYNnd5cmtDWlo3SUpyQ0gzbEd4Zl8wRHB1SWxMdzZ0Zm9GNXlTaDdHVnBYYy1xM3o3S3FDQ2E0RjN6aEU2WHN3WVE5SGdrVjdwRkc4Q0tDaEp4andoSVVjS2NLSlp3MkhSLW92VDVJTi04ZjhrQi1xaTBOeGgxWTIzeWRoVE1NVHRqN1pLNGZCNWJKRlY2WmduNWtiTXR0d2FOcWVjNnRZRmEzcVJnbUtoZW1YVTVsNjJyZ09nbkJlbjNCZEZ5MlJXVjVRSzZaeW9WQV94N0M5UGVFcVVLUTloLWQtb3NXVVUzVkJsRUgzSDh5UEs5aXlXWFhseDFZeC1xMmFGVFFlTlhqTW40TWhwMkRXZS1OUzFxTEFJM21zVmRKTVA4S0p5R3pJY3RfaGJOV2NSelhKUE5tRklaSWhjbTJJVU04Zml3aTZNcGhWdDZXZjVzQjZVdUFmVl82R1E2QlVwaENwclN6allUcTlEYVdkSnJYTUdvMW9TQ3FyRm5ZWGtxTkpLdWNFeURIU3dZZlVjc2RYZGZKMjFnYmUwUWF0X092dnJzcFpkbm8wdDhQY1NWQU5YeGdOVmhLRDgzTHphWEJrZ1lpbWZpQ3NmaExXbm9lQkZNbXhocC1MU0xJOUh0UU5oLVNxQWJBb0JyV05WUXNNeGIxaUYyTzhxYkJfWTBOeE5EYXZCU0l3QWNTOHRzUHVrd2RlUWNpV0tmZ2tJWng3c3JvWVViNE1zUUU1Q2ZoN0cxb0Vpc1dEX2hTNEFOVmFLbnJMeWNmZm5uM2UxenA0b3lvak9KVFJ0M1l6OUZCZDVLSjRRYjJWblh1MVJYNXgxd3JsYVZtY1B5eXlidk8zbTBFc3l3TkV6R001RTBLbFZiZ2NHTE9LT2NrbzZDbVlXVnh3RW5fSG9Sdmc5R3V6aEpjVzFKbXdoU29LeEFNUUpaRDNucGNkMjg4cWF2SUl5NHRHdTNtUkFCU1FRQmR5eUlVNmF3WWIxUjVhTEQ1YXhmUnlzZzl0OThBeDNLVGs5QlpFanFrcTVKXzRHckNtbzhNbndBVzhxUWN6U3VmNDNUbzVhWDBjVGFYb3p5SVdZM3FIMmNZZndYelMzZzFQT3RzU0FlNG5oaUtnVkxCYzh6MjZBV2F5RVZMX0htMGZXMlBGZGwzVVV3WU1KODllMmdhZGZCNTUyVnJuU2tmblBWSkhaUFMydHJuMGxCNlhhVTJOUDRoT2g0OUJUMTRpankwNUZiZHR0U29wMm5PYVNubmQ5NUV2dnhWdzRCYTd2S1hIblZvMHJoZlhWS2VSOHJUOFFRNU44c3NnY0xyLXRrM0U4WlhRZURuejZObkxVbUFpaDBFeTNMaC1XZzNVSmdKb1FiNDM1S1ZBX3ZKcFV1SnY0SmxSeHV4dVJLcHVYS2x5TEh4SjhQb1pUOGlzT1d6MFdJWk5xdWthdHY0TW5Nd09fbEhZa1RJLTZtQ3BwSHdkUkhrdk5ReWNZUDN5SzNXNVl4bU5LY1p4V1hQOFlxQ2F4UFhfZEJUWmNBOE0xb1FfUHpvaU5fRXlYdWx6VU1iR0J1UldoMklqWVdkdHdDT3c5SHQ5bTBlelQzZEk3M0ZBV0dXZkdJZXg4UC1sLXJBYUtLQ1A5RW81Slc3dGQ4T2s3bU5ES1p0ZjloSkNWNFNpSEhVUzNxdUZNVWVRMnQ2UHdUN1B4US1uMDk3Ri1zZ0ZzaTlJUmIzeEZsaHVHaUJpX1o1ckR5UUlsV0h6QmFUZ29iSmg0UTB5UHFhSExhM2ROOFVLRUxRblFXc2RCWHhmN2I1RUg1UTBranJ0bGVhUEVhOWhqd1Z6RTZDNk9OOWE4ZHpkSzVVenhsY0FieEZoZ3RaZVAwZFdkNXNET0I3bzhCbnFpYTllczNjZ192S2FSaXZvd3YySUItckxEWDJESGpPU2ZlNUR4TEpGQUNrVmtZM09hX1pEVDN1YmVBT0FJZ2dOUFRjVEpIRm9rTzFzbVlxN21lRlllUkpCWWpNMmVmRTJpWF9iNnRxbG42ZFZidENlOGhiRTJaYlVHZ0pzYjVRVHczWWlSb3BvREJZR1RCWVgwTXRMNE9GcUVCbTg5Sm1iaERzMG1SZFlvcmR0d2FndVVXRVFhTi1uNDNLVFdQeWxSR3k2emRNWE5KTWstWXE4NlF2MGMySV90c2pPa2tBakg3VEJIQVpsZVJLcFNlYXo2UEpJWHpmTzViV3NabGhWZnN0NUFYUjRNVWZBLXEtb3NFSHg0eEpFM2VjdmFxZGhkcnJoOVBLMC1zbl91MDBMV0hzcEJnd1pWNDVGc0RteXJGaHF6ZDFOQXRFOXlpVzYzXzJ0Q2pYVXVVcHpqYnN3MlhHaEtlVTZmQmkwTVFsalNUTEM3VFhtRkJFRy1OYjdXQUpFWmwtU181a0ZzdnZDdWJHeG5ZNVNOZ1AyNmJaSUYtX2xKSDk5WHk2YzhBdFhleUJydFh6emxGZmVlbjVBYjRhM2NTTlB6YnR5aGZfVG1yVWZJdG5SZ0JhOU1ORTB6M0ZDT29MUkQwMXlqQS1MdnMxc1ozRWdwZHMzOGhZcVdNTTNGUjN0MGtFZDhUWXRZcmNFdVVVQmNmVmJWdW9NTGxoRm5XYm5XNXRuWWtOVlU5SGRoNkdya04wdXJ6UzZKdnZIRTBPUlA2UDN1ME9fVWVlYTQzbnBBMGhwNmw0UFBoTnVRM21RRGRaX0pzRlEtcTJFdUpFOHRUdVVkdXczVmZhNkNDZlhiUVNlUW9JUWVWdHRYS2t1aUZoN042QXVXeXlsaDlia1V5LURMWmgtZUxsRnpXb2xES1hWdW9qUDJiZy1Gb1B3b0lWVTNxVVJoazVTQXlCT2FSM2pVZmx4YnAtUGRLNVJBcWJ1SVc3Y0lXUGx1amd5NXBVdVROVjJ3Mnlxa19VNTJGdzNEYXlZNXBzaEpWdXF1MFJiZHd3UGZhYXRvejVpUXVPblo2VjdDQWhvSW9oUjAzanVHLWFNZTlKYXQ4NGJ5WENPVF9waEU2OHdxTVpzaWV2VGs2NzRhZXlvckdkYk9BbjBTQWpjR2YwMnpWVWtrRWlQNkRudnptRXA1NEZlSlR2Y285VHlLUGlVUmU2SzdTR0hxREw1MEp0bjFFWVdhVGtqeHhRVXp1a21MWURLcHpGZFVBSUZadktGR1BTRmVEbFpTQ25IR2FlVWR6blFfWnhycFZlOG1UZVpJZTZ0ejg2QzdmUGFDX0hXWXZJLXNrRGoxQ2Y4Rm9FNzk2bEEwRWIzZk5ISkhXV2R6OVZBYngwSTNEcmJfd0JRWWFsdTBZa2FUUnI2dklyb25nanBOLU03VXV1dWdoRnFsaFVmR0JpTGh2M2lxcWRFWTl4X1RKWFc0anVfNVBqcXNtTU9VT1ltMG1NdnZTbGgzUDFQVGJCRlE1WXZvOVZWcV92bTNRWDhTOW45WDhLLXNFd1VVRUxjM05RcFVXNEp6c0t5dWFYVTNNcE5RenZxZ1UwWVp1MldoWFBZLWV5cUxWVXJFbXNjMWgtay0tSFhFT3BHOVNZemd3Q090RGRHcHNrdXdlVVR2eUluRXpaTlBMWEZ3Skx4S25oTVRwMElORG1tbFN2WVdWRzZhaEFHUF9OUlpBUHBsQVQ5NF9HUUNlUmVzUjZIbnN2MHc2TWVaYjU1MU5SSHE1dEdmYWd0ZGhiZnVjN0Q3Z2tJcEtzMEJZLVZPbVJSckNQR3V5YnhBeE9NbGVuRnAyUE9aTUY5Mk9CMFJhTi1ZTE5hVG9nZEtJTTlKcnNMVS1nZlJPZ1dFanZMSGhEYVd0dlFfLVFqMVZCUW1URno3c3NLSmJoNG9YQmZXZ1poTm1VeUUyWWREdnhQaWQzRDZEektMSlU0azNlUEJGUUZvVXo1a1BTQWhfc0FDbkNMU1ctaU43ZG1GUFRrYURlZEFnTHJuM3AwNmxKWE5XNERDT1ExLTN4YXVoQkdHS3RBSXFwVE82VDFlcmx1R09wOGszbnh2RF9QSlVTc1BQUzVpd2YxSW9fRUcxSUdPRXRFbHdSa1Fjb3ZLZFltMTAzUUFyWGt6STlqdjhRRXRsdHBQbWdENlh0YVVWVWtjTTY5RXg4emZaUzlocy1aa0xfbnpfOXJWQTNsTTlvam1lLUVNZXJTd05WZVBaLWVwUEJVWXlHbkY2eF9CUU9LWWxjV3BKaTdncy1mcHZIZnlqVVlQUW1QZjVkZlhEQ19xVzJUMG1EaEI0Y05SLUdnY09PQ3BjaUZoby15OWVaWWJ4bU1CTVA4U3NPNk44QzVtUS1YRFRQdVloZGN2c1QtcG0zVlF5ZGZWZDY4TmNXeVY1NGVfWlRtSl90ZW9LNk5OUHEtZFloNEVvbElVemVYc05MbVhPX1dQZzh6dmlSZlRrNGtZdjJobUZqcFlOdUdVd2s5NVdsYkszWGJMaDRmVEpvTHB6RGxrVy1JUFdrblVMUE9FMmQzTUJiZDFpMHZveEVuRjh5eXA2aXpqTmhQRFpuWmFuWHFycXVpNlBfWXpQZS1jYmxoRjl5VnpFTEEwbkJUREJhNUgxX201NWRtNDczNEVRclFfOXo0Y2dCeTlDYndaa000cVJ4c0syX1NUYnJKRTNUUG5hVzQzOGF2bENHekZ0MzBUSlY2bGx5U2d3RVBXNkk3b0w5UWpKQ3oyTVVVWnRvUjZaYXl1U3duQS5jNkhoeG92Nk12Vm1rd1ljSE1yZkxR\"\r\n}", + "RequestHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "10671" + ], + "x-ms-client-request-id": [ + "b6c392f3-75fa-4f0e-bb96-01cfa53ea3c0" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"Conflict\",\r\n \"message\": \"Conflict while restoring key https://kv-sdk-test.vault-int.azure-int.net/keys/KeyBackupRestoreTest/b1634f7d6662425d967888b6abb3f413 - key already exists or concurrent access\"\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "215" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 21:59:47 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "1967363c-797b-47df-8e4b-6deba9e468da" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 409 + }, + { + "RequestUri": "//keys/restore?api-version=2016-10-01", + "EncodedRequestUri": "Ly9rZXlzL3Jlc3RvcmU/YXBpLXZlcnNpb249MjAxNi0xMC0wMQ==", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"value\": \"JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUppTlRjMk5ESTVaaTB5TlRZNExUUTFZbVV0WW1aaFlTMHpOMlZrTURkbVl6QmpPREVpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLk00Qzg3SE5zMTZqcFdwSkVUQ1dmZE5SUWcwNDV1ZU1hblA2NHNmcGtYaFpjVzBrVldNYVBjVmkwaHYxeXpWdTZ2bnAycHY1ejdfY204alR6WkQ3VVd3NllpVC0xZ1RsbFlGSS1tRWVpU2xuSHJMNnpVTEtONnBuR2p6UVdEUHhJb2c5Slh5bFFkSW9xdWxVX3NVcnN6SEttQWFSQS1xdVZmNFlZaElVbm94eW1pQjA5MkJ6Tm5BcFB1UllIQ0JsMUstRjQ5aW1UWk9BcnVHX1dEeGhKMUo3SEhJWEJzVElGTEpQX0ItOTVpS1A0SHNhTEpqREZBTmJxV3JoSC1OQXc1aWZDTWRsSlBMbTdsU0NJV3JsVVVZLVpPR2tpNnVUUm9kdUhjMGYza2lXOEhuUHJqYkkyRHd6am0zQWQ3dnMxMXpnMzBtZUNvU19ZTWtsb2VPM0RRUS5UWE1sNjNvYWREREc1dDd1WG5aLVRBLlFVeUhrY2JpZU95R21LTWdxUF9QTjIteTJDMW9MNDNneGNvQkxidkM0c0h0VmNoYWtQMU9lWmdwRll0My1UbjRscDNNak83ZFF0a09ZeXd0c080TE13TUFsMXdvM0RHSDNaNHhVd1BQdHJGSV9uaWg0Z1IxS0ZMdXVZVE9CdUlkQ3MtVFpreVZOV1FreUh6VUpkcUx5SlhoOUlUdDJVSDJwOEJVTVZnZU5mdU5ONWd6MVlxa1Q4Um9aWmFRUnNkdnZWalRWazE4cWpFbG5YZ0I0ckFGWWIzcGZNdzhJbjBhc0E4Rkotc1JHdEZPTFhTbWs5M2dHTnp0ZnJQMUxYalpyU19iQkduc3UzMWItSEZJR1hNX3drdzZQUjBlSGZ2dGQ5Z1ZQMWpvREdWV3R1OFBDTlp1ek90ZlRMRG9VWVFvYkU2dmVpVEdRVzEwdWRQOW15S2FxaGtjSHBnc0trVzN4VjdRTDFRSFg2UjRUT0VTY1F1Qm5vQ3J3UlN0RnpuY29Mb2tmREdXYmZiWUdsb3F5THo4Y0IyaVZERTM3eUZUQzJEY2dMeW9tYklUWklvUU9EUHIwcEdOa2Y3WU4ycHU1UVRBZXN0ZnRqWWtlbUhfNEZadFcteFcxT1YwUDU3THgzcGpGcVFyaTR5YW1kUHYtS2F5YWwyUVNmV1p3RE5rX3h1cTFxT2dlb0NWMGhwSVFuYXBLYzBvVG8tTFdqMk1IazBBbFhQdWhyUmM0UHktWGJ2NGFRUE9qY0puMkZTZmF5YkQzejNiSzVPMklrNm9WZ2NwNjNhWDk0UUJFTXJjbGlpalhDRXpXS1ZTUmNBQVAxbWxUSVJiYW5paVFuMHhJQ3hUcXM1VVlvSW1fcFJ0YVB6N08xUGd6V3F3M2d4Vi1sSUZEd3cyNU5TR3pqS3VfTk9zUE5WVWtpa2xmWHJOZEpqME5oMFVObHFRejg2TWpnVnNadDVWQkZ3Q2VHQUhhMjdHTXdhVkd3M0dwNXpxbDJFU1E4Q3l0b2JSYUxQZ1RJNURESncza3E4M2dsa0pqSndzcmpIQ3JXaEM4b2tSck9la3NLMU8zbmpuTnlSMkQ5VmE2S3N4V2RXYzg0Tkd4Z1JURVpyWXA0SFFDcl8zMGpQdU9DbUwtTXA2cnF0OG0wSW1VTkUxZWUtc2NCbE8xLWpHcjc2QktRdVZQMUpOV2o5MTRETFE4aDNvMlhDT0g1ZndMRmRiLUhJWkZfazQ3eWZqSENmbm9TSm5LdUdiV05RUDc0TzI1MlFPSlFCOHhFSmpJbHFRdXI1SmhldDFFUWowYjZ1WFZhMHh4cTRlWjdDb0tIQ1FfZmRPbnd3aTNpaXNiQXd0Z183YndrdnpwUG9pSW40ZDY5bVk3NHBRRURsYzBzbTY3ZGJ4LWxFQW5faTFmNUVNVGVSWFgtUG9xSmRZaGItanlCbnR0d0dUQnIzSkJUVGFZOFpIZmhJem9MdTA2N0lqVGFHNFltZHRwc2JTajVramR2b19wR2t4UkVoaUw1em03RWdiZXo0Ui1JaE11N2pNd2lNSjJKUU9fMF9oVG5oY3NYeXBzbEpWN3NWSVY4UmJkcTY1Uk40UGlZUzU5ZVRBVUxKOFFaaWRyaUFfbkY1czFwQTNpLXA4Z1Q2YWx3bldCV0wwLUp2U1AteW9BVk8zS0ZIOWVDVnpxZ0FLeDNrQVhiNTJLMEtCZGQ5aXdiVlZoTU1VR3Zpbi00eThDRWd1dVB1S01lVm5fbTV1WkJpZFpTRWxLWnhpUE9WS0NzTUdLUTkxT29XR1pLelVwYmJ5NVNyTDJ5bFZoT3ZPZWVaSXJndVFCM1hvNjZJa2NFQ3daMHV6Z29zVHRfSm5JZVpqVHFZTU1WYTQzTEtjQmZBdVMzTnp6akhvNEhGb2JaWFdGc1RZN1pZdUFid0JtWkFFbWZhWDE3SlRSVlRKa3E3STRnamFXa04zaHFPdHJHZ3R6bEJSc2lvbE5YSWdyaGl0em5HUEdlcVpZYW4wZ190Q3BoWnpIT0hwX1BwSjlhcGNNeUxHRVp6NU11cE1rRVdwQlUteEs5WDJJLTVRSUx1eGcxSXF4aVNOLTZRTmlyXzdJdFhPT09GMVpyemMtNkRKMVpBaS1EdjRvRDlBcFM3c1lQQXNVQ1VYMU53Y2JkMVM2YkZlWEpwdDFzR0pUVE5jSFljV1pVUmxLZVlmNWpzVkZGMTczcHBiSG5NUnMtM3JWWkFrQzdnOUVrN3YxNFZpSEtqaHFfSlplZXJ2MFdKNHhpWExhVmIxZlN2azNQWXBTeGd5TDdtcF9sT3hpNS1GX1NQc3NVdTJwWnhYS1lqcG1wUDhnSHlKa1R6WGJ4SXJaWV9oMXBJNXFuSTZ4YTFqRkpiTUNuWUNRbHZTWWhIY1AycG1sM0FMeDBJNk9yUmY2Y25WNlUwWVNZWkcwemEtRXRKUU1nX3dHU2lMcV9LNk4yRWNUVDRFR1otZTJzN0VqLUQtVWxoLUthb19MS2k0Q2czaTEyYnNZRnBZcDROU1JlWnJVQjNHZEZrOGhhZWdQcVROdFhsR1IyWjNSd29SWHRkNXM0MnVxVC1fWlI1ZDBQclZRR1VNTUZ6Wk1Ga3E2Y1hNeXhzTjRXa283UGUyZW11Wl80ZkN6U2pFRmhpS0Rvel9ac3ZpZUZzUDZSdVFjQWtRM096R2xWYXpaYzl5ZUZjWDFCaWppQXg1OG5QMklNdmJDMVNPeDZJdnhRalZKU1NtdDI2c1dYTERTbjlpYWpkWUVTQmc4U0x5a0d3eDVMMUNzWEs2MFBtWEgwUGRkRkktak9oTDhXT2UwclBWSnoycklOeFhFMzVMRVFKaFBKY19qUFVONU9pV2d0YWd6Y2xJNjM2TWIwZFRYd0V4OWlHVURORXgzRmFJMEN5dW1UdURLNVJiaDFVdjNsVXhLSGdEcFJIX0JnYTh0a1RObHN4WDlmS0NVT2lqeVJiR3dzN0ZtWUZyYjdYMDJxYjU3bE9wZW1KbGVNSjBTbzRhWG5Yd1VTcTN3V0ZJTzRkVUN6dWZQRTloRkstYTVhRXVHVlk4Z2tsYzNJSVhsMHBxZXdSeVZJNDUzQWJBY2tXLU9WTUZCOGMwQ3hyMFZKWi1YUF9nLUd3YmpLWFRzUW44NlpPT0JjTFByUm9La3pRejRFamNjd1NBUTk0cko1Wm9YMmdFV3dEZTZTT0Etd283cnViSC1MLXdSck91Uk8zeUlVT0JrM1ZnLTRuLWlINjhSRkpVWkpLVTJmOG93TmVMUlBLV0xEVXBHUTJYSUphUXp2ZllIYThVeUR0bDQ2M3lOOElzN3djZ09ydmJlTXlMbVdJTDQ1WDl1TkNOVTRRaXFaRTM3dzFjUG1GOEhOSndwLXdBS2l2S29OMWZuR0xfT0xOMExBcnFxSV9PYUVFbWRVUUpCQVNQdS1JYWZNNE8xdGVVS1d6MGpjRjhockVwTkFNQnlrSUJmdUdCQ3NiRk5Qc1VwNENvWGlaZjBuWU5jMllrUnJDdnpHZXNpUzBOWXlvM3oyV2xoTnpkWU4xRG9DcS1Dd3hFb3V4dVphUGxVTW1zaFFJZUttMmFQT2dQTUIyd1NkWnlmUDEtMnZwNlN1c2lpbjJWYi1zcGdWMkcySXVqcWNNSFlnUnpJRFJrS0tHQklScFpsRDF6SlI2V3FjbkJ0Vjg0VlFGRG12NGFqMWRLUWM4Z2dhQ09NdVpicUtJQUhYcjhDRy1CbVpNM2pmb3o0YmVXbHZ0ZUJZWjJkaHB4ZXkwVzVYZ1hhaV9EYXl4U0ZxVmhOT2dkcFVuMVptRXFCVmVOSGNwWmxTTS0xU2dKallOREI4eVNIa2s5ZUhvSTV0QVAwMENfVWpjLUhoeFp3Zkxtem8tNWlmVDVoN1JvU2VWUjdxT2t2ZDhhd0RjU1FQNlA0UnltMEVsc0liRHY2TG81OXRXeFNlaGQwdTlJUE0tSnhmSElpSHJhWDVxc0l2WHhzYjI5MURTdl9GNy0yU25WS3hFZHY5bDhteFlrYTFGWGp4SEZvbFVoMmVIMFlMOHdwdVgwYTg0NXZoUzJvZ2dFYkNmZDJ5akowVHFOYTljeUlVaDFYVVVmS0RJT1BrQVNjdEdjbG90eE1vLWNfMkxTY3BKby13MlpiWlRfYXVURHJyeTN2V1V1VnNHMkNBa0pXVFlpRGloZjViMVc0VDlUM2VEZGJ3TEZjcHJDTE93Wjg0MlpMcGw0Njh4cDlwNThTa2s1aEtLV3h2YnBlTzhmdmctUjgxLU50QXVTWUtaZ2tNeFEwUlZUSkQwX052dE5yWXRzMUhZQ01NUzBUdkZZMzhweUl1aHVFN21ZNko3Z3ljckt5c2RYVkFYQTdjYzJNVUlJYkhVT3BlcEdZWlJQVzAyeHdoQUZlbmU1eHpIb3BjWkRlcTFvYl9vUDZtLUdFZEo4RzZqb2JQdmlEaW91Z0wweGc0d21RSkNjbnQ0UU5LdmlDQWZzNzhfWm5qUmNyQkU2LTJBUkRURGpwVkxKTzRPVTRVWWdzLUM2TGw3TktVUUNIWUNCNWlqM3VLTDV4eWluX2wxeFYya1VvR3g0TjdXTl93VEhpR1g2ejlMWEdocXY0bmhyNXBSLVFET01wTVhMU2VPeDEycko4OU9rYzVDZDJfbjV4cTJHUy1BVkFiTVd0ZGtjT1pSamJCSWE2VzhxNGFnLTNZbnZTSlkyaGljU2FNb0otY2dzUTVydC1fai1xcnQzMXJiRHc4cnpGazRleV9pNHZXbjk0bF9xODRGYmlKRVU4WFNaRnRtT0ZURkU1QnVoMm11U01TZ2hIMm5ZSFA0Q1ZDVzYtQU94cnU1UWlEZ0c5SkhRMTYyOTI5dFN2YXFjaV9ZSUVwVXU2YnBGS0RwQ1NmZUVMc2s1NVNMRnZHZnIzRkkzbmtNOFVYbkhUMGpNUnpLQ2VSTUliNUdYc2tJSEZCaE5BWElqd1pCRW1DZWphZlc4Wmh0SnFPOWxVOGc0a2hxRnFEUzhmcUFvU2Nub2U0VGZwbW1hUlFPMEViVUM2dk1Xdno4b091ZFdxbFBLN2NCVjYxd09uakNBaFFKenRkTHFzUF9kYkV4ZERvOUVqaVplYVB0NWNsOXJ4bEY1MzM3WFB5OUo4ZnI2M1JoYlV3aGdUSUxTWFh1NEpvOEVrZk5ZVjk2MjA2SW43WWE5SkVnZUNKOWp5anhkNTBabGhDaWtOamFaTDlpTlNYNnd5cmtDWlo3SUpyQ0gzbEd4Zl8wRHB1SWxMdzZ0Zm9GNXlTaDdHVnBYYy1xM3o3S3FDQ2E0RjN6aEU2WHN3WVE5SGdrVjdwRkc4Q0tDaEp4andoSVVjS2NLSlp3MkhSLW92VDVJTi04ZjhrQi1xaTBOeGgxWTIzeWRoVE1NVHRqN1pLNGZCNWJKRlY2WmduNWtiTXR0d2FOcWVjNnRZRmEzcVJnbUtoZW1YVTVsNjJyZ09nbkJlbjNCZEZ5MlJXVjVRSzZaeW9WQV94N0M5UGVFcVVLUTloLWQtb3NXVVUzVkJsRUgzSDh5UEs5aXlXWFhseDFZeC1xMmFGVFFlTlhqTW40TWhwMkRXZS1OUzFxTEFJM21zVmRKTVA4S0p5R3pJY3RfaGJOV2NSelhKUE5tRklaSWhjbTJJVU04Zml3aTZNcGhWdDZXZjVzQjZVdUFmVl82R1E2QlVwaENwclN6allUcTlEYVdkSnJYTUdvMW9TQ3FyRm5ZWGtxTkpLdWNFeURIU3dZZlVjc2RYZGZKMjFnYmUwUWF0X092dnJzcFpkbm8wdDhQY1NWQU5YeGdOVmhLRDgzTHphWEJrZ1lpbWZpQ3NmaExXbm9lQkZNbXhocC1MU0xJOUh0UU5oLVNxQWJBb0JyV05WUXNNeGIxaUYyTzhxYkJfWTBOeE5EYXZCU0l3QWNTOHRzUHVrd2RlUWNpV0tmZ2tJWng3c3JvWVViNE1zUUU1Q2ZoN0cxb0Vpc1dEX2hTNEFOVmFLbnJMeWNmZm5uM2UxenA0b3lvak9KVFJ0M1l6OUZCZDVLSjRRYjJWblh1MVJYNXgxd3JsYVZtY1B5eXlidk8zbTBFc3l3TkV6R001RTBLbFZiZ2NHTE9LT2NrbzZDbVlXVnh3RW5fSG9Sdmc5R3V6aEpjVzFKbXdoU29LeEFNUUpaRDNucGNkMjg4cWF2SUl5NHRHdTNtUkFCU1FRQmR5eUlVNmF3WWIxUjVhTEQ1YXhmUnlzZzl0OThBeDNLVGs5QlpFanFrcTVKXzRHckNtbzhNbndBVzhxUWN6U3VmNDNUbzVhWDBjVGFYb3p5SVdZM3FIMmNZZndYelMzZzFQT3RzU0FlNG5oaUtnVkxCYzh6MjZBV2F5RVZMX0htMGZXMlBGZGwzVVV3WU1KODllMmdhZGZCNTUyVnJuU2tmblBWSkhaUFMydHJuMGxCNlhhVTJOUDRoT2g0OUJUMTRpankwNUZiZHR0U29wMm5PYVNubmQ5NUV2dnhWdzRCYTd2S1hIblZvMHJoZlhWS2VSOHJUOFFRNU44c3NnY0xyLXRrM0U4WlhRZURuejZObkxVbUFpaDBFeTNMaC1XZzNVSmdKb1FiNDM1S1ZBX3ZKcFV1SnY0SmxSeHV4dVJLcHVYS2x5TEh4SjhQb1pUOGlzT1d6MFdJWk5xdWthdHY0TW5Nd09fbEhZa1RJLTZtQ3BwSHdkUkhrdk5ReWNZUDN5SzNXNVl4bU5LY1p4V1hQOFlxQ2F4UFhfZEJUWmNBOE0xb1FfUHpvaU5fRXlYdWx6VU1iR0J1UldoMklqWVdkdHdDT3c5SHQ5bTBlelQzZEk3M0ZBV0dXZkdJZXg4UC1sLXJBYUtLQ1A5RW81Slc3dGQ4T2s3bU5ES1p0ZjloSkNWNFNpSEhVUzNxdUZNVWVRMnQ2UHdUN1B4US1uMDk3Ri1zZ0ZzaTlJUmIzeEZsaHVHaUJpX1o1ckR5UUlsV0h6QmFUZ29iSmg0UTB5UHFhSExhM2ROOFVLRUxRblFXc2RCWHhmN2I1RUg1UTBranJ0bGVhUEVhOWhqd1Z6RTZDNk9OOWE4ZHpkSzVVenhsY0FieEZoZ3RaZVAwZFdkNXNET0I3bzhCbnFpYTllczNjZ192S2FSaXZvd3YySUItckxEWDJESGpPU2ZlNUR4TEpGQUNrVmtZM09hX1pEVDN1YmVBT0FJZ2dOUFRjVEpIRm9rTzFzbVlxN21lRlllUkpCWWpNMmVmRTJpWF9iNnRxbG42ZFZidENlOGhiRTJaYlVHZ0pzYjVRVHczWWlSb3BvREJZR1RCWVgwTXRMNE9GcUVCbTg5Sm1iaERzMG1SZFlvcmR0d2FndVVXRVFhTi1uNDNLVFdQeWxSR3k2emRNWE5KTWstWXE4NlF2MGMySV90c2pPa2tBakg3VEJIQVpsZVJLcFNlYXo2UEpJWHpmTzViV3NabGhWZnN0NUFYUjRNVWZBLXEtb3NFSHg0eEpFM2VjdmFxZGhkcnJoOVBLMC1zbl91MDBMV0hzcEJnd1pWNDVGc0RteXJGaHF6ZDFOQXRFOXlpVzYzXzJ0Q2pYVXVVcHpqYnN3MlhHaEtlVTZmQmkwTVFsalNUTEM3VFhtRkJFRy1OYjdXQUpFWmwtU181a0ZzdnZDdWJHeG5ZNVNOZ1AyNmJaSUYtX2xKSDk5WHk2YzhBdFhleUJydFh6emxGZmVlbjVBYjRhM2NTTlB6YnR5aGZfVG1yVWZJdG5SZ0JhOU1ORTB6M0ZDT29MUkQwMXlqQS1MdnMxc1ozRWdwZHMzOGhZcVdNTTNGUjN0MGtFZDhUWXRZcmNFdVVVQmNmVmJWdW9NTGxoRm5XYm5XNXRuWWtOVlU5SGRoNkdya04wdXJ6UzZKdnZIRTBPUlA2UDN1ME9fVWVlYTQzbnBBMGhwNmw0UFBoTnVRM21RRGRaX0pzRlEtcTJFdUpFOHRUdVVkdXczVmZhNkNDZlhiUVNlUW9JUWVWdHRYS2t1aUZoN042QXVXeXlsaDlia1V5LURMWmgtZUxsRnpXb2xES1hWdW9qUDJiZy1Gb1B3b0lWVTNxVVJoazVTQXlCT2FSM2pVZmx4YnAtUGRLNVJBcWJ1SVc3Y0lXUGx1amd5NXBVdVROVjJ3Mnlxa19VNTJGdzNEYXlZNXBzaEpWdXF1MFJiZHd3UGZhYXRvejVpUXVPblo2VjdDQWhvSW9oUjAzanVHLWFNZTlKYXQ4NGJ5WENPVF9waEU2OHdxTVpzaWV2VGs2NzRhZXlvckdkYk9BbjBTQWpjR2YwMnpWVWtrRWlQNkRudnptRXA1NEZlSlR2Y285VHlLUGlVUmU2SzdTR0hxREw1MEp0bjFFWVdhVGtqeHhRVXp1a21MWURLcHpGZFVBSUZadktGR1BTRmVEbFpTQ25IR2FlVWR6blFfWnhycFZlOG1UZVpJZTZ0ejg2QzdmUGFDX0hXWXZJLXNrRGoxQ2Y4Rm9FNzk2bEEwRWIzZk5ISkhXV2R6OVZBYngwSTNEcmJfd0JRWWFsdTBZa2FUUnI2dklyb25nanBOLU03VXV1dWdoRnFsaFVmR0JpTGh2M2lxcWRFWTl4X1RKWFc0anVfNVBqcXNtTU9VT1ltMG1NdnZTbGgzUDFQVGJCRlE1WXZvOVZWcV92bTNRWDhTOW45WDhLLXNFd1VVRUxjM05RcFVXNEp6c0t5dWFYVTNNcE5RenZxZ1UwWVp1MldoWFBZLWV5cUxWVXJFbXNjMWgtay0tSFhFT3BHOVNZemd3Q090RGRHcHNrdXdlVVR2eUluRXpaTlBMWEZ3Skx4S25oTVRwMElORG1tbFN2WVdWRzZhaEFHUF9OUlpBUHBsQVQ5NF9HUUNlUmVzUjZIbnN2MHc2TWVaYjU1MU5SSHE1dEdmYWd0ZGhiZnVjN0Q3Z2tJcEtzMEJZLVZPbVJSckNQR3V5YnhBeE9NbGVuRnAyUE9aTUY5Mk9CMFJhTi1ZTE5hVG9nZEtJTTlKcnNMVS1nZlJPZ1dFanZMSGhEYVd0dlFfLVFqMVZCUW1URno3c3NLSmJoNG9YQmZXZ1poTm1VeUUyWWREdnhQaWQzRDZEektMSlU0azNlUEJGUUZvVXo1a1BTQWhfc0FDbkNMU1ctaU43ZG1GUFRrYURlZEFnTHJuM3AwNmxKWE5XNERDT1ExLTN4YXVoQkdHS3RBSXFwVE82VDFlcmx1R09wOGszbnh2RF9QSlVTc1BQUzVpd2YxSW9fRUcxSUdPRXRFbHdSa1Fjb3ZLZFltMTAzUUFyWGt6STlqdjhRRXRsdHBQbWdENlh0YVVWVWtjTTY5RXg4emZaUzlocy1aa0xfbnpfOXJWQTNsTTlvam1lLUVNZXJTd05WZVBaLWVwUEJVWXlHbkY2eF9CUU9LWWxjV3BKaTdncy1mcHZIZnlqVVlQUW1QZjVkZlhEQ19xVzJUMG1EaEI0Y05SLUdnY09PQ3BjaUZoby15OWVaWWJ4bU1CTVA4U3NPNk44QzVtUS1YRFRQdVloZGN2c1QtcG0zVlF5ZGZWZDY4TmNXeVY1NGVfWlRtSl90ZW9LNk5OUHEtZFloNEVvbElVemVYc05MbVhPX1dQZzh6dmlSZlRrNGtZdjJobUZqcFlOdUdVd2s5NVdsYkszWGJMaDRmVEpvTHB6RGxrVy1JUFdrblVMUE9FMmQzTUJiZDFpMHZveEVuRjh5eXA2aXpqTmhQRFpuWmFuWHFycXVpNlBfWXpQZS1jYmxoRjl5VnpFTEEwbkJUREJhNUgxX201NWRtNDczNEVRclFfOXo0Y2dCeTlDYndaa000cVJ4c0syX1NUYnJKRTNUUG5hVzQzOGF2bENHekZ0MzBUSlY2bGx5U2d3RVBXNkk3b0w5UWpKQ3oyTVVVWnRvUjZaYXl1U3duQS5jNkhoeG92Nk12Vm1rd1ljSE1yZkxR\"\r\n}", + "RequestHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "10671" + ], + "x-ms-client-request-id": [ + "5eff53d8-bc37-43ad-8a86-2b9d50820f0a" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"key\": {\r\n \"kid\": \"https://kv-sdk-test.vault-int.azure-int.net/keys/KeyBackupRestoreTest/b1634f7d6662425d967888b6abb3f413\",\r\n \"kty\": \"RSA\",\r\n \"key_ops\": [\r\n \"encrypt\",\r\n \"decrypt\",\r\n \"sign\",\r\n \"verify\",\r\n \"wrapKey\",\r\n \"unwrapKey\"\r\n ],\r\n \"n\": \"sutrU6YgaSoSGtNeDijrmXbC6fRjqwz1GIjczBJBFyKZwP_2hC1tRSlxoAHcpViObrhwo9gHQiIFg2jkZAMfYEQk3D6G1MutjEfcQGHi-3ReWV0BDDtkBvOuT8TWsGATQ9kYKgtWOWuFjEARxVzHaThuEbs-e_cHsPIglwcBUvPoMS-vrwyzowJaT95MMxLZUq42Xji3gKIbUhAEZ27z_tkEdQtkBpBorBzChkXdDak6D7XnIjsVQHnMRCwVMgRfIrT06ILdEBeq3eCjCx_jwvGrUyO4PwEm35ToMf-EXirz8X1Ea3JFZ2r5zIbSnoGst1okaQNbynXBlcOcGcVviQ\",\r\n \"e\": \"AQAB\"\r\n },\r\n \"attributes\": {\r\n \"enabled\": false,\r\n \"nbf\": 1262332800,\r\n \"exp\": 1893484800,\r\n \"created\": 1491343158,\r\n \"updated\": 1491343158,\r\n \"purgedisabled\": false\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "691" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:00:01 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "2b28c6a2-5644-4ecb-98ef-fcdc04a14bba" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 200 + }, + { + "RequestUri": "//keys/KeyBackupRestoreTest/?api-version=2016-10-01", + "EncodedRequestUri": "Ly9rZXlzL0tleUJhY2t1cFJlc3RvcmVUZXN0Lz9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "6301cbfe-3b9f-4d76-88b0-173f8a39f6c6" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"key\": {\r\n \"kid\": \"https://kv-sdk-test.vault-int.azure-int.net/keys/KeyBackupRestoreTest/b1634f7d6662425d967888b6abb3f413\",\r\n \"kty\": \"RSA\",\r\n \"key_ops\": [\r\n \"encrypt\",\r\n \"decrypt\",\r\n \"sign\",\r\n \"verify\",\r\n \"wrapKey\",\r\n \"unwrapKey\"\r\n ],\r\n \"n\": \"sutrU6YgaSoSGtNeDijrmXbC6fRjqwz1GIjczBJBFyKZwP_2hC1tRSlxoAHcpViObrhwo9gHQiIFg2jkZAMfYEQk3D6G1MutjEfcQGHi-3ReWV0BDDtkBvOuT8TWsGATQ9kYKgtWOWuFjEARxVzHaThuEbs-e_cHsPIglwcBUvPoMS-vrwyzowJaT95MMxLZUq42Xji3gKIbUhAEZ27z_tkEdQtkBpBorBzChkXdDak6D7XnIjsVQHnMRCwVMgRfIrT06ILdEBeq3eCjCx_jwvGrUyO4PwEm35ToMf-EXirz8X1Ea3JFZ2r5zIbSnoGst1okaQNbynXBlcOcGcVviQ\",\r\n \"e\": \"AQAB\"\r\n },\r\n \"attributes\": {\r\n \"enabled\": false,\r\n \"nbf\": 1262332800,\r\n \"exp\": 1893484800,\r\n \"created\": 1491343158,\r\n \"updated\": 1491343158,\r\n \"purgedisabled\": false\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "691" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:00:01 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "735f5f0d-a527-452f-80df-6fbf8e8777ff" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 200 + } + ], + "Names": {}, + "Variables": { + "VaultAddress": "https://kv-sdk-test.vault-int.azure-int.net/", + "KeyName": "sdktestkey", + "KeyVersion": "e239657e42f94dd091b5f424e07f6c19", + "SoftDeleteEnabled": "true" + } +} \ No newline at end of file diff --git a/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultKeyCreateDeleteRecoverPurgeTest.json b/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultKeyCreateDeleteRecoverPurgeTest.json index b67652eba361..efb8b592fb59 100644 --- a/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultKeyCreateDeleteRecoverPurgeTest.json +++ b/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultKeyCreateDeleteRecoverPurgeTest.json @@ -1285,6 +1285,7 @@ "Variables": { "VaultAddress": "https://karlaugsoftdeletesdk.vault-int.azure-int.net", "KeyName": "sdktestkey", - "KeyVersion": "4ac8dbcb697b44a2bff598b1a21e371c" + "KeyVersion": "4ac8dbcb697b44a2bff598b1a21e371c", + "SoftDeleteEnabled": "true" } } \ No newline at end of file diff --git a/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultListDeletedKeysTest.json b/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultListDeletedKeysTest.json index 4aa9d146f884..8c24d17c03ba 100644 --- a/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultListDeletedKeysTest.json +++ b/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultListDeletedKeysTest.json @@ -1861,6 +1861,7 @@ "Variables": { "VaultAddress": "https://karlaugsoftdeletesdk.vault-int.azure-int.net", "KeyName": "sdktestkey", - "KeyVersion": "cf7c860fb9db4564a1389db973a52436" + "KeyVersion": "cf7c860fb9db4564a1389db973a52436", + "SoftDeleteEnabled": "true" } } \ No newline at end of file diff --git a/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultListDeletedSecretsTest.json b/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultListDeletedSecretsTest.json index e09dd28ad95d..19cfd2100310 100644 --- a/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultListDeletedSecretsTest.json +++ b/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultListDeletedSecretsTest.json @@ -1925,6 +1925,7 @@ "Variables": { "VaultAddress": "https://karlaugsoftdeletesdk.vault-int.azure-int.net", "KeyName": "sdktestkey", - "KeyVersion": "cf7c860fb9db4564a1389db973a52436" + "KeyVersion": "cf7c860fb9db4564a1389db973a52436", + "SoftDeleteEnabled": "true" } } \ No newline at end of file diff --git a/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultSecretBackupRestoreTest.json b/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultSecretBackupRestoreTest.json new file mode 100644 index 000000000000..399a5f66f645 --- /dev/null +++ b/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultSecretBackupRestoreTest.json @@ -0,0 +1,1245 @@ +{ + "Entries": [ + { + "RequestUri": "//secrets/SecretBackupRestoreTest?api-version=2016-10-01", + "EncodedRequestUri": "Ly9zZWNyZXRzL1NlY3JldEJhY2t1cFJlc3RvcmVUZXN0P2FwaS12ZXJzaW9uPTIwMTYtMTAtMDE=", + "RequestMethod": "PUT", + "RequestBody": "{\r\n \"value\": \"if found please return to secretbackuprestoretest\",\r\n \"contentType\": \"text\",\r\n \"attributes\": {\r\n \"enabled\": true,\r\n \"nbf\": 1262332800,\r\n \"exp\": 1893484800\r\n }\r\n}", + "RequestHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "188" + ], + "x-ms-client-request-id": [ + "7523458d-d606-43c1-a2f7-1dcbe8bd219d" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"value\": \"if found please return to secretbackuprestoretest\",\r\n \"contentType\": \"text\",\r\n \"id\": \"https://kv-sdk-test.vault-int.azure-int.net/secrets/SecretBackupRestoreTest/0699d2c2baed44c09f9c8a54f5f1bcad\",\r\n \"attributes\": {\r\n \"enabled\": true,\r\n \"nbf\": 1262332800,\r\n \"exp\": 1893484800,\r\n \"created\": 1491343301,\r\n \"updated\": 1491343301\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "304" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:01:41 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "0955d1ef-5346-4b0d-bb78-cd3dd846a47d" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 200 + }, + { + "RequestUri": "//secrets/SecretBackupRestoreTest/backup?api-version=2016-10-01", + "EncodedRequestUri": "Ly9zZWNyZXRzL1NlY3JldEJhY2t1cFJlc3RvcmVUZXN0L2JhY2t1cD9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", + "RequestMethod": "POST", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "c7dbf325-3307-47ca-8376-fa1d94af40d0" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"value\": \"KUF6dXJlS2V5VmF1bHRTZWNyZXRCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUppTlRjMk5ESTVaaTB5TlRZNExUUTFZbVV0WW1aaFlTMHpOMlZrTURkbVl6QmpPREVpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLmtXdFNZT2c2bU1mN1BkaWhPUzE0Rlk4MktNX3doZFdSVHJPUzRqdVItRFlWXzkyZExWeUZMaHViOFlQMDRMMkNVTlUzSXoxaWF6bEpEc0JTZmxRY1FPUjJTSjUyYVE2RmwxYzM5SXNTekRNcmhxZUF5amR6YTZ3OVhYbFkya01scFl2RTMxa20xRVlwbDNCTk9aMmZiR1RfZEl1dDJYMjJ1NC1FZ3N1ZFlVOC1Sa3NRVENnUExQeTE2Wm1udEpUTWRmUDhjMHphUWIzMDFPRHdqMDRFdVBIMy1lS0l0YlNMR3BtRjlsdS1wNmxxcFQ5SjB0eXVYVlV1TnBHNGVKeHEtTWVJcWdHX2x1RGN5ZGFvS01BS2FEQnpCejJGTm9uM2J0R0V2Um5Fbm93VDFXWmVZZ0FxelBIWlNaZ0RuM3BPbmZpVU05QUpDcUJ2ck4zWjNJUnRCdy41RXBMVWFld2xwbS1LczZJejA2UGJ3LlhnS3VJd1pRdXlUdVRkMUZSQno2SVF0a0t0c0ZuellucFNvcGlzdlJCZWtaZkNEN0wtZzVHbzl3N1o0NkRJQkFHMV92bnpRNXo3WGlISEdJSUxuRW9CVEpLR0x6X3p3cVZMM1BFVTZEdEtOeWc5bWtrTHQza01hcHl5OHFMT0oxeXBoS1lQcEZQTnRPSFFoQ0dXSXBldlpuM3ZEeV9PMG5zbkdtaW13ZkhndlRjcUF2UzJVQTA4eXYzdEpSdHdTdVB6QW5MQTVOZzA2clJUeEJySk8tWG4yTzVXaHRYSml5b3o4bExteEpJdjNXZmcxS2pORDhuOVhjSGpUODlFa2VLQWk2aWp1M0p5OWFTclgwWnpubGZ6Z0ZGb3V4WVhGdXZvbGlNZXRuY19jSzJIYzVoekp3ZUprSld1Y3BTaGtTejRsUjFhLTVhRXRfUFVlTXZLMEd3UkxoQ2lZd3dmTDJDZFFJdkx6ZWhXdGV3VjkzTEhRSG1OU1ZEZjVCYkhEREF5MTBiMkhjMTJPY2Q0eEFKWUV2dDA0N1Z2THRHaE42V09CMnZ5VlBCa3RMamdCeG82ZHBlUVhaNEhZZzN0bUE2bDI1RXIzWnY4ZEtFZmNENXB3UWVPOXpzTzZwNXVHZlE0N2ljN2Mtalp3NWZOZlkwQlg1VHlnN01Lc0o3dGFjdkdmc0dDQWppaXdacDFKTGdZU3Y4Y2VDS1d1TUJSWXlOU3JfZ1pnLTJ1WUZUX1BOVEJUdkw2ZUVMalNoR3g3TEdFNWkzVlh2QUtmMHF6UDBjdnRzb01MSjUyU2RBNTFNSEpMOXBwVnFhYkk0WkhxX1RzTTZQMF9XS0lBU3QtdjRsOGdCcFQ4bEVac3NXdXVnRzhYOUt3Z054cF9FNFVtcDNJR1lidVhwaVRkbXdPZ3JqdURmM1RCZWxLOXJZc3VHSnBBOTNUZ0VvTTdwZjljTkRtM20wWFZBZFNPaGZEUk0wMndNSnpHVTMyc1g0TG9iMFh0Tmk3cHJvNnRoTU9RRzdld0diLVZxZXJYaXRnQ1JXT2RZVXA4RWRVcFJmby1OeUE3ZjZ5bl9zOHd3ODI4YkhIeTBzTTJGZWNQaUEtSjBhY2UxbGpCbjV4YlNQSUx0RjhFRDZTLVdOM3FlQXJfUVZidkc1bDNrYW9iRnpCemhOWlhhOWdTWkZZa1RwNExiQ3RwRW5TdVV5dVU4aUVpaU1LS1N3cmZiMFkwbkZTMnpZelRLZzU4c3lvdjdIQVBXT2tXOTNSM1RtUUF0elo2WW1aWW5ZcElKSjA3VTRJZ3hlMXI2dDhFUXNwd2tyV1BKME1IVjJOb3FKX3BPdHZTbkZ2ZHhhTkZEaGtMMlJnZWtZVWhLekgtdFJndGE2eUtkMDB4bTV4d0hwNVBzVnFnamlFTDlDWUtzbzdMcWNSUDBMMS1UdlZRNHVEeDk4S0hkei1nZ2hVRUJCUjdqM2pNeXBSbjVVemNVZWFEZEdPdHFZRjhYLW5yajVxM2FNYUQ3MUs0eWZ3QXNKSVdULVdIcnp1UkRRSFhmczFjOXp6SEM3NGFSREFnX2F5Ny1LTjQzc3VpdS0wb0pnSE40d3Y2ZUR1Wm5xMWNIQU9PdDZJVEMyLWFKdlZEa3o1N09wdG9jY1dDTDBtZTFqdWEtZGV5R0R4S1NaaC03Y0pPTVZ1Y0xQOVptX1NNV1k2aE1qM0lNUEVyN0xlMGZNZXZ1VTk0SG45YXZEdExHdFBHb2pGSzZMM3F0cWVUSnFaMnhwY0p2S1lXVW40MFZJRTY0LTkzQ09VT2VjZW9JeFJadDd2MTRpTE5nNkVSNnpwM2hrMF92dkF3dXQwNG9WNjItR1A2d3J1cHpheGN4SkNGOXhNaGhGU255OVdSVHVua21sdWtUT0FvQjJCMjhfWlhZekVNMzFIWVJWMjl6cGN4TjBxaWROUUpaS2xsOUxNbzQ1U3hLem1PRGNUaHpKM0J6bFhQWHM2QjJNWHhQMWhlQnViSGhnUHRsNDZ5ekdwVHdwVnpPVkQyMXlIM1o4R25ralVEQTdmMUhmVHhWMkFOTW5RWlJHUWZTalZhS2hwOG9IOFZCc0VhcWd6eW5MOTB3X0RHRldIcWs0ZHU2SHNxX0k4Z3VtMl9QbFRyU2VJWlMzNldhMzI0Ulg5cU00ak85RFladGdHSE5DR3k3bGZoY1lCU2wxa2FiY3BlQmFxdFlpYllKNVlJeE0zUFNxcWlOMVdMajJEWEdfT0w3RTVhdFhtNjRIbEVWcTFpUVk4SVpBcmZQeGNQMWRORnJSN0hveFRETlFZVkY5Q3hNR3o4dVg1eHFaSWF5dlZKSEtlYmxCZTI1R0tuQ3lIOGtWT1AybTNfalNFSUxFZ0x1cVVENTBxQURuVzFVZmlaWnpldVN3MXMtNWlCcEI5N3d0NG00dmRyck95YWFqdFU5YkE5UjRJX2ZBeDV6ZmE5T2otanBoVzE0UFhhWXhyc29ldXhWWlR1bFpxZ0tBT0VvVXF2N3BoeXB6MlE0Nm1GWV9MZmxRN2xNa0lkek16OUY5V0lZT25fcEl4NG1YT1R3UmZQRGkyM19yeEhhOFJSY1VxNGxPaUxXdjQyR0Y2X2hlSEdzQ1hfMHpjREZqSGRBYTBodU9JdU1lRFBwNjZmYzBJeHV3T1NXZWtZdS1TYnZoaXFrWjFHVXJoS2JRVmgtLWZwRXhnc2JVd0o0RlY0aWE4NlAya1lFcVJHLWpXUGY1TEtpZ3d4cHRGdGp0S25QQmFWTGQxQU0xejNwN3VSZVZzM2FJOXJrbHRMSXYySlRYMl9aa3ExY0pyMlpkRE5Rc2w5bHBCNzVIcDF5RlFYX3RYd01IWklSVDk2aUNycjFOejBCS2VncEtFQ1VlUUgybHVtQzlEMlAwU3ZnZzZFR29RVGZGWjBYZGRFUDZDb1pyazJHamN1NFpfT3dVc25BLUVvYTZsTW4wa0V2Z0NkbXA2dGJ2dVNVREFid0l0YWNDSUFOejVrWEdnNHJESGtpVDl6WUpJS2t5SzJsUHRhRFQySmltdDdhNklob3Y0MGF3QXpXbDhoODU0a0Jsb2p0ZEFEeWN5amVqb0ZRMjlMYnFaa3lMRG1qRklXdXBIOEl1X3VpQzZDRzVYNjF4LTZoeDVSTEdraldhekkxXzFpS3Q0OC1QQXVwR3I5QktQbkl6R3NjTm9URVg0RllZZElfSlNyTi0zVGpkWHVhUmxrWGVBV25lOXhzUjB2dklYSmMtdHFoM2RCWERWWHlTLXNfaHlZQ3dIYzN3WEMyQkdIU2EtWG42SGVWaG9PcHZUem1zaXd3eG1wN19LZnBlX2g5dWhMb2xlaEN2RGEwMWRuZW5PYUFCdkJoYVZGcGVtXzBfTHI2dzBBb3ZUaHNaQXFjekFUcmJoVmlMTU1vVkJZZy16em1DeFM5U3JrYmtiTURJSHU1T052ZWNTQTFMRkkxN0l2U1FJeDUxNUVmbU5VX2h0SWlQWnNoc3J5M3F4RWdvTUlDSmZVVEV2UU5wcmo0NkdhRlV6cUFXVkNHdGttRWlmMUpDQ0dnbFdGdUZwSTB5Ql9VUGFSa1JlY0hWRXItNGtiVzd1SGRfcTh3ZFFadHJoUExLc19INjhtWUQzdVRCME5tN3dPYXJYeXFSeUYxLWVzQ0wyRF9RbHowZ2FzRVZZcVVyQUx5MnIwS0dwLW9PeDBoUkZGOEdHdzZlT1NwXzVZNGt4ZV9yVEV5am9RcVJHTWxLMUZINUpFcENPTXpOXzM5UVVoc2FscWVIWGl1dW82Y2NkdlVFVHY4ZUVFb0kxRVN4YVpNbzY5d2FxdWw5NEgybFJCemlObl84XzhfbWVoSTdmVk5Zekpxb0JabS1KOWJyYmxzeTZ2bF9BODU1TUdJSXZZeXY1NFVLZjF2YlRWVzZpUEFGc28wLWQ4Y2YwOFdiY1UwbmViS0h2Q2lwN1VENnRxNnJPdnM4cWpjTjZDZDJYa3lwSTZrM0VOTTAwVHlSeE5Hc2VPOHRFNFdRTEZNZTNSNFJzbDB0Z1p5Qmx6SkctdDJtYWZfTEtDTElaVlB6X2lkaXhkejYxZzBaWlFUaDctLXlBa0RrY3BaUkJBZUxVNVl3ZDFaal9HbTVra1luVVgzbG1FQ0t3QlNGa2hEZG5CbDYyeHVfMVg4WHpodmxjVTFRWWdxeWVybi1wWEVtMGdyT3BPNzI1Zm92RTVldWVSMVVvUVhaM0x5aVVXT0xhcjl6VTd3Um1mNUFDcGxINjhfYU96WFlBZ3RFYnRFc0VhejBaQVNJWl9xOTBEOTBJOXRCS1dveTFZTTJ2bzdrMC1Oc0VfS0NWVnpwaUlwTHNVU1FtbEIzc2k4M3IxVTM4QXpRNy03SUdUemlGY0Y1cXFMTjYwR1ZsLXVOazlMOUlmOENGakp5UElvdUd0cEd1X3QxQkdUTmN6NGk4X2kwWVJELURudVpsMlhlQXY5UlFaRVVTcGdxdFN4X056M196MWZCdEc3WXZyclhXNWFZQTVmNDA0ZWF0NEc2anJ1UUNwZmRuSVZDREFmbHE1V1lkRTlDZ3ExTWI5U3NVdU13bVdpWktZX0tCS1g2QU5PU1lseTRSZE5MVzc4MXh5QnJiN2xKTU9vTnJHamhTaVVJUHpxTmNvLVN3cXB2OXNiWi1jSEJNWXJNbF9xaVEtTjNCZDNFZlQwWXdmZzN0Y3dWM2pvd0NXZEVPMEZCaHJldk9VVXd1LXlSdUp0dllpcnMxRlhGUHlYTU9kMDdJZ3dMeFVjLXFEY3I1enNCVzlqWWNVeXFla0gzZGRDZm04VWxyUGNSQTZoZkEtYWowdzBVZjBSMUVqWEJDYzUxZWFZOTVNcHJORmRiTHhVU2k0bk9yWVFnUlQxRncuNVIwTXJSMUZLWGVFRkRWU19jdzNhZw\"\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "5634" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:01:41 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "74ba6f36-24b5-488a-9bda-6095e33055a6" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 200 + }, + { + "RequestUri": "//secrets/SecretBackupRestoreTest?api-version=2016-10-01", + "EncodedRequestUri": "Ly9zZWNyZXRzL1NlY3JldEJhY2t1cFJlc3RvcmVUZXN0P2FwaS12ZXJzaW9uPTIwMTYtMTAtMDE=", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "a65dd44c-9637-42e4-8371-ad1b94febf18" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"recoveryId\": \"https://kv-sdk-test.vault-int.azure-int.net/deletedsecrets/SecretBackupRestoreTest\",\r\n \"deletedDate\": 1491343302,\r\n \"scheduledPurgeDate\": 1499119302,\r\n \"contentType\": \"text\",\r\n \"id\": \"https://kv-sdk-test.vault-int.azure-int.net/secrets/SecretBackupRestoreTest/0699d2c2baed44c09f9c8a54f5f1bcad\",\r\n \"attributes\": {\r\n \"enabled\": true,\r\n \"nbf\": 1262332800,\r\n \"exp\": 1893484800,\r\n \"created\": 1491343301,\r\n \"updated\": 1491343301\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "399" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:01:41 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "7e7b478f-acbc-484d-af7b-f880157dfc76" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 200 + }, + { + "RequestUri": "//secrets/SecretBackupRestoreTest?api-version=2016-10-01", + "EncodedRequestUri": "Ly9zZWNyZXRzL1NlY3JldEJhY2t1cFJlc3RvcmVUZXN0P2FwaS12ZXJzaW9uPTIwMTYtMTAtMDE=", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "9e7808de-5e05-4e6b-8443-59641565af44" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"recoveryId\": \"https://kv-sdk-test.vault-int.azure-int.net/deletedsecrets/SecretBackupRestoreTest\",\r\n \"deletedDate\": 1491343352,\r\n \"scheduledPurgeDate\": 1499119352,\r\n \"contentType\": \"text\",\r\n \"id\": \"https://kv-sdk-test.vault-int.azure-int.net/secrets/SecretBackupRestoreTest/0699d2c2baed44c09f9c8a54f5f1bcad\",\r\n \"attributes\": {\r\n \"enabled\": true,\r\n \"nbf\": 1262332800,\r\n \"exp\": 1893484800,\r\n \"created\": 1491343301,\r\n \"updated\": 1491343301\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "399" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:02:31 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "dd27f126-6a83-4997-9e15-ff9e015054af" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 200 + }, + { + "RequestUri": "//deletedsecrets/SecretBackupRestoreTest?api-version=2016-10-01", + "EncodedRequestUri": "Ly9kZWxldGVkc2VjcmV0cy9TZWNyZXRCYWNrdXBSZXN0b3JlVGVzdD9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "dd89e860-d9da-4255-b94a-a57dfe318a23" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"SecretNotFound\",\r\n \"message\": \"Deleted Secret not found: SecretBackupRestoreTest\"\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "97" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:01:42 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "023f7fd8-23e2-43ad-922f-5cfcd87a5a63" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 404 + }, + { + "RequestUri": "//deletedsecrets/SecretBackupRestoreTest?api-version=2016-10-01", + "EncodedRequestUri": "Ly9kZWxldGVkc2VjcmV0cy9TZWNyZXRCYWNrdXBSZXN0b3JlVGVzdD9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "880d3879-3d80-4e87-b4be-0e5d5a43f62f" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"SecretNotFound\",\r\n \"message\": \"Deleted Secret not found: SecretBackupRestoreTest\"\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "97" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:01:42 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "32d92809-d5d0-4aad-92aa-9d0ee13c805a" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 404 + }, + { + "RequestUri": "//deletedsecrets/SecretBackupRestoreTest?api-version=2016-10-01", + "EncodedRequestUri": "Ly9kZWxldGVkc2VjcmV0cy9TZWNyZXRCYWNrdXBSZXN0b3JlVGVzdD9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "05e04085-6672-4941-8e83-bbb4e8ae9525" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"SecretNotFound\",\r\n \"message\": \"Deleted Secret not found: SecretBackupRestoreTest\"\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "97" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:01:48 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "45e4c065-b926-4fd9-ba44-4c90ea237444" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 404 + }, + { + "RequestUri": "//deletedsecrets/SecretBackupRestoreTest?api-version=2016-10-01", + "EncodedRequestUri": "Ly9kZWxldGVkc2VjcmV0cy9TZWNyZXRCYWNrdXBSZXN0b3JlVGVzdD9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "099706fe-59c0-4dc2-9c99-65ef8d8e779e" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"recoveryId\": \"https://kv-sdk-test.vault-int.azure-int.net/deletedsecrets/SecretBackupRestoreTest\",\r\n \"deletedDate\": 1491343302,\r\n \"scheduledPurgeDate\": 1499119302,\r\n \"contentType\": \"text\",\r\n \"id\": \"https://kv-sdk-test.vault-int.azure-int.net/secrets/SecretBackupRestoreTest/0699d2c2baed44c09f9c8a54f5f1bcad\",\r\n \"attributes\": {\r\n \"enabled\": true,\r\n \"nbf\": 1262332800,\r\n \"exp\": 1893484800,\r\n \"created\": 1491343301,\r\n \"updated\": 1491343301\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "399" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:02:05 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "a58a9577-dfe9-41eb-8c9f-37686fb58b61" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 200 + }, + { + "RequestUri": "//deletedsecrets/SecretBackupRestoreTest?api-version=2016-10-01", + "EncodedRequestUri": "Ly9kZWxldGVkc2VjcmV0cy9TZWNyZXRCYWNrdXBSZXN0b3JlVGVzdD9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "8f9f9733-33b3-474d-9ba8-154aa4a0a9d2" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"SecretNotFound\",\r\n \"message\": \"Deleted Secret not found: SecretBackupRestoreTest\"\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "97" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:02:31 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "8800400a-87c6-4ff7-bed2-65592e91428c" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 404 + }, + { + "RequestUri": "//deletedsecrets/SecretBackupRestoreTest?api-version=2016-10-01", + "EncodedRequestUri": "Ly9kZWxldGVkc2VjcmV0cy9TZWNyZXRCYWNrdXBSZXN0b3JlVGVzdD9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "cc3c5125-ccb0-4047-902e-24a1181e7e34" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"SecretNotFound\",\r\n \"message\": \"Deleted Secret not found: SecretBackupRestoreTest\"\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "97" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:02:32 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "bf6d0982-bd86-4bbf-9e94-3f06293676ec" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 404 + }, + { + "RequestUri": "//deletedsecrets/SecretBackupRestoreTest?api-version=2016-10-01", + "EncodedRequestUri": "Ly9kZWxldGVkc2VjcmV0cy9TZWNyZXRCYWNrdXBSZXN0b3JlVGVzdD9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "4b29d75f-7f34-4729-83b6-3e6ae4f11b4e" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"SecretNotFound\",\r\n \"message\": \"Deleted Secret not found: SecretBackupRestoreTest\"\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "97" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:02:38 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "e0e0656b-a611-4601-9e15-a76f72592d43" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 404 + }, + { + "RequestUri": "//deletedsecrets/SecretBackupRestoreTest?api-version=2016-10-01", + "EncodedRequestUri": "Ly9kZWxldGVkc2VjcmV0cy9TZWNyZXRCYWNrdXBSZXN0b3JlVGVzdD9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "fa27aac4-fa6d-4e58-8cf7-f6fe7a6c3e79" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"recoveryId\": \"https://kv-sdk-test.vault-int.azure-int.net/deletedsecrets/SecretBackupRestoreTest\",\r\n \"deletedDate\": 1491343352,\r\n \"scheduledPurgeDate\": 1499119352,\r\n \"contentType\": \"text\",\r\n \"id\": \"https://kv-sdk-test.vault-int.azure-int.net/secrets/SecretBackupRestoreTest/0699d2c2baed44c09f9c8a54f5f1bcad\",\r\n \"attributes\": {\r\n \"enabled\": true,\r\n \"nbf\": 1262332800,\r\n \"exp\": 1893484800,\r\n \"created\": 1491343301,\r\n \"updated\": 1491343301\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "399" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:02:52 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "982f882c-b078-4dac-89c7-66e97fc0bf76" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 200 + }, + { + "RequestUri": "//deletedsecrets/SecretBackupRestoreTest?api-version=2016-10-01", + "EncodedRequestUri": "Ly9kZWxldGVkc2VjcmV0cy9TZWNyZXRCYWNrdXBSZXN0b3JlVGVzdD9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "b6111deb-a22b-4250-bf6b-f9e417929e9b" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "", + "ResponseHeaders": { + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:02:05 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "d1e30d29-09dd-4f23-bebb-74b14773a5bc" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 204 + }, + { + "RequestUri": "//deletedsecrets/SecretBackupRestoreTest?api-version=2016-10-01", + "EncodedRequestUri": "Ly9kZWxldGVkc2VjcmV0cy9TZWNyZXRCYWNrdXBSZXN0b3JlVGVzdD9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", + "RequestMethod": "DELETE", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "8e7a48d8-468d-4c82-aad5-24f6f1c9c528" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "", + "ResponseHeaders": { + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:02:52 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "9ad71eaa-d368-4d45-91ca-a4ad83eaa0e4" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 204 + }, + { + "RequestUri": "//secrets/restore?api-version=2016-10-01", + "EncodedRequestUri": "Ly9zZWNyZXRzL3Jlc3RvcmU/YXBpLXZlcnNpb249MjAxNi0xMC0wMQ==", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"value\": \"KUF6dXJlS2V5VmF1bHRTZWNyZXRCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUppTlRjMk5ESTVaaTB5TlRZNExUUTFZbVV0WW1aaFlTMHpOMlZrTURkbVl6QmpPREVpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLmtXdFNZT2c2bU1mN1BkaWhPUzE0Rlk4MktNX3doZFdSVHJPUzRqdVItRFlWXzkyZExWeUZMaHViOFlQMDRMMkNVTlUzSXoxaWF6bEpEc0JTZmxRY1FPUjJTSjUyYVE2RmwxYzM5SXNTekRNcmhxZUF5amR6YTZ3OVhYbFkya01scFl2RTMxa20xRVlwbDNCTk9aMmZiR1RfZEl1dDJYMjJ1NC1FZ3N1ZFlVOC1Sa3NRVENnUExQeTE2Wm1udEpUTWRmUDhjMHphUWIzMDFPRHdqMDRFdVBIMy1lS0l0YlNMR3BtRjlsdS1wNmxxcFQ5SjB0eXVYVlV1TnBHNGVKeHEtTWVJcWdHX2x1RGN5ZGFvS01BS2FEQnpCejJGTm9uM2J0R0V2Um5Fbm93VDFXWmVZZ0FxelBIWlNaZ0RuM3BPbmZpVU05QUpDcUJ2ck4zWjNJUnRCdy41RXBMVWFld2xwbS1LczZJejA2UGJ3LlhnS3VJd1pRdXlUdVRkMUZSQno2SVF0a0t0c0ZuellucFNvcGlzdlJCZWtaZkNEN0wtZzVHbzl3N1o0NkRJQkFHMV92bnpRNXo3WGlISEdJSUxuRW9CVEpLR0x6X3p3cVZMM1BFVTZEdEtOeWc5bWtrTHQza01hcHl5OHFMT0oxeXBoS1lQcEZQTnRPSFFoQ0dXSXBldlpuM3ZEeV9PMG5zbkdtaW13ZkhndlRjcUF2UzJVQTA4eXYzdEpSdHdTdVB6QW5MQTVOZzA2clJUeEJySk8tWG4yTzVXaHRYSml5b3o4bExteEpJdjNXZmcxS2pORDhuOVhjSGpUODlFa2VLQWk2aWp1M0p5OWFTclgwWnpubGZ6Z0ZGb3V4WVhGdXZvbGlNZXRuY19jSzJIYzVoekp3ZUprSld1Y3BTaGtTejRsUjFhLTVhRXRfUFVlTXZLMEd3UkxoQ2lZd3dmTDJDZFFJdkx6ZWhXdGV3VjkzTEhRSG1OU1ZEZjVCYkhEREF5MTBiMkhjMTJPY2Q0eEFKWUV2dDA0N1Z2THRHaE42V09CMnZ5VlBCa3RMamdCeG82ZHBlUVhaNEhZZzN0bUE2bDI1RXIzWnY4ZEtFZmNENXB3UWVPOXpzTzZwNXVHZlE0N2ljN2Mtalp3NWZOZlkwQlg1VHlnN01Lc0o3dGFjdkdmc0dDQWppaXdacDFKTGdZU3Y4Y2VDS1d1TUJSWXlOU3JfZ1pnLTJ1WUZUX1BOVEJUdkw2ZUVMalNoR3g3TEdFNWkzVlh2QUtmMHF6UDBjdnRzb01MSjUyU2RBNTFNSEpMOXBwVnFhYkk0WkhxX1RzTTZQMF9XS0lBU3QtdjRsOGdCcFQ4bEVac3NXdXVnRzhYOUt3Z054cF9FNFVtcDNJR1lidVhwaVRkbXdPZ3JqdURmM1RCZWxLOXJZc3VHSnBBOTNUZ0VvTTdwZjljTkRtM20wWFZBZFNPaGZEUk0wMndNSnpHVTMyc1g0TG9iMFh0Tmk3cHJvNnRoTU9RRzdld0diLVZxZXJYaXRnQ1JXT2RZVXA4RWRVcFJmby1OeUE3ZjZ5bl9zOHd3ODI4YkhIeTBzTTJGZWNQaUEtSjBhY2UxbGpCbjV4YlNQSUx0RjhFRDZTLVdOM3FlQXJfUVZidkc1bDNrYW9iRnpCemhOWlhhOWdTWkZZa1RwNExiQ3RwRW5TdVV5dVU4aUVpaU1LS1N3cmZiMFkwbkZTMnpZelRLZzU4c3lvdjdIQVBXT2tXOTNSM1RtUUF0elo2WW1aWW5ZcElKSjA3VTRJZ3hlMXI2dDhFUXNwd2tyV1BKME1IVjJOb3FKX3BPdHZTbkZ2ZHhhTkZEaGtMMlJnZWtZVWhLekgtdFJndGE2eUtkMDB4bTV4d0hwNVBzVnFnamlFTDlDWUtzbzdMcWNSUDBMMS1UdlZRNHVEeDk4S0hkei1nZ2hVRUJCUjdqM2pNeXBSbjVVemNVZWFEZEdPdHFZRjhYLW5yajVxM2FNYUQ3MUs0eWZ3QXNKSVdULVdIcnp1UkRRSFhmczFjOXp6SEM3NGFSREFnX2F5Ny1LTjQzc3VpdS0wb0pnSE40d3Y2ZUR1Wm5xMWNIQU9PdDZJVEMyLWFKdlZEa3o1N09wdG9jY1dDTDBtZTFqdWEtZGV5R0R4S1NaaC03Y0pPTVZ1Y0xQOVptX1NNV1k2aE1qM0lNUEVyN0xlMGZNZXZ1VTk0SG45YXZEdExHdFBHb2pGSzZMM3F0cWVUSnFaMnhwY0p2S1lXVW40MFZJRTY0LTkzQ09VT2VjZW9JeFJadDd2MTRpTE5nNkVSNnpwM2hrMF92dkF3dXQwNG9WNjItR1A2d3J1cHpheGN4SkNGOXhNaGhGU255OVdSVHVua21sdWtUT0FvQjJCMjhfWlhZekVNMzFIWVJWMjl6cGN4TjBxaWROUUpaS2xsOUxNbzQ1U3hLem1PRGNUaHpKM0J6bFhQWHM2QjJNWHhQMWhlQnViSGhnUHRsNDZ5ekdwVHdwVnpPVkQyMXlIM1o4R25ralVEQTdmMUhmVHhWMkFOTW5RWlJHUWZTalZhS2hwOG9IOFZCc0VhcWd6eW5MOTB3X0RHRldIcWs0ZHU2SHNxX0k4Z3VtMl9QbFRyU2VJWlMzNldhMzI0Ulg5cU00ak85RFladGdHSE5DR3k3bGZoY1lCU2wxa2FiY3BlQmFxdFlpYllKNVlJeE0zUFNxcWlOMVdMajJEWEdfT0w3RTVhdFhtNjRIbEVWcTFpUVk4SVpBcmZQeGNQMWRORnJSN0hveFRETlFZVkY5Q3hNR3o4dVg1eHFaSWF5dlZKSEtlYmxCZTI1R0tuQ3lIOGtWT1AybTNfalNFSUxFZ0x1cVVENTBxQURuVzFVZmlaWnpldVN3MXMtNWlCcEI5N3d0NG00dmRyck95YWFqdFU5YkE5UjRJX2ZBeDV6ZmE5T2otanBoVzE0UFhhWXhyc29ldXhWWlR1bFpxZ0tBT0VvVXF2N3BoeXB6MlE0Nm1GWV9MZmxRN2xNa0lkek16OUY5V0lZT25fcEl4NG1YT1R3UmZQRGkyM19yeEhhOFJSY1VxNGxPaUxXdjQyR0Y2X2hlSEdzQ1hfMHpjREZqSGRBYTBodU9JdU1lRFBwNjZmYzBJeHV3T1NXZWtZdS1TYnZoaXFrWjFHVXJoS2JRVmgtLWZwRXhnc2JVd0o0RlY0aWE4NlAya1lFcVJHLWpXUGY1TEtpZ3d4cHRGdGp0S25QQmFWTGQxQU0xejNwN3VSZVZzM2FJOXJrbHRMSXYySlRYMl9aa3ExY0pyMlpkRE5Rc2w5bHBCNzVIcDF5RlFYX3RYd01IWklSVDk2aUNycjFOejBCS2VncEtFQ1VlUUgybHVtQzlEMlAwU3ZnZzZFR29RVGZGWjBYZGRFUDZDb1pyazJHamN1NFpfT3dVc25BLUVvYTZsTW4wa0V2Z0NkbXA2dGJ2dVNVREFid0l0YWNDSUFOejVrWEdnNHJESGtpVDl6WUpJS2t5SzJsUHRhRFQySmltdDdhNklob3Y0MGF3QXpXbDhoODU0a0Jsb2p0ZEFEeWN5amVqb0ZRMjlMYnFaa3lMRG1qRklXdXBIOEl1X3VpQzZDRzVYNjF4LTZoeDVSTEdraldhekkxXzFpS3Q0OC1QQXVwR3I5QktQbkl6R3NjTm9URVg0RllZZElfSlNyTi0zVGpkWHVhUmxrWGVBV25lOXhzUjB2dklYSmMtdHFoM2RCWERWWHlTLXNfaHlZQ3dIYzN3WEMyQkdIU2EtWG42SGVWaG9PcHZUem1zaXd3eG1wN19LZnBlX2g5dWhMb2xlaEN2RGEwMWRuZW5PYUFCdkJoYVZGcGVtXzBfTHI2dzBBb3ZUaHNaQXFjekFUcmJoVmlMTU1vVkJZZy16em1DeFM5U3JrYmtiTURJSHU1T052ZWNTQTFMRkkxN0l2U1FJeDUxNUVmbU5VX2h0SWlQWnNoc3J5M3F4RWdvTUlDSmZVVEV2UU5wcmo0NkdhRlV6cUFXVkNHdGttRWlmMUpDQ0dnbFdGdUZwSTB5Ql9VUGFSa1JlY0hWRXItNGtiVzd1SGRfcTh3ZFFadHJoUExLc19INjhtWUQzdVRCME5tN3dPYXJYeXFSeUYxLWVzQ0wyRF9RbHowZ2FzRVZZcVVyQUx5MnIwS0dwLW9PeDBoUkZGOEdHdzZlT1NwXzVZNGt4ZV9yVEV5am9RcVJHTWxLMUZINUpFcENPTXpOXzM5UVVoc2FscWVIWGl1dW82Y2NkdlVFVHY4ZUVFb0kxRVN4YVpNbzY5d2FxdWw5NEgybFJCemlObl84XzhfbWVoSTdmVk5Zekpxb0JabS1KOWJyYmxzeTZ2bF9BODU1TUdJSXZZeXY1NFVLZjF2YlRWVzZpUEFGc28wLWQ4Y2YwOFdiY1UwbmViS0h2Q2lwN1VENnRxNnJPdnM4cWpjTjZDZDJYa3lwSTZrM0VOTTAwVHlSeE5Hc2VPOHRFNFdRTEZNZTNSNFJzbDB0Z1p5Qmx6SkctdDJtYWZfTEtDTElaVlB6X2lkaXhkejYxZzBaWlFUaDctLXlBa0RrY3BaUkJBZUxVNVl3ZDFaal9HbTVra1luVVgzbG1FQ0t3QlNGa2hEZG5CbDYyeHVfMVg4WHpodmxjVTFRWWdxeWVybi1wWEVtMGdyT3BPNzI1Zm92RTVldWVSMVVvUVhaM0x5aVVXT0xhcjl6VTd3Um1mNUFDcGxINjhfYU96WFlBZ3RFYnRFc0VhejBaQVNJWl9xOTBEOTBJOXRCS1dveTFZTTJ2bzdrMC1Oc0VfS0NWVnpwaUlwTHNVU1FtbEIzc2k4M3IxVTM4QXpRNy03SUdUemlGY0Y1cXFMTjYwR1ZsLXVOazlMOUlmOENGakp5UElvdUd0cEd1X3QxQkdUTmN6NGk4X2kwWVJELURudVpsMlhlQXY5UlFaRVVTcGdxdFN4X056M196MWZCdEc3WXZyclhXNWFZQTVmNDA0ZWF0NEc2anJ1UUNwZmRuSVZDREFmbHE1V1lkRTlDZ3ExTWI5U3NVdU13bVdpWktZX0tCS1g2QU5PU1lseTRSZE5MVzc4MXh5QnJiN2xKTU9vTnJHamhTaVVJUHpxTmNvLVN3cXB2OXNiWi1jSEJNWXJNbF9xaVEtTjNCZDNFZlQwWXdmZzN0Y3dWM2pvd0NXZEVPMEZCaHJldk9VVXd1LXlSdUp0dllpcnMxRlhGUHlYTU9kMDdJZ3dMeFVjLXFEY3I1enNCVzlqWWNVeXFla0gzZGRDZm04VWxyUGNSQTZoZkEtYWowdzBVZjBSMUVqWEJDYzUxZWFZOTVNcHJORmRiTHhVU2k0bk9yWVFnUlQxRncuNVIwTXJSMUZLWGVFRkRWU19jdzNhZw\"\r\n}", + "RequestHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "5641" + ], + "x-ms-client-request-id": [ + "ddcbfe1a-ebcd-425f-be9c-0968df25a6c0" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"Conflict\",\r\n \"message\": \"Conflict while restoring secret https://kv-sdk-test.vault-int.azure-int.net/secrets/SecretBackupRestoreTest/0699d2c2baed44c09f9c8a54f5f1bcad - secret already exists or concurrent access\"\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "227" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:02:05 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "119bd839-51b5-4c36-91aa-fd80d483a062" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 409 + }, + { + "RequestUri": "//secrets/restore?api-version=2016-10-01", + "EncodedRequestUri": "Ly9zZWNyZXRzL3Jlc3RvcmU/YXBpLXZlcnNpb249MjAxNi0xMC0wMQ==", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"value\": \"KUF6dXJlS2V5VmF1bHRTZWNyZXRCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUppTlRjMk5ESTVaaTB5TlRZNExUUTFZbVV0WW1aaFlTMHpOMlZrTURkbVl6QmpPREVpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLmtXdFNZT2c2bU1mN1BkaWhPUzE0Rlk4MktNX3doZFdSVHJPUzRqdVItRFlWXzkyZExWeUZMaHViOFlQMDRMMkNVTlUzSXoxaWF6bEpEc0JTZmxRY1FPUjJTSjUyYVE2RmwxYzM5SXNTekRNcmhxZUF5amR6YTZ3OVhYbFkya01scFl2RTMxa20xRVlwbDNCTk9aMmZiR1RfZEl1dDJYMjJ1NC1FZ3N1ZFlVOC1Sa3NRVENnUExQeTE2Wm1udEpUTWRmUDhjMHphUWIzMDFPRHdqMDRFdVBIMy1lS0l0YlNMR3BtRjlsdS1wNmxxcFQ5SjB0eXVYVlV1TnBHNGVKeHEtTWVJcWdHX2x1RGN5ZGFvS01BS2FEQnpCejJGTm9uM2J0R0V2Um5Fbm93VDFXWmVZZ0FxelBIWlNaZ0RuM3BPbmZpVU05QUpDcUJ2ck4zWjNJUnRCdy41RXBMVWFld2xwbS1LczZJejA2UGJ3LlhnS3VJd1pRdXlUdVRkMUZSQno2SVF0a0t0c0ZuellucFNvcGlzdlJCZWtaZkNEN0wtZzVHbzl3N1o0NkRJQkFHMV92bnpRNXo3WGlISEdJSUxuRW9CVEpLR0x6X3p3cVZMM1BFVTZEdEtOeWc5bWtrTHQza01hcHl5OHFMT0oxeXBoS1lQcEZQTnRPSFFoQ0dXSXBldlpuM3ZEeV9PMG5zbkdtaW13ZkhndlRjcUF2UzJVQTA4eXYzdEpSdHdTdVB6QW5MQTVOZzA2clJUeEJySk8tWG4yTzVXaHRYSml5b3o4bExteEpJdjNXZmcxS2pORDhuOVhjSGpUODlFa2VLQWk2aWp1M0p5OWFTclgwWnpubGZ6Z0ZGb3V4WVhGdXZvbGlNZXRuY19jSzJIYzVoekp3ZUprSld1Y3BTaGtTejRsUjFhLTVhRXRfUFVlTXZLMEd3UkxoQ2lZd3dmTDJDZFFJdkx6ZWhXdGV3VjkzTEhRSG1OU1ZEZjVCYkhEREF5MTBiMkhjMTJPY2Q0eEFKWUV2dDA0N1Z2THRHaE42V09CMnZ5VlBCa3RMamdCeG82ZHBlUVhaNEhZZzN0bUE2bDI1RXIzWnY4ZEtFZmNENXB3UWVPOXpzTzZwNXVHZlE0N2ljN2Mtalp3NWZOZlkwQlg1VHlnN01Lc0o3dGFjdkdmc0dDQWppaXdacDFKTGdZU3Y4Y2VDS1d1TUJSWXlOU3JfZ1pnLTJ1WUZUX1BOVEJUdkw2ZUVMalNoR3g3TEdFNWkzVlh2QUtmMHF6UDBjdnRzb01MSjUyU2RBNTFNSEpMOXBwVnFhYkk0WkhxX1RzTTZQMF9XS0lBU3QtdjRsOGdCcFQ4bEVac3NXdXVnRzhYOUt3Z054cF9FNFVtcDNJR1lidVhwaVRkbXdPZ3JqdURmM1RCZWxLOXJZc3VHSnBBOTNUZ0VvTTdwZjljTkRtM20wWFZBZFNPaGZEUk0wMndNSnpHVTMyc1g0TG9iMFh0Tmk3cHJvNnRoTU9RRzdld0diLVZxZXJYaXRnQ1JXT2RZVXA4RWRVcFJmby1OeUE3ZjZ5bl9zOHd3ODI4YkhIeTBzTTJGZWNQaUEtSjBhY2UxbGpCbjV4YlNQSUx0RjhFRDZTLVdOM3FlQXJfUVZidkc1bDNrYW9iRnpCemhOWlhhOWdTWkZZa1RwNExiQ3RwRW5TdVV5dVU4aUVpaU1LS1N3cmZiMFkwbkZTMnpZelRLZzU4c3lvdjdIQVBXT2tXOTNSM1RtUUF0elo2WW1aWW5ZcElKSjA3VTRJZ3hlMXI2dDhFUXNwd2tyV1BKME1IVjJOb3FKX3BPdHZTbkZ2ZHhhTkZEaGtMMlJnZWtZVWhLekgtdFJndGE2eUtkMDB4bTV4d0hwNVBzVnFnamlFTDlDWUtzbzdMcWNSUDBMMS1UdlZRNHVEeDk4S0hkei1nZ2hVRUJCUjdqM2pNeXBSbjVVemNVZWFEZEdPdHFZRjhYLW5yajVxM2FNYUQ3MUs0eWZ3QXNKSVdULVdIcnp1UkRRSFhmczFjOXp6SEM3NGFSREFnX2F5Ny1LTjQzc3VpdS0wb0pnSE40d3Y2ZUR1Wm5xMWNIQU9PdDZJVEMyLWFKdlZEa3o1N09wdG9jY1dDTDBtZTFqdWEtZGV5R0R4S1NaaC03Y0pPTVZ1Y0xQOVptX1NNV1k2aE1qM0lNUEVyN0xlMGZNZXZ1VTk0SG45YXZEdExHdFBHb2pGSzZMM3F0cWVUSnFaMnhwY0p2S1lXVW40MFZJRTY0LTkzQ09VT2VjZW9JeFJadDd2MTRpTE5nNkVSNnpwM2hrMF92dkF3dXQwNG9WNjItR1A2d3J1cHpheGN4SkNGOXhNaGhGU255OVdSVHVua21sdWtUT0FvQjJCMjhfWlhZekVNMzFIWVJWMjl6cGN4TjBxaWROUUpaS2xsOUxNbzQ1U3hLem1PRGNUaHpKM0J6bFhQWHM2QjJNWHhQMWhlQnViSGhnUHRsNDZ5ekdwVHdwVnpPVkQyMXlIM1o4R25ralVEQTdmMUhmVHhWMkFOTW5RWlJHUWZTalZhS2hwOG9IOFZCc0VhcWd6eW5MOTB3X0RHRldIcWs0ZHU2SHNxX0k4Z3VtMl9QbFRyU2VJWlMzNldhMzI0Ulg5cU00ak85RFladGdHSE5DR3k3bGZoY1lCU2wxa2FiY3BlQmFxdFlpYllKNVlJeE0zUFNxcWlOMVdMajJEWEdfT0w3RTVhdFhtNjRIbEVWcTFpUVk4SVpBcmZQeGNQMWRORnJSN0hveFRETlFZVkY5Q3hNR3o4dVg1eHFaSWF5dlZKSEtlYmxCZTI1R0tuQ3lIOGtWT1AybTNfalNFSUxFZ0x1cVVENTBxQURuVzFVZmlaWnpldVN3MXMtNWlCcEI5N3d0NG00dmRyck95YWFqdFU5YkE5UjRJX2ZBeDV6ZmE5T2otanBoVzE0UFhhWXhyc29ldXhWWlR1bFpxZ0tBT0VvVXF2N3BoeXB6MlE0Nm1GWV9MZmxRN2xNa0lkek16OUY5V0lZT25fcEl4NG1YT1R3UmZQRGkyM19yeEhhOFJSY1VxNGxPaUxXdjQyR0Y2X2hlSEdzQ1hfMHpjREZqSGRBYTBodU9JdU1lRFBwNjZmYzBJeHV3T1NXZWtZdS1TYnZoaXFrWjFHVXJoS2JRVmgtLWZwRXhnc2JVd0o0RlY0aWE4NlAya1lFcVJHLWpXUGY1TEtpZ3d4cHRGdGp0S25QQmFWTGQxQU0xejNwN3VSZVZzM2FJOXJrbHRMSXYySlRYMl9aa3ExY0pyMlpkRE5Rc2w5bHBCNzVIcDF5RlFYX3RYd01IWklSVDk2aUNycjFOejBCS2VncEtFQ1VlUUgybHVtQzlEMlAwU3ZnZzZFR29RVGZGWjBYZGRFUDZDb1pyazJHamN1NFpfT3dVc25BLUVvYTZsTW4wa0V2Z0NkbXA2dGJ2dVNVREFid0l0YWNDSUFOejVrWEdnNHJESGtpVDl6WUpJS2t5SzJsUHRhRFQySmltdDdhNklob3Y0MGF3QXpXbDhoODU0a0Jsb2p0ZEFEeWN5amVqb0ZRMjlMYnFaa3lMRG1qRklXdXBIOEl1X3VpQzZDRzVYNjF4LTZoeDVSTEdraldhekkxXzFpS3Q0OC1QQXVwR3I5QktQbkl6R3NjTm9URVg0RllZZElfSlNyTi0zVGpkWHVhUmxrWGVBV25lOXhzUjB2dklYSmMtdHFoM2RCWERWWHlTLXNfaHlZQ3dIYzN3WEMyQkdIU2EtWG42SGVWaG9PcHZUem1zaXd3eG1wN19LZnBlX2g5dWhMb2xlaEN2RGEwMWRuZW5PYUFCdkJoYVZGcGVtXzBfTHI2dzBBb3ZUaHNaQXFjekFUcmJoVmlMTU1vVkJZZy16em1DeFM5U3JrYmtiTURJSHU1T052ZWNTQTFMRkkxN0l2U1FJeDUxNUVmbU5VX2h0SWlQWnNoc3J5M3F4RWdvTUlDSmZVVEV2UU5wcmo0NkdhRlV6cUFXVkNHdGttRWlmMUpDQ0dnbFdGdUZwSTB5Ql9VUGFSa1JlY0hWRXItNGtiVzd1SGRfcTh3ZFFadHJoUExLc19INjhtWUQzdVRCME5tN3dPYXJYeXFSeUYxLWVzQ0wyRF9RbHowZ2FzRVZZcVVyQUx5MnIwS0dwLW9PeDBoUkZGOEdHdzZlT1NwXzVZNGt4ZV9yVEV5am9RcVJHTWxLMUZINUpFcENPTXpOXzM5UVVoc2FscWVIWGl1dW82Y2NkdlVFVHY4ZUVFb0kxRVN4YVpNbzY5d2FxdWw5NEgybFJCemlObl84XzhfbWVoSTdmVk5Zekpxb0JabS1KOWJyYmxzeTZ2bF9BODU1TUdJSXZZeXY1NFVLZjF2YlRWVzZpUEFGc28wLWQ4Y2YwOFdiY1UwbmViS0h2Q2lwN1VENnRxNnJPdnM4cWpjTjZDZDJYa3lwSTZrM0VOTTAwVHlSeE5Hc2VPOHRFNFdRTEZNZTNSNFJzbDB0Z1p5Qmx6SkctdDJtYWZfTEtDTElaVlB6X2lkaXhkejYxZzBaWlFUaDctLXlBa0RrY3BaUkJBZUxVNVl3ZDFaal9HbTVra1luVVgzbG1FQ0t3QlNGa2hEZG5CbDYyeHVfMVg4WHpodmxjVTFRWWdxeWVybi1wWEVtMGdyT3BPNzI1Zm92RTVldWVSMVVvUVhaM0x5aVVXT0xhcjl6VTd3Um1mNUFDcGxINjhfYU96WFlBZ3RFYnRFc0VhejBaQVNJWl9xOTBEOTBJOXRCS1dveTFZTTJ2bzdrMC1Oc0VfS0NWVnpwaUlwTHNVU1FtbEIzc2k4M3IxVTM4QXpRNy03SUdUemlGY0Y1cXFMTjYwR1ZsLXVOazlMOUlmOENGakp5UElvdUd0cEd1X3QxQkdUTmN6NGk4X2kwWVJELURudVpsMlhlQXY5UlFaRVVTcGdxdFN4X056M196MWZCdEc3WXZyclhXNWFZQTVmNDA0ZWF0NEc2anJ1UUNwZmRuSVZDREFmbHE1V1lkRTlDZ3ExTWI5U3NVdU13bVdpWktZX0tCS1g2QU5PU1lseTRSZE5MVzc4MXh5QnJiN2xKTU9vTnJHamhTaVVJUHpxTmNvLVN3cXB2OXNiWi1jSEJNWXJNbF9xaVEtTjNCZDNFZlQwWXdmZzN0Y3dWM2pvd0NXZEVPMEZCaHJldk9VVXd1LXlSdUp0dllpcnMxRlhGUHlYTU9kMDdJZ3dMeFVjLXFEY3I1enNCVzlqWWNVeXFla0gzZGRDZm04VWxyUGNSQTZoZkEtYWowdzBVZjBSMUVqWEJDYzUxZWFZOTVNcHJORmRiTHhVU2k0bk9yWVFnUlQxRncuNVIwTXJSMUZLWGVFRkRWU19jdzNhZw\"\r\n}", + "RequestHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "5641" + ], + "x-ms-client-request-id": [ + "770dc53b-248f-4ba7-9e31-ddd1a0496092" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"Conflict\",\r\n \"message\": \"Conflict while restoring secret https://kv-sdk-test.vault-int.azure-int.net/secrets/SecretBackupRestoreTest/0699d2c2baed44c09f9c8a54f5f1bcad - secret already exists or concurrent access\"\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "227" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:02:06 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "7e1b53dd-53df-4820-a035-3c33e84ff39e" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 409 + }, + { + "RequestUri": "//secrets/restore?api-version=2016-10-01", + "EncodedRequestUri": "Ly9zZWNyZXRzL3Jlc3RvcmU/YXBpLXZlcnNpb249MjAxNi0xMC0wMQ==", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"value\": \"KUF6dXJlS2V5VmF1bHRTZWNyZXRCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUppTlRjMk5ESTVaaTB5TlRZNExUUTFZbVV0WW1aaFlTMHpOMlZrTURkbVl6QmpPREVpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLmtXdFNZT2c2bU1mN1BkaWhPUzE0Rlk4MktNX3doZFdSVHJPUzRqdVItRFlWXzkyZExWeUZMaHViOFlQMDRMMkNVTlUzSXoxaWF6bEpEc0JTZmxRY1FPUjJTSjUyYVE2RmwxYzM5SXNTekRNcmhxZUF5amR6YTZ3OVhYbFkya01scFl2RTMxa20xRVlwbDNCTk9aMmZiR1RfZEl1dDJYMjJ1NC1FZ3N1ZFlVOC1Sa3NRVENnUExQeTE2Wm1udEpUTWRmUDhjMHphUWIzMDFPRHdqMDRFdVBIMy1lS0l0YlNMR3BtRjlsdS1wNmxxcFQ5SjB0eXVYVlV1TnBHNGVKeHEtTWVJcWdHX2x1RGN5ZGFvS01BS2FEQnpCejJGTm9uM2J0R0V2Um5Fbm93VDFXWmVZZ0FxelBIWlNaZ0RuM3BPbmZpVU05QUpDcUJ2ck4zWjNJUnRCdy41RXBMVWFld2xwbS1LczZJejA2UGJ3LlhnS3VJd1pRdXlUdVRkMUZSQno2SVF0a0t0c0ZuellucFNvcGlzdlJCZWtaZkNEN0wtZzVHbzl3N1o0NkRJQkFHMV92bnpRNXo3WGlISEdJSUxuRW9CVEpLR0x6X3p3cVZMM1BFVTZEdEtOeWc5bWtrTHQza01hcHl5OHFMT0oxeXBoS1lQcEZQTnRPSFFoQ0dXSXBldlpuM3ZEeV9PMG5zbkdtaW13ZkhndlRjcUF2UzJVQTA4eXYzdEpSdHdTdVB6QW5MQTVOZzA2clJUeEJySk8tWG4yTzVXaHRYSml5b3o4bExteEpJdjNXZmcxS2pORDhuOVhjSGpUODlFa2VLQWk2aWp1M0p5OWFTclgwWnpubGZ6Z0ZGb3V4WVhGdXZvbGlNZXRuY19jSzJIYzVoekp3ZUprSld1Y3BTaGtTejRsUjFhLTVhRXRfUFVlTXZLMEd3UkxoQ2lZd3dmTDJDZFFJdkx6ZWhXdGV3VjkzTEhRSG1OU1ZEZjVCYkhEREF5MTBiMkhjMTJPY2Q0eEFKWUV2dDA0N1Z2THRHaE42V09CMnZ5VlBCa3RMamdCeG82ZHBlUVhaNEhZZzN0bUE2bDI1RXIzWnY4ZEtFZmNENXB3UWVPOXpzTzZwNXVHZlE0N2ljN2Mtalp3NWZOZlkwQlg1VHlnN01Lc0o3dGFjdkdmc0dDQWppaXdacDFKTGdZU3Y4Y2VDS1d1TUJSWXlOU3JfZ1pnLTJ1WUZUX1BOVEJUdkw2ZUVMalNoR3g3TEdFNWkzVlh2QUtmMHF6UDBjdnRzb01MSjUyU2RBNTFNSEpMOXBwVnFhYkk0WkhxX1RzTTZQMF9XS0lBU3QtdjRsOGdCcFQ4bEVac3NXdXVnRzhYOUt3Z054cF9FNFVtcDNJR1lidVhwaVRkbXdPZ3JqdURmM1RCZWxLOXJZc3VHSnBBOTNUZ0VvTTdwZjljTkRtM20wWFZBZFNPaGZEUk0wMndNSnpHVTMyc1g0TG9iMFh0Tmk3cHJvNnRoTU9RRzdld0diLVZxZXJYaXRnQ1JXT2RZVXA4RWRVcFJmby1OeUE3ZjZ5bl9zOHd3ODI4YkhIeTBzTTJGZWNQaUEtSjBhY2UxbGpCbjV4YlNQSUx0RjhFRDZTLVdOM3FlQXJfUVZidkc1bDNrYW9iRnpCemhOWlhhOWdTWkZZa1RwNExiQ3RwRW5TdVV5dVU4aUVpaU1LS1N3cmZiMFkwbkZTMnpZelRLZzU4c3lvdjdIQVBXT2tXOTNSM1RtUUF0elo2WW1aWW5ZcElKSjA3VTRJZ3hlMXI2dDhFUXNwd2tyV1BKME1IVjJOb3FKX3BPdHZTbkZ2ZHhhTkZEaGtMMlJnZWtZVWhLekgtdFJndGE2eUtkMDB4bTV4d0hwNVBzVnFnamlFTDlDWUtzbzdMcWNSUDBMMS1UdlZRNHVEeDk4S0hkei1nZ2hVRUJCUjdqM2pNeXBSbjVVemNVZWFEZEdPdHFZRjhYLW5yajVxM2FNYUQ3MUs0eWZ3QXNKSVdULVdIcnp1UkRRSFhmczFjOXp6SEM3NGFSREFnX2F5Ny1LTjQzc3VpdS0wb0pnSE40d3Y2ZUR1Wm5xMWNIQU9PdDZJVEMyLWFKdlZEa3o1N09wdG9jY1dDTDBtZTFqdWEtZGV5R0R4S1NaaC03Y0pPTVZ1Y0xQOVptX1NNV1k2aE1qM0lNUEVyN0xlMGZNZXZ1VTk0SG45YXZEdExHdFBHb2pGSzZMM3F0cWVUSnFaMnhwY0p2S1lXVW40MFZJRTY0LTkzQ09VT2VjZW9JeFJadDd2MTRpTE5nNkVSNnpwM2hrMF92dkF3dXQwNG9WNjItR1A2d3J1cHpheGN4SkNGOXhNaGhGU255OVdSVHVua21sdWtUT0FvQjJCMjhfWlhZekVNMzFIWVJWMjl6cGN4TjBxaWROUUpaS2xsOUxNbzQ1U3hLem1PRGNUaHpKM0J6bFhQWHM2QjJNWHhQMWhlQnViSGhnUHRsNDZ5ekdwVHdwVnpPVkQyMXlIM1o4R25ralVEQTdmMUhmVHhWMkFOTW5RWlJHUWZTalZhS2hwOG9IOFZCc0VhcWd6eW5MOTB3X0RHRldIcWs0ZHU2SHNxX0k4Z3VtMl9QbFRyU2VJWlMzNldhMzI0Ulg5cU00ak85RFladGdHSE5DR3k3bGZoY1lCU2wxa2FiY3BlQmFxdFlpYllKNVlJeE0zUFNxcWlOMVdMajJEWEdfT0w3RTVhdFhtNjRIbEVWcTFpUVk4SVpBcmZQeGNQMWRORnJSN0hveFRETlFZVkY5Q3hNR3o4dVg1eHFaSWF5dlZKSEtlYmxCZTI1R0tuQ3lIOGtWT1AybTNfalNFSUxFZ0x1cVVENTBxQURuVzFVZmlaWnpldVN3MXMtNWlCcEI5N3d0NG00dmRyck95YWFqdFU5YkE5UjRJX2ZBeDV6ZmE5T2otanBoVzE0UFhhWXhyc29ldXhWWlR1bFpxZ0tBT0VvVXF2N3BoeXB6MlE0Nm1GWV9MZmxRN2xNa0lkek16OUY5V0lZT25fcEl4NG1YT1R3UmZQRGkyM19yeEhhOFJSY1VxNGxPaUxXdjQyR0Y2X2hlSEdzQ1hfMHpjREZqSGRBYTBodU9JdU1lRFBwNjZmYzBJeHV3T1NXZWtZdS1TYnZoaXFrWjFHVXJoS2JRVmgtLWZwRXhnc2JVd0o0RlY0aWE4NlAya1lFcVJHLWpXUGY1TEtpZ3d4cHRGdGp0S25QQmFWTGQxQU0xejNwN3VSZVZzM2FJOXJrbHRMSXYySlRYMl9aa3ExY0pyMlpkRE5Rc2w5bHBCNzVIcDF5RlFYX3RYd01IWklSVDk2aUNycjFOejBCS2VncEtFQ1VlUUgybHVtQzlEMlAwU3ZnZzZFR29RVGZGWjBYZGRFUDZDb1pyazJHamN1NFpfT3dVc25BLUVvYTZsTW4wa0V2Z0NkbXA2dGJ2dVNVREFid0l0YWNDSUFOejVrWEdnNHJESGtpVDl6WUpJS2t5SzJsUHRhRFQySmltdDdhNklob3Y0MGF3QXpXbDhoODU0a0Jsb2p0ZEFEeWN5amVqb0ZRMjlMYnFaa3lMRG1qRklXdXBIOEl1X3VpQzZDRzVYNjF4LTZoeDVSTEdraldhekkxXzFpS3Q0OC1QQXVwR3I5QktQbkl6R3NjTm9URVg0RllZZElfSlNyTi0zVGpkWHVhUmxrWGVBV25lOXhzUjB2dklYSmMtdHFoM2RCWERWWHlTLXNfaHlZQ3dIYzN3WEMyQkdIU2EtWG42SGVWaG9PcHZUem1zaXd3eG1wN19LZnBlX2g5dWhMb2xlaEN2RGEwMWRuZW5PYUFCdkJoYVZGcGVtXzBfTHI2dzBBb3ZUaHNaQXFjekFUcmJoVmlMTU1vVkJZZy16em1DeFM5U3JrYmtiTURJSHU1T052ZWNTQTFMRkkxN0l2U1FJeDUxNUVmbU5VX2h0SWlQWnNoc3J5M3F4RWdvTUlDSmZVVEV2UU5wcmo0NkdhRlV6cUFXVkNHdGttRWlmMUpDQ0dnbFdGdUZwSTB5Ql9VUGFSa1JlY0hWRXItNGtiVzd1SGRfcTh3ZFFadHJoUExLc19INjhtWUQzdVRCME5tN3dPYXJYeXFSeUYxLWVzQ0wyRF9RbHowZ2FzRVZZcVVyQUx5MnIwS0dwLW9PeDBoUkZGOEdHdzZlT1NwXzVZNGt4ZV9yVEV5am9RcVJHTWxLMUZINUpFcENPTXpOXzM5UVVoc2FscWVIWGl1dW82Y2NkdlVFVHY4ZUVFb0kxRVN4YVpNbzY5d2FxdWw5NEgybFJCemlObl84XzhfbWVoSTdmVk5Zekpxb0JabS1KOWJyYmxzeTZ2bF9BODU1TUdJSXZZeXY1NFVLZjF2YlRWVzZpUEFGc28wLWQ4Y2YwOFdiY1UwbmViS0h2Q2lwN1VENnRxNnJPdnM4cWpjTjZDZDJYa3lwSTZrM0VOTTAwVHlSeE5Hc2VPOHRFNFdRTEZNZTNSNFJzbDB0Z1p5Qmx6SkctdDJtYWZfTEtDTElaVlB6X2lkaXhkejYxZzBaWlFUaDctLXlBa0RrY3BaUkJBZUxVNVl3ZDFaal9HbTVra1luVVgzbG1FQ0t3QlNGa2hEZG5CbDYyeHVfMVg4WHpodmxjVTFRWWdxeWVybi1wWEVtMGdyT3BPNzI1Zm92RTVldWVSMVVvUVhaM0x5aVVXT0xhcjl6VTd3Um1mNUFDcGxINjhfYU96WFlBZ3RFYnRFc0VhejBaQVNJWl9xOTBEOTBJOXRCS1dveTFZTTJ2bzdrMC1Oc0VfS0NWVnpwaUlwTHNVU1FtbEIzc2k4M3IxVTM4QXpRNy03SUdUemlGY0Y1cXFMTjYwR1ZsLXVOazlMOUlmOENGakp5UElvdUd0cEd1X3QxQkdUTmN6NGk4X2kwWVJELURudVpsMlhlQXY5UlFaRVVTcGdxdFN4X056M196MWZCdEc3WXZyclhXNWFZQTVmNDA0ZWF0NEc2anJ1UUNwZmRuSVZDREFmbHE1V1lkRTlDZ3ExTWI5U3NVdU13bVdpWktZX0tCS1g2QU5PU1lseTRSZE5MVzc4MXh5QnJiN2xKTU9vTnJHamhTaVVJUHpxTmNvLVN3cXB2OXNiWi1jSEJNWXJNbF9xaVEtTjNCZDNFZlQwWXdmZzN0Y3dWM2pvd0NXZEVPMEZCaHJldk9VVXd1LXlSdUp0dllpcnMxRlhGUHlYTU9kMDdJZ3dMeFVjLXFEY3I1enNCVzlqWWNVeXFla0gzZGRDZm04VWxyUGNSQTZoZkEtYWowdzBVZjBSMUVqWEJDYzUxZWFZOTVNcHJORmRiTHhVU2k0bk9yWVFnUlQxRncuNVIwTXJSMUZLWGVFRkRWU19jdzNhZw\"\r\n}", + "RequestHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "5641" + ], + "x-ms-client-request-id": [ + "932891ed-7291-4a6a-972e-13d168828cf2" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"error\": {\r\n \"code\": \"Conflict\",\r\n \"message\": \"Conflict while restoring secret https://kv-sdk-test.vault-int.azure-int.net/secrets/SecretBackupRestoreTest/0699d2c2baed44c09f9c8a54f5f1bcad - secret already exists or concurrent access\"\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "227" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:02:11 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "88aaa59b-f85a-424f-8d38-1372dfd533f7" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 409 + }, + { + "RequestUri": "//secrets/restore?api-version=2016-10-01", + "EncodedRequestUri": "Ly9zZWNyZXRzL3Jlc3RvcmU/YXBpLXZlcnNpb249MjAxNi0xMC0wMQ==", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"value\": \"KUF6dXJlS2V5VmF1bHRTZWNyZXRCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUppTlRjMk5ESTVaaTB5TlRZNExUUTFZbVV0WW1aaFlTMHpOMlZrTURkbVl6QmpPREVpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLmtXdFNZT2c2bU1mN1BkaWhPUzE0Rlk4MktNX3doZFdSVHJPUzRqdVItRFlWXzkyZExWeUZMaHViOFlQMDRMMkNVTlUzSXoxaWF6bEpEc0JTZmxRY1FPUjJTSjUyYVE2RmwxYzM5SXNTekRNcmhxZUF5amR6YTZ3OVhYbFkya01scFl2RTMxa20xRVlwbDNCTk9aMmZiR1RfZEl1dDJYMjJ1NC1FZ3N1ZFlVOC1Sa3NRVENnUExQeTE2Wm1udEpUTWRmUDhjMHphUWIzMDFPRHdqMDRFdVBIMy1lS0l0YlNMR3BtRjlsdS1wNmxxcFQ5SjB0eXVYVlV1TnBHNGVKeHEtTWVJcWdHX2x1RGN5ZGFvS01BS2FEQnpCejJGTm9uM2J0R0V2Um5Fbm93VDFXWmVZZ0FxelBIWlNaZ0RuM3BPbmZpVU05QUpDcUJ2ck4zWjNJUnRCdy41RXBMVWFld2xwbS1LczZJejA2UGJ3LlhnS3VJd1pRdXlUdVRkMUZSQno2SVF0a0t0c0ZuellucFNvcGlzdlJCZWtaZkNEN0wtZzVHbzl3N1o0NkRJQkFHMV92bnpRNXo3WGlISEdJSUxuRW9CVEpLR0x6X3p3cVZMM1BFVTZEdEtOeWc5bWtrTHQza01hcHl5OHFMT0oxeXBoS1lQcEZQTnRPSFFoQ0dXSXBldlpuM3ZEeV9PMG5zbkdtaW13ZkhndlRjcUF2UzJVQTA4eXYzdEpSdHdTdVB6QW5MQTVOZzA2clJUeEJySk8tWG4yTzVXaHRYSml5b3o4bExteEpJdjNXZmcxS2pORDhuOVhjSGpUODlFa2VLQWk2aWp1M0p5OWFTclgwWnpubGZ6Z0ZGb3V4WVhGdXZvbGlNZXRuY19jSzJIYzVoekp3ZUprSld1Y3BTaGtTejRsUjFhLTVhRXRfUFVlTXZLMEd3UkxoQ2lZd3dmTDJDZFFJdkx6ZWhXdGV3VjkzTEhRSG1OU1ZEZjVCYkhEREF5MTBiMkhjMTJPY2Q0eEFKWUV2dDA0N1Z2THRHaE42V09CMnZ5VlBCa3RMamdCeG82ZHBlUVhaNEhZZzN0bUE2bDI1RXIzWnY4ZEtFZmNENXB3UWVPOXpzTzZwNXVHZlE0N2ljN2Mtalp3NWZOZlkwQlg1VHlnN01Lc0o3dGFjdkdmc0dDQWppaXdacDFKTGdZU3Y4Y2VDS1d1TUJSWXlOU3JfZ1pnLTJ1WUZUX1BOVEJUdkw2ZUVMalNoR3g3TEdFNWkzVlh2QUtmMHF6UDBjdnRzb01MSjUyU2RBNTFNSEpMOXBwVnFhYkk0WkhxX1RzTTZQMF9XS0lBU3QtdjRsOGdCcFQ4bEVac3NXdXVnRzhYOUt3Z054cF9FNFVtcDNJR1lidVhwaVRkbXdPZ3JqdURmM1RCZWxLOXJZc3VHSnBBOTNUZ0VvTTdwZjljTkRtM20wWFZBZFNPaGZEUk0wMndNSnpHVTMyc1g0TG9iMFh0Tmk3cHJvNnRoTU9RRzdld0diLVZxZXJYaXRnQ1JXT2RZVXA4RWRVcFJmby1OeUE3ZjZ5bl9zOHd3ODI4YkhIeTBzTTJGZWNQaUEtSjBhY2UxbGpCbjV4YlNQSUx0RjhFRDZTLVdOM3FlQXJfUVZidkc1bDNrYW9iRnpCemhOWlhhOWdTWkZZa1RwNExiQ3RwRW5TdVV5dVU4aUVpaU1LS1N3cmZiMFkwbkZTMnpZelRLZzU4c3lvdjdIQVBXT2tXOTNSM1RtUUF0elo2WW1aWW5ZcElKSjA3VTRJZ3hlMXI2dDhFUXNwd2tyV1BKME1IVjJOb3FKX3BPdHZTbkZ2ZHhhTkZEaGtMMlJnZWtZVWhLekgtdFJndGE2eUtkMDB4bTV4d0hwNVBzVnFnamlFTDlDWUtzbzdMcWNSUDBMMS1UdlZRNHVEeDk4S0hkei1nZ2hVRUJCUjdqM2pNeXBSbjVVemNVZWFEZEdPdHFZRjhYLW5yajVxM2FNYUQ3MUs0eWZ3QXNKSVdULVdIcnp1UkRRSFhmczFjOXp6SEM3NGFSREFnX2F5Ny1LTjQzc3VpdS0wb0pnSE40d3Y2ZUR1Wm5xMWNIQU9PdDZJVEMyLWFKdlZEa3o1N09wdG9jY1dDTDBtZTFqdWEtZGV5R0R4S1NaaC03Y0pPTVZ1Y0xQOVptX1NNV1k2aE1qM0lNUEVyN0xlMGZNZXZ1VTk0SG45YXZEdExHdFBHb2pGSzZMM3F0cWVUSnFaMnhwY0p2S1lXVW40MFZJRTY0LTkzQ09VT2VjZW9JeFJadDd2MTRpTE5nNkVSNnpwM2hrMF92dkF3dXQwNG9WNjItR1A2d3J1cHpheGN4SkNGOXhNaGhGU255OVdSVHVua21sdWtUT0FvQjJCMjhfWlhZekVNMzFIWVJWMjl6cGN4TjBxaWROUUpaS2xsOUxNbzQ1U3hLem1PRGNUaHpKM0J6bFhQWHM2QjJNWHhQMWhlQnViSGhnUHRsNDZ5ekdwVHdwVnpPVkQyMXlIM1o4R25ralVEQTdmMUhmVHhWMkFOTW5RWlJHUWZTalZhS2hwOG9IOFZCc0VhcWd6eW5MOTB3X0RHRldIcWs0ZHU2SHNxX0k4Z3VtMl9QbFRyU2VJWlMzNldhMzI0Ulg5cU00ak85RFladGdHSE5DR3k3bGZoY1lCU2wxa2FiY3BlQmFxdFlpYllKNVlJeE0zUFNxcWlOMVdMajJEWEdfT0w3RTVhdFhtNjRIbEVWcTFpUVk4SVpBcmZQeGNQMWRORnJSN0hveFRETlFZVkY5Q3hNR3o4dVg1eHFaSWF5dlZKSEtlYmxCZTI1R0tuQ3lIOGtWT1AybTNfalNFSUxFZ0x1cVVENTBxQURuVzFVZmlaWnpldVN3MXMtNWlCcEI5N3d0NG00dmRyck95YWFqdFU5YkE5UjRJX2ZBeDV6ZmE5T2otanBoVzE0UFhhWXhyc29ldXhWWlR1bFpxZ0tBT0VvVXF2N3BoeXB6MlE0Nm1GWV9MZmxRN2xNa0lkek16OUY5V0lZT25fcEl4NG1YT1R3UmZQRGkyM19yeEhhOFJSY1VxNGxPaUxXdjQyR0Y2X2hlSEdzQ1hfMHpjREZqSGRBYTBodU9JdU1lRFBwNjZmYzBJeHV3T1NXZWtZdS1TYnZoaXFrWjFHVXJoS2JRVmgtLWZwRXhnc2JVd0o0RlY0aWE4NlAya1lFcVJHLWpXUGY1TEtpZ3d4cHRGdGp0S25QQmFWTGQxQU0xejNwN3VSZVZzM2FJOXJrbHRMSXYySlRYMl9aa3ExY0pyMlpkRE5Rc2w5bHBCNzVIcDF5RlFYX3RYd01IWklSVDk2aUNycjFOejBCS2VncEtFQ1VlUUgybHVtQzlEMlAwU3ZnZzZFR29RVGZGWjBYZGRFUDZDb1pyazJHamN1NFpfT3dVc25BLUVvYTZsTW4wa0V2Z0NkbXA2dGJ2dVNVREFid0l0YWNDSUFOejVrWEdnNHJESGtpVDl6WUpJS2t5SzJsUHRhRFQySmltdDdhNklob3Y0MGF3QXpXbDhoODU0a0Jsb2p0ZEFEeWN5amVqb0ZRMjlMYnFaa3lMRG1qRklXdXBIOEl1X3VpQzZDRzVYNjF4LTZoeDVSTEdraldhekkxXzFpS3Q0OC1QQXVwR3I5QktQbkl6R3NjTm9URVg0RllZZElfSlNyTi0zVGpkWHVhUmxrWGVBV25lOXhzUjB2dklYSmMtdHFoM2RCWERWWHlTLXNfaHlZQ3dIYzN3WEMyQkdIU2EtWG42SGVWaG9PcHZUem1zaXd3eG1wN19LZnBlX2g5dWhMb2xlaEN2RGEwMWRuZW5PYUFCdkJoYVZGcGVtXzBfTHI2dzBBb3ZUaHNaQXFjekFUcmJoVmlMTU1vVkJZZy16em1DeFM5U3JrYmtiTURJSHU1T052ZWNTQTFMRkkxN0l2U1FJeDUxNUVmbU5VX2h0SWlQWnNoc3J5M3F4RWdvTUlDSmZVVEV2UU5wcmo0NkdhRlV6cUFXVkNHdGttRWlmMUpDQ0dnbFdGdUZwSTB5Ql9VUGFSa1JlY0hWRXItNGtiVzd1SGRfcTh3ZFFadHJoUExLc19INjhtWUQzdVRCME5tN3dPYXJYeXFSeUYxLWVzQ0wyRF9RbHowZ2FzRVZZcVVyQUx5MnIwS0dwLW9PeDBoUkZGOEdHdzZlT1NwXzVZNGt4ZV9yVEV5am9RcVJHTWxLMUZINUpFcENPTXpOXzM5UVVoc2FscWVIWGl1dW82Y2NkdlVFVHY4ZUVFb0kxRVN4YVpNbzY5d2FxdWw5NEgybFJCemlObl84XzhfbWVoSTdmVk5Zekpxb0JabS1KOWJyYmxzeTZ2bF9BODU1TUdJSXZZeXY1NFVLZjF2YlRWVzZpUEFGc28wLWQ4Y2YwOFdiY1UwbmViS0h2Q2lwN1VENnRxNnJPdnM4cWpjTjZDZDJYa3lwSTZrM0VOTTAwVHlSeE5Hc2VPOHRFNFdRTEZNZTNSNFJzbDB0Z1p5Qmx6SkctdDJtYWZfTEtDTElaVlB6X2lkaXhkejYxZzBaWlFUaDctLXlBa0RrY3BaUkJBZUxVNVl3ZDFaal9HbTVra1luVVgzbG1FQ0t3QlNGa2hEZG5CbDYyeHVfMVg4WHpodmxjVTFRWWdxeWVybi1wWEVtMGdyT3BPNzI1Zm92RTVldWVSMVVvUVhaM0x5aVVXT0xhcjl6VTd3Um1mNUFDcGxINjhfYU96WFlBZ3RFYnRFc0VhejBaQVNJWl9xOTBEOTBJOXRCS1dveTFZTTJ2bzdrMC1Oc0VfS0NWVnpwaUlwTHNVU1FtbEIzc2k4M3IxVTM4QXpRNy03SUdUemlGY0Y1cXFMTjYwR1ZsLXVOazlMOUlmOENGakp5UElvdUd0cEd1X3QxQkdUTmN6NGk4X2kwWVJELURudVpsMlhlQXY5UlFaRVVTcGdxdFN4X056M196MWZCdEc3WXZyclhXNWFZQTVmNDA0ZWF0NEc2anJ1UUNwZmRuSVZDREFmbHE1V1lkRTlDZ3ExTWI5U3NVdU13bVdpWktZX0tCS1g2QU5PU1lseTRSZE5MVzc4MXh5QnJiN2xKTU9vTnJHamhTaVVJUHpxTmNvLVN3cXB2OXNiWi1jSEJNWXJNbF9xaVEtTjNCZDNFZlQwWXdmZzN0Y3dWM2pvd0NXZEVPMEZCaHJldk9VVXd1LXlSdUp0dllpcnMxRlhGUHlYTU9kMDdJZ3dMeFVjLXFEY3I1enNCVzlqWWNVeXFla0gzZGRDZm04VWxyUGNSQTZoZkEtYWowdzBVZjBSMUVqWEJDYzUxZWFZOTVNcHJORmRiTHhVU2k0bk9yWVFnUlQxRncuNVIwTXJSMUZLWGVFRkRWU19jdzNhZw\"\r\n}", + "RequestHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "5641" + ], + "x-ms-client-request-id": [ + "8df9d312-364a-4140-ab41-691851106cb0" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"contentType\": \"text\",\r\n \"id\": \"https://kv-sdk-test.vault-int.azure-int.net/secrets/SecretBackupRestoreTest/0699d2c2baed44c09f9c8a54f5f1bcad\",\r\n \"attributes\": {\r\n \"enabled\": true,\r\n \"nbf\": 1262332800,\r\n \"exp\": 1893484800,\r\n \"created\": 1491343301,\r\n \"updated\": 1491343301\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "244" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:02:31 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "6d1c95c9-4dcf-4341-ad55-229df739b940" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 200 + }, + { + "RequestUri": "//secrets/SecretBackupRestoreTest/?api-version=2016-10-01", + "EncodedRequestUri": "Ly9zZWNyZXRzL1NlY3JldEJhY2t1cFJlc3RvcmVUZXN0Lz9hcGktdmVyc2lvbj0yMDE2LTEwLTAx", + "RequestMethod": "GET", + "RequestBody": "", + "RequestHeaders": { + "x-ms-client-request-id": [ + "0a2e2fdd-a386-4aae-a30f-d6083fe6adb8" + ], + "accept-language": [ + "en-US" + ], + "User-Agent": [ + "FxVersion/4.6.24214.01", + "Microsoft.Azure.KeyVault.KeyVaultClient/2.1.0-preview" + ] + }, + "ResponseBody": "{\r\n \"value\": \"if found please return to secretbackuprestoretest\",\r\n \"contentType\": \"text\",\r\n \"id\": \"https://kv-sdk-test.vault-int.azure-int.net/secrets/SecretBackupRestoreTest/0699d2c2baed44c09f9c8a54f5f1bcad\",\r\n \"attributes\": {\r\n \"enabled\": true,\r\n \"nbf\": 1262332800,\r\n \"exp\": 1893484800,\r\n \"created\": 1491343301,\r\n \"updated\": 1491343301\r\n }\r\n}", + "ResponseHeaders": { + "Content-Length": [ + "304" + ], + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Expires": [ + "-1" + ], + "Cache-Control": [ + "no-cache" + ], + "Date": [ + "Tue, 04 Apr 2017 22:02:31 GMT" + ], + "Pragma": [ + "no-cache" + ], + "Server": [ + "Microsoft-IIS/8.5" + ], + "x-ms-keyvault-region": [ + "eastus2" + ], + "x-ms-request-id": [ + "42ca4ebe-fc6f-4703-8da7-1751b802f760" + ], + "x-ms-keyvault-service-version": [ + "1.0.0.1151" + ], + "X-AspNet-Version": [ + "4.0.30319" + ], + "X-Powered-By": [ + "ASP.NET" + ], + "Strict-Transport-Security": [ + "max-age=31536000;includeSubDomains" + ], + "X-Content-Type-Options": [ + "nosniff" + ] + }, + "StatusCode": 200 + } + ], + "Names": {}, + "Variables": { + "VaultAddress": "https://kv-sdk-test.vault-int.azure-int.net/", + "KeyName": "sdktestkey", + "KeyVersion": "749745164e5b41f0b8b39046339118cb", + "SoftDeleteEnabled": "true" + } +} \ No newline at end of file diff --git a/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultSecretCreateDeleteRecoverPurgeTest.json b/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultSecretCreateDeleteRecoverPurgeTest.json index d1f0e85145ee..7111d4f78339 100644 --- a/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultSecretCreateDeleteRecoverPurgeTest.json +++ b/src/KeyVault/Microsoft.Azure.KeyVault.Tests/SessionRecords/Microsoft.Azure.KeyVault.Tests.KeyVaultOperationsTest/KeyVaultSecretCreateDeleteRecoverPurgeTest.json @@ -1477,6 +1477,7 @@ "Variables": { "VaultAddress": "https://karlaugsoftdeletesdk.vault-int.azure-int.net", "KeyName": "sdktestkey", - "KeyVersion": "cf7c860fb9db4564a1389db973a52436" + "KeyVersion": "cf7c860fb9db4564a1389db973a52436", + "SoftDeleteEnabled": "true", } } \ No newline at end of file diff --git a/src/KeyVault/Microsoft.Azure.KeyVault/Generated/IKeyVaultClient.cs b/src/KeyVault/Microsoft.Azure.KeyVault/Generated/IKeyVaultClient.cs index 96c6bee21987..1cfadacd1281 100644 --- a/src/KeyVault/Microsoft.Azure.KeyVault/Generated/IKeyVaultClient.cs +++ b/src/KeyVault/Microsoft.Azure.KeyVault/Generated/IKeyVaultClient.cs @@ -726,6 +726,41 @@ public partial interface IKeyVaultClient : System.IDisposable /// Task> RecoverDeletedSecretWithHttpMessagesAsync(string vaultBaseUrl, string secretName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Requests that a backup of the specified secret be downloaded to the + /// client. + /// + /// + /// The vault name, for example https://myvault.vault.azure.net. + /// + /// + /// The name of the secret. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + Task> BackupSecretWithHttpMessagesAsync( string vaultBaseUrl, string secretName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default( CancellationToken ) ); + + /// + /// Restores a backed up secret to a vault. + /// + /// + /// The vault name, for example https://myvault.vault.azure.net. + /// + /// + /// The backup blob associated with a secret bundle. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + Task> RestoreSecretWithHttpMessagesAsync( string vaultBaseUrl, byte[ ] secretBundleBackup, Dictionary> customHeaders = null, CancellationToken cancellationToken = default( CancellationToken ) ); + /// /// List certificates in a specified key vault /// diff --git a/src/KeyVault/Microsoft.Azure.KeyVault/Generated/KeyVaultClient.cs b/src/KeyVault/Microsoft.Azure.KeyVault/Generated/KeyVaultClient.cs index 28c321df71ac..5d9e974d5dd8 100644 --- a/src/KeyVault/Microsoft.Azure.KeyVault/Generated/KeyVaultClient.cs +++ b/src/KeyVault/Microsoft.Azure.KeyVault/Generated/KeyVaultClient.cs @@ -6115,6 +6115,388 @@ private void Initialize() return _result; } + /// + /// Requests that a backup of the specified secret be downloaded to the client. + /// + /// + /// The vault name, for example https://myvault.vault.azure.net. + /// + /// + /// The name of the secret. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> BackupSecretWithHttpMessagesAsync( string vaultBaseUrl, string secretName, Dictionary> customHeaders = null, CancellationToken cancellationToken = default( CancellationToken ) ) + { + if ( vaultBaseUrl == null ) + { + throw new ValidationException( ValidationRules.CannotBeNull, "vaultBaseUrl" ); + } + if ( secretName == null ) + { + throw new ValidationException( ValidationRules.CannotBeNull, "secretName" ); + } + if ( ApiVersion == null ) + { + throw new ValidationException( ValidationRules.CannotBeNull, "this.ApiVersion" ); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if ( _shouldTrace ) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString( ); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add( "vaultBaseUrl", vaultBaseUrl ); + tracingParameters.Add( "secretName", secretName ); + tracingParameters.Add( "cancellationToken", cancellationToken ); + ServiceClientTracing.Enter( _invocationId, this, "BackupSecret", tracingParameters ); + } + // Construct URL + var _baseUrl = BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "secrets/{secret-name}/backup"; + _url = _url.Replace( "{vaultBaseUrl}", vaultBaseUrl ); + _url = _url.Replace( "{secret-name}", System.Uri.EscapeDataString( secretName ) ); + List _queryParameters = new List(); + if ( ApiVersion != null ) + { + _queryParameters.Add( string.Format( "api-version={0}", System.Uri.EscapeDataString( ApiVersion ) ) ); + } + if ( _queryParameters.Count > 0 ) + { + _url += ( _url.Contains( "?" ) ? "&" : "?" ) + string.Join( "&", _queryParameters ); + } + // Create HTTP transport objects + var _httpRequest = new System.Net.Http.HttpRequestMessage(); + System.Net.Http.HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new System.Net.Http.HttpMethod( "POST" ); + _httpRequest.RequestUri = new System.Uri( _url ); + // Set Headers + if ( GenerateClientRequestId != null && GenerateClientRequestId.Value ) + { + _httpRequest.Headers.TryAddWithoutValidation( "x-ms-client-request-id", System.Guid.NewGuid( ).ToString( ) ); + } + if ( AcceptLanguage != null ) + { + if ( _httpRequest.Headers.Contains( "accept-language" ) ) + { + _httpRequest.Headers.Remove( "accept-language" ); + } + _httpRequest.Headers.TryAddWithoutValidation( "accept-language", AcceptLanguage ); + } + + + if ( customHeaders != null ) + { + foreach ( var _header in customHeaders ) + { + if ( _httpRequest.Headers.Contains( _header.Key ) ) + { + _httpRequest.Headers.Remove( _header.Key ); + } + _httpRequest.Headers.TryAddWithoutValidation( _header.Key, _header.Value ); + } + } + + // Serialize Request + string _requestContent = null; + // Set Credentials + if ( Credentials != null ) + { + cancellationToken.ThrowIfCancellationRequested( ); + await Credentials.ProcessHttpRequestAsync( _httpRequest, cancellationToken ).ConfigureAwait( false ); + } + // Send Request + if ( _shouldTrace ) + { + ServiceClientTracing.SendRequest( _invocationId, _httpRequest ); + } + cancellationToken.ThrowIfCancellationRequested( ); + _httpResponse = await HttpClient.SendAsync( _httpRequest, cancellationToken ).ConfigureAwait( false ); + if ( _shouldTrace ) + { + ServiceClientTracing.ReceiveResponse( _invocationId, _httpResponse ); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested( ); + string _responseContent = null; + if ( ( int )_statusCode != 200 ) + { + var ex = new KeyVaultErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync( ).ConfigureAwait( false ); + KeyVaultError _errorBody = SafeJsonConvert.DeserializeObject(_responseContent, DeserializationSettings); + if ( _errorBody != null ) + { + ex.Body = _errorBody; + } + } + catch ( JsonException ) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper( _httpRequest, _requestContent ); + ex.Response = new HttpResponseMessageWrapper( _httpResponse, _responseContent ); + if ( _shouldTrace ) + { + ServiceClientTracing.Error( _invocationId, ex ); + } + _httpRequest.Dispose( ); + if ( _httpResponse != null ) + { + _httpResponse.Dispose( ); + } + throw ex; + } + // Create Result + var _result = new AzureOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if ( _httpResponse.Headers.Contains( "x-ms-request-id" ) ) + { + _result.RequestId = _httpResponse.Headers.GetValues( "x-ms-request-id" ).FirstOrDefault( ); + } + // Deserialize Response + if ( ( int )_statusCode == 200 ) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync( ).ConfigureAwait( false ); + try + { + _result.Body = SafeJsonConvert.DeserializeObject( _responseContent, DeserializationSettings ); + } + catch ( JsonException ex ) + { + _httpRequest.Dispose( ); + if ( _httpResponse != null ) + { + _httpResponse.Dispose( ); + } + throw new SerializationException( "Unable to deserialize the response.", _responseContent, ex ); + } + } + if ( _shouldTrace ) + { + ServiceClientTracing.Exit( _invocationId, _result ); + } + return _result; + } + + /// + /// Restores a backed up secret to a vault. + /// + /// + /// The vault name, for example https://myvault.vault.azure.net. + /// + /// + /// The backup blob associated with a secret bundle. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> RestoreSecretWithHttpMessagesAsync( string vaultBaseUrl, byte[ ] secretBundleBackup, Dictionary> customHeaders = null, CancellationToken cancellationToken = default( CancellationToken ) ) + { + if ( vaultBaseUrl == null ) + { + throw new ValidationException( ValidationRules.CannotBeNull, "vaultBaseUrl" ); + } + if ( ApiVersion == null ) + { + throw new ValidationException( ValidationRules.CannotBeNull, "this.ApiVersion" ); + } + if ( secretBundleBackup == null ) + { + throw new ValidationException( ValidationRules.CannotBeNull, "secretBundleBackup" ); + } + SecretRestoreParameters parameters = new SecretRestoreParameters(); + if ( secretBundleBackup != null ) + { + parameters.SecretBundleBackup = secretBundleBackup; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if ( _shouldTrace ) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString( ); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add( "vaultBaseUrl", vaultBaseUrl ); + tracingParameters.Add( "parameters", parameters ); + tracingParameters.Add( "cancellationToken", cancellationToken ); + ServiceClientTracing.Enter( _invocationId, this, "RestoreSecret", tracingParameters ); + } + // Construct URL + var _baseUrl = BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "secrets/restore"; + _url = _url.Replace( "{vaultBaseUrl}", vaultBaseUrl ); + List _queryParameters = new List(); + if ( ApiVersion != null ) + { + _queryParameters.Add( string.Format( "api-version={0}", System.Uri.EscapeDataString( ApiVersion ) ) ); + } + if ( _queryParameters.Count > 0 ) + { + _url += ( _url.Contains( "?" ) ? "&" : "?" ) + string.Join( "&", _queryParameters ); + } + // Create HTTP transport objects + var _httpRequest = new System.Net.Http.HttpRequestMessage(); + System.Net.Http.HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new System.Net.Http.HttpMethod( "POST" ); + _httpRequest.RequestUri = new System.Uri( _url ); + // Set Headers + if ( GenerateClientRequestId != null && GenerateClientRequestId.Value ) + { + _httpRequest.Headers.TryAddWithoutValidation( "x-ms-client-request-id", System.Guid.NewGuid( ).ToString( ) ); + } + if ( AcceptLanguage != null ) + { + if ( _httpRequest.Headers.Contains( "accept-language" ) ) + { + _httpRequest.Headers.Remove( "accept-language" ); + } + _httpRequest.Headers.TryAddWithoutValidation( "accept-language", AcceptLanguage ); + } + + + if ( customHeaders != null ) + { + foreach ( var _header in customHeaders ) + { + if ( _httpRequest.Headers.Contains( _header.Key ) ) + { + _httpRequest.Headers.Remove( _header.Key ); + } + _httpRequest.Headers.TryAddWithoutValidation( _header.Key, _header.Value ); + } + } + + // Serialize Request + string _requestContent = null; + if ( parameters != null ) + { + _requestContent = SafeJsonConvert.SerializeObject( parameters, SerializationSettings ); + _httpRequest.Content = new System.Net.Http.StringContent( _requestContent, System.Text.Encoding.UTF8 ); + _httpRequest.Content.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse( "application/json; charset=utf-8" ); + } + // Set Credentials + if ( Credentials != null ) + { + cancellationToken.ThrowIfCancellationRequested( ); + await Credentials.ProcessHttpRequestAsync( _httpRequest, cancellationToken ).ConfigureAwait( false ); + } + // Send Request + if ( _shouldTrace ) + { + ServiceClientTracing.SendRequest( _invocationId, _httpRequest ); + } + cancellationToken.ThrowIfCancellationRequested( ); + _httpResponse = await HttpClient.SendAsync( _httpRequest, cancellationToken ).ConfigureAwait( false ); + if ( _shouldTrace ) + { + ServiceClientTracing.ReceiveResponse( _invocationId, _httpResponse ); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested( ); + string _responseContent = null; + if ( ( int )_statusCode != 200 ) + { + var ex = new KeyVaultErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync( ).ConfigureAwait( false ); + KeyVaultError _errorBody = SafeJsonConvert.DeserializeObject(_responseContent, DeserializationSettings); + if ( _errorBody != null ) + { + ex.Body = _errorBody; + } + } + catch ( JsonException ) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper( _httpRequest, _requestContent ); + ex.Response = new HttpResponseMessageWrapper( _httpResponse, _responseContent ); + if ( _shouldTrace ) + { + ServiceClientTracing.Error( _invocationId, ex ); + } + _httpRequest.Dispose( ); + if ( _httpResponse != null ) + { + _httpResponse.Dispose( ); + } + throw ex; + } + // Create Result + var _result = new AzureOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if ( _httpResponse.Headers.Contains( "x-ms-request-id" ) ) + { + _result.RequestId = _httpResponse.Headers.GetValues( "x-ms-request-id" ).FirstOrDefault( ); + } + // Deserialize Response + if ( ( int )_statusCode == 200 ) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync( ).ConfigureAwait( false ); + try + { + _result.Body = SafeJsonConvert.DeserializeObject( _responseContent, DeserializationSettings ); + } + catch ( JsonException ex ) + { + _httpRequest.Dispose( ); + if ( _httpResponse != null ) + { + _httpResponse.Dispose( ); + } + throw new SerializationException( "Unable to deserialize the response.", _responseContent, ex ); + } + } + if ( _shouldTrace ) + { + ServiceClientTracing.Exit( _invocationId, _result ); + } + return _result; + } + /// /// List certificates in a specified key vault /// diff --git a/src/KeyVault/Microsoft.Azure.KeyVault/Generated/KeyVaultClientExtensions.cs b/src/KeyVault/Microsoft.Azure.KeyVault/Generated/KeyVaultClientExtensions.cs index cbee66088301..e03edfc7b69d 100644 --- a/src/KeyVault/Microsoft.Azure.KeyVault/Generated/KeyVaultClientExtensions.cs +++ b/src/KeyVault/Microsoft.Azure.KeyVault/Generated/KeyVaultClientExtensions.cs @@ -845,23 +845,69 @@ public static partial class KeyVaultClientExtensions } } - /// - /// List certificates in a specified key vault - /// - /// - /// The operations group for this extension method. - /// - /// - /// The vault name, for example https://myvault.vault.azure.net. - /// - /// - /// Maximum number of results to return in a page. If not specified the service - /// will return up to 25 results. - /// - /// - /// The cancellation token. - /// - public static async Task> GetCertificatesAsync(this IKeyVaultClient operations, string vaultBaseUrl, int? maxresults = default(int?), CancellationToken cancellationToken = default(CancellationToken)) + /// + /// Requests that a backup of the specified secret be downloaded to the client. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The vault name, for example https://myvault.vault.azure.net. + /// + /// + /// The name of the secret. + /// + /// + /// The cancellation token. + /// + public static async Task BackupSecretAsync( this IKeyVaultClient operations, string vaultBaseUrl, string secretName, CancellationToken cancellationToken = default( CancellationToken ) ) + { + using ( var _result = await operations.BackupSecretWithHttpMessagesAsync( vaultBaseUrl, secretName, null, cancellationToken ).ConfigureAwait( false ) ) + { + return _result.Body; + } + } + + /// + /// Restores a backed up secret to a vault. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The vault name, for example https://myvault.vault.azure.net. + /// + /// + /// The backup blob associated with a secret bundle. + /// + /// + /// The cancellation token. + /// + public static async Task RestoreSecretAsync( this IKeyVaultClient operations, string vaultBaseUrl, byte[ ] secretBundleBackup, CancellationToken cancellationToken = default( CancellationToken ) ) + { + using ( var _result = await operations.RestoreSecretWithHttpMessagesAsync( vaultBaseUrl, secretBundleBackup, null, cancellationToken ).ConfigureAwait( false ) ) + { + return _result.Body; + } + } + + /// + /// List certificates in a specified key vault + /// + /// + /// The operations group for this extension method. + /// + /// + /// The vault name, for example https://myvault.vault.azure.net. + /// + /// + /// Maximum number of results to return in a page. If not specified the service + /// will return up to 25 results. + /// + /// + /// The cancellation token. + /// + public static async Task> GetCertificatesAsync(this IKeyVaultClient operations, string vaultBaseUrl, int? maxresults = default(int?), CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.GetCertificatesWithHttpMessagesAsync(vaultBaseUrl, maxresults, null, cancellationToken).ConfigureAwait(false)) { diff --git a/src/KeyVault/Microsoft.Azure.KeyVault/Generated/Models/BackupSecretResult.cs b/src/KeyVault/Microsoft.Azure.KeyVault/Generated/Models/BackupSecretResult.cs new file mode 100644 index 000000000000..d8ea9504489f --- /dev/null +++ b/src/KeyVault/Microsoft.Azure.KeyVault/Generated/Models/BackupSecretResult.cs @@ -0,0 +1,46 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator 1.0.0.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.Azure.KeyVault.Models +{ + using Azure; + using KeyVault; + using Rest; + using Rest.Serialization; + using Newtonsoft.Json; + using System.Linq; + + /// + /// The backup secret result, containing the backup blob. + /// + public partial class BackupSecretResult + { + /// + /// Initializes a new instance of the BackupSecretResult class. + /// + public BackupSecretResult( ) { } + + /// + /// Initializes a new instance of the BackupSecretResult class. + /// + /// The backup blob containing the backed up + /// secret. + public BackupSecretResult( byte[ ] value = default( byte[ ] ) ) + { + Value = value; + } + + /// + /// Gets the backup blob containing the backed up secret. + /// + [JsonConverter( typeof( Base64UrlJsonConverter ) )] + [JsonProperty( PropertyName = "value" )] + public byte[ ] Value { get; protected set; } + + } +} diff --git a/src/KeyVault/Microsoft.Azure.KeyVault/Generated/Models/SecretRestoreParameters.cs b/src/KeyVault/Microsoft.Azure.KeyVault/Generated/Models/SecretRestoreParameters.cs new file mode 100644 index 000000000000..603613152004 --- /dev/null +++ b/src/KeyVault/Microsoft.Azure.KeyVault/Generated/Models/SecretRestoreParameters.cs @@ -0,0 +1,59 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for +// license information. +// +// Code generated by Microsoft (R) AutoRest Code Generator 1.0.0.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.Azure.KeyVault.Models +{ + using Azure; + using KeyVault; + using Rest; + using Rest.Serialization; + using Newtonsoft.Json; + using System.Linq; + + /// + /// The secret restore parameters. + /// + public partial class SecretRestoreParameters + { + /// + /// Initializes a new instance of the SecretRestoreParameters class. + /// + public SecretRestoreParameters( ) { } + + /// + /// Initializes a new instance of the SecretRestoreParameters class. + /// + /// The backup blob associated with a + /// secret bundle. + public SecretRestoreParameters( byte[ ] secretBundleBackup ) + { + SecretBundleBackup = secretBundleBackup; + } + + /// + /// Gets or sets the backup blob associated with a secret bundle. + /// + [JsonConverter( typeof( Base64UrlJsonConverter ) )] + [JsonProperty( PropertyName = "value" )] + public byte[ ] SecretBundleBackup { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate( ) + { + if ( SecretBundleBackup == null ) + { + throw new ValidationException( ValidationRules.CannotBeNull, "SecretBundleBackup" ); + } + } + } +}