From 646edc1e47bb0653b995a9cf474cf30255188530 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?McCoy=20Pati=C3=B1o?= <39780829+mccoyp@users.noreply.github.com> Date: Fri, 17 Jan 2025 10:36:14 -0800 Subject: [PATCH] [Key Vault] TypeSpec for Secrets library (#29249) --- .../Security.KeyVault.Secrets/client.tsp | 32 + .../examples/7.5/BackupSecret-example.json | 16 + .../examples/7.5/DeleteSecret-example.json | 25 + .../7.5/GetDeletedSecret-example.json | 25 + .../7.5/GetDeletedSecrets-example.json | 32 + .../examples/7.5/GetSecret-example.json | 24 + .../7.5/GetSecretVersions-example.json | 27 + .../examples/7.5/GetSecrets-example.json | 27 + .../7.5/PurgeDeletedSecret-example.json | 12 + .../7.5/RecoverDeletedSecret-example.json | 22 + .../examples/7.5/RestoreSecret-example.json | 27 + .../examples/7.5/SetSecret-example.json | 26 + .../examples/7.5/UpdateSecret-example.json | 36 + .../7.6-preview.1/BackupSecret-example.json | 16 + .../7.6-preview.1/DeleteSecret-example.json | 25 + .../GetDeletedSecret-example.json | 25 + .../GetDeletedSecrets-example.json | 32 + .../7.6-preview.1/GetSecret-example.json | 24 + .../GetSecretVersions-example.json | 27 + .../7.6-preview.1/GetSecrets-example.json | 27 + .../PurgeDeletedSecret-example.json | 12 + .../RecoverDeletedSecret-example.json | 22 + .../7.6-preview.1/RestoreSecret-example.json | 27 + .../7.6-preview.1/SetSecret-example.json | 26 + .../7.6-preview.1/UpdateSecret-example.json | 36 + .../Security.KeyVault.Secrets/main.tsp | 52 + .../Security.KeyVault.Secrets/models.tsp | 356 ++++++ .../Security.KeyVault.Secrets/routes.tsp | 287 +++++ .../Security.KeyVault.Secrets/tspconfig.yaml | 65 ++ specification/keyvault/cspell.yaml | 3 + .../examples/BackupSecret-example.json | 4 +- .../examples/DeleteSecret-example.json | 4 +- .../examples/GetDeletedSecret-example.json | 4 +- .../examples/GetDeletedSecrets-example.json | 4 +- .../examples/GetSecret-example.json | 4 +- .../examples/GetSecretVersions-example.json | 4 +- .../examples/GetSecrets-example.json | 4 +- .../examples/PurgeDeletedSecret-example.json | 4 +- .../RecoverDeletedSecret-example.json | 4 +- .../examples/RestoreSecret-example.json | 4 +- .../examples/SetSecret-example.json | 4 +- .../examples/UpdateSecret-example.json | 4 +- .../preview/7.6-preview.1/secrets.json | 1038 ++++++++++------- .../7.5/examples/BackupSecret-example.json | 4 +- .../7.5/examples/DeleteSecret-example.json | 4 +- .../examples/GetDeletedSecret-example.json | 4 +- .../examples/GetDeletedSecrets-example.json | 4 +- .../7.5/examples/GetSecret-example.json | 4 +- .../examples/GetSecretVersions-example.json | 4 +- .../7.5/examples/GetSecrets-example.json | 4 +- .../examples/PurgeDeletedSecret-example.json | 4 +- .../RecoverDeletedSecret-example.json | 4 +- .../7.5/examples/RestoreSecret-example.json | 4 +- .../7.5/examples/SetSecret-example.json | 4 +- .../7.5/examples/UpdateSecret-example.json | 4 +- .../stable/7.5/secrets.json | 1038 ++++++++++------- 56 files changed, 2671 insertions(+), 894 deletions(-) create mode 100644 specification/keyvault/Security.KeyVault.Secrets/client.tsp create mode 100644 specification/keyvault/Security.KeyVault.Secrets/examples/7.5/BackupSecret-example.json create mode 100644 specification/keyvault/Security.KeyVault.Secrets/examples/7.5/DeleteSecret-example.json create mode 100644 specification/keyvault/Security.KeyVault.Secrets/examples/7.5/GetDeletedSecret-example.json create mode 100644 specification/keyvault/Security.KeyVault.Secrets/examples/7.5/GetDeletedSecrets-example.json create mode 100644 specification/keyvault/Security.KeyVault.Secrets/examples/7.5/GetSecret-example.json create mode 100644 specification/keyvault/Security.KeyVault.Secrets/examples/7.5/GetSecretVersions-example.json create mode 100644 specification/keyvault/Security.KeyVault.Secrets/examples/7.5/GetSecrets-example.json create mode 100644 specification/keyvault/Security.KeyVault.Secrets/examples/7.5/PurgeDeletedSecret-example.json create mode 100644 specification/keyvault/Security.KeyVault.Secrets/examples/7.5/RecoverDeletedSecret-example.json create mode 100644 specification/keyvault/Security.KeyVault.Secrets/examples/7.5/RestoreSecret-example.json create mode 100644 specification/keyvault/Security.KeyVault.Secrets/examples/7.5/SetSecret-example.json create mode 100644 specification/keyvault/Security.KeyVault.Secrets/examples/7.5/UpdateSecret-example.json create mode 100644 specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/BackupSecret-example.json create mode 100644 specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/DeleteSecret-example.json create mode 100644 specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/GetDeletedSecret-example.json create mode 100644 specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/GetDeletedSecrets-example.json create mode 100644 specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/GetSecret-example.json create mode 100644 specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/GetSecretVersions-example.json create mode 100644 specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/GetSecrets-example.json create mode 100644 specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/PurgeDeletedSecret-example.json create mode 100644 specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/RecoverDeletedSecret-example.json create mode 100644 specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/RestoreSecret-example.json create mode 100644 specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/SetSecret-example.json create mode 100644 specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/UpdateSecret-example.json create mode 100644 specification/keyvault/Security.KeyVault.Secrets/main.tsp create mode 100644 specification/keyvault/Security.KeyVault.Secrets/models.tsp create mode 100644 specification/keyvault/Security.KeyVault.Secrets/routes.tsp create mode 100644 specification/keyvault/Security.KeyVault.Secrets/tspconfig.yaml diff --git a/specification/keyvault/Security.KeyVault.Secrets/client.tsp b/specification/keyvault/Security.KeyVault.Secrets/client.tsp new file mode 100644 index 000000000000..8f2b3c2fa1ed --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/client.tsp @@ -0,0 +1,32 @@ +import "./main.tsp"; +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; + +@@clientName(KeyVault, "Client", "go"); +@@clientName(KeyVault, "Secret", "java"); +@@clientName(KeyVault, "Secret", "rust"); + +using KeyVault; + +@@clientName(SecretProperties, "SecretP", "go"); +@@clientName(DeletedSecretBundle, "DeletedSecret", "go"); +@@clientName(DeletedSecretItem, "DeletedSecretProperties", "go"); +@@clientName(SecretBundle, "Secret", "go"); +@@clientName(SecretItem, "SecretProperties", "go"); +@@clientName(SecretRestoreParameters, "RestoreSecretParameters", "go"); +@@clientName(SecretSetParameters, "SetSecretParameters", "go"); +@@clientName(SecretUpdateParameters, "UpdateSecretPropertiesParameters", "go"); +@@clientName(DeletedSecretListResult, + "DeletedSecretPropertiesListResult", + "go" +); +@@clientName(SecretListResult, "SecretPropertiesListResult", "go"); + +@@clientName(getDeletedSecrets, "ListDeletedSecretProperties", "go"); +@@clientName(getSecrets, "ListSecretProperties", "go"); +@@clientName(getSecretVersions, "ListSecretPropertiesVersions", "go"); +@@clientName(updateSecret, "UpdateSecretProperties", "go"); + +@@clientName(SecretRestoreParameters.secretBundleBackup, "SecretBackup", "go"); +@@clientName(SecretBundle.kid, "KID", "go"); diff --git a/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/BackupSecret-example.json b/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/BackupSecret-example.json new file mode 100644 index 000000000000..a6c3bf7d993c --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/BackupSecret-example.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "secret-name": "testsecret", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "value": "KUF6dXJlS2V5VmF1bHRTZWNyZXRCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUppTlRjMk5ESTVaaTB5TlRZNExUUTFZbVV0WW1aaFlTMHpOMlZrTURkbVl6QmpPREVpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLmhERDdfVW9aU1ptR2JYN1dYUTU5WDkxZ0FQb05kdDcwZE1BbmgzbjQ3eWNjbkRNOU5vTm1hY0NHZmlNeUwxU0FlZDk0UjhBNDAtVE81TDNfQ05Qal9pdWIyaW03Z21nbHNPNnFFUVVIWU1tOEh2Wl9odFRrdEl4QzRPWEowYTB0S2hscnczZlBvVVFDZHVGcFg0ekEzYTR4VTZXTUNfYjZZVXZqUjZnSGM5TFRUR2tIazh1RTY0aVQ4cmt5RDRrU3RNcXhnU2lfRVZwUUdjWGdfNE9wQ1dBOUFha0N1NkpybGRaQW9BLUtXTWpQbGhaWHFYWGMyVkJlbUJjRTQ1YzY3QWhqYjJrSi1uQ1c5dHBjWS1JZ3JEUHFzWkswOS1WbHVtcl9SbzQzcG5FeW5jVFpTdzZlX1h6VnN0dUFOZHdiM0E2OVR1c1hfYkJKZ0J2SGQ4cDJSUS5WMTlhMVRacjZ2UjJHdEVaWGtOOXJRLmhwMU5IMmwtZklWbVgwWlNfTlRzekJfUEs1aktDUU5rSnJyRUhRQmZjQ2VjdHhmVU5uVlB6MVBqRWNDblZuV0pCUk4zTlFKZm01MjFLRHp1MzBIVUFEUGVmVHJyMFVFS2x5QTM2cThoWFY3VTdoQ0dHNk85NVpYclRsZlVENDI5RTNTNTQxdVBmWGpGR2cxbHlucFNTNnAtVkFzaXFlY1lpQWNuM1hhNzRhUm5xS3N3ZzhyU1ZOX09hSVU3ak1VVUhYZWY1ZmN0NlFrdWFfYkt6Z2dtR2ZiT2RTdVdNRmVQaF9mMkJMUFNGN3k1NThEMFZxSVlNY0JJR0dMU3BQUU93Q094OFF3Y3NVUEp4ZDFuWkVYYjRVNEJZYlhBcmFMX0NwekYxZlhYWVBsdmVUSGdKNVdrR28tWXNJVzAtT3ZqVGdLN2hIamxpR1psd29HOVUtbTJSVDZfbkhseHhVRFMyY3JseGNmay1OOTlXd0tEdUxFMTM5ZE1mN2RCSEl1aTdxd0RXdm1TN2JMTHYzM05Wd19XSl9DT1VGQjgycy1ELXk0UEdIRzVackhsSDgxa25mLVpRblU0SmZfY2lhMWhmWlY3ZFMxb21UZDQtNnJwZmpTMGxFT3VfZTQ5bUpYUGFpZ0hyLWFQYkFzTXJJQ2JvOUVIR2IzMXJ5SlR2QXF2ZmJDbU10bkdLUDV6aUNiZFh3SU5ONzBJTk5lZnJLWGZkZFBUd0RSV3d1ZkxCcGNlU0U0SG5EWVZVQmdkMDl4UUZidG12UDhhTXhhUlpGSTNpWG1fbmpCNmZfdlNhZUNUakdVYVVuRE1QQkdOQWQ5T2xVX3dvUnMtalNCVnVqd1FQSGlGcm5RWElkXzBRdXRYSm54cTU4aUtlTGJvNDJtOHgwaXBRcnB4aEZoUDdHNmZOWXAwVmxXR0RxZ1Q0VlpPQkZsZWRKUU0yaDQtb2xTbXdtUms0M0Y1cjdKd3h4aENqU1JReWx1MGEyQ0ZONWMyZjIxTElZaFliLWNReWFXMDNpV3hsb04zWld5cDJIb1FlUmZPR3lXUzBiU2NBT3JndGpBYnJaUFIwMGRRNnpSOHNBczFYUzh3dzBlaVczbFpsdjJwVWFxOVpTeVhnTS14b2NTOS1ueXRaWGtWWlUwX2dDVXJBV0ZKNG5XdW9oTGM1RkkyRWFQNWR0SXVWa3dnbXlsR1gtYk9ZeHp3dzVGYmI1V3VEbnJ5aDBMSnVic3Q4VXdLdnl3bk1jQ3duMjZSVTNxQVRudGJubVhJS0FyeGkwMldQVk9oTXdpUWZuX2h1TWk5emp3MEVuaXNWdktNWUNnR2xqNWlGZW5Tc0FKUXBiLUY4bng3OWFJQlJaTUc1a0huUDR5dGxmNm9FTkRsRXNJY21aeEtOdEIzcmJPdVROYUhLTXZBNmxSNzlMMDJZSTZrcEdrUUZnaHpIaTBjTWkwbFdCejRTM1AzUEMzZElZSVlQZ0Q2S05kT2FLWHkta0dWdUlsWFNmVlVrMnpzM0NBeTJhZEJjV0NMV094ZkRoQnlwNTl4MHpBRExvdnZySHRLOWF6TGN3N0lTbVl6eUhYMkpobVdReUYtTFd1VzhfcW41SkFVYlB5Z0RTRDYyMi1PTGZQVDZmc2VTWUVBUTFLVWRwZTFnSV9hZWxVT3FaRWN1aE5SckU1YUp0LTN5TEVLVWZIWXF6WTlGbHJrUE5MUC03Y2xRbmEySEhfZmMzZV9LTGtGUDFhQTJjM0RVaERseGhsTzB2bFVmV0c5eXpXaDNZN0NmRFlFMlBaUzZBcFBlYy0wa1NDcEVKMmtCcnFzWG4yeDJDX0FDdTdCTTVGZXNJQkN0M2NqSEdQSVVQRnEteGVmT0RCXzBQcXZDTXpBOHg5Zm10Ny1sNHhVQlJaa0dtZExhZFoxVzdFUXRNRVpsSWMtbDF1V1UzTU15cFZpVWR0OWxJUHVQVUEwc1NrbWxrTGhNSjgyNE5QN0hyVi01dC1ZNDcxaWVKMHdEUjFxMmU4MU8yazdNeTFlTDY3TlY4OVBHYU81SVR5WG1ueUVXMGtVbl9qa3l1UVRkV3dsS09HZVZIYkJWNFpxSXZHWjdQUS02TEE5eXc3a0dyZFRhVFZXOEdOOV9GY1c2VUhjbzA0U3dqTzY2S2x4VlFJWWpBdEZPZlBjWW5xNzF1RndyQS1UZHVDZG1sUFBHOVpjc2tiQmdrbF8wVk90dmhuc0pwYXZKZ2Zka0d3OF9qMkQzd0Jzemd0VndHNk9nNW16eVFwM2pFc0w3UmNtcXd6WFBOaDdKYXdHVDBJMlRvZHYyQ1Z3MDkzWjJlODFXR1NxRnlIejAxdjFBaGN2T2VWdmFjUGM2Y1JJaVduNW93ZF80d2FBdjlyNjVVdmtWa1FLRXpHUmo5eTZILXdZTTMyV1JyMzBlOU9MRTNKUU5POV9kNjRTRmIwSjZHa2VxUmtnNkVXc2xqN1JYLVU1VlhrS1BtMzNpS3c5dGU2NVBqQUNnZThRVDBYVWZEaUx5a1pGeUdpZ09ZMS1TVDFxUlE1eUhMTXhEc3BPRjFXd1lMQ2c2b3hocTlWMm55Z0U1cUJ2ZnYyWUtFaDdjM1dWNjJrYkw3UXJ2d0xkMHVRZ1FwYmUza3E3dGJzcC1lNWlud3cyY0YxQzByeHNScGZJRHlJMmg4b2xHMi1RQUZkWmtlMUlmaE1FZmNfdUdXX2pqSGJSWXVzYnZCRnpKMDdaOVJsVnFMR1A2WXBnTDFsRTFOY09xUVJyYVdxckdDTWZ6SzZMVENQSl93aHJRam9WTzdVRDJIUEVnUjZ2S3U3cWlmTmo3UjE5OUJuRi1EZmlnbk1TYTFKZkZadDNuVXVZOEhMUXRoUzN4MUMxOE50d3dsaDVuNGxYS3d5MERHenljbVNweE05QkdPNTFRckFmSXRfY0xHbUlzMlJ4MzMyeDRIdEZ3Z05nRzFBazNIUno4TlJ4V3lhNWhjb1NoYURXekhES2gyOVp3Vm4wYXVzeWJpal9uNlFGcnZZbjRSOHdPNlRQV3FrS09JcHkxc1lQNWxyNDc1anZSRVZGaFdCWDBiUXdJdnNlM0Q0a0dFQzgzU3FWYkhxY3phZTNwOFNxaG5tQW5ZYzBIbWp4clJfZUMzT0hYVFBGUFZmNDlVWHdrQjIwY1lvcjJ1dzBaTzJ2TUg3S1QwcjBSWDBQVy1qcGpORFpjSGRSNVVCMXFacGlWLWxaYkw0eF9IZW14aWUxY0RPOHNQSXhIOElUSWtOV0tTR1N2eWdraHBBbGl2RzVEZXJObElkeFE2c0tHQ3RtMDEyT2xjN2thaVFaNHh0TjR5ZVpPU2xyS0s0OTlIcWhObzhkNTNsbFFfMW5ncWlHbzhUSDlzWkFrclYwclc3dkJOSF92UlhBdTc2MnlpZGhZUURYYXJXSEFUMm9DU2hEN1lOdnotekoyZGtEajJMcW5CdFNCWFh5T2xsM3o0ZWFITDd2MDZ1QTgxMVBKQU5YZUdoenNaNFVQQUQ2Q0E4cGlxSHB4WGkxODRHNEJETVU4S2VHeHZLWnJiUlNOT2pTOFNrQUJKZERfSklIZ1RhNEFhNzdPUmNZcVY3OWZ5djFZVHNma2lLR2NUYzZIUjZzUVpsamt2U0NQNjdtTTRGUHRqTHlfX1pDQlNwdnRSVWd5UlpNM1dSOUViNHkxa29uRG4zUjMzN2lpSzdfbGtIa1UtZ21VbUpZUVdnUjYzT01pZUdRUHdNR3BSZXlRWE5yckJVTDN2Z2JYdjlac1ZDcDh1NHRwQjBleXJvUXgxZC1KSWJvOWVyR1VlX0ZzU1Fpd0tIaGFIUk02Nzh5dENkcHJFbDBWeG92TFVrX0xNcTFjN1R4MG5jbFl2WE4yUjhEMXNhU2FibkJSd19CU2tZMFNMSXdhb2RpY2o2ZzdLd0ZfMXB2eThhNF9LbnJNLUNkenBvdHA0aTd4QUJuY2JRVUEwWkpsYlp1elRpR0F4ZjFnclk1Z0dZOTVoWi1XZG1lOWlSazBHRTJGN3d4MlJyLUVvS3lZRjNjak0xMWt6MWFmME9fNFdyOXJoU3JrX1NHU3l2a3ZCTW9NZ0xOX0tSS1BlTjlqUnpwRlVST2VnN2NCbGlhdy1odnZhY2lCeDN2UWRqTE5jTldQdU1UbzVmME1QbmU4TUtXcFBoWjBySElMaEVuYW1pcG82X3pzNjczcE9ma09FS0JWWE9mUDEzR0UwS25SWTBab2JPLWRub254LVdBY1dodFZvX08xbkwwTWE5ZXFMMURhRGhJU0JNbVRIM1hkY2dDTnF0emIwcVMtS1l5Mk9zRzZOakRDVEM1aEI3MXIwU09WMUprNFV2QjdYemxTTW9YUXJnTzF2ZFVwSGtxaVhUM1RJZmlQMWRKcDEweDlSMlp5R0lzUzljQUtNMEZyMGRxQmJmQy16NTJpcWZweW4zUVVqb1Fld2hPYnJwUEZGOF9lUmVNRlIwSXZjUkxnMHpwek56UzU1N1pkQkZhemxNTThLcnkwN2QyUDAyTnZtclUtN1ZjOW8wZm1qem9WOHVVTG9PMkJHdmFRdnFJNmtBTmQ5VWo1X2JkY2NVUzBhcklzcGFZa1UtUXQtNnQxYU5YUUdGZEtUbFMwSVowek54bkNIZWRySEE4SkYtOFg3d1ZpRW1McXJQbU1Sd25sbWx3SnhxLVlReWMydmdUallSbUxCVU5TS3VrZkJsa2VnMmlCRWdySksxVlNyRWswX0ZvOXkzV1EwVlZuNXhEZXlGc1JuWDI4Tkl6alFQLVNXaHhYbzdPYm5YY1cxZHlWNE1fYjdzM096cEMwOTJWcGZYQkpaTDhBeHgxNGY2TmJzTEpXLW95VEdsaTJFb2FCZHJKQ2JkQlNOdWJlbGdRRmU2V2hqSjRGdlNrYVJISjFTT3ltbGFtQmYwaVNDOGM2X1g2SkZORjNmOXYuQjc5SDJvbVIyTU52SndydHVzclJ4UQ" + } + } + }, + "operationId": "BackupSecret", + "title": "BackupSecret" +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/DeleteSecret-example.json b/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/DeleteSecret-example.json new file mode 100644 index 000000000000..580907cd0ae2 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/DeleteSecret-example.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "secret-name": "GetDeletedSecretTest", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "recoveryId": "https://myvault.vault.azure.net/deletedsecrets/GetDeletedSecretTest", + "deletedDate": 1493938433, + "scheduledPurgeDate": 1501714433, + "id": "https://myvault.vault.azure.net/secrets/GetDeletedSecretTest/b595353d9c39413d80626575b3b5d865", + "attributes": { + "enabled": true, + "created": 1493938433, + "updated": 1493938433, + "recoveryLevel": "Recoverable+Purgeable" + } + } + } + }, + "operationId": "DeleteSecret", + "title": "DeleteSecret" +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/GetDeletedSecret-example.json b/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/GetDeletedSecret-example.json new file mode 100644 index 000000000000..c9a77fc57e97 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/GetDeletedSecret-example.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "secret-name": "GetDeletedSecretTest", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "recoveryId": "https://myvault.vault.azure.net/deletedsecrets/GetDeletedSecretTest", + "deletedDate": 1493938433, + "scheduledPurgeDate": 1501714433, + "id": "https://myvault.vault.azure.net/secrets/GetDeletedSecretTest/b595353d9c39413d80626575b3b5d865", + "attributes": { + "enabled": true, + "created": 1493938433, + "updated": 1493938433, + "recoveryLevel": "Recoverable+Purgeable" + } + } + } + }, + "operationId": "GetDeletedSecret", + "title": "GetDeletedSecret" +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/GetDeletedSecrets-example.json b/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/GetDeletedSecrets-example.json new file mode 100644 index 000000000000..e9cdabc9e3ca --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/GetDeletedSecrets-example.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "api-version": "7.5", + "maxresults": 1, + "$skiptoken": "eyJOZXh0TWFya2VyIjoiMiExMDAhTURBd01ESTVJWE5sWTNKbGRDOU1TVk5VUkVWTVJWUkZSRk5GUTFKRlZGUkZVMVF3SVRBd01EQXlPQ0V5TURFM0xUQTFMVEEwVkRFNU9qSTFPakU0TGpJNE5qUXdORFZhSVEtLSIsIlRhcmdldExvY2F0aW9uIjowfQ" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "recoveryId": "https://myvault.vault.azure.net/deletedsecrets/listdeletedsecrettest0", + "deletedDate": 1493937855, + "scheduledPurgeDate": 1501713855, + "contentType": "plainText", + "id": "https://myvault.vault.azure.net/secrets/listdeletedsecrettest0", + "attributes": { + "enabled": true, + "created": 1493937855, + "updated": 1493937855, + "recoveryLevel": "Recoverable+Purgeable" + } + } + ], + "nextLink": "https://myvault.vault.azure.net:443/deletedsecrets?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNDQhTURBd01EWXlJWE5sWTNKbGRDOU1TVk5VUkVWTVJWUkZSRk5GUTFKRlZGUkZVMVF3THpZMU16ZERSRVJGTlRJNU5qUkRSa1pDTVRkQ1JVWXhORGszUXpSQ1JEZEVJVEF3TURBeU9DRXlNREUzTFRBMUxUQTBWREl5T2pRME9qUXdMamsxTnpZeE1UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=1" + } + } + }, + "operationId": "GetDeletedSecrets", + "title": "GetDeletedSecrets" +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/GetSecret-example.json b/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/GetSecret-example.json new file mode 100644 index 000000000000..b3f0d4054038 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/GetSecret-example.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "secret-name": "mysecretname", + "secret-version": "4387e9f3d6e14c459867679a90fd0f79", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "value": "mysecretvalue", + "id": "https://myvault.vault.azure.net/secrets/mysecretname/4387e9f3d6e14c459867679a90fd0f79", + "attributes": { + "enabled": true, + "created": 1493938410, + "updated": 1493938410, + "recoveryLevel": "Recoverable+Purgeable" + } + } + } + }, + "operationId": "GetSecret", + "title": "GetSecret" +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/GetSecretVersions-example.json b/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/GetSecretVersions-example.json new file mode 100644 index 000000000000..4158379a8993 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/GetSecretVersions-example.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "secret-name": "listsecretversionstest", + "api-version": "7.5", + "maxresults": 1 + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "https://myvault.vault.azure.net/secrets/listsecretversionstest/11a536561da34d6b8b452d880df58f3a", + "attributes": { + "enabled": true, + "created": 1481851699, + "updated": 1481851699 + } + } + ], + "nextLink": "https://myvault.vault.azure.net:443/secrets/listsecretversionstest/versions?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNDQhTURBd01EWXlJWE5sWTNKbGRDOU1TVk5VVTBWRFVrVlVWa1ZTVTBsUFRsTlVSVk5VTHpGRU5EazJNa0l4UlVRM09EUkVRa1k0T1RsR016TXpNa1UwTnpZNFFqY3dJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=1" + } + } + }, + "operationId": "GetSecretVersions", + "title": "GetSecretVersions" +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/GetSecrets-example.json b/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/GetSecrets-example.json new file mode 100644 index 000000000000..b29507e8103a --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/GetSecrets-example.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "api-version": "7.5", + "maxresults": 1 + }, + "responses": { + "200": { + "body": { + "value": [ + { + "contentType": "plainText", + "id": "https://myvault.vault.azure.net/secrets/listsecrettest0", + "attributes": { + "enabled": true, + "created": 1482189047, + "updated": 1482189047 + } + } + ], + "nextLink": "https://myvault.vault.azure.net:443/secrets?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiE4OCFNREF3TURJeUlYTmxZM0psZEM5TVNWTlVVMFZEVWtWVVZFVlRWREVoTURBd01ESTRJVEl3TVRZdE1USXRNVGxVTWpNNk1UQTZORFV1T0RneE9ERXhNRm9oIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=1" + } + } + }, + "operationId": "GetSecrets", + "title": "GetSecrets" +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/PurgeDeletedSecret-example.json b/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/PurgeDeletedSecret-example.json new file mode 100644 index 000000000000..47ecc8f0eab1 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/PurgeDeletedSecret-example.json @@ -0,0 +1,12 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "secret-name": "testsecret", + "api-version": "7.5" + }, + "responses": { + "204": {} + }, + "operationId": "PurgeDeletedSecret", + "title": "PurgeDeletedSecret" +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/RecoverDeletedSecret-example.json b/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/RecoverDeletedSecret-example.json new file mode 100644 index 000000000000..b5f90ae4f3cb --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/RecoverDeletedSecret-example.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "secret-name": "SecretCreateDeleteRecoverPurgeTest", + "api-version": "7.5" + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/secrets/SecretCreateDeleteRecoverPurgeTest/16f5f7feb7004280b7f3b8ac50cd01f9", + "attributes": { + "enabled": true, + "created": 1493937960, + "updated": 1493937960, + "recoveryLevel": "Recoverable+Purgeable" + } + } + } + }, + "operationId": "RecoverDeletedSecret", + "title": "RecoverDeletedSecret" +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/RestoreSecret-example.json b/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/RestoreSecret-example.json new file mode 100644 index 000000000000..a9de7743a890 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/RestoreSecret-example.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "api-version": "7.5", + "parameters": { + "value": "KUF6dXJlS2V5VmF1bHRTZWNyZXRCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUppTlRjMk5ESTVaaTB5TlRZNExUUTFZbVV0WW1aaFlTMHpOMlZrTURkbVl6QmpPREVpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLmhERDdfVW9aU1ptR2JYN1dYUTU5WDkxZ0FQb05kdDcwZE1BbmgzbjQ3eWNjbkRNOU5vTm1hY0NHZmlNeUwxU0FlZDk0UjhBNDAtVE81TDNfQ05Qal9pdWIyaW03Z21nbHNPNnFFUVVIWU1tOEh2Wl9odFRrdEl4QzRPWEowYTB0S2hscnczZlBvVVFDZHVGcFg0ekEzYTR4VTZXTUNfYjZZVXZqUjZnSGM5TFRUR2tIazh1RTY0aVQ4cmt5RDRrU3RNcXhnU2lfRVZwUUdjWGdfNE9wQ1dBOUFha0N1NkpybGRaQW9BLUtXTWpQbGhaWHFYWGMyVkJlbUJjRTQ1YzY3QWhqYjJrSi1uQ1c5dHBjWS1JZ3JEUHFzWkswOS1WbHVtcl9SbzQzcG5FeW5jVFpTdzZlX1h6VnN0dUFOZHdiM0E2OVR1c1hfYkJKZ0J2SGQ4cDJSUS5WMTlhMVRacjZ2UjJHdEVaWGtOOXJRLmhwMU5IMmwtZklWbVgwWlNfTlRzekJfUEs1aktDUU5rSnJyRUhRQmZjQ2VjdHhmVU5uVlB6MVBqRWNDblZuV0pCUk4zTlFKZm01MjFLRHp1MzBIVUFEUGVmVHJyMFVFS2x5QTM2cThoWFY3VTdoQ0dHNk85NVpYclRsZlVENDI5RTNTNTQxdVBmWGpGR2cxbHlucFNTNnAtVkFzaXFlY1lpQWNuM1hhNzRhUm5xS3N3ZzhyU1ZOX09hSVU3ak1VVUhYZWY1ZmN0NlFrdWFfYkt6Z2dtR2ZiT2RTdVdNRmVQaF9mMkJMUFNGN3k1NThEMFZxSVlNY0JJR0dMU3BQUU93Q094OFF3Y3NVUEp4ZDFuWkVYYjRVNEJZYlhBcmFMX0NwekYxZlhYWVBsdmVUSGdKNVdrR28tWXNJVzAtT3ZqVGdLN2hIamxpR1psd29HOVUtbTJSVDZfbkhseHhVRFMyY3JseGNmay1OOTlXd0tEdUxFMTM5ZE1mN2RCSEl1aTdxd0RXdm1TN2JMTHYzM05Wd19XSl9DT1VGQjgycy1ELXk0UEdIRzVackhsSDgxa25mLVpRblU0SmZfY2lhMWhmWlY3ZFMxb21UZDQtNnJwZmpTMGxFT3VfZTQ5bUpYUGFpZ0hyLWFQYkFzTXJJQ2JvOUVIR2IzMXJ5SlR2QXF2ZmJDbU10bkdLUDV6aUNiZFh3SU5ONzBJTk5lZnJLWGZkZFBUd0RSV3d1ZkxCcGNlU0U0SG5EWVZVQmdkMDl4UUZidG12UDhhTXhhUlpGSTNpWG1fbmpCNmZfdlNhZUNUakdVYVVuRE1QQkdOQWQ5T2xVX3dvUnMtalNCVnVqd1FQSGlGcm5RWElkXzBRdXRYSm54cTU4aUtlTGJvNDJtOHgwaXBRcnB4aEZoUDdHNmZOWXAwVmxXR0RxZ1Q0VlpPQkZsZWRKUU0yaDQtb2xTbXdtUms0M0Y1cjdKd3h4aENqU1JReWx1MGEyQ0ZONWMyZjIxTElZaFliLWNReWFXMDNpV3hsb04zWld5cDJIb1FlUmZPR3lXUzBiU2NBT3JndGpBYnJaUFIwMGRRNnpSOHNBczFYUzh3dzBlaVczbFpsdjJwVWFxOVpTeVhnTS14b2NTOS1ueXRaWGtWWlUwX2dDVXJBV0ZKNG5XdW9oTGM1RkkyRWFQNWR0SXVWa3dnbXlsR1gtYk9ZeHp3dzVGYmI1V3VEbnJ5aDBMSnVic3Q4VXdLdnl3bk1jQ3duMjZSVTNxQVRudGJubVhJS0FyeGkwMldQVk9oTXdpUWZuX2h1TWk5emp3MEVuaXNWdktNWUNnR2xqNWlGZW5Tc0FKUXBiLUY4bng3OWFJQlJaTUc1a0huUDR5dGxmNm9FTkRsRXNJY21aeEtOdEIzcmJPdVROYUhLTXZBNmxSNzlMMDJZSTZrcEdrUUZnaHpIaTBjTWkwbFdCejRTM1AzUEMzZElZSVlQZ0Q2S05kT2FLWHkta0dWdUlsWFNmVlVrMnpzM0NBeTJhZEJjV0NMV094ZkRoQnlwNTl4MHpBRExvdnZySHRLOWF6TGN3N0lTbVl6eUhYMkpobVdReUYtTFd1VzhfcW41SkFVYlB5Z0RTRDYyMi1PTGZQVDZmc2VTWUVBUTFLVWRwZTFnSV9hZWxVT3FaRWN1aE5SckU1YUp0LTN5TEVLVWZIWXF6WTlGbHJrUE5MUC03Y2xRbmEySEhfZmMzZV9LTGtGUDFhQTJjM0RVaERseGhsTzB2bFVmV0c5eXpXaDNZN0NmRFlFMlBaUzZBcFBlYy0wa1NDcEVKMmtCcnFzWG4yeDJDX0FDdTdCTTVGZXNJQkN0M2NqSEdQSVVQRnEteGVmT0RCXzBQcXZDTXpBOHg5Zm10Ny1sNHhVQlJaa0dtZExhZFoxVzdFUXRNRVpsSWMtbDF1V1UzTU15cFZpVWR0OWxJUHVQVUEwc1NrbWxrTGhNSjgyNE5QN0hyVi01dC1ZNDcxaWVKMHdEUjFxMmU4MU8yazdNeTFlTDY3TlY4OVBHYU81SVR5WG1ueUVXMGtVbl9qa3l1UVRkV3dsS09HZVZIYkJWNFpxSXZHWjdQUS02TEE5eXc3a0dyZFRhVFZXOEdOOV9GY1c2VUhjbzA0U3dqTzY2S2x4VlFJWWpBdEZPZlBjWW5xNzF1RndyQS1UZHVDZG1sUFBHOVpjc2tiQmdrbF8wVk90dmhuc0pwYXZKZ2Zka0d3OF9qMkQzd0Jzemd0VndHNk9nNW16eVFwM2pFc0w3UmNtcXd6WFBOaDdKYXdHVDBJMlRvZHYyQ1Z3MDkzWjJlODFXR1NxRnlIejAxdjFBaGN2T2VWdmFjUGM2Y1JJaVduNW93ZF80d2FBdjlyNjVVdmtWa1FLRXpHUmo5eTZILXdZTTMyV1JyMzBlOU9MRTNKUU5POV9kNjRTRmIwSjZHa2VxUmtnNkVXc2xqN1JYLVU1VlhrS1BtMzNpS3c5dGU2NVBqQUNnZThRVDBYVWZEaUx5a1pGeUdpZ09ZMS1TVDFxUlE1eUhMTXhEc3BPRjFXd1lMQ2c2b3hocTlWMm55Z0U1cUJ2ZnYyWUtFaDdjM1dWNjJrYkw3UXJ2d0xkMHVRZ1FwYmUza3E3dGJzcC1lNWlud3cyY0YxQzByeHNScGZJRHlJMmg4b2xHMi1RQUZkWmtlMUlmaE1FZmNfdUdXX2pqSGJSWXVzYnZCRnpKMDdaOVJsVnFMR1A2WXBnTDFsRTFOY09xUVJyYVdxckdDTWZ6SzZMVENQSl93aHJRam9WTzdVRDJIUEVnUjZ2S3U3cWlmTmo3UjE5OUJuRi1EZmlnbk1TYTFKZkZadDNuVXVZOEhMUXRoUzN4MUMxOE50d3dsaDVuNGxYS3d5MERHenljbVNweE05QkdPNTFRckFmSXRfY0xHbUlzMlJ4MzMyeDRIdEZ3Z05nRzFBazNIUno4TlJ4V3lhNWhjb1NoYURXekhES2gyOVp3Vm4wYXVzeWJpal9uNlFGcnZZbjRSOHdPNlRQV3FrS09JcHkxc1lQNWxyNDc1anZSRVZGaFdCWDBiUXdJdnNlM0Q0a0dFQzgzU3FWYkhxY3phZTNwOFNxaG5tQW5ZYzBIbWp4clJfZUMzT0hYVFBGUFZmNDlVWHdrQjIwY1lvcjJ1dzBaTzJ2TUg3S1QwcjBSWDBQVy1qcGpORFpjSGRSNVVCMXFacGlWLWxaYkw0eF9IZW14aWUxY0RPOHNQSXhIOElUSWtOV0tTR1N2eWdraHBBbGl2RzVEZXJObElkeFE2c0tHQ3RtMDEyT2xjN2thaVFaNHh0TjR5ZVpPU2xyS0s0OTlIcWhObzhkNTNsbFFfMW5ncWlHbzhUSDlzWkFrclYwclc3dkJOSF92UlhBdTc2MnlpZGhZUURYYXJXSEFUMm9DU2hEN1lOdnotekoyZGtEajJMcW5CdFNCWFh5T2xsM3o0ZWFITDd2MDZ1QTgxMVBKQU5YZUdoenNaNFVQQUQ2Q0E4cGlxSHB4WGkxODRHNEJETVU4S2VHeHZLWnJiUlNOT2pTOFNrQUJKZERfSklIZ1RhNEFhNzdPUmNZcVY3OWZ5djFZVHNma2lLR2NUYzZIUjZzUVpsamt2U0NQNjdtTTRGUHRqTHlfX1pDQlNwdnRSVWd5UlpNM1dSOUViNHkxa29uRG4zUjMzN2lpSzdfbGtIa1UtZ21VbUpZUVdnUjYzT01pZUdRUHdNR3BSZXlRWE5yckJVTDN2Z2JYdjlac1ZDcDh1NHRwQjBleXJvUXgxZC1KSWJvOWVyR1VlX0ZzU1Fpd0tIaGFIUk02Nzh5dENkcHJFbDBWeG92TFVrX0xNcTFjN1R4MG5jbFl2WE4yUjhEMXNhU2FibkJSd19CU2tZMFNMSXdhb2RpY2o2ZzdLd0ZfMXB2eThhNF9LbnJNLUNkenBvdHA0aTd4QUJuY2JRVUEwWkpsYlp1elRpR0F4ZjFnclk1Z0dZOTVoWi1XZG1lOWlSazBHRTJGN3d4MlJyLUVvS3lZRjNjak0xMWt6MWFmME9fNFdyOXJoU3JrX1NHU3l2a3ZCTW9NZ0xOX0tSS1BlTjlqUnpwRlVST2VnN2NCbGlhdy1odnZhY2lCeDN2UWRqTE5jTldQdU1UbzVmME1QbmU4TUtXcFBoWjBySElMaEVuYW1pcG82X3pzNjczcE9ma09FS0JWWE9mUDEzR0UwS25SWTBab2JPLWRub254LVdBY1dodFZvX08xbkwwTWE5ZXFMMURhRGhJU0JNbVRIM1hkY2dDTnF0emIwcVMtS1l5Mk9zRzZOakRDVEM1aEI3MXIwU09WMUprNFV2QjdYemxTTW9YUXJnTzF2ZFVwSGtxaVhUM1RJZmlQMWRKcDEweDlSMlp5R0lzUzljQUtNMEZyMGRxQmJmQy16NTJpcWZweW4zUVVqb1Fld2hPYnJwUEZGOF9lUmVNRlIwSXZjUkxnMHpwek56UzU1N1pkQkZhemxNTThLcnkwN2QyUDAyTnZtclUtN1ZjOW8wZm1qem9WOHVVTG9PMkJHdmFRdnFJNmtBTmQ5VWo1X2JkY2NVUzBhcklzcGFZa1UtUXQtNnQxYU5YUUdGZEtUbFMwSVowek54bkNIZWRySEE4SkYtOFg3d1ZpRW1McXJQbU1Sd25sbWx3SnhxLVlReWMydmdUallSbUxCVU5TS3VrZkJsa2VnMmlCRWdySksxVlNyRWswX0ZvOXkzV1EwVlZuNXhEZXlGc1JuWDI4Tkl6alFQLVNXaHhYbzdPYm5YY1cxZHlWNE1fYjdzM096cEMwOTJWcGZYQkpaTDhBeHgxNGY2TmJzTEpXLW95VEdsaTJFb2FCZHJKQ2JkQlNOdWJlbGdRRmU2V2hqSjRGdlNrYVJISjFTT3ltbGFtQmYwaVNDOGM2X1g2SkZORjNmOXYuQjc5SDJvbVIyTU52SndydHVzclJ4UQ" + } + }, + "responses": { + "200": { + "body": { + "contentType": "text", + "id": "https://myvault.vault.azure.net/secrets/SecretBackupRestoreTest/01ddd6e3a0d34d35bb5bccecb1251837", + "attributes": { + "enabled": true, + "nbf": 1262332800, + "exp": 1893484800, + "created": 1493938113, + "updated": 1493938113, + "recoveryLevel": "Recoverable+Purgeable" + } + } + } + }, + "operationId": "RestoreSecret", + "title": "RestoreSecret" +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/SetSecret-example.json b/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/SetSecret-example.json new file mode 100644 index 000000000000..84278bcb30ae --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/SetSecret-example.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "secret-name": "crpsecret", + "api-version": "7.5", + "parameters": { + "value": "mysecretvalue" + } + }, + "responses": { + "200": { + "body": { + "value": "mysecretvalue", + "id": "https://myvault.vault.azure.net/secrets/crpsecret/03bcccc7c8cf4546a0e3e21e52560441", + "attributes": { + "enabled": true, + "created": 1493938459, + "updated": 1493938459, + "recoveryLevel": "Recoverable+Purgeable" + } + } + } + }, + "operationId": "SetSecret", + "title": "SetSecret" +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/UpdateSecret-example.json b/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/UpdateSecret-example.json new file mode 100644 index 000000000000..77ca7100b64d --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/examples/7.5/UpdateSecret-example.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "secret-name": "crpsecret", + "secret-version": "03bcccc7c8cf4546a0e3e21e52560441", + "api-version": "7.5", + "parameters": { + "tags": { + "mytag": "myvalue" + }, + "contentType": "myContentType", + "attributes": { + "enabled": true + } + } + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/secrets/crpsecret/03bcccc7c8cf4546a0e3e21e52560441", + "contentType": "myContentType", + "attributes": { + "enabled": true, + "created": 1493938459, + "updated": 1493938459, + "recoveryLevel": "Recoverable+Purgeable" + }, + "tags": { + "mytag": "myvalue" + } + } + } + }, + "operationId": "UpdateSecret", + "title": "UpdateSecret" +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/BackupSecret-example.json b/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/BackupSecret-example.json new file mode 100644 index 000000000000..34b76f0f89ac --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/BackupSecret-example.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "secret-name": "testsecret", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "value": "KUF6dXJlS2V5VmF1bHRTZWNyZXRCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUppTlRjMk5ESTVaaTB5TlRZNExUUTFZbVV0WW1aaFlTMHpOMlZrTURkbVl6QmpPREVpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLmhERDdfVW9aU1ptR2JYN1dYUTU5WDkxZ0FQb05kdDcwZE1BbmgzbjQ3eWNjbkRNOU5vTm1hY0NHZmlNeUwxU0FlZDk0UjhBNDAtVE81TDNfQ05Qal9pdWIyaW03Z21nbHNPNnFFUVVIWU1tOEh2Wl9odFRrdEl4QzRPWEowYTB0S2hscnczZlBvVVFDZHVGcFg0ekEzYTR4VTZXTUNfYjZZVXZqUjZnSGM5TFRUR2tIazh1RTY0aVQ4cmt5RDRrU3RNcXhnU2lfRVZwUUdjWGdfNE9wQ1dBOUFha0N1NkpybGRaQW9BLUtXTWpQbGhaWHFYWGMyVkJlbUJjRTQ1YzY3QWhqYjJrSi1uQ1c5dHBjWS1JZ3JEUHFzWkswOS1WbHVtcl9SbzQzcG5FeW5jVFpTdzZlX1h6VnN0dUFOZHdiM0E2OVR1c1hfYkJKZ0J2SGQ4cDJSUS5WMTlhMVRacjZ2UjJHdEVaWGtOOXJRLmhwMU5IMmwtZklWbVgwWlNfTlRzekJfUEs1aktDUU5rSnJyRUhRQmZjQ2VjdHhmVU5uVlB6MVBqRWNDblZuV0pCUk4zTlFKZm01MjFLRHp1MzBIVUFEUGVmVHJyMFVFS2x5QTM2cThoWFY3VTdoQ0dHNk85NVpYclRsZlVENDI5RTNTNTQxdVBmWGpGR2cxbHlucFNTNnAtVkFzaXFlY1lpQWNuM1hhNzRhUm5xS3N3ZzhyU1ZOX09hSVU3ak1VVUhYZWY1ZmN0NlFrdWFfYkt6Z2dtR2ZiT2RTdVdNRmVQaF9mMkJMUFNGN3k1NThEMFZxSVlNY0JJR0dMU3BQUU93Q094OFF3Y3NVUEp4ZDFuWkVYYjRVNEJZYlhBcmFMX0NwekYxZlhYWVBsdmVUSGdKNVdrR28tWXNJVzAtT3ZqVGdLN2hIamxpR1psd29HOVUtbTJSVDZfbkhseHhVRFMyY3JseGNmay1OOTlXd0tEdUxFMTM5ZE1mN2RCSEl1aTdxd0RXdm1TN2JMTHYzM05Wd19XSl9DT1VGQjgycy1ELXk0UEdIRzVackhsSDgxa25mLVpRblU0SmZfY2lhMWhmWlY3ZFMxb21UZDQtNnJwZmpTMGxFT3VfZTQ5bUpYUGFpZ0hyLWFQYkFzTXJJQ2JvOUVIR2IzMXJ5SlR2QXF2ZmJDbU10bkdLUDV6aUNiZFh3SU5ONzBJTk5lZnJLWGZkZFBUd0RSV3d1ZkxCcGNlU0U0SG5EWVZVQmdkMDl4UUZidG12UDhhTXhhUlpGSTNpWG1fbmpCNmZfdlNhZUNUakdVYVVuRE1QQkdOQWQ5T2xVX3dvUnMtalNCVnVqd1FQSGlGcm5RWElkXzBRdXRYSm54cTU4aUtlTGJvNDJtOHgwaXBRcnB4aEZoUDdHNmZOWXAwVmxXR0RxZ1Q0VlpPQkZsZWRKUU0yaDQtb2xTbXdtUms0M0Y1cjdKd3h4aENqU1JReWx1MGEyQ0ZONWMyZjIxTElZaFliLWNReWFXMDNpV3hsb04zWld5cDJIb1FlUmZPR3lXUzBiU2NBT3JndGpBYnJaUFIwMGRRNnpSOHNBczFYUzh3dzBlaVczbFpsdjJwVWFxOVpTeVhnTS14b2NTOS1ueXRaWGtWWlUwX2dDVXJBV0ZKNG5XdW9oTGM1RkkyRWFQNWR0SXVWa3dnbXlsR1gtYk9ZeHp3dzVGYmI1V3VEbnJ5aDBMSnVic3Q4VXdLdnl3bk1jQ3duMjZSVTNxQVRudGJubVhJS0FyeGkwMldQVk9oTXdpUWZuX2h1TWk5emp3MEVuaXNWdktNWUNnR2xqNWlGZW5Tc0FKUXBiLUY4bng3OWFJQlJaTUc1a0huUDR5dGxmNm9FTkRsRXNJY21aeEtOdEIzcmJPdVROYUhLTXZBNmxSNzlMMDJZSTZrcEdrUUZnaHpIaTBjTWkwbFdCejRTM1AzUEMzZElZSVlQZ0Q2S05kT2FLWHkta0dWdUlsWFNmVlVrMnpzM0NBeTJhZEJjV0NMV094ZkRoQnlwNTl4MHpBRExvdnZySHRLOWF6TGN3N0lTbVl6eUhYMkpobVdReUYtTFd1VzhfcW41SkFVYlB5Z0RTRDYyMi1PTGZQVDZmc2VTWUVBUTFLVWRwZTFnSV9hZWxVT3FaRWN1aE5SckU1YUp0LTN5TEVLVWZIWXF6WTlGbHJrUE5MUC03Y2xRbmEySEhfZmMzZV9LTGtGUDFhQTJjM0RVaERseGhsTzB2bFVmV0c5eXpXaDNZN0NmRFlFMlBaUzZBcFBlYy0wa1NDcEVKMmtCcnFzWG4yeDJDX0FDdTdCTTVGZXNJQkN0M2NqSEdQSVVQRnEteGVmT0RCXzBQcXZDTXpBOHg5Zm10Ny1sNHhVQlJaa0dtZExhZFoxVzdFUXRNRVpsSWMtbDF1V1UzTU15cFZpVWR0OWxJUHVQVUEwc1NrbWxrTGhNSjgyNE5QN0hyVi01dC1ZNDcxaWVKMHdEUjFxMmU4MU8yazdNeTFlTDY3TlY4OVBHYU81SVR5WG1ueUVXMGtVbl9qa3l1UVRkV3dsS09HZVZIYkJWNFpxSXZHWjdQUS02TEE5eXc3a0dyZFRhVFZXOEdOOV9GY1c2VUhjbzA0U3dqTzY2S2x4VlFJWWpBdEZPZlBjWW5xNzF1RndyQS1UZHVDZG1sUFBHOVpjc2tiQmdrbF8wVk90dmhuc0pwYXZKZ2Zka0d3OF9qMkQzd0Jzemd0VndHNk9nNW16eVFwM2pFc0w3UmNtcXd6WFBOaDdKYXdHVDBJMlRvZHYyQ1Z3MDkzWjJlODFXR1NxRnlIejAxdjFBaGN2T2VWdmFjUGM2Y1JJaVduNW93ZF80d2FBdjlyNjVVdmtWa1FLRXpHUmo5eTZILXdZTTMyV1JyMzBlOU9MRTNKUU5POV9kNjRTRmIwSjZHa2VxUmtnNkVXc2xqN1JYLVU1VlhrS1BtMzNpS3c5dGU2NVBqQUNnZThRVDBYVWZEaUx5a1pGeUdpZ09ZMS1TVDFxUlE1eUhMTXhEc3BPRjFXd1lMQ2c2b3hocTlWMm55Z0U1cUJ2ZnYyWUtFaDdjM1dWNjJrYkw3UXJ2d0xkMHVRZ1FwYmUza3E3dGJzcC1lNWlud3cyY0YxQzByeHNScGZJRHlJMmg4b2xHMi1RQUZkWmtlMUlmaE1FZmNfdUdXX2pqSGJSWXVzYnZCRnpKMDdaOVJsVnFMR1A2WXBnTDFsRTFOY09xUVJyYVdxckdDTWZ6SzZMVENQSl93aHJRam9WTzdVRDJIUEVnUjZ2S3U3cWlmTmo3UjE5OUJuRi1EZmlnbk1TYTFKZkZadDNuVXVZOEhMUXRoUzN4MUMxOE50d3dsaDVuNGxYS3d5MERHenljbVNweE05QkdPNTFRckFmSXRfY0xHbUlzMlJ4MzMyeDRIdEZ3Z05nRzFBazNIUno4TlJ4V3lhNWhjb1NoYURXekhES2gyOVp3Vm4wYXVzeWJpal9uNlFGcnZZbjRSOHdPNlRQV3FrS09JcHkxc1lQNWxyNDc1anZSRVZGaFdCWDBiUXdJdnNlM0Q0a0dFQzgzU3FWYkhxY3phZTNwOFNxaG5tQW5ZYzBIbWp4clJfZUMzT0hYVFBGUFZmNDlVWHdrQjIwY1lvcjJ1dzBaTzJ2TUg3S1QwcjBSWDBQVy1qcGpORFpjSGRSNVVCMXFacGlWLWxaYkw0eF9IZW14aWUxY0RPOHNQSXhIOElUSWtOV0tTR1N2eWdraHBBbGl2RzVEZXJObElkeFE2c0tHQ3RtMDEyT2xjN2thaVFaNHh0TjR5ZVpPU2xyS0s0OTlIcWhObzhkNTNsbFFfMW5ncWlHbzhUSDlzWkFrclYwclc3dkJOSF92UlhBdTc2MnlpZGhZUURYYXJXSEFUMm9DU2hEN1lOdnotekoyZGtEajJMcW5CdFNCWFh5T2xsM3o0ZWFITDd2MDZ1QTgxMVBKQU5YZUdoenNaNFVQQUQ2Q0E4cGlxSHB4WGkxODRHNEJETVU4S2VHeHZLWnJiUlNOT2pTOFNrQUJKZERfSklIZ1RhNEFhNzdPUmNZcVY3OWZ5djFZVHNma2lLR2NUYzZIUjZzUVpsamt2U0NQNjdtTTRGUHRqTHlfX1pDQlNwdnRSVWd5UlpNM1dSOUViNHkxa29uRG4zUjMzN2lpSzdfbGtIa1UtZ21VbUpZUVdnUjYzT01pZUdRUHdNR3BSZXlRWE5yckJVTDN2Z2JYdjlac1ZDcDh1NHRwQjBleXJvUXgxZC1KSWJvOWVyR1VlX0ZzU1Fpd0tIaGFIUk02Nzh5dENkcHJFbDBWeG92TFVrX0xNcTFjN1R4MG5jbFl2WE4yUjhEMXNhU2FibkJSd19CU2tZMFNMSXdhb2RpY2o2ZzdLd0ZfMXB2eThhNF9LbnJNLUNkenBvdHA0aTd4QUJuY2JRVUEwWkpsYlp1elRpR0F4ZjFnclk1Z0dZOTVoWi1XZG1lOWlSazBHRTJGN3d4MlJyLUVvS3lZRjNjak0xMWt6MWFmME9fNFdyOXJoU3JrX1NHU3l2a3ZCTW9NZ0xOX0tSS1BlTjlqUnpwRlVST2VnN2NCbGlhdy1odnZhY2lCeDN2UWRqTE5jTldQdU1UbzVmME1QbmU4TUtXcFBoWjBySElMaEVuYW1pcG82X3pzNjczcE9ma09FS0JWWE9mUDEzR0UwS25SWTBab2JPLWRub254LVdBY1dodFZvX08xbkwwTWE5ZXFMMURhRGhJU0JNbVRIM1hkY2dDTnF0emIwcVMtS1l5Mk9zRzZOakRDVEM1aEI3MXIwU09WMUprNFV2QjdYemxTTW9YUXJnTzF2ZFVwSGtxaVhUM1RJZmlQMWRKcDEweDlSMlp5R0lzUzljQUtNMEZyMGRxQmJmQy16NTJpcWZweW4zUVVqb1Fld2hPYnJwUEZGOF9lUmVNRlIwSXZjUkxnMHpwek56UzU1N1pkQkZhemxNTThLcnkwN2QyUDAyTnZtclUtN1ZjOW8wZm1qem9WOHVVTG9PMkJHdmFRdnFJNmtBTmQ5VWo1X2JkY2NVUzBhcklzcGFZa1UtUXQtNnQxYU5YUUdGZEtUbFMwSVowek54bkNIZWRySEE4SkYtOFg3d1ZpRW1McXJQbU1Sd25sbWx3SnhxLVlReWMydmdUallSbUxCVU5TS3VrZkJsa2VnMmlCRWdySksxVlNyRWswX0ZvOXkzV1EwVlZuNXhEZXlGc1JuWDI4Tkl6alFQLVNXaHhYbzdPYm5YY1cxZHlWNE1fYjdzM096cEMwOTJWcGZYQkpaTDhBeHgxNGY2TmJzTEpXLW95VEdsaTJFb2FCZHJKQ2JkQlNOdWJlbGdRRmU2V2hqSjRGdlNrYVJISjFTT3ltbGFtQmYwaVNDOGM2X1g2SkZORjNmOXYuQjc5SDJvbVIyTU52SndydHVzclJ4UQ" + } + } + }, + "operationId": "BackupSecret", + "title": "BackupSecret" +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/DeleteSecret-example.json b/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/DeleteSecret-example.json new file mode 100644 index 000000000000..653135fa798f --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/DeleteSecret-example.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "secret-name": "GetDeletedSecretTest", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "recoveryId": "https://myvault.vault.azure.net/deletedsecrets/GetDeletedSecretTest", + "deletedDate": 1493938433, + "scheduledPurgeDate": 1501714433, + "id": "https://myvault.vault.azure.net/secrets/GetDeletedSecretTest/b595353d9c39413d80626575b3b5d865", + "attributes": { + "enabled": true, + "created": 1493938433, + "updated": 1493938433, + "recoveryLevel": "Recoverable+Purgeable" + } + } + } + }, + "operationId": "DeleteSecret", + "title": "DeleteSecret" +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/GetDeletedSecret-example.json b/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/GetDeletedSecret-example.json new file mode 100644 index 000000000000..f4a7b6032c3b --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/GetDeletedSecret-example.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "secret-name": "GetDeletedSecretTest", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "recoveryId": "https://myvault.vault.azure.net/deletedsecrets/GetDeletedSecretTest", + "deletedDate": 1493938433, + "scheduledPurgeDate": 1501714433, + "id": "https://myvault.vault.azure.net/secrets/GetDeletedSecretTest/b595353d9c39413d80626575b3b5d865", + "attributes": { + "enabled": true, + "created": 1493938433, + "updated": 1493938433, + "recoveryLevel": "Recoverable+Purgeable" + } + } + } + }, + "operationId": "GetDeletedSecret", + "title": "GetDeletedSecret" +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/GetDeletedSecrets-example.json b/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/GetDeletedSecrets-example.json new file mode 100644 index 000000000000..4b7a60f5618d --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/GetDeletedSecrets-example.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "api-version": "7.6-preview.1", + "maxresults": 1, + "$skiptoken": "eyJOZXh0TWFya2VyIjoiMiExMDAhTURBd01ESTVJWE5sWTNKbGRDOU1TVk5VUkVWTVJWUkZSRk5GUTFKRlZGUkZVMVF3SVRBd01EQXlPQ0V5TURFM0xUQTFMVEEwVkRFNU9qSTFPakU0TGpJNE5qUXdORFZhSVEtLSIsIlRhcmdldExvY2F0aW9uIjowfQ" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "recoveryId": "https://myvault.vault.azure.net/deletedsecrets/listdeletedsecrettest0", + "deletedDate": 1493937855, + "scheduledPurgeDate": 1501713855, + "contentType": "plainText", + "id": "https://myvault.vault.azure.net/secrets/listdeletedsecrettest0", + "attributes": { + "enabled": true, + "created": 1493937855, + "updated": 1493937855, + "recoveryLevel": "Recoverable+Purgeable" + } + } + ], + "nextLink": "https://myvault.vault.azure.net:443/deletedsecrets?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNDQhTURBd01EWXlJWE5sWTNKbGRDOU1TVk5VUkVWTVJWUkZSRk5GUTFKRlZGUkZVMVF3THpZMU16ZERSRVJGTlRJNU5qUkRSa1pDTVRkQ1JVWXhORGszUXpSQ1JEZEVJVEF3TURBeU9DRXlNREUzTFRBMUxUQTBWREl5T2pRME9qUXdMamsxTnpZeE1UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=1" + } + } + }, + "operationId": "GetDeletedSecrets", + "title": "GetDeletedSecrets" +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/GetSecret-example.json b/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/GetSecret-example.json new file mode 100644 index 000000000000..a5e676280a6a --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/GetSecret-example.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "secret-name": "mysecretname", + "secret-version": "4387e9f3d6e14c459867679a90fd0f79", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "value": "mysecretvalue", + "id": "https://myvault.vault.azure.net/secrets/mysecretname/4387e9f3d6e14c459867679a90fd0f79", + "attributes": { + "enabled": true, + "created": 1493938410, + "updated": 1493938410, + "recoveryLevel": "Recoverable+Purgeable" + } + } + } + }, + "operationId": "GetSecret", + "title": "GetSecret" +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/GetSecretVersions-example.json b/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/GetSecretVersions-example.json new file mode 100644 index 000000000000..8136909694e1 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/GetSecretVersions-example.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "secret-name": "listsecretversionstest", + "api-version": "7.6-preview.1", + "maxresults": 1 + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "https://myvault.vault.azure.net/secrets/listsecretversionstest/11a536561da34d6b8b452d880df58f3a", + "attributes": { + "enabled": true, + "created": 1481851699, + "updated": 1481851699 + } + } + ], + "nextLink": "https://myvault.vault.azure.net:443/secrets/listsecretversionstest/versions?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNDQhTURBd01EWXlJWE5sWTNKbGRDOU1TVk5VVTBWRFVrVlVWa1ZTVTBsUFRsTlVSVk5VTHpGRU5EazJNa0l4UlVRM09EUkVRa1k0T1RsR016TXpNa1UwTnpZNFFqY3dJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=1" + } + } + }, + "operationId": "GetSecretVersions", + "title": "GetSecretVersions" +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/GetSecrets-example.json b/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/GetSecrets-example.json new file mode 100644 index 000000000000..27fb0a488fad --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/GetSecrets-example.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "api-version": "7.6-preview.1", + "maxresults": 1 + }, + "responses": { + "200": { + "body": { + "value": [ + { + "contentType": "plainText", + "id": "https://myvault.vault.azure.net/secrets/listsecrettest0", + "attributes": { + "enabled": true, + "created": 1482189047, + "updated": 1482189047 + } + } + ], + "nextLink": "https://myvault.vault.azure.net:443/secrets?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiE4OCFNREF3TURJeUlYTmxZM0psZEM5TVNWTlVVMFZEVWtWVVZFVlRWREVoTURBd01ESTRJVEl3TVRZdE1USXRNVGxVTWpNNk1UQTZORFV1T0RneE9ERXhNRm9oIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=1" + } + } + }, + "operationId": "GetSecrets", + "title": "GetSecrets" +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/PurgeDeletedSecret-example.json b/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/PurgeDeletedSecret-example.json new file mode 100644 index 000000000000..b3a2205fe9be --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/PurgeDeletedSecret-example.json @@ -0,0 +1,12 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "secret-name": "testsecret", + "api-version": "7.6-preview.1" + }, + "responses": { + "204": {} + }, + "operationId": "PurgeDeletedSecret", + "title": "PurgeDeletedSecret" +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/RecoverDeletedSecret-example.json b/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/RecoverDeletedSecret-example.json new file mode 100644 index 000000000000..aac942bd238e --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/RecoverDeletedSecret-example.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "secret-name": "SecretCreateDeleteRecoverPurgeTest", + "api-version": "7.6-preview.1" + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/secrets/SecretCreateDeleteRecoverPurgeTest/16f5f7feb7004280b7f3b8ac50cd01f9", + "attributes": { + "enabled": true, + "created": 1493937960, + "updated": 1493937960, + "recoveryLevel": "Recoverable+Purgeable" + } + } + } + }, + "operationId": "RecoverDeletedSecret", + "title": "RecoverDeletedSecret" +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/RestoreSecret-example.json b/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/RestoreSecret-example.json new file mode 100644 index 000000000000..8ced7f494325 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/RestoreSecret-example.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "api-version": "7.6-preview.1", + "parameters": { + "value": "KUF6dXJlS2V5VmF1bHRTZWNyZXRCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUppTlRjMk5ESTVaaTB5TlRZNExUUTFZbVV0WW1aaFlTMHpOMlZrTURkbVl6QmpPREVpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLmhERDdfVW9aU1ptR2JYN1dYUTU5WDkxZ0FQb05kdDcwZE1BbmgzbjQ3eWNjbkRNOU5vTm1hY0NHZmlNeUwxU0FlZDk0UjhBNDAtVE81TDNfQ05Qal9pdWIyaW03Z21nbHNPNnFFUVVIWU1tOEh2Wl9odFRrdEl4QzRPWEowYTB0S2hscnczZlBvVVFDZHVGcFg0ekEzYTR4VTZXTUNfYjZZVXZqUjZnSGM5TFRUR2tIazh1RTY0aVQ4cmt5RDRrU3RNcXhnU2lfRVZwUUdjWGdfNE9wQ1dBOUFha0N1NkpybGRaQW9BLUtXTWpQbGhaWHFYWGMyVkJlbUJjRTQ1YzY3QWhqYjJrSi1uQ1c5dHBjWS1JZ3JEUHFzWkswOS1WbHVtcl9SbzQzcG5FeW5jVFpTdzZlX1h6VnN0dUFOZHdiM0E2OVR1c1hfYkJKZ0J2SGQ4cDJSUS5WMTlhMVRacjZ2UjJHdEVaWGtOOXJRLmhwMU5IMmwtZklWbVgwWlNfTlRzekJfUEs1aktDUU5rSnJyRUhRQmZjQ2VjdHhmVU5uVlB6MVBqRWNDblZuV0pCUk4zTlFKZm01MjFLRHp1MzBIVUFEUGVmVHJyMFVFS2x5QTM2cThoWFY3VTdoQ0dHNk85NVpYclRsZlVENDI5RTNTNTQxdVBmWGpGR2cxbHlucFNTNnAtVkFzaXFlY1lpQWNuM1hhNzRhUm5xS3N3ZzhyU1ZOX09hSVU3ak1VVUhYZWY1ZmN0NlFrdWFfYkt6Z2dtR2ZiT2RTdVdNRmVQaF9mMkJMUFNGN3k1NThEMFZxSVlNY0JJR0dMU3BQUU93Q094OFF3Y3NVUEp4ZDFuWkVYYjRVNEJZYlhBcmFMX0NwekYxZlhYWVBsdmVUSGdKNVdrR28tWXNJVzAtT3ZqVGdLN2hIamxpR1psd29HOVUtbTJSVDZfbkhseHhVRFMyY3JseGNmay1OOTlXd0tEdUxFMTM5ZE1mN2RCSEl1aTdxd0RXdm1TN2JMTHYzM05Wd19XSl9DT1VGQjgycy1ELXk0UEdIRzVackhsSDgxa25mLVpRblU0SmZfY2lhMWhmWlY3ZFMxb21UZDQtNnJwZmpTMGxFT3VfZTQ5bUpYUGFpZ0hyLWFQYkFzTXJJQ2JvOUVIR2IzMXJ5SlR2QXF2ZmJDbU10bkdLUDV6aUNiZFh3SU5ONzBJTk5lZnJLWGZkZFBUd0RSV3d1ZkxCcGNlU0U0SG5EWVZVQmdkMDl4UUZidG12UDhhTXhhUlpGSTNpWG1fbmpCNmZfdlNhZUNUakdVYVVuRE1QQkdOQWQ5T2xVX3dvUnMtalNCVnVqd1FQSGlGcm5RWElkXzBRdXRYSm54cTU4aUtlTGJvNDJtOHgwaXBRcnB4aEZoUDdHNmZOWXAwVmxXR0RxZ1Q0VlpPQkZsZWRKUU0yaDQtb2xTbXdtUms0M0Y1cjdKd3h4aENqU1JReWx1MGEyQ0ZONWMyZjIxTElZaFliLWNReWFXMDNpV3hsb04zWld5cDJIb1FlUmZPR3lXUzBiU2NBT3JndGpBYnJaUFIwMGRRNnpSOHNBczFYUzh3dzBlaVczbFpsdjJwVWFxOVpTeVhnTS14b2NTOS1ueXRaWGtWWlUwX2dDVXJBV0ZKNG5XdW9oTGM1RkkyRWFQNWR0SXVWa3dnbXlsR1gtYk9ZeHp3dzVGYmI1V3VEbnJ5aDBMSnVic3Q4VXdLdnl3bk1jQ3duMjZSVTNxQVRudGJubVhJS0FyeGkwMldQVk9oTXdpUWZuX2h1TWk5emp3MEVuaXNWdktNWUNnR2xqNWlGZW5Tc0FKUXBiLUY4bng3OWFJQlJaTUc1a0huUDR5dGxmNm9FTkRsRXNJY21aeEtOdEIzcmJPdVROYUhLTXZBNmxSNzlMMDJZSTZrcEdrUUZnaHpIaTBjTWkwbFdCejRTM1AzUEMzZElZSVlQZ0Q2S05kT2FLWHkta0dWdUlsWFNmVlVrMnpzM0NBeTJhZEJjV0NMV094ZkRoQnlwNTl4MHpBRExvdnZySHRLOWF6TGN3N0lTbVl6eUhYMkpobVdReUYtTFd1VzhfcW41SkFVYlB5Z0RTRDYyMi1PTGZQVDZmc2VTWUVBUTFLVWRwZTFnSV9hZWxVT3FaRWN1aE5SckU1YUp0LTN5TEVLVWZIWXF6WTlGbHJrUE5MUC03Y2xRbmEySEhfZmMzZV9LTGtGUDFhQTJjM0RVaERseGhsTzB2bFVmV0c5eXpXaDNZN0NmRFlFMlBaUzZBcFBlYy0wa1NDcEVKMmtCcnFzWG4yeDJDX0FDdTdCTTVGZXNJQkN0M2NqSEdQSVVQRnEteGVmT0RCXzBQcXZDTXpBOHg5Zm10Ny1sNHhVQlJaa0dtZExhZFoxVzdFUXRNRVpsSWMtbDF1V1UzTU15cFZpVWR0OWxJUHVQVUEwc1NrbWxrTGhNSjgyNE5QN0hyVi01dC1ZNDcxaWVKMHdEUjFxMmU4MU8yazdNeTFlTDY3TlY4OVBHYU81SVR5WG1ueUVXMGtVbl9qa3l1UVRkV3dsS09HZVZIYkJWNFpxSXZHWjdQUS02TEE5eXc3a0dyZFRhVFZXOEdOOV9GY1c2VUhjbzA0U3dqTzY2S2x4VlFJWWpBdEZPZlBjWW5xNzF1RndyQS1UZHVDZG1sUFBHOVpjc2tiQmdrbF8wVk90dmhuc0pwYXZKZ2Zka0d3OF9qMkQzd0Jzemd0VndHNk9nNW16eVFwM2pFc0w3UmNtcXd6WFBOaDdKYXdHVDBJMlRvZHYyQ1Z3MDkzWjJlODFXR1NxRnlIejAxdjFBaGN2T2VWdmFjUGM2Y1JJaVduNW93ZF80d2FBdjlyNjVVdmtWa1FLRXpHUmo5eTZILXdZTTMyV1JyMzBlOU9MRTNKUU5POV9kNjRTRmIwSjZHa2VxUmtnNkVXc2xqN1JYLVU1VlhrS1BtMzNpS3c5dGU2NVBqQUNnZThRVDBYVWZEaUx5a1pGeUdpZ09ZMS1TVDFxUlE1eUhMTXhEc3BPRjFXd1lMQ2c2b3hocTlWMm55Z0U1cUJ2ZnYyWUtFaDdjM1dWNjJrYkw3UXJ2d0xkMHVRZ1FwYmUza3E3dGJzcC1lNWlud3cyY0YxQzByeHNScGZJRHlJMmg4b2xHMi1RQUZkWmtlMUlmaE1FZmNfdUdXX2pqSGJSWXVzYnZCRnpKMDdaOVJsVnFMR1A2WXBnTDFsRTFOY09xUVJyYVdxckdDTWZ6SzZMVENQSl93aHJRam9WTzdVRDJIUEVnUjZ2S3U3cWlmTmo3UjE5OUJuRi1EZmlnbk1TYTFKZkZadDNuVXVZOEhMUXRoUzN4MUMxOE50d3dsaDVuNGxYS3d5MERHenljbVNweE05QkdPNTFRckFmSXRfY0xHbUlzMlJ4MzMyeDRIdEZ3Z05nRzFBazNIUno4TlJ4V3lhNWhjb1NoYURXekhES2gyOVp3Vm4wYXVzeWJpal9uNlFGcnZZbjRSOHdPNlRQV3FrS09JcHkxc1lQNWxyNDc1anZSRVZGaFdCWDBiUXdJdnNlM0Q0a0dFQzgzU3FWYkhxY3phZTNwOFNxaG5tQW5ZYzBIbWp4clJfZUMzT0hYVFBGUFZmNDlVWHdrQjIwY1lvcjJ1dzBaTzJ2TUg3S1QwcjBSWDBQVy1qcGpORFpjSGRSNVVCMXFacGlWLWxaYkw0eF9IZW14aWUxY0RPOHNQSXhIOElUSWtOV0tTR1N2eWdraHBBbGl2RzVEZXJObElkeFE2c0tHQ3RtMDEyT2xjN2thaVFaNHh0TjR5ZVpPU2xyS0s0OTlIcWhObzhkNTNsbFFfMW5ncWlHbzhUSDlzWkFrclYwclc3dkJOSF92UlhBdTc2MnlpZGhZUURYYXJXSEFUMm9DU2hEN1lOdnotekoyZGtEajJMcW5CdFNCWFh5T2xsM3o0ZWFITDd2MDZ1QTgxMVBKQU5YZUdoenNaNFVQQUQ2Q0E4cGlxSHB4WGkxODRHNEJETVU4S2VHeHZLWnJiUlNOT2pTOFNrQUJKZERfSklIZ1RhNEFhNzdPUmNZcVY3OWZ5djFZVHNma2lLR2NUYzZIUjZzUVpsamt2U0NQNjdtTTRGUHRqTHlfX1pDQlNwdnRSVWd5UlpNM1dSOUViNHkxa29uRG4zUjMzN2lpSzdfbGtIa1UtZ21VbUpZUVdnUjYzT01pZUdRUHdNR3BSZXlRWE5yckJVTDN2Z2JYdjlac1ZDcDh1NHRwQjBleXJvUXgxZC1KSWJvOWVyR1VlX0ZzU1Fpd0tIaGFIUk02Nzh5dENkcHJFbDBWeG92TFVrX0xNcTFjN1R4MG5jbFl2WE4yUjhEMXNhU2FibkJSd19CU2tZMFNMSXdhb2RpY2o2ZzdLd0ZfMXB2eThhNF9LbnJNLUNkenBvdHA0aTd4QUJuY2JRVUEwWkpsYlp1elRpR0F4ZjFnclk1Z0dZOTVoWi1XZG1lOWlSazBHRTJGN3d4MlJyLUVvS3lZRjNjak0xMWt6MWFmME9fNFdyOXJoU3JrX1NHU3l2a3ZCTW9NZ0xOX0tSS1BlTjlqUnpwRlVST2VnN2NCbGlhdy1odnZhY2lCeDN2UWRqTE5jTldQdU1UbzVmME1QbmU4TUtXcFBoWjBySElMaEVuYW1pcG82X3pzNjczcE9ma09FS0JWWE9mUDEzR0UwS25SWTBab2JPLWRub254LVdBY1dodFZvX08xbkwwTWE5ZXFMMURhRGhJU0JNbVRIM1hkY2dDTnF0emIwcVMtS1l5Mk9zRzZOakRDVEM1aEI3MXIwU09WMUprNFV2QjdYemxTTW9YUXJnTzF2ZFVwSGtxaVhUM1RJZmlQMWRKcDEweDlSMlp5R0lzUzljQUtNMEZyMGRxQmJmQy16NTJpcWZweW4zUVVqb1Fld2hPYnJwUEZGOF9lUmVNRlIwSXZjUkxnMHpwek56UzU1N1pkQkZhemxNTThLcnkwN2QyUDAyTnZtclUtN1ZjOW8wZm1qem9WOHVVTG9PMkJHdmFRdnFJNmtBTmQ5VWo1X2JkY2NVUzBhcklzcGFZa1UtUXQtNnQxYU5YUUdGZEtUbFMwSVowek54bkNIZWRySEE4SkYtOFg3d1ZpRW1McXJQbU1Sd25sbWx3SnhxLVlReWMydmdUallSbUxCVU5TS3VrZkJsa2VnMmlCRWdySksxVlNyRWswX0ZvOXkzV1EwVlZuNXhEZXlGc1JuWDI4Tkl6alFQLVNXaHhYbzdPYm5YY1cxZHlWNE1fYjdzM096cEMwOTJWcGZYQkpaTDhBeHgxNGY2TmJzTEpXLW95VEdsaTJFb2FCZHJKQ2JkQlNOdWJlbGdRRmU2V2hqSjRGdlNrYVJISjFTT3ltbGFtQmYwaVNDOGM2X1g2SkZORjNmOXYuQjc5SDJvbVIyTU52SndydHVzclJ4UQ" + } + }, + "responses": { + "200": { + "body": { + "contentType": "text", + "id": "https://myvault.vault.azure.net/secrets/SecretBackupRestoreTest/01ddd6e3a0d34d35bb5bccecb1251837", + "attributes": { + "enabled": true, + "nbf": 1262332800, + "exp": 1893484800, + "created": 1493938113, + "updated": 1493938113, + "recoveryLevel": "Recoverable+Purgeable" + } + } + } + }, + "operationId": "RestoreSecret", + "title": "RestoreSecret" +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/SetSecret-example.json b/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/SetSecret-example.json new file mode 100644 index 000000000000..68cb56bc6af0 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/SetSecret-example.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "secret-name": "crpsecret", + "api-version": "7.6-preview.1", + "parameters": { + "value": "mysecretvalue" + } + }, + "responses": { + "200": { + "body": { + "value": "mysecretvalue", + "id": "https://myvault.vault.azure.net/secrets/crpsecret/03bcccc7c8cf4546a0e3e21e52560441", + "attributes": { + "enabled": true, + "created": 1493938459, + "updated": 1493938459, + "recoveryLevel": "Recoverable+Purgeable" + } + } + } + }, + "operationId": "SetSecret", + "title": "SetSecret" +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/UpdateSecret-example.json b/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/UpdateSecret-example.json new file mode 100644 index 000000000000..41ca0ccb4cd8 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/examples/7.6-preview.1/UpdateSecret-example.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "vaultBaseUrl": "https://myvault.vault.azure.net/", + "secret-name": "crpsecret", + "secret-version": "03bcccc7c8cf4546a0e3e21e52560441", + "api-version": "7.6-preview.1", + "parameters": { + "tags": { + "mytag": "myvalue" + }, + "contentType": "myContentType", + "attributes": { + "enabled": true + } + } + }, + "responses": { + "200": { + "body": { + "id": "https://myvault.vault.azure.net/secrets/crpsecret/03bcccc7c8cf4546a0e3e21e52560441", + "contentType": "myContentType", + "attributes": { + "enabled": true, + "created": 1493938459, + "updated": 1493938459, + "recoveryLevel": "Recoverable+Purgeable" + }, + "tags": { + "mytag": "myvalue" + } + } + } + }, + "operationId": "UpdateSecret", + "title": "UpdateSecret" +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/main.tsp b/specification/keyvault/Security.KeyVault.Secrets/main.tsp new file mode 100644 index 000000000000..b9cf97abdda7 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/main.tsp @@ -0,0 +1,52 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "./routes.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using TypeSpec.Versioning; +using Azure.Core; + +/** + * The key vault client performs cryptographic key operations and vault operations against the Key Vault service. + */ +@useAuth( + OAuth2Auth<[ + { + type: OAuth2FlowType.implicit, + authorizationUrl: "https://login.microsoftonline.com/common/oauth2/authorize", + scopes: ["https://vault.azure.net/.default"], + } + ]> +) +@service({ + title: "KeyVaultClient", +}) +@versioned(Versions) +@server( + "{vaultBaseUrl}", + "The key vault client performs cryptographic key operations and vault operations against the Key Vault service.", + { + vaultBaseUrl: url, + } +) +namespace KeyVault; + +/** + * The available API versions. + */ +enum Versions { + /** + * The 7.5 API version. + */ + @useDependency(Azure.Core.Versions.v1_0_Preview_2) + `v7.5`: "7.5", + + /** + * The 7.6-preview.1 API version. + */ + @useDependency(Azure.Core.Versions.v1_0_Preview_2) + `v7.6_preview.1`: "7.6-preview.1", +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/models.tsp b/specification/keyvault/Security.KeyVault.Secrets/models.tsp new file mode 100644 index 000000000000..462100f70847 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/models.tsp @@ -0,0 +1,356 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; + +using Azure.Core; +using TypeSpec.Rest; +using TypeSpec.Http; + +namespace KeyVault; + +/** + * Reflects the deletion recovery level currently in effect for secrets in the current vault. If it contains 'Purgeable', the secret can be permanently deleted by a privileged user; otherwise, only the system can purge the secret, at the end of the retention interval. + */ +union DeletionRecoveryLevel { + string, + + /** + * Denotes a vault state in which deletion is an irreversible operation, without the possibility for recovery. This level corresponds to no protection being available against a Delete operation; the data is irretrievably lost upon accepting a Delete operation at the entity level or higher (vault, resource group, subscription etc.) + */ + Purgeable: "Purgeable", + + /** + * Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval (90 days), unless a Purge operation is requested, or the subscription is cancelled. System wil permanently delete it after 90 days, if not recovered + */ + RecoverablePurgeable: "Recoverable+Purgeable", + + /** + * Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval (90 days) and while the subscription is still available. System wil permanently delete it after 90 days, if not recovered + */ + Recoverable: "Recoverable", + + /** + * Denotes a vault and subscription state in which deletion is recoverable within retention interval (90 days), immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled. System wil permanently delete it after 90 days, if not recovered + */ + RecoverableProtectedSubscription: "Recoverable+ProtectedSubscription", + + /** + * Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge when 7 <= SoftDeleteRetentionInDays < 90). This level guarantees the recoverability of the deleted entity during the retention interval, unless a Purge operation is requested, or the subscription is cancelled. + */ + CustomizedRecoverablePurgeable: "CustomizedRecoverable+Purgeable", + + /** + * Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge when 7 <= SoftDeleteRetentionInDays < 90).This level guarantees the recoverability of the deleted entity during the retention interval and while the subscription is still available. + */ + CustomizedRecoverable: "CustomizedRecoverable", + + /** + * Denotes a vault and subscription state in which deletion is recoverable, immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled when 7 <= SoftDeleteRetentionInDays < 90. This level guarantees the recoverability of the deleted entity during the retention interval, and also reflects the fact that the subscription itself cannot be cancelled. + */ + CustomizedRecoverableProtectedSubscription: "CustomizedRecoverable+ProtectedSubscription", +} + +/** + * The secret set parameters. + */ +model SecretSetParameters { + /** + * The value of the secret. + */ + value: string; + + /** + * Application specific metadata in the form of key-value pairs. + */ + tags?: Record; + + /** + * Type of the secret value such as a password. + */ + contentType?: string; + + /** + * The secret management attributes. + */ + @encodedName("application/json", "attributes") + secretAttributes?: SecretAttributes; +} + +/** + * The secret management attributes. + */ +model SecretAttributes { + ...Attributes; + + /** + * softDelete data retention days. Value should be >=7 and <=90 when softDelete enabled, otherwise 0. + */ + @visibility("read") + recoverableDays?: int32; + + /** + * Reflects the deletion recovery level currently in effect for secrets in the current vault. If it contains 'Purgeable', the secret can be permanently deleted by a privileged user; otherwise, only the system can purge the secret, at the end of the retention interval. + */ + @visibility("read") + recoveryLevel?: DeletionRecoveryLevel; +} + +/** + * The object attributes managed by the KeyVault service. + */ +model Attributes { + /** + * Determines whether the object is enabled. + */ + enabled?: boolean; + + /** + * Not before date in UTC. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original casing" + @encodedName("application/json", "nbf") + @encode("unixTimestamp", int32) + NotBefore?: utcDateTime; + + /** + * Expiry date in UTC. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Preserving original casing" + @encodedName("application/json", "exp") + @encode("unixTimestamp", int32) + Expires?: utcDateTime; + + /** + * Creation time in UTC. + */ + @visibility("read") + @encode("unixTimestamp", int32) + created?: utcDateTime; + + /** + * Last updated time in UTC. + */ + @visibility("read") + @encode("unixTimestamp", int32) + updated?: utcDateTime; +} + +/** + * A secret consisting of a value, id and its attributes. + */ +model SecretBundle { + /** + * The secret value. + */ + value?: string; + + /** + * The secret id. + */ + id?: string; + + /** + * The content type of the secret. + */ + contentType?: string; + + /** + * The secret management attributes. + */ + attributes?: SecretAttributes; + + /** + * Application specific metadata in the form of key-value pairs. + */ + tags?: Record; + + /** + * If this is a secret backing a KV certificate, then this field specifies the corresponding key backing the KV certificate. + */ + @visibility("read") + kid?: string; + + /** + * True if the secret's lifetime is managed by key vault. If this is a secret backing a certificate, then managed will be true. + */ + @visibility("read") + managed?: boolean; +} + +/** + * A Deleted Secret consisting of its previous id, attributes and its tags, as well as information on when it will be purged. + */ +model DeletedSecretBundle { + ...SecretBundle; + + /** + * The url of the recovery object, used to identify and recover the deleted secret. + */ + recoveryId?: string; + + /** + * The time when the secret is scheduled to be purged, in UTC + */ + @visibility("read") + @encode("unixTimestamp", int32) + scheduledPurgeDate?: utcDateTime; + + /** + * The time when the secret was deleted, in UTC + */ + @visibility("read") + @encode("unixTimestamp", int32) + deletedDate?: utcDateTime; +} + +/** + * The secret update parameters. + */ +model SecretUpdateParameters { + /** + * Type of the secret value such as a password. + */ + contentType?: string; + + /** + * The secret management attributes. + */ + @encodedName("application/json", "attributes") + secretAttributes?: SecretAttributes; + + /** + * Application specific metadata in the form of key-value pairs. + */ + tags?: Record; +} + +/** + * The secret list result. + */ +@pagedResult +model SecretListResult { + /** + * A response message containing a list of secrets in the key vault along with a link to the next page of secrets. + */ + @items + @visibility("read") + value?: SecretItem[]; + + /** + * The URL to get the next set of secrets. + */ + @nextLink + @visibility("read") + nextLink?: string; +} + +/** + * The secret item containing secret metadata. + */ +model SecretItem { + /** + * Secret identifier. + */ + id?: string; + + /** + * The secret management attributes. + */ + attributes?: SecretAttributes; + + /** + * Application specific metadata in the form of key-value pairs. + */ + tags?: Record; + + /** + * Type of the secret value such as a password. + */ + contentType?: string; + + /** + * True if the secret's lifetime is managed by key vault. If this is a key backing a certificate, then managed will be true. + */ + @visibility("read") + managed?: boolean; +} + +/** + * The deleted secret list result + */ +@pagedResult +model DeletedSecretListResult { + /** + * A response message containing a list of deleted secrets in the key vault along with a link to the next page of deleted secrets. + */ + @items + @visibility("read") + value?: DeletedSecretItem[]; + + /** + * The URL to get the next set of deleted secrets. + */ + @nextLink + @visibility("read") + nextLink?: string; +} + +/** + * The deleted secret item containing metadata about the deleted secret. + */ +model DeletedSecretItem { + ...SecretItem; + + /** + * The url of the recovery object, used to identify and recover the deleted secret. + */ + recoveryId?: string; + + /** + * The time when the secret is scheduled to be purged, in UTC + */ + @visibility("read") + @encode("unixTimestamp", int32) + scheduledPurgeDate?: utcDateTime; + + /** + * The time when the secret was deleted, in UTC + */ + @visibility("read") + @encode("unixTimestamp", int32) + deletedDate?: utcDateTime; +} + +/** + * The backup secret result, containing the backup blob. + */ +model BackupSecretResult { + /** + * The backup blob containing the backed up secret. + */ + @visibility("read") + @encode("base64url") + value?: bytes; +} + +/** + * The secret restore parameters. + */ +model SecretRestoreParameters { + /** + * The backup blob associated with a secret bundle. + */ + @encodedName("application/json", "value") + @encode("base64url") + secretBundleBackup: bytes; +} + +/** + * Properties of the key backing a certificate. + */ +model SecretProperties { + /** + * The media type (MIME type). + */ + contentType?: string; +} diff --git a/specification/keyvault/Security.KeyVault.Secrets/routes.tsp b/specification/keyvault/Security.KeyVault.Secrets/routes.tsp new file mode 100644 index 000000000000..e7116af22de0 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/routes.tsp @@ -0,0 +1,287 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-client-generator-core"; +import "@typespec/rest"; +import "./models.tsp"; +import "../Security.KeyVault.Common/common.tsp"; + +using Azure.Core; +using Azure.ClientGenerator.Core; +using TypeSpec.Rest; +using TypeSpec.Http; + +namespace KeyVault; + +/** + * The SET operation adds a secret to the Azure Key Vault. If the named secret already exists, Azure Key Vault creates a new version of that secret. This operation requires the secrets/set permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "Operation name is already established" +@summary("Sets a secret in a specified key vault.") +@route("/secrets/{secret-name}") +@put +op setSecret is KeyVaultOperation< + { + /** + * The name of the secret. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information. + */ + @pattern("^[0-9a-zA-Z-]+$") + @path("secret-name") + @clientName("name", "go") + secretName: string; + + /** + * The parameters for setting the secret. + */ + #suppress "deprecated" "Property flattening is supported for legacy scenarios like Key Vault's" + @body + @flattenProperty + parameters: SecretSetParameters; + }, + SecretBundle +>; + +/** + * The DELETE operation applies to any secret stored in Azure Key Vault. DELETE cannot be applied to an individual version of a secret. This operation requires the secrets/delete permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Deletes a secret from a specified key vault.") +@route("/secrets/{secret-name}") +@delete +op deleteSecret is KeyVaultOperation< + { + /** + * The name of the secret. + */ + @path("secret-name") + @clientName("name", "go") + secretName: string; + }, + DeletedSecretBundle +>; + +/** + * The UPDATE operation changes specified attributes of an existing stored secret. Attributes that are not specified in the request are left unchanged. The value of a secret itself cannot be changed. This operation requires the secrets/set permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Updates the attributes associated with a specified secret in a given key vault.") +@route("/secrets/{secret-name}/{secret-version}") +@patch +op updateSecret is KeyVaultOperation< + { + /** + * The name of the secret. + */ + @path("secret-name") + @clientName("name", "go") + secretName: string; + + /** + * The version of the secret. + */ + @path("secret-version") + @clientName("version", "go") + secretVersion: string; + + /** + * The parameters for update secret operation. + */ + #suppress "deprecated" "Property flattening is supported for legacy scenarios like Key Vault's" + @body + @flattenProperty + parameters: SecretUpdateParameters; + }, + SecretBundle +>; + +/** + * The GET operation is applicable to any secret stored in Azure Key Vault. This operation requires the secrets/get permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Get a specified secret from a given key vault.") +@route("/secrets/{secret-name}/{secret-version}") +@get +op getSecret is KeyVaultOperation< + { + /** + * The name of the secret. + */ + @path("secret-name") + @clientName("name", "go") + secretName: string; + + /** + * The version of the secret. This URI fragment is optional. If not specified, the latest version of the secret is returned. + */ + @path("secret-version") + @clientName("version", "go") + secretVersion: string; + }, + SecretBundle +>; + +/** + * The Get Secrets operation is applicable to the entire vault. However, only the base secret identifier and its attributes are provided in the response. Individual secret versions are not listed in the response. This operation requires the secrets/list permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "Operation name is already established" +@summary("List secrets in a specified key vault.") +@route("/secrets") +@get +op getSecrets is KeyVaultOperation< + { + /** + * Maximum number of results to return in a page. If not specified the service will return up to 25 results. + */ + @maxValue(25) + @minValue(1) + @query("maxresults") + maxresults?: int32; + }, + SecretListResult +>; + +/** + * The full secret identifier and attributes are provided in the response. No values are returned for the secrets. This operations requires the secrets/list permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "Operation name is already established" +@summary("List all versions of the specified secret.") +@route("/secrets/{secret-name}/versions") +@get +op getSecretVersions is KeyVaultOperation< + { + /** + * The name of the secret. + */ + @path("secret-name") + @clientName("name", "go") + secretName: string; + + /** + * Maximum number of results to return in a page. If not specified the service will return up to 25 results. + */ + @maxValue(25) + @minValue(1) + @query("maxresults") + maxresults?: int32; + }, + SecretListResult +>; + +/** + * The Get Deleted Secrets operation returns the secrets that have been deleted for a vault enabled for soft-delete. This operation requires the secrets/list permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "Operation name is already established" +@summary("Lists deleted secrets for the specified vault.") +@route("/deletedsecrets") +@get +op getDeletedSecrets is KeyVaultOperation< + { + /** + * Maximum number of results to return in a page. If not specified the service will return up to 25 results. + */ + @maxValue(25) + @minValue(1) + @query("maxresults") + maxresults?: int32; + }, + DeletedSecretListResult +>; + +/** + * The Get Deleted Secret operation returns the specified deleted secret along with its attributes. This operation requires the secrets/get permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Gets the specified deleted secret.") +@route("/deletedsecrets/{secret-name}") +@get +op getDeletedSecret is KeyVaultOperation< + { + /** + * The name of the secret. + */ + @path("secret-name") + @clientName("name", "go") + secretName: string; + }, + DeletedSecretBundle +>; + +/** + * The purge deleted secret operation removes the secret permanently, without the possibility of recovery. This operation can only be enabled on a soft-delete enabled vault. This operation requires the secrets/purge permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +#suppress "@azure-tools/typespec-azure-core/use-standard-names" "Operation name is already established" +@summary("Permanently deletes the specified secret.") +@route("/deletedsecrets/{secret-name}") +@delete +op purgeDeletedSecret is KeyVaultOperation< + { + /** + * The name of the secret. + */ + @path("secret-name") + @clientName("name", "go") + secretName: string; + }, + void +>; + +/** + * Recovers the deleted secret in the specified vault. This operation can only be performed on a soft-delete enabled vault. This operation requires the secrets/recover permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Recovers the deleted secret to the latest version.") +@route("/deletedsecrets/{secret-name}/recover") +@post +op recoverDeletedSecret is KeyVaultOperation< + { + /** + * The name of the deleted secret. + */ + @path("secret-name") + @clientName("name", "go") + secretName: string; + }, + SecretBundle +>; + +/** + * Requests that a backup of the specified secret be downloaded to the client. All versions of the secret will be downloaded. This operation requires the secrets/backup permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Backs up the specified secret.") +@route("/secrets/{secret-name}/backup") +@post +op backupSecret is KeyVaultOperation< + { + /** + * The name of the secret. + */ + @path("secret-name") + @clientName("name", "go") + secretName: string; + }, + BackupSecretResult +>; + +/** + * Restores a backed up secret, and all its versions, to a vault. This operation requires the secrets/restore permission. + */ +#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Foundations.Operation is necessary for Key Vault" +@summary("Restores a backed up secret to a vault.") +@route("/secrets/restore") +@post +op restoreSecret is KeyVaultOperation< + { + /** + * The parameters to restore the secret. + */ + #suppress "deprecated" "Property flattening is supported for legacy scenarios like Key Vault's" + @body + @flattenProperty + parameters: SecretRestoreParameters; + }, + SecretBundle +>; diff --git a/specification/keyvault/Security.KeyVault.Secrets/tspconfig.yaml b/specification/keyvault/Security.KeyVault.Secrets/tspconfig.yaml new file mode 100644 index 000000000000..1bfaa45baee6 --- /dev/null +++ b/specification/keyvault/Security.KeyVault.Secrets/tspconfig.yaml @@ -0,0 +1,65 @@ +parameters: + "service-dir": + default: "sdk/keyvault" + "dependencies": + "additionalDirectories": + - "specification/keyvault/Security.KeyVault.Common/" + default: "" + +emit: + - "@azure-tools/typespec-autorest" + +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/data-plane" + +options: + "@azure-tools/typespec-autorest": + azure-resource-provider-folder: "data-plane" + emitter-output-dir: "{project-root}/.." + output-file: "{azure-resource-provider-folder}/Microsoft.KeyVault/{version-status}/{version}/secrets.json" + # Uncomment this line and add "@azure-tools/typespec-python" to your package.json to generate Python code + "@azure-tools/typespec-python": + flavor: azure + "basic-setup-py": true + "package-version": "4.9.0b1" + "package-dir": "azure-keyvault-secrets" + "package-name": "azure-keyvault-secrets" + "output-path": "./azure/keyvault/secrets/_generated" + "@azure-tools/typespec-java": + flavor: azure + "package-dir": "azure-security-keyvault-secrets" + "namespace": "com.azure.security.keyvault.secrets" + "models-subpackage": "implementation.models" + "customization-class": "swagger/src/main/java/SecretsCustomizations.java" + "partial-update": true + "generate-tests": false + "generate-samples": false + "include-api-view-properties": false + # Uncomment this line and add "@azure-tools/typespec-csharp" to your package.json to generate C# code + # "@azure-tools/typespec-csharp": true + "@azure-tools/typespec-ts": + package-dir: "keyvault-secrets" + generateMetadata: true + generateTest: false + src-folder: "src/generated" + experimentalExtensibleEnums: true + isModularLibrary: true + packageDetails: + name: "@azure/keyvault-secrets" + description: "Azure Key Vault Secrets" + flavor: azure + "@azure-tools/typespec-go": + service-dir: "sdk/security/keyvault" + package-dir: "azsecrets" + module: "github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets" + module-version: "0.0.1" + emitter-output-dir: "{project-root}" + override-client-name: "Client" + single-client: true + api-version: "7.5" + inject-spans: true + "@azure-tools/typespec-rust": + crate-name: "azure_security_keyvault_secrets" + crate-version: "0.0.1" + emitter-output-dir: "{project-root}/generated" diff --git a/specification/keyvault/cspell.yaml b/specification/keyvault/cspell.yaml index f2c96666b384..2e251e8fd7ef 100644 --- a/specification/keyvault/cspell.yaml +++ b/specification/keyvault/cspell.yaml @@ -48,6 +48,9 @@ overrides: - filename: '**/specification/keyvault/Security.KeyVault.Certificates/tspconfig.yaml' words: - azcertificates + - filename: '**/specification/keyvault/Security.KeyVault.Secrets/tspconfig.yaml' + words: + - azsecrets - filename: '**/specification/keyvault/data-plane/Microsoft.KeyVault/**/storage.json' words: - regenerte diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/BackupSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/BackupSecret-example.json index 52132c22ed23..34b76f0f89ac 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/BackupSecret-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/BackupSecret-example.json @@ -10,5 +10,7 @@ "value": "KUF6dXJlS2V5VmF1bHRTZWNyZXRCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUppTlRjMk5ESTVaaTB5TlRZNExUUTFZbVV0WW1aaFlTMHpOMlZrTURkbVl6QmpPREVpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLmhERDdfVW9aU1ptR2JYN1dYUTU5WDkxZ0FQb05kdDcwZE1BbmgzbjQ3eWNjbkRNOU5vTm1hY0NHZmlNeUwxU0FlZDk0UjhBNDAtVE81TDNfQ05Qal9pdWIyaW03Z21nbHNPNnFFUVVIWU1tOEh2Wl9odFRrdEl4QzRPWEowYTB0S2hscnczZlBvVVFDZHVGcFg0ekEzYTR4VTZXTUNfYjZZVXZqUjZnSGM5TFRUR2tIazh1RTY0aVQ4cmt5RDRrU3RNcXhnU2lfRVZwUUdjWGdfNE9wQ1dBOUFha0N1NkpybGRaQW9BLUtXTWpQbGhaWHFYWGMyVkJlbUJjRTQ1YzY3QWhqYjJrSi1uQ1c5dHBjWS1JZ3JEUHFzWkswOS1WbHVtcl9SbzQzcG5FeW5jVFpTdzZlX1h6VnN0dUFOZHdiM0E2OVR1c1hfYkJKZ0J2SGQ4cDJSUS5WMTlhMVRacjZ2UjJHdEVaWGtOOXJRLmhwMU5IMmwtZklWbVgwWlNfTlRzekJfUEs1aktDUU5rSnJyRUhRQmZjQ2VjdHhmVU5uVlB6MVBqRWNDblZuV0pCUk4zTlFKZm01MjFLRHp1MzBIVUFEUGVmVHJyMFVFS2x5QTM2cThoWFY3VTdoQ0dHNk85NVpYclRsZlVENDI5RTNTNTQxdVBmWGpGR2cxbHlucFNTNnAtVkFzaXFlY1lpQWNuM1hhNzRhUm5xS3N3ZzhyU1ZOX09hSVU3ak1VVUhYZWY1ZmN0NlFrdWFfYkt6Z2dtR2ZiT2RTdVdNRmVQaF9mMkJMUFNGN3k1NThEMFZxSVlNY0JJR0dMU3BQUU93Q094OFF3Y3NVUEp4ZDFuWkVYYjRVNEJZYlhBcmFMX0NwekYxZlhYWVBsdmVUSGdKNVdrR28tWXNJVzAtT3ZqVGdLN2hIamxpR1psd29HOVUtbTJSVDZfbkhseHhVRFMyY3JseGNmay1OOTlXd0tEdUxFMTM5ZE1mN2RCSEl1aTdxd0RXdm1TN2JMTHYzM05Wd19XSl9DT1VGQjgycy1ELXk0UEdIRzVackhsSDgxa25mLVpRblU0SmZfY2lhMWhmWlY3ZFMxb21UZDQtNnJwZmpTMGxFT3VfZTQ5bUpYUGFpZ0hyLWFQYkFzTXJJQ2JvOUVIR2IzMXJ5SlR2QXF2ZmJDbU10bkdLUDV6aUNiZFh3SU5ONzBJTk5lZnJLWGZkZFBUd0RSV3d1ZkxCcGNlU0U0SG5EWVZVQmdkMDl4UUZidG12UDhhTXhhUlpGSTNpWG1fbmpCNmZfdlNhZUNUakdVYVVuRE1QQkdOQWQ5T2xVX3dvUnMtalNCVnVqd1FQSGlGcm5RWElkXzBRdXRYSm54cTU4aUtlTGJvNDJtOHgwaXBRcnB4aEZoUDdHNmZOWXAwVmxXR0RxZ1Q0VlpPQkZsZWRKUU0yaDQtb2xTbXdtUms0M0Y1cjdKd3h4aENqU1JReWx1MGEyQ0ZONWMyZjIxTElZaFliLWNReWFXMDNpV3hsb04zWld5cDJIb1FlUmZPR3lXUzBiU2NBT3JndGpBYnJaUFIwMGRRNnpSOHNBczFYUzh3dzBlaVczbFpsdjJwVWFxOVpTeVhnTS14b2NTOS1ueXRaWGtWWlUwX2dDVXJBV0ZKNG5XdW9oTGM1RkkyRWFQNWR0SXVWa3dnbXlsR1gtYk9ZeHp3dzVGYmI1V3VEbnJ5aDBMSnVic3Q4VXdLdnl3bk1jQ3duMjZSVTNxQVRudGJubVhJS0FyeGkwMldQVk9oTXdpUWZuX2h1TWk5emp3MEVuaXNWdktNWUNnR2xqNWlGZW5Tc0FKUXBiLUY4bng3OWFJQlJaTUc1a0huUDR5dGxmNm9FTkRsRXNJY21aeEtOdEIzcmJPdVROYUhLTXZBNmxSNzlMMDJZSTZrcEdrUUZnaHpIaTBjTWkwbFdCejRTM1AzUEMzZElZSVlQZ0Q2S05kT2FLWHkta0dWdUlsWFNmVlVrMnpzM0NBeTJhZEJjV0NMV094ZkRoQnlwNTl4MHpBRExvdnZySHRLOWF6TGN3N0lTbVl6eUhYMkpobVdReUYtTFd1VzhfcW41SkFVYlB5Z0RTRDYyMi1PTGZQVDZmc2VTWUVBUTFLVWRwZTFnSV9hZWxVT3FaRWN1aE5SckU1YUp0LTN5TEVLVWZIWXF6WTlGbHJrUE5MUC03Y2xRbmEySEhfZmMzZV9LTGtGUDFhQTJjM0RVaERseGhsTzB2bFVmV0c5eXpXaDNZN0NmRFlFMlBaUzZBcFBlYy0wa1NDcEVKMmtCcnFzWG4yeDJDX0FDdTdCTTVGZXNJQkN0M2NqSEdQSVVQRnEteGVmT0RCXzBQcXZDTXpBOHg5Zm10Ny1sNHhVQlJaa0dtZExhZFoxVzdFUXRNRVpsSWMtbDF1V1UzTU15cFZpVWR0OWxJUHVQVUEwc1NrbWxrTGhNSjgyNE5QN0hyVi01dC1ZNDcxaWVKMHdEUjFxMmU4MU8yazdNeTFlTDY3TlY4OVBHYU81SVR5WG1ueUVXMGtVbl9qa3l1UVRkV3dsS09HZVZIYkJWNFpxSXZHWjdQUS02TEE5eXc3a0dyZFRhVFZXOEdOOV9GY1c2VUhjbzA0U3dqTzY2S2x4VlFJWWpBdEZPZlBjWW5xNzF1RndyQS1UZHVDZG1sUFBHOVpjc2tiQmdrbF8wVk90dmhuc0pwYXZKZ2Zka0d3OF9qMkQzd0Jzemd0VndHNk9nNW16eVFwM2pFc0w3UmNtcXd6WFBOaDdKYXdHVDBJMlRvZHYyQ1Z3MDkzWjJlODFXR1NxRnlIejAxdjFBaGN2T2VWdmFjUGM2Y1JJaVduNW93ZF80d2FBdjlyNjVVdmtWa1FLRXpHUmo5eTZILXdZTTMyV1JyMzBlOU9MRTNKUU5POV9kNjRTRmIwSjZHa2VxUmtnNkVXc2xqN1JYLVU1VlhrS1BtMzNpS3c5dGU2NVBqQUNnZThRVDBYVWZEaUx5a1pGeUdpZ09ZMS1TVDFxUlE1eUhMTXhEc3BPRjFXd1lMQ2c2b3hocTlWMm55Z0U1cUJ2ZnYyWUtFaDdjM1dWNjJrYkw3UXJ2d0xkMHVRZ1FwYmUza3E3dGJzcC1lNWlud3cyY0YxQzByeHNScGZJRHlJMmg4b2xHMi1RQUZkWmtlMUlmaE1FZmNfdUdXX2pqSGJSWXVzYnZCRnpKMDdaOVJsVnFMR1A2WXBnTDFsRTFOY09xUVJyYVdxckdDTWZ6SzZMVENQSl93aHJRam9WTzdVRDJIUEVnUjZ2S3U3cWlmTmo3UjE5OUJuRi1EZmlnbk1TYTFKZkZadDNuVXVZOEhMUXRoUzN4MUMxOE50d3dsaDVuNGxYS3d5MERHenljbVNweE05QkdPNTFRckFmSXRfY0xHbUlzMlJ4MzMyeDRIdEZ3Z05nRzFBazNIUno4TlJ4V3lhNWhjb1NoYURXekhES2gyOVp3Vm4wYXVzeWJpal9uNlFGcnZZbjRSOHdPNlRQV3FrS09JcHkxc1lQNWxyNDc1anZSRVZGaFdCWDBiUXdJdnNlM0Q0a0dFQzgzU3FWYkhxY3phZTNwOFNxaG5tQW5ZYzBIbWp4clJfZUMzT0hYVFBGUFZmNDlVWHdrQjIwY1lvcjJ1dzBaTzJ2TUg3S1QwcjBSWDBQVy1qcGpORFpjSGRSNVVCMXFacGlWLWxaYkw0eF9IZW14aWUxY0RPOHNQSXhIOElUSWtOV0tTR1N2eWdraHBBbGl2RzVEZXJObElkeFE2c0tHQ3RtMDEyT2xjN2thaVFaNHh0TjR5ZVpPU2xyS0s0OTlIcWhObzhkNTNsbFFfMW5ncWlHbzhUSDlzWkFrclYwclc3dkJOSF92UlhBdTc2MnlpZGhZUURYYXJXSEFUMm9DU2hEN1lOdnotekoyZGtEajJMcW5CdFNCWFh5T2xsM3o0ZWFITDd2MDZ1QTgxMVBKQU5YZUdoenNaNFVQQUQ2Q0E4cGlxSHB4WGkxODRHNEJETVU4S2VHeHZLWnJiUlNOT2pTOFNrQUJKZERfSklIZ1RhNEFhNzdPUmNZcVY3OWZ5djFZVHNma2lLR2NUYzZIUjZzUVpsamt2U0NQNjdtTTRGUHRqTHlfX1pDQlNwdnRSVWd5UlpNM1dSOUViNHkxa29uRG4zUjMzN2lpSzdfbGtIa1UtZ21VbUpZUVdnUjYzT01pZUdRUHdNR3BSZXlRWE5yckJVTDN2Z2JYdjlac1ZDcDh1NHRwQjBleXJvUXgxZC1KSWJvOWVyR1VlX0ZzU1Fpd0tIaGFIUk02Nzh5dENkcHJFbDBWeG92TFVrX0xNcTFjN1R4MG5jbFl2WE4yUjhEMXNhU2FibkJSd19CU2tZMFNMSXdhb2RpY2o2ZzdLd0ZfMXB2eThhNF9LbnJNLUNkenBvdHA0aTd4QUJuY2JRVUEwWkpsYlp1elRpR0F4ZjFnclk1Z0dZOTVoWi1XZG1lOWlSazBHRTJGN3d4MlJyLUVvS3lZRjNjak0xMWt6MWFmME9fNFdyOXJoU3JrX1NHU3l2a3ZCTW9NZ0xOX0tSS1BlTjlqUnpwRlVST2VnN2NCbGlhdy1odnZhY2lCeDN2UWRqTE5jTldQdU1UbzVmME1QbmU4TUtXcFBoWjBySElMaEVuYW1pcG82X3pzNjczcE9ma09FS0JWWE9mUDEzR0UwS25SWTBab2JPLWRub254LVdBY1dodFZvX08xbkwwTWE5ZXFMMURhRGhJU0JNbVRIM1hkY2dDTnF0emIwcVMtS1l5Mk9zRzZOakRDVEM1aEI3MXIwU09WMUprNFV2QjdYemxTTW9YUXJnTzF2ZFVwSGtxaVhUM1RJZmlQMWRKcDEweDlSMlp5R0lzUzljQUtNMEZyMGRxQmJmQy16NTJpcWZweW4zUVVqb1Fld2hPYnJwUEZGOF9lUmVNRlIwSXZjUkxnMHpwek56UzU1N1pkQkZhemxNTThLcnkwN2QyUDAyTnZtclUtN1ZjOW8wZm1qem9WOHVVTG9PMkJHdmFRdnFJNmtBTmQ5VWo1X2JkY2NVUzBhcklzcGFZa1UtUXQtNnQxYU5YUUdGZEtUbFMwSVowek54bkNIZWRySEE4SkYtOFg3d1ZpRW1McXJQbU1Sd25sbWx3SnhxLVlReWMydmdUallSbUxCVU5TS3VrZkJsa2VnMmlCRWdySksxVlNyRWswX0ZvOXkzV1EwVlZuNXhEZXlGc1JuWDI4Tkl6alFQLVNXaHhYbzdPYm5YY1cxZHlWNE1fYjdzM096cEMwOTJWcGZYQkpaTDhBeHgxNGY2TmJzTEpXLW95VEdsaTJFb2FCZHJKQ2JkQlNOdWJlbGdRRmU2V2hqSjRGdlNrYVJISjFTT3ltbGFtQmYwaVNDOGM2X1g2SkZORjNmOXYuQjc5SDJvbVIyTU52SndydHVzclJ4UQ" } } - } + }, + "operationId": "BackupSecret", + "title": "BackupSecret" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteSecret-example.json index 0a587f96d1f6..653135fa798f 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteSecret-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/DeleteSecret-example.json @@ -19,5 +19,7 @@ } } } - } + }, + "operationId": "DeleteSecret", + "title": "DeleteSecret" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetDeletedSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetDeletedSecret-example.json index 0a587f96d1f6..f4a7b6032c3b 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetDeletedSecret-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetDeletedSecret-example.json @@ -19,5 +19,7 @@ } } } - } + }, + "operationId": "GetDeletedSecret", + "title": "GetDeletedSecret" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetDeletedSecrets-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetDeletedSecrets-example.json index c5ae746226db..4b7a60f5618d 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetDeletedSecrets-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetDeletedSecrets-example.json @@ -26,5 +26,7 @@ "nextLink": "https://myvault.vault.azure.net:443/deletedsecrets?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNDQhTURBd01EWXlJWE5sWTNKbGRDOU1TVk5VUkVWTVJWUkZSRk5GUTFKRlZGUkZVMVF3THpZMU16ZERSRVJGTlRJNU5qUkRSa1pDTVRkQ1JVWXhORGszUXpSQ1JEZEVJVEF3TURBeU9DRXlNREUzTFRBMUxUQTBWREl5T2pRME9qUXdMamsxTnpZeE1UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=1" } } - } + }, + "operationId": "GetDeletedSecrets", + "title": "GetDeletedSecrets" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetSecret-example.json index 2204b453ba8c..a5e676280a6a 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetSecret-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetSecret-example.json @@ -18,5 +18,7 @@ } } } - } + }, + "operationId": "GetSecret", + "title": "GetSecret" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetSecretVersions-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetSecretVersions-example.json index f3600860543f..8136909694e1 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetSecretVersions-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetSecretVersions-example.json @@ -21,5 +21,7 @@ "nextLink": "https://myvault.vault.azure.net:443/secrets/listsecretversionstest/versions?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNDQhTURBd01EWXlJWE5sWTNKbGRDOU1TVk5VVTBWRFVrVlVWa1ZTVTBsUFRsTlVSVk5VTHpGRU5EazJNa0l4UlVRM09EUkVRa1k0T1RsR016TXpNa1UwTnpZNFFqY3dJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=1" } } - } + }, + "operationId": "GetSecretVersions", + "title": "GetSecretVersions" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetSecrets-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetSecrets-example.json index 45949694f4c1..27fb0a488fad 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetSecrets-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/GetSecrets-example.json @@ -21,5 +21,7 @@ "nextLink": "https://myvault.vault.azure.net:443/secrets?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiE4OCFNREF3TURJeUlYTmxZM0psZEM5TVNWTlVVMFZEVWtWVVZFVlRWREVoTURBd01ESTRJVEl3TVRZdE1USXRNVGxVTWpNNk1UQTZORFV1T0RneE9ERXhNRm9oIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=1" } } - } + }, + "operationId": "GetSecrets", + "title": "GetSecrets" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/PurgeDeletedSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/PurgeDeletedSecret-example.json index 9bb8c71f966f..b3a2205fe9be 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/PurgeDeletedSecret-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/PurgeDeletedSecret-example.json @@ -6,5 +6,7 @@ }, "responses": { "204": {} - } + }, + "operationId": "PurgeDeletedSecret", + "title": "PurgeDeletedSecret" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/RecoverDeletedSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/RecoverDeletedSecret-example.json index 2040831b15a6..aac942bd238e 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/RecoverDeletedSecret-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/RecoverDeletedSecret-example.json @@ -16,5 +16,7 @@ } } } - } + }, + "operationId": "RecoverDeletedSecret", + "title": "RecoverDeletedSecret" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/RestoreSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/RestoreSecret-example.json index 63987c430075..8ced7f494325 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/RestoreSecret-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/RestoreSecret-example.json @@ -21,5 +21,7 @@ } } } - } + }, + "operationId": "RestoreSecret", + "title": "RestoreSecret" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/SetSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/SetSecret-example.json index f9fcf31ba6f0..68cb56bc6af0 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/SetSecret-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/SetSecret-example.json @@ -20,5 +20,7 @@ } } } - } + }, + "operationId": "SetSecret", + "title": "SetSecret" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/UpdateSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/UpdateSecret-example.json index 6b19ff4f4309..41ca0ccb4cd8 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/UpdateSecret-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/examples/UpdateSecret-example.json @@ -30,5 +30,7 @@ } } } - } + }, + "operationId": "UpdateSecret", + "title": "UpdateSecret" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/secrets.json b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/secrets.json index 37a473a21ada..e2e785f64779 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/secrets.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/preview/7.6-preview.1/secrets.json @@ -2,567 +2,564 @@ "swagger": "2.0", "info": { "title": "KeyVaultClient", + "version": "7.6-preview.1", "description": "The key vault client performs cryptographic key operations and vault operations against the Key Vault service.", - "version": "7.6-preview.1" + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] }, + "schemes": [ + "https" + ], "x-ms-parameterized-host": { "hostTemplate": "{vaultBaseUrl}", "useSchemePrefix": false, - "positionInOperation": "first", "parameters": [ { "name": "vaultBaseUrl", - "description": "The vault name, for example https://myvault.vault.azure.net.", + "in": "path", "required": true, "type": "string", - "in": "path", + "format": "uri", "x-ms-skip-url-encoding": true } ] }, - "consumes": [ + "produces": [ "application/json" ], - "produces": [ + "consumes": [ "application/json" ], + "security": [ + { + "OAuth2Auth": [ + "https://vault.azure.net/.default" + ] + } + ], + "securityDefinitions": { + "OAuth2Auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "https://vault.azure.net/.default": "" + } + } + }, + "tags": [], "paths": { - "/secrets/{secret-name}": { - "put": { - "tags": [ - "Secrets" - ], - "operationId": "SetSecret", - "summary": "Sets a secret in a specified key vault.", - "description": " The SET operation adds a secret to the Azure Key Vault. If the named secret already exists, Azure Key Vault creates a new version of that secret. This operation requires the secrets/set permission.", + "/deletedsecrets": { + "get": { + "operationId": "GetDeletedSecrets", + "summary": "Lists deleted secrets for the specified vault.", + "description": "The Get Deleted Secrets operation returns the secrets that have been deleted for a vault enabled for soft-delete. This operation requires the secrets/list permission.", "parameters": [ { - "name": "secret-name", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[0-9a-zA-Z-]+$", - "description": "The name of the secret. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information." - }, - { - "name": "parameters", - "in": "body", - "required": true, - "x-ms-client-flatten": true, - "schema": { - "$ref": "#/definitions/SecretSetParameters" - }, - "description": "The parameters for setting the secret." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "maxresults", + "in": "query", + "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 25 } ], "responses": { "200": { - "description": "A secret bundle containing the result of the set secret request.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SecretBundle" + "$ref": "#/definitions/DeletedSecretListResult" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "SetSecret": { - "$ref": "./examples/SetSecret-example.json" + "GetDeletedSecrets": { + "$ref": "./examples/GetDeletedSecrets-example.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } - }, - "delete": { - "tags": [ - "Secrets" - ], - "operationId": "DeleteSecret", - "summary": "Deletes a secret from a specified key vault.", - "description": "The DELETE operation applies to any secret stored in Azure Key Vault. DELETE cannot be applied to an individual version of a secret. This operation requires the secrets/delete permission.", + } + }, + "/deletedsecrets/{secret-name}": { + "get": { + "operationId": "GetDeletedSecret", + "summary": "Gets the specified deleted secret.", + "description": "The Get Deleted Secret operation returns the specified deleted secret along with its attributes. This operation requires the secrets/get permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "secret-name", "in": "path", + "description": "The name of the secret.", "required": true, "type": "string", - "description": "The name of the secret." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "x-ms-client-name": "secretName" } ], "responses": { "200": { - "description": "The deleted secret and information on when the secret will be deleted, and how to recover the deleted secret.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/DeletedSecretBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "DeleteSecret": { - "$ref": "./examples/DeleteSecret-example.json" + "GetDeletedSecret": { + "$ref": "./examples/GetDeletedSecret-example.json" } } - } - }, - "/secrets/{secret-name}/{secret-version}": { - "patch": { - "tags": [ - "Secrets" - ], - "operationId": "UpdateSecret", - "summary": "Updates the attributes associated with a specified secret in a given key vault.", - "description": "The UPDATE operation changes specified attributes of an existing stored secret. Attributes that are not specified in the request are left unchanged. The value of a secret itself cannot be changed. This operation requires the secrets/set permission.", + }, + "delete": { + "operationId": "PurgeDeletedSecret", + "summary": "Permanently deletes the specified secret.", + "description": "The purge deleted secret operation removes the secret permanently, without the possibility of recovery. This operation can only be enabled on a soft-delete enabled vault. This operation requires the secrets/purge permission.", "parameters": [ { - "name": "secret-name", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the secret." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "secret-version", + "name": "secret-name", "in": "path", + "description": "The name of the secret.", "required": true, "type": "string", - "description": "The version of the secret." - }, - { - "name": "parameters", - "in": "body", - "required": true, - "x-ms-client-flatten": true, - "schema": { - "$ref": "#/definitions/SecretUpdateParameters" - }, - "description": "The parameters for update secret operation." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "x-ms-client-name": "secretName" } ], "responses": { - "200": { - "description": "The updated secret.", - "schema": { - "$ref": "#/definitions/SecretBundle" - } + "204": { + "description": "There is no content to send for this request, but the headers may be useful. " }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "UpdateSecret": { - "$ref": "./examples/UpdateSecret-example.json" + "PurgeDeletedSecret": { + "$ref": "./examples/PurgeDeletedSecret-example.json" } } - }, - "get": { - "tags": [ - "Secrets" - ], - "operationId": "GetSecret", - "summary": "Get a specified secret from a given key vault.", - "description": "The GET operation is applicable to any secret stored in Azure Key Vault. This operation requires the secrets/get permission.", + } + }, + "/deletedsecrets/{secret-name}/recover": { + "post": { + "operationId": "RecoverDeletedSecret", + "summary": "Recovers the deleted secret to the latest version.", + "description": "Recovers the deleted secret in the specified vault. This operation can only be performed on a soft-delete enabled vault. This operation requires the secrets/recover permission.", "parameters": [ { - "name": "secret-name", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the secret." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "secret-version", + "name": "secret-name", "in": "path", + "description": "The name of the deleted secret.", "required": true, "type": "string", - "description": "The version of the secret. This URI fragment is optional. If not specified, the latest version of the secret is returned." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "x-ms-client-name": "secretName" } ], "responses": { "200": { - "description": "The retrieved secret.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/SecretBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "GetSecret": { - "$ref": "./examples/GetSecret-example.json" + "RecoverDeletedSecret": { + "$ref": "./examples/RecoverDeletedSecret-example.json" } } } }, "/secrets": { "get": { - "tags": [ - "Secrets" - ], "operationId": "GetSecrets", "summary": "List secrets in a specified key vault.", "description": "The Get Secrets operation is applicable to the entire vault. However, only the base secret identifier and its attributes are provided in the response. Individual secret versions are not listed in the response. This operation requires the secrets/list permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "maxresults", "in": "query", + "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results.", "required": false, "type": "integer", "format": "int32", "minimum": 1, - "maximum": 25, - "description": "Maximum number of results to return in a page. If not specified, the service will return up to 25 results." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "maximum": 25 } ], "responses": { "200": { - "description": "A response message containing a list of secrets in the vault along with a link to the next page of secrets.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/SecretListResult" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { "GetSecrets": { "$ref": "./examples/GetSecrets-example.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/secrets/{secret-name}/versions": { - "get": { - "tags": [ - "Secrets" - ], - "operationId": "GetSecretVersions", - "summary": "List all versions of the specified secret.", - "description": "The full secret identifier and attributes are provided in the response. No values are returned for the secrets. This operations requires the secrets/list permission.", + "/secrets/{secret-name}": { + "put": { + "operationId": "SetSecret", + "summary": "Sets a secret in a specified key vault.", + "description": "The SET operation adds a secret to the Azure Key Vault. If the named secret already exists, Azure Key Vault creates a new version of that secret. This operation requires the secrets/set permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "secret-name", "in": "path", + "description": "The name of the secret. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information.", "required": true, "type": "string", - "description": "The name of the secret." - }, - { - "name": "maxresults", - "in": "query", - "required": false, - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 25, - "description": "Maximum number of results to return in a page. If not specified, the service will return up to 25 results." + "pattern": "^[0-9a-zA-Z-]+$", + "x-ms-client-name": "secretName" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "parameters", + "in": "body", + "description": "The parameters for setting the secret.", + "required": true, + "schema": { + "$ref": "#/definitions/SecretSetParameters" + } } ], "responses": { "200": { - "description": "A response message containing a list of secrets along with a link to the next page of secrets.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SecretListResult" + "$ref": "#/definitions/SecretBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { - "GetSecretVersions": { - "$ref": "./examples/GetSecretVersions-example.json" + "SetSecret": { + "$ref": "./examples/SetSecret-example.json" } } - } - }, - "/deletedsecrets": { - "get": { - "tags": [ - "DeletedSecrets" - ], - "operationId": "GetDeletedSecrets", - "summary": "Lists deleted secrets for the specified vault.", - "description": "The Get Deleted Secrets operation returns the secrets that have been deleted for a vault enabled for soft-delete. This operation requires the secrets/list permission.", + }, + "delete": { + "operationId": "DeleteSecret", + "summary": "Deletes a secret from a specified key vault.", + "description": "The DELETE operation applies to any secret stored in Azure Key Vault. DELETE cannot be applied to an individual version of a secret. This operation requires the secrets/delete permission.", "parameters": [ { - "name": "maxresults", - "in": "query", - "required": false, - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 25, - "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "secret-name", + "in": "path", + "description": "The name of the secret.", + "required": true, + "type": "string", + "x-ms-client-name": "secretName" } ], "responses": { "200": { - "description": "A response message containing a list of deleted secrets in the vault, along with a link to the next page of deleted secrets.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/DeletedSecretListResult" + "$ref": "#/definitions/DeletedSecretBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { - "GetDeletedSecrets": { - "$ref": "./examples/GetDeletedSecrets-example.json" + "DeleteSecret": { + "$ref": "./examples/DeleteSecret-example.json" } } } }, - "/deletedsecrets/{secret-name}": { + "/secrets/{secret-name}/{secret-version}": { "get": { - "tags": [ - "DeletedSecrets" - ], - "operationId": "GetDeletedSecret", - "summary": "Gets the specified deleted secret.", - "description": "The Get Deleted Secret operation returns the specified deleted secret along with its attributes. This operation requires the secrets/get permission.", + "operationId": "GetSecret", + "summary": "Get a specified secret from a given key vault.", + "description": "The GET operation is applicable to any secret stored in Azure Key Vault. This operation requires the secrets/get permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "secret-name", "in": "path", + "description": "The name of the secret.", "required": true, "type": "string", - "description": "The name of the secret." + "x-ms-client-name": "secretName" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "secret-version", + "in": "path", + "description": "The version of the secret. This URI fragment is optional. If not specified, the latest version of the secret is returned.", + "required": true, + "type": "string", + "x-ms-client-name": "secretVersion" } ], "responses": { "200": { - "description": "A secret bundle of the secret and its attributes.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/DeletedSecretBundle" + "$ref": "#/definitions/SecretBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "GetDeletedSecret": { - "$ref": "./examples/GetDeletedSecret-example.json" + "GetSecret": { + "$ref": "./examples/GetSecret-example.json" } } }, - "delete": { - "tags": [ - "DeletedSecrets" - ], - "operationId": "PurgeDeletedSecret", - "summary": "Permanently deletes the specified secret.", - "description": "The purge deleted secret operation removes the secret permanently, without the possibility of recovery. This operation can only be enabled on a soft-delete enabled vault. This operation requires the secrets/purge permission.", + "patch": { + "operationId": "UpdateSecret", + "summary": "Updates the attributes associated with a specified secret in a given key vault.", + "description": "The UPDATE operation changes specified attributes of an existing stored secret. Attributes that are not specified in the request are left unchanged. The value of a secret itself cannot be changed. This operation requires the secrets/set permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "secret-name", "in": "path", + "description": "The name of the secret.", "required": true, "type": "string", - "description": "The name of the secret." + "x-ms-client-name": "secretName" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "204": { - "description": "No content signaling that the secret was purged forever." + "name": "secret-version", + "in": "path", + "description": "The version of the secret.", + "required": true, + "type": "string", + "x-ms-client-name": "secretVersion" }, - "default": { - "description": "Key Vault error response describing why the operation failed.", + { + "name": "parameters", + "in": "body", + "description": "The parameters for update secret operation.", + "required": true, "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/SecretUpdateParameters" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SecretBundle" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "PurgeDeletedSecret": { - "$ref": "./examples/PurgeDeletedSecret-example.json" + "UpdateSecret": { + "$ref": "./examples/UpdateSecret-example.json" } } } }, - "/deletedsecrets/{secret-name}/recover": { + "/secrets/{secret-name}/backup": { "post": { - "tags": [ - "DeletedSecrets" - ], - "operationId": "RecoverDeletedSecret", - "summary": "Recovers the deleted secret to the latest version.", - "description": "Recovers the deleted secret in the specified vault. This operation can only be performed on a soft-delete enabled vault. This operation requires the secrets/recover permission.", + "operationId": "BackupSecret", + "summary": "Backs up the specified secret.", + "description": "Requests that a backup of the specified secret be downloaded to the client. All versions of the secret will be downloaded. This operation requires the secrets/backup permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "secret-name", "in": "path", + "description": "The name of the secret.", "required": true, "type": "string", - "description": "The name of the deleted secret." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "x-ms-client-name": "secretName" } ], "responses": { "200": { - "description": "A Secret bundle of the original secret and its attributes.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SecretBundle" + "$ref": "#/definitions/BackupSecretResult" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "RecoverDeletedSecret": { - "$ref": "./examples/RecoverDeletedSecret-example.json" + "BackupSecret": { + "$ref": "./examples/BackupSecret-example.json" } } } }, - "/secrets/{secret-name}/backup": { - "post": { - "tags": [ - "Secrets" - ], - "operationId": "BackupSecret", - "summary": "Backs up the specified secret.", - "description": "Requests that a backup of the specified secret be downloaded to the client. All versions of the secret will be downloaded. This operation requires the secrets/backup permission.", + "/secrets/{secret-name}/versions": { + "get": { + "operationId": "GetSecretVersions", + "summary": "List all versions of the specified secret.", + "description": "The full secret identifier and attributes are provided in the response. No values are returned for the secrets. This operations requires the secrets/list permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "secret-name", "in": "path", + "description": "The name of the secret.", "required": true, "type": "string", - "description": "The name of the secret." + "x-ms-client-name": "secretName" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "maxresults", + "in": "query", + "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 25 } ], "responses": { "200": { - "description": "The backup blob containing the backed up secret.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/BackupSecretResult" + "$ref": "#/definitions/SecretListResult" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "BackupSecret": { - "$ref": "./examples/BackupSecret-example.json" + "GetSecretVersions": { + "$ref": "./examples/GetSecretVersions-example.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, "/secrets/restore": { "post": { - "tags": [ - "Secrets" - ], "operationId": "RestoreSecret", "summary": "Restores a backed up secret to a vault.", "description": "Restores a backed up secret, and all its versions, to a vault. This operation requires the secrets/restore permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "parameters", "in": "body", + "description": "The parameters to restore the secret.", "required": true, - "x-ms-client-flatten": true, "schema": { "$ref": "#/definitions/SecretRestoreParameters" - }, - "description": "The parameters to restore the secret." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + } } ], "responses": { "200": { - "description": "Restored secret bundle in the vault.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/SecretBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, @@ -575,7 +572,55 @@ } }, "definitions": { - "SecretBundle": { + "Attributes": { + "type": "object", + "description": "The object attributes managed by the KeyVault service.", + "properties": { + "enabled": { + "type": "boolean", + "description": "Determines whether the object is enabled." + }, + "nbf": { + "type": "integer", + "format": "unixtime", + "description": "Not before date in UTC.", + "x-ms-client-name": "NotBefore" + }, + "exp": { + "type": "integer", + "format": "unixtime", + "description": "Expiry date in UTC.", + "x-ms-client-name": "Expires" + }, + "created": { + "type": "integer", + "format": "unixtime", + "description": "Creation time in UTC.", + "readOnly": true + }, + "updated": { + "type": "integer", + "format": "unixtime", + "description": "Last updated time in UTC.", + "readOnly": true + } + } + }, + "BackupSecretResult": { + "type": "object", + "description": "The backup secret result, containing the backup blob.", + "properties": { + "value": { + "type": "string", + "format": "base64url", + "description": "The backup blob containing the backed up secret.", + "readOnly": true + } + } + }, + "DeletedSecretBundle": { + "type": "object", + "description": "A Deleted Secret consisting of its previous id, attributes and its tags, as well as information on when it will be purged.", "properties": { "value": { "type": "string", @@ -595,25 +640,42 @@ }, "tags": { "type": "object", + "description": "Application specific metadata in the form of key-value pairs.", "additionalProperties": { "type": "string" - }, - "description": "Application specific metadata in the form of key-value pairs." + } }, "kid": { "type": "string", - "readOnly": true, - "description": "If this is a secret backing a KV certificate, then this field specifies the corresponding key backing the KV certificate." + "description": "If this is a secret backing a KV certificate, then this field specifies the corresponding key backing the KV certificate.", + "readOnly": true }, "managed": { "type": "boolean", - "readOnly": true, - "description": "True if the secret's lifetime is managed by key vault. If this is a secret backing a certificate, then managed will be true." + "description": "True if the secret's lifetime is managed by key vault. If this is a secret backing a certificate, then managed will be true.", + "readOnly": true + }, + "recoveryId": { + "type": "string", + "description": "The url of the recovery object, used to identify and recover the deleted secret." + }, + "scheduledPurgeDate": { + "type": "integer", + "format": "unixtime", + "description": "The time when the secret is scheduled to be purged, in UTC", + "readOnly": true + }, + "deletedDate": { + "type": "integer", + "format": "unixtime", + "description": "The time when the secret was deleted, in UTC", + "readOnly": true } - }, - "description": "A secret consisting of a value, id and its attributes." + } }, - "SecretItem": { + "DeletedSecretItem": { + "type": "object", + "description": "The deleted secret item containing metadata about the deleted secret.", "properties": { "id": { "type": "string", @@ -625,10 +687,10 @@ }, "tags": { "type": "object", + "description": "Application specific metadata in the form of key-value pairs.", "additionalProperties": { "type": "string" - }, - "description": "Application specific metadata in the form of key-value pairs." + } }, "contentType": { "type": "string", @@ -636,19 +698,9 @@ }, "managed": { "type": "boolean", - "readOnly": true, - "description": "True if the secret's lifetime is managed by key vault. If this is a key backing a certificate, then managed will be true." - } - }, - "description": "The secret item containing secret metadata." - }, - "DeletedSecretBundle": { - "allOf": [ - { - "$ref": "#/definitions/SecretBundle" - } - ], - "properties": { + "description": "True if the secret's lifetime is managed by key vault. If this is a key backing a certificate, then managed will be true.", + "readOnly": true + }, "recoveryId": { "type": "string", "description": "The url of the recovery object, used to identify and recover the deleted secret." @@ -656,227 +708,343 @@ "scheduledPurgeDate": { "type": "integer", "format": "unixtime", - "readOnly": true, - "description": "The time when the secret is scheduled to be purged, in UTC" + "description": "The time when the secret is scheduled to be purged, in UTC", + "readOnly": true }, "deletedDate": { "type": "integer", "format": "unixtime", - "readOnly": true, - "description": "The time when the secret was deleted, in UTC" + "description": "The time when the secret was deleted, in UTC", + "readOnly": true } - }, - "description": "A Deleted Secret consisting of its previous id, attributes and its tags, as well as information on when it will be purged." + } }, - "DeletedSecretItem": { - "allOf": [ - { - "$ref": "#/definitions/SecretItem" + "DeletedSecretListResult": { + "type": "object", + "description": "The deleted secret list result", + "properties": { + "value": { + "type": "array", + "description": "A response message containing a list of deleted secrets in the key vault along with a link to the next page of deleted secrets.", + "items": { + "$ref": "#/definitions/DeletedSecretItem" + }, + "readOnly": true + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of deleted secrets.", + "readOnly": true } + } + }, + "DeletionRecoveryLevel": { + "type": "string", + "description": "Reflects the deletion recovery level currently in effect for secrets in the current vault. If it contains 'Purgeable', the secret can be permanently deleted by a privileged user; otherwise, only the system can purge the secret, at the end of the retention interval.", + "enum": [ + "Purgeable", + "Recoverable+Purgeable", + "Recoverable", + "Recoverable+ProtectedSubscription", + "CustomizedRecoverable+Purgeable", + "CustomizedRecoverable", + "CustomizedRecoverable+ProtectedSubscription" ], + "x-ms-enum": { + "name": "DeletionRecoveryLevel", + "modelAsString": true, + "values": [ + { + "name": "Purgeable", + "value": "Purgeable", + "description": "Denotes a vault state in which deletion is an irreversible operation, without the possibility for recovery. This level corresponds to no protection being available against a Delete operation; the data is irretrievably lost upon accepting a Delete operation at the entity level or higher (vault, resource group, subscription etc.)" + }, + { + "name": "RecoverablePurgeable", + "value": "Recoverable+Purgeable", + "description": "Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval (90 days), unless a Purge operation is requested, or the subscription is cancelled. System wil permanently delete it after 90 days, if not recovered" + }, + { + "name": "Recoverable", + "value": "Recoverable", + "description": "Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval (90 days) and while the subscription is still available. System wil permanently delete it after 90 days, if not recovered" + }, + { + "name": "RecoverableProtectedSubscription", + "value": "Recoverable+ProtectedSubscription", + "description": "Denotes a vault and subscription state in which deletion is recoverable within retention interval (90 days), immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled. System wil permanently delete it after 90 days, if not recovered" + }, + { + "name": "CustomizedRecoverablePurgeable", + "value": "CustomizedRecoverable+Purgeable", + "description": "Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge when 7 <= SoftDeleteRetentionInDays < 90). This level guarantees the recoverability of the deleted entity during the retention interval, unless a Purge operation is requested, or the subscription is cancelled." + }, + { + "name": "CustomizedRecoverable", + "value": "CustomizedRecoverable", + "description": "Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge when 7 <= SoftDeleteRetentionInDays < 90).This level guarantees the recoverability of the deleted entity during the retention interval and while the subscription is still available." + }, + { + "name": "CustomizedRecoverableProtectedSubscription", + "value": "CustomizedRecoverable+ProtectedSubscription", + "description": "Denotes a vault and subscription state in which deletion is recoverable, immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled when 7 <= SoftDeleteRetentionInDays < 90. This level guarantees the recoverability of the deleted entity during the retention interval, and also reflects the fact that the subscription itself cannot be cancelled." + } + ] + } + }, + "Error": { + "type": "object", "properties": { - "recoveryId": { + "code": { "type": "string", - "description": "The url of the recovery object, used to identify and recover the deleted secret." + "description": "The error code.", + "readOnly": true }, - "scheduledPurgeDate": { - "type": "integer", - "format": "unixtime", - "readOnly": true, - "description": "The time when the secret is scheduled to be purged, in UTC" + "message": { + "type": "string", + "description": "The error message.", + "readOnly": true }, - "deletedDate": { - "type": "integer", - "format": "unixtime", + "innererror": { + "$ref": "#/definitions/Error", + "description": "The key vault server error.", "readOnly": true, - "description": "The time when the secret was deleted, in UTC" + "x-ms-client-name": "innerError" } }, - "description": "The deleted secret item containing metadata about the deleted secret." + "x-nullable": true }, - "SecretAttributes": { - "allOf": [ - { - "$ref": "common.json#/definitions/Attributes" + "KeyVaultError": { + "type": "object", + "description": "The key vault error exception.", + "properties": { + "error": { + "$ref": "#/definitions/Error", + "description": "The key vault server error.", + "readOnly": true } - ], + } + }, + "SecretAttributes": { + "type": "object", + "description": "The secret management attributes.", "properties": { + "enabled": { + "type": "boolean", + "description": "Determines whether the object is enabled." + }, + "nbf": { + "type": "integer", + "format": "unixtime", + "description": "Not before date in UTC.", + "x-ms-client-name": "NotBefore" + }, + "exp": { + "type": "integer", + "format": "unixtime", + "description": "Expiry date in UTC.", + "x-ms-client-name": "Expires" + }, + "created": { + "type": "integer", + "format": "unixtime", + "description": "Creation time in UTC.", + "readOnly": true + }, + "updated": { + "type": "integer", + "format": "unixtime", + "description": "Last updated time in UTC.", + "readOnly": true + }, "recoverableDays": { "type": "integer", "format": "int32", - "readOnly": true, - "description": "softDelete data retention days. Value should be >=7 and <=90 when softDelete enabled, otherwise 0." + "description": "softDelete data retention days. Value should be >=7 and <=90 when softDelete enabled, otherwise 0.", + "readOnly": true }, "recoveryLevel": { - "type": "string", + "$ref": "#/definitions/DeletionRecoveryLevel", "description": "Reflects the deletion recovery level currently in effect for secrets in the current vault. If it contains 'Purgeable', the secret can be permanently deleted by a privileged user; otherwise, only the system can purge the secret, at the end of the retention interval.", - "enum": [ - "Purgeable", - "Recoverable+Purgeable", - "Recoverable", - "Recoverable+ProtectedSubscription", - "CustomizedRecoverable+Purgeable", - "CustomizedRecoverable", - "CustomizedRecoverable+ProtectedSubscription" - ], - "x-ms-enum": { - "name": "DeletionRecoveryLevel", - "modelAsString": true, - "values": [ - { - "value": "Purgeable", - "description": "Denotes a vault state in which deletion is an irreversible operation, without the possibility for recovery. This level corresponds to no protection being available against a Delete operation; the data is irretrievably lost upon accepting a Delete operation at the entity level or higher (vault, resource group, subscription etc.)" - }, - { - "value": "Recoverable+Purgeable", - "description": "Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval (90 days), unless a Purge operation is requested, or the subscription is cancelled. System wil permanently delete it after 90 days, if not recovered" - }, - { - "value": "Recoverable", - "description": "Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval(90 days) and while the subscription is still available. System wil permanently delete it after 90 days, if not recovered" - }, - { - "value": "Recoverable+ProtectedSubscription", - "description": "Denotes a vault and subscription state in which deletion is recoverable within retention interval (90 days), immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled. System wil permanently delete it after 90 days, if not recovered" - }, - { - "value": "CustomizedRecoverable+Purgeable", - "description": "Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge when 7<= SoftDeleteRetentionInDays < 90). This level guarantees the recoverability of the deleted entity during the retention interval, unless a Purge operation is requested, or the subscription is cancelled." - }, - { - "value": "CustomizedRecoverable", - "description": "Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge when 7<= SoftDeleteRetentionInDays < 90).This level guarantees the recoverability of the deleted entity during the retention interval and while the subscription is still available." - }, - { - "value": "CustomizedRecoverable+ProtectedSubscription", - "description": "Denotes a vault and subscription state in which deletion is recoverable, immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled when 7<= SoftDeleteRetentionInDays < 90. This level guarantees the recoverability of the deleted entity during the retention interval, and also reflects the fact that the subscription itself cannot be cancelled." - } - ] - }, - "readOnly": true, - "x-nullable": false + "readOnly": true } - }, - "description": "The secret management attributes." + } }, - "SecretRestoreParameters": { + "SecretBundle": { + "type": "object", + "description": "A secret consisting of a value, id and its attributes.", "properties": { "value": { "type": "string", - "x-ms-client-name": "secretBundleBackup", - "format": "base64url", - "description": "The backup blob associated with a secret bundle." - } - }, - "description": "The secret restore parameters.", - "required": [ - "value" - ] - }, - "SecretProperties": { - "properties": { - "contentType": { + "description": "The secret value." + }, + "id": { "type": "string", - "description": "The media type (MIME type)." - } - }, - "description": "Properties of the key backing a certificate." - }, - "SecretSetParameters": { - "properties": { - "value": { + "description": "The secret id." + }, + "contentType": { "type": "string", - "description": "The value of the secret." + "description": "The content type of the secret." + }, + "attributes": { + "$ref": "#/definitions/SecretAttributes", + "description": "The secret management attributes." }, "tags": { "type": "object", + "description": "Application specific metadata in the form of key-value pairs.", "additionalProperties": { "type": "string" - }, - "description": "Application specific metadata in the form of key-value pairs." + } }, - "contentType": { + "kid": { "type": "string", - "description": "Type of the secret value such as a password." + "description": "If this is a secret backing a KV certificate, then this field specifies the corresponding key backing the KV certificate.", + "readOnly": true }, - "attributes": { - "x-ms-client-name": "secretAttributes", - "$ref": "#/definitions/SecretAttributes", - "description": "The secret management attributes." + "managed": { + "type": "boolean", + "description": "True if the secret's lifetime is managed by key vault. If this is a secret backing a certificate, then managed will be true.", + "readOnly": true } - }, - "description": "The secret set parameters.", - "required": [ - "value" - ] + } }, - "SecretUpdateParameters": { + "SecretItem": { + "type": "object", + "description": "The secret item containing secret metadata.", "properties": { - "contentType": { + "id": { "type": "string", - "description": "Type of the secret value such as a password." + "description": "Secret identifier." }, "attributes": { - "x-ms-client-name": "secretAttributes", "$ref": "#/definitions/SecretAttributes", "description": "The secret management attributes." }, "tags": { "type": "object", + "description": "Application specific metadata in the form of key-value pairs.", "additionalProperties": { "type": "string" - }, - "description": "Application specific metadata in the form of key-value pairs." + } + }, + "contentType": { + "type": "string", + "description": "Type of the secret value such as a password." + }, + "managed": { + "type": "boolean", + "description": "True if the secret's lifetime is managed by key vault. If this is a key backing a certificate, then managed will be true.", + "readOnly": true } - }, - "description": "The secret update parameters." + } }, "SecretListResult": { + "type": "object", + "description": "The secret list result.", "properties": { "value": { "type": "array", + "description": "A response message containing a list of secrets in the key vault along with a link to the next page of secrets.", "items": { "$ref": "#/definitions/SecretItem" }, - "readOnly": true, - "description": "A response message containing a list of secrets in the key vault along with a link to the next page of secrets." + "readOnly": true }, "nextLink": { "type": "string", - "readOnly": true, - "description": "The URL to get the next set of secrets." + "description": "The URL to get the next set of secrets.", + "readOnly": true } - }, - "description": "The secret list result." + } }, - "DeletedSecretListResult": { + "SecretProperties": { + "type": "object", + "description": "Properties of the key backing a certificate.", + "properties": { + "contentType": { + "type": "string", + "description": "The media type (MIME type)." + } + } + }, + "SecretRestoreParameters": { + "type": "object", + "description": "The secret restore parameters.", "properties": { "value": { - "type": "array", - "items": { - "$ref": "#/definitions/DeletedSecretItem" - }, - "readOnly": true, - "description": "A response message containing a list of the deleted secrets in the vault along with a link to the next page of deleted secrets" - }, - "nextLink": { "type": "string", - "readOnly": true, - "description": "The URL to get the next set of deleted secrets." + "format": "base64url", + "description": "The backup blob associated with a secret bundle.", + "x-ms-client-name": "secretBundleBackup" } }, - "description": "The deleted secret list result" + "required": [ + "value" + ] }, - "BackupSecretResult": { + "SecretSetParameters": { + "type": "object", + "description": "The secret set parameters.", "properties": { "value": { "type": "string", - "format": "base64url", - "readOnly": true, - "description": "The backup blob containing the backed up secret." + "description": "The value of the secret." + }, + "tags": { + "type": "object", + "description": "Application specific metadata in the form of key-value pairs.", + "additionalProperties": { + "type": "string" + } + }, + "contentType": { + "type": "string", + "description": "Type of the secret value such as a password." + }, + "attributes": { + "$ref": "#/definitions/SecretAttributes", + "description": "The secret management attributes.", + "x-ms-client-name": "secretAttributes" } }, - "description": "The backup secret result, containing the backup blob." + "required": [ + "value" + ] + }, + "SecretUpdateParameters": { + "type": "object", + "description": "The secret update parameters.", + "properties": { + "contentType": { + "type": "string", + "description": "Type of the secret value such as a password." + }, + "attributes": { + "$ref": "#/definitions/SecretAttributes", + "description": "The secret management attributes.", + "x-ms-client-name": "secretAttributes" + }, + "tags": { + "type": "object", + "description": "Application specific metadata in the form of key-value pairs.", + "additionalProperties": { + "type": "string" + } + } + } + } + }, + "parameters": { + "Azure.Core.Foundations.ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "The API version to use for this operation.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method", + "x-ms-client-name": "apiVersion" } } } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/BackupSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/BackupSecret-example.json index f470b20b3ebb..a6c3bf7d993c 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/BackupSecret-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/BackupSecret-example.json @@ -10,5 +10,7 @@ "value": "KUF6dXJlS2V5VmF1bHRTZWNyZXRCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUppTlRjMk5ESTVaaTB5TlRZNExUUTFZbVV0WW1aaFlTMHpOMlZrTURkbVl6QmpPREVpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLmhERDdfVW9aU1ptR2JYN1dYUTU5WDkxZ0FQb05kdDcwZE1BbmgzbjQ3eWNjbkRNOU5vTm1hY0NHZmlNeUwxU0FlZDk0UjhBNDAtVE81TDNfQ05Qal9pdWIyaW03Z21nbHNPNnFFUVVIWU1tOEh2Wl9odFRrdEl4QzRPWEowYTB0S2hscnczZlBvVVFDZHVGcFg0ekEzYTR4VTZXTUNfYjZZVXZqUjZnSGM5TFRUR2tIazh1RTY0aVQ4cmt5RDRrU3RNcXhnU2lfRVZwUUdjWGdfNE9wQ1dBOUFha0N1NkpybGRaQW9BLUtXTWpQbGhaWHFYWGMyVkJlbUJjRTQ1YzY3QWhqYjJrSi1uQ1c5dHBjWS1JZ3JEUHFzWkswOS1WbHVtcl9SbzQzcG5FeW5jVFpTdzZlX1h6VnN0dUFOZHdiM0E2OVR1c1hfYkJKZ0J2SGQ4cDJSUS5WMTlhMVRacjZ2UjJHdEVaWGtOOXJRLmhwMU5IMmwtZklWbVgwWlNfTlRzekJfUEs1aktDUU5rSnJyRUhRQmZjQ2VjdHhmVU5uVlB6MVBqRWNDblZuV0pCUk4zTlFKZm01MjFLRHp1MzBIVUFEUGVmVHJyMFVFS2x5QTM2cThoWFY3VTdoQ0dHNk85NVpYclRsZlVENDI5RTNTNTQxdVBmWGpGR2cxbHlucFNTNnAtVkFzaXFlY1lpQWNuM1hhNzRhUm5xS3N3ZzhyU1ZOX09hSVU3ak1VVUhYZWY1ZmN0NlFrdWFfYkt6Z2dtR2ZiT2RTdVdNRmVQaF9mMkJMUFNGN3k1NThEMFZxSVlNY0JJR0dMU3BQUU93Q094OFF3Y3NVUEp4ZDFuWkVYYjRVNEJZYlhBcmFMX0NwekYxZlhYWVBsdmVUSGdKNVdrR28tWXNJVzAtT3ZqVGdLN2hIamxpR1psd29HOVUtbTJSVDZfbkhseHhVRFMyY3JseGNmay1OOTlXd0tEdUxFMTM5ZE1mN2RCSEl1aTdxd0RXdm1TN2JMTHYzM05Wd19XSl9DT1VGQjgycy1ELXk0UEdIRzVackhsSDgxa25mLVpRblU0SmZfY2lhMWhmWlY3ZFMxb21UZDQtNnJwZmpTMGxFT3VfZTQ5bUpYUGFpZ0hyLWFQYkFzTXJJQ2JvOUVIR2IzMXJ5SlR2QXF2ZmJDbU10bkdLUDV6aUNiZFh3SU5ONzBJTk5lZnJLWGZkZFBUd0RSV3d1ZkxCcGNlU0U0SG5EWVZVQmdkMDl4UUZidG12UDhhTXhhUlpGSTNpWG1fbmpCNmZfdlNhZUNUakdVYVVuRE1QQkdOQWQ5T2xVX3dvUnMtalNCVnVqd1FQSGlGcm5RWElkXzBRdXRYSm54cTU4aUtlTGJvNDJtOHgwaXBRcnB4aEZoUDdHNmZOWXAwVmxXR0RxZ1Q0VlpPQkZsZWRKUU0yaDQtb2xTbXdtUms0M0Y1cjdKd3h4aENqU1JReWx1MGEyQ0ZONWMyZjIxTElZaFliLWNReWFXMDNpV3hsb04zWld5cDJIb1FlUmZPR3lXUzBiU2NBT3JndGpBYnJaUFIwMGRRNnpSOHNBczFYUzh3dzBlaVczbFpsdjJwVWFxOVpTeVhnTS14b2NTOS1ueXRaWGtWWlUwX2dDVXJBV0ZKNG5XdW9oTGM1RkkyRWFQNWR0SXVWa3dnbXlsR1gtYk9ZeHp3dzVGYmI1V3VEbnJ5aDBMSnVic3Q4VXdLdnl3bk1jQ3duMjZSVTNxQVRudGJubVhJS0FyeGkwMldQVk9oTXdpUWZuX2h1TWk5emp3MEVuaXNWdktNWUNnR2xqNWlGZW5Tc0FKUXBiLUY4bng3OWFJQlJaTUc1a0huUDR5dGxmNm9FTkRsRXNJY21aeEtOdEIzcmJPdVROYUhLTXZBNmxSNzlMMDJZSTZrcEdrUUZnaHpIaTBjTWkwbFdCejRTM1AzUEMzZElZSVlQZ0Q2S05kT2FLWHkta0dWdUlsWFNmVlVrMnpzM0NBeTJhZEJjV0NMV094ZkRoQnlwNTl4MHpBRExvdnZySHRLOWF6TGN3N0lTbVl6eUhYMkpobVdReUYtTFd1VzhfcW41SkFVYlB5Z0RTRDYyMi1PTGZQVDZmc2VTWUVBUTFLVWRwZTFnSV9hZWxVT3FaRWN1aE5SckU1YUp0LTN5TEVLVWZIWXF6WTlGbHJrUE5MUC03Y2xRbmEySEhfZmMzZV9LTGtGUDFhQTJjM0RVaERseGhsTzB2bFVmV0c5eXpXaDNZN0NmRFlFMlBaUzZBcFBlYy0wa1NDcEVKMmtCcnFzWG4yeDJDX0FDdTdCTTVGZXNJQkN0M2NqSEdQSVVQRnEteGVmT0RCXzBQcXZDTXpBOHg5Zm10Ny1sNHhVQlJaa0dtZExhZFoxVzdFUXRNRVpsSWMtbDF1V1UzTU15cFZpVWR0OWxJUHVQVUEwc1NrbWxrTGhNSjgyNE5QN0hyVi01dC1ZNDcxaWVKMHdEUjFxMmU4MU8yazdNeTFlTDY3TlY4OVBHYU81SVR5WG1ueUVXMGtVbl9qa3l1UVRkV3dsS09HZVZIYkJWNFpxSXZHWjdQUS02TEE5eXc3a0dyZFRhVFZXOEdOOV9GY1c2VUhjbzA0U3dqTzY2S2x4VlFJWWpBdEZPZlBjWW5xNzF1RndyQS1UZHVDZG1sUFBHOVpjc2tiQmdrbF8wVk90dmhuc0pwYXZKZ2Zka0d3OF9qMkQzd0Jzemd0VndHNk9nNW16eVFwM2pFc0w3UmNtcXd6WFBOaDdKYXdHVDBJMlRvZHYyQ1Z3MDkzWjJlODFXR1NxRnlIejAxdjFBaGN2T2VWdmFjUGM2Y1JJaVduNW93ZF80d2FBdjlyNjVVdmtWa1FLRXpHUmo5eTZILXdZTTMyV1JyMzBlOU9MRTNKUU5POV9kNjRTRmIwSjZHa2VxUmtnNkVXc2xqN1JYLVU1VlhrS1BtMzNpS3c5dGU2NVBqQUNnZThRVDBYVWZEaUx5a1pGeUdpZ09ZMS1TVDFxUlE1eUhMTXhEc3BPRjFXd1lMQ2c2b3hocTlWMm55Z0U1cUJ2ZnYyWUtFaDdjM1dWNjJrYkw3UXJ2d0xkMHVRZ1FwYmUza3E3dGJzcC1lNWlud3cyY0YxQzByeHNScGZJRHlJMmg4b2xHMi1RQUZkWmtlMUlmaE1FZmNfdUdXX2pqSGJSWXVzYnZCRnpKMDdaOVJsVnFMR1A2WXBnTDFsRTFOY09xUVJyYVdxckdDTWZ6SzZMVENQSl93aHJRam9WTzdVRDJIUEVnUjZ2S3U3cWlmTmo3UjE5OUJuRi1EZmlnbk1TYTFKZkZadDNuVXVZOEhMUXRoUzN4MUMxOE50d3dsaDVuNGxYS3d5MERHenljbVNweE05QkdPNTFRckFmSXRfY0xHbUlzMlJ4MzMyeDRIdEZ3Z05nRzFBazNIUno4TlJ4V3lhNWhjb1NoYURXekhES2gyOVp3Vm4wYXVzeWJpal9uNlFGcnZZbjRSOHdPNlRQV3FrS09JcHkxc1lQNWxyNDc1anZSRVZGaFdCWDBiUXdJdnNlM0Q0a0dFQzgzU3FWYkhxY3phZTNwOFNxaG5tQW5ZYzBIbWp4clJfZUMzT0hYVFBGUFZmNDlVWHdrQjIwY1lvcjJ1dzBaTzJ2TUg3S1QwcjBSWDBQVy1qcGpORFpjSGRSNVVCMXFacGlWLWxaYkw0eF9IZW14aWUxY0RPOHNQSXhIOElUSWtOV0tTR1N2eWdraHBBbGl2RzVEZXJObElkeFE2c0tHQ3RtMDEyT2xjN2thaVFaNHh0TjR5ZVpPU2xyS0s0OTlIcWhObzhkNTNsbFFfMW5ncWlHbzhUSDlzWkFrclYwclc3dkJOSF92UlhBdTc2MnlpZGhZUURYYXJXSEFUMm9DU2hEN1lOdnotekoyZGtEajJMcW5CdFNCWFh5T2xsM3o0ZWFITDd2MDZ1QTgxMVBKQU5YZUdoenNaNFVQQUQ2Q0E4cGlxSHB4WGkxODRHNEJETVU4S2VHeHZLWnJiUlNOT2pTOFNrQUJKZERfSklIZ1RhNEFhNzdPUmNZcVY3OWZ5djFZVHNma2lLR2NUYzZIUjZzUVpsamt2U0NQNjdtTTRGUHRqTHlfX1pDQlNwdnRSVWd5UlpNM1dSOUViNHkxa29uRG4zUjMzN2lpSzdfbGtIa1UtZ21VbUpZUVdnUjYzT01pZUdRUHdNR3BSZXlRWE5yckJVTDN2Z2JYdjlac1ZDcDh1NHRwQjBleXJvUXgxZC1KSWJvOWVyR1VlX0ZzU1Fpd0tIaGFIUk02Nzh5dENkcHJFbDBWeG92TFVrX0xNcTFjN1R4MG5jbFl2WE4yUjhEMXNhU2FibkJSd19CU2tZMFNMSXdhb2RpY2o2ZzdLd0ZfMXB2eThhNF9LbnJNLUNkenBvdHA0aTd4QUJuY2JRVUEwWkpsYlp1elRpR0F4ZjFnclk1Z0dZOTVoWi1XZG1lOWlSazBHRTJGN3d4MlJyLUVvS3lZRjNjak0xMWt6MWFmME9fNFdyOXJoU3JrX1NHU3l2a3ZCTW9NZ0xOX0tSS1BlTjlqUnpwRlVST2VnN2NCbGlhdy1odnZhY2lCeDN2UWRqTE5jTldQdU1UbzVmME1QbmU4TUtXcFBoWjBySElMaEVuYW1pcG82X3pzNjczcE9ma09FS0JWWE9mUDEzR0UwS25SWTBab2JPLWRub254LVdBY1dodFZvX08xbkwwTWE5ZXFMMURhRGhJU0JNbVRIM1hkY2dDTnF0emIwcVMtS1l5Mk9zRzZOakRDVEM1aEI3MXIwU09WMUprNFV2QjdYemxTTW9YUXJnTzF2ZFVwSGtxaVhUM1RJZmlQMWRKcDEweDlSMlp5R0lzUzljQUtNMEZyMGRxQmJmQy16NTJpcWZweW4zUVVqb1Fld2hPYnJwUEZGOF9lUmVNRlIwSXZjUkxnMHpwek56UzU1N1pkQkZhemxNTThLcnkwN2QyUDAyTnZtclUtN1ZjOW8wZm1qem9WOHVVTG9PMkJHdmFRdnFJNmtBTmQ5VWo1X2JkY2NVUzBhcklzcGFZa1UtUXQtNnQxYU5YUUdGZEtUbFMwSVowek54bkNIZWRySEE4SkYtOFg3d1ZpRW1McXJQbU1Sd25sbWx3SnhxLVlReWMydmdUallSbUxCVU5TS3VrZkJsa2VnMmlCRWdySksxVlNyRWswX0ZvOXkzV1EwVlZuNXhEZXlGc1JuWDI4Tkl6alFQLVNXaHhYbzdPYm5YY1cxZHlWNE1fYjdzM096cEMwOTJWcGZYQkpaTDhBeHgxNGY2TmJzTEpXLW95VEdsaTJFb2FCZHJKQ2JkQlNOdWJlbGdRRmU2V2hqSjRGdlNrYVJISjFTT3ltbGFtQmYwaVNDOGM2X1g2SkZORjNmOXYuQjc5SDJvbVIyTU52SndydHVzclJ4UQ" } } - } + }, + "operationId": "BackupSecret", + "title": "BackupSecret" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteSecret-example.json index 31502dbd78ec..580907cd0ae2 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteSecret-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/DeleteSecret-example.json @@ -19,5 +19,7 @@ } } } - } + }, + "operationId": "DeleteSecret", + "title": "DeleteSecret" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetDeletedSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetDeletedSecret-example.json index 31502dbd78ec..c9a77fc57e97 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetDeletedSecret-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetDeletedSecret-example.json @@ -19,5 +19,7 @@ } } } - } + }, + "operationId": "GetDeletedSecret", + "title": "GetDeletedSecret" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetDeletedSecrets-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetDeletedSecrets-example.json index 051f00b8067b..e9cdabc9e3ca 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetDeletedSecrets-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetDeletedSecrets-example.json @@ -26,5 +26,7 @@ "nextLink": "https://myvault.vault.azure.net:443/deletedsecrets?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNDQhTURBd01EWXlJWE5sWTNKbGRDOU1TVk5VUkVWTVJWUkZSRk5GUTFKRlZGUkZVMVF3THpZMU16ZERSRVJGTlRJNU5qUkRSa1pDTVRkQ1JVWXhORGszUXpSQ1JEZEVJVEF3TURBeU9DRXlNREUzTFRBMUxUQTBWREl5T2pRME9qUXdMamsxTnpZeE1UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=1" } } - } + }, + "operationId": "GetDeletedSecrets", + "title": "GetDeletedSecrets" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetSecret-example.json index da5ac1b9718b..b3f0d4054038 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetSecret-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetSecret-example.json @@ -18,5 +18,7 @@ } } } - } + }, + "operationId": "GetSecret", + "title": "GetSecret" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetSecretVersions-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetSecretVersions-example.json index 6418b20967a6..4158379a8993 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetSecretVersions-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetSecretVersions-example.json @@ -21,5 +21,7 @@ "nextLink": "https://myvault.vault.azure.net:443/secrets/listsecretversionstest/versions?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNDQhTURBd01EWXlJWE5sWTNKbGRDOU1TVk5VVTBWRFVrVlVWa1ZTVTBsUFRsTlVSVk5VTHpGRU5EazJNa0l4UlVRM09EUkVRa1k0T1RsR016TXpNa1UwTnpZNFFqY3dJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=1" } } - } + }, + "operationId": "GetSecretVersions", + "title": "GetSecretVersions" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetSecrets-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetSecrets-example.json index a27ddc120b14..b29507e8103a 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetSecrets-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/GetSecrets-example.json @@ -21,5 +21,7 @@ "nextLink": "https://myvault.vault.azure.net:443/secrets?api-version=7.2&$skiptoken=eyJOZXh0TWFya2VyIjoiMiE4OCFNREF3TURJeUlYTmxZM0psZEM5TVNWTlVVMFZEVWtWVVZFVlRWREVoTURBd01ESTRJVEl3TVRZdE1USXRNVGxVTWpNNk1UQTZORFV1T0RneE9ERXhNRm9oIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=1" } } - } + }, + "operationId": "GetSecrets", + "title": "GetSecrets" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/PurgeDeletedSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/PurgeDeletedSecret-example.json index 92e41d3849ee..47ecc8f0eab1 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/PurgeDeletedSecret-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/PurgeDeletedSecret-example.json @@ -6,5 +6,7 @@ }, "responses": { "204": {} - } + }, + "operationId": "PurgeDeletedSecret", + "title": "PurgeDeletedSecret" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/RecoverDeletedSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/RecoverDeletedSecret-example.json index d01289149012..b5f90ae4f3cb 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/RecoverDeletedSecret-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/RecoverDeletedSecret-example.json @@ -16,5 +16,7 @@ } } } - } + }, + "operationId": "RecoverDeletedSecret", + "title": "RecoverDeletedSecret" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/RestoreSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/RestoreSecret-example.json index b0995ad32ff5..a9de7743a890 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/RestoreSecret-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/RestoreSecret-example.json @@ -21,5 +21,7 @@ } } } - } + }, + "operationId": "RestoreSecret", + "title": "RestoreSecret" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/SetSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/SetSecret-example.json index 4ea0fe7fb9c3..84278bcb30ae 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/SetSecret-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/SetSecret-example.json @@ -20,5 +20,7 @@ } } } - } + }, + "operationId": "SetSecret", + "title": "SetSecret" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/UpdateSecret-example.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/UpdateSecret-example.json index 8f1bf561a697..77ca7100b64d 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/UpdateSecret-example.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/examples/UpdateSecret-example.json @@ -30,5 +30,7 @@ } } } - } + }, + "operationId": "UpdateSecret", + "title": "UpdateSecret" } diff --git a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/secrets.json b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/secrets.json index 100cde8d9a0c..63f5252daa11 100644 --- a/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/secrets.json +++ b/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.5/secrets.json @@ -2,567 +2,564 @@ "swagger": "2.0", "info": { "title": "KeyVaultClient", + "version": "7.5", "description": "The key vault client performs cryptographic key operations and vault operations against the Key Vault service.", - "version": "7.5" + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] }, + "schemes": [ + "https" + ], "x-ms-parameterized-host": { "hostTemplate": "{vaultBaseUrl}", "useSchemePrefix": false, - "positionInOperation": "first", "parameters": [ { "name": "vaultBaseUrl", - "description": "The vault name, for example https://myvault.vault.azure.net.", + "in": "path", "required": true, "type": "string", - "in": "path", + "format": "uri", "x-ms-skip-url-encoding": true } ] }, - "consumes": [ + "produces": [ "application/json" ], - "produces": [ + "consumes": [ "application/json" ], + "security": [ + { + "OAuth2Auth": [ + "https://vault.azure.net/.default" + ] + } + ], + "securityDefinitions": { + "OAuth2Auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "https://vault.azure.net/.default": "" + } + } + }, + "tags": [], "paths": { - "/secrets/{secret-name}": { - "put": { - "tags": [ - "Secrets" - ], - "operationId": "SetSecret", - "summary": "Sets a secret in a specified key vault.", - "description": " The SET operation adds a secret to the Azure Key Vault. If the named secret already exists, Azure Key Vault creates a new version of that secret. This operation requires the secrets/set permission.", + "/deletedsecrets": { + "get": { + "operationId": "GetDeletedSecrets", + "summary": "Lists deleted secrets for the specified vault.", + "description": "The Get Deleted Secrets operation returns the secrets that have been deleted for a vault enabled for soft-delete. This operation requires the secrets/list permission.", "parameters": [ { - "name": "secret-name", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[0-9a-zA-Z-]+$", - "description": "The name of the secret. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information." - }, - { - "name": "parameters", - "in": "body", - "required": true, - "x-ms-client-flatten": true, - "schema": { - "$ref": "#/definitions/SecretSetParameters" - }, - "description": "The parameters for setting the secret." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "maxresults", + "in": "query", + "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 25 } ], "responses": { "200": { - "description": "A secret bundle containing the result of the set secret request.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SecretBundle" + "$ref": "#/definitions/DeletedSecretListResult" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "SetSecret": { - "$ref": "./examples/SetSecret-example.json" + "GetDeletedSecrets": { + "$ref": "./examples/GetDeletedSecrets-example.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } - }, - "delete": { - "tags": [ - "Secrets" - ], - "operationId": "DeleteSecret", - "summary": "Deletes a secret from a specified key vault.", - "description": "The DELETE operation applies to any secret stored in Azure Key Vault. DELETE cannot be applied to an individual version of a secret. This operation requires the secrets/delete permission.", + } + }, + "/deletedsecrets/{secret-name}": { + "get": { + "operationId": "GetDeletedSecret", + "summary": "Gets the specified deleted secret.", + "description": "The Get Deleted Secret operation returns the specified deleted secret along with its attributes. This operation requires the secrets/get permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "secret-name", "in": "path", + "description": "The name of the secret.", "required": true, "type": "string", - "description": "The name of the secret." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "x-ms-client-name": "secretName" } ], "responses": { "200": { - "description": "The deleted secret and information on when the secret will be deleted, and how to recover the deleted secret.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/DeletedSecretBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "DeleteSecret": { - "$ref": "./examples/DeleteSecret-example.json" + "GetDeletedSecret": { + "$ref": "./examples/GetDeletedSecret-example.json" } } - } - }, - "/secrets/{secret-name}/{secret-version}": { - "patch": { - "tags": [ - "Secrets" - ], - "operationId": "UpdateSecret", - "summary": "Updates the attributes associated with a specified secret in a given key vault.", - "description": "The UPDATE operation changes specified attributes of an existing stored secret. Attributes that are not specified in the request are left unchanged. The value of a secret itself cannot be changed. This operation requires the secrets/set permission.", + }, + "delete": { + "operationId": "PurgeDeletedSecret", + "summary": "Permanently deletes the specified secret.", + "description": "The purge deleted secret operation removes the secret permanently, without the possibility of recovery. This operation can only be enabled on a soft-delete enabled vault. This operation requires the secrets/purge permission.", "parameters": [ { - "name": "secret-name", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the secret." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "secret-version", + "name": "secret-name", "in": "path", + "description": "The name of the secret.", "required": true, "type": "string", - "description": "The version of the secret." - }, - { - "name": "parameters", - "in": "body", - "required": true, - "x-ms-client-flatten": true, - "schema": { - "$ref": "#/definitions/SecretUpdateParameters" - }, - "description": "The parameters for update secret operation." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "x-ms-client-name": "secretName" } ], "responses": { - "200": { - "description": "The updated secret.", - "schema": { - "$ref": "#/definitions/SecretBundle" - } + "204": { + "description": "There is no content to send for this request, but the headers may be useful. " }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "UpdateSecret": { - "$ref": "./examples/UpdateSecret-example.json" + "PurgeDeletedSecret": { + "$ref": "./examples/PurgeDeletedSecret-example.json" } } - }, - "get": { - "tags": [ - "Secrets" - ], - "operationId": "GetSecret", - "summary": "Get a specified secret from a given key vault.", - "description": "The GET operation is applicable to any secret stored in Azure Key Vault. This operation requires the secrets/get permission.", + } + }, + "/deletedsecrets/{secret-name}/recover": { + "post": { + "operationId": "RecoverDeletedSecret", + "summary": "Recovers the deleted secret to the latest version.", + "description": "Recovers the deleted secret in the specified vault. This operation can only be performed on a soft-delete enabled vault. This operation requires the secrets/recover permission.", "parameters": [ { - "name": "secret-name", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the secret." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "name": "secret-version", + "name": "secret-name", "in": "path", + "description": "The name of the deleted secret.", "required": true, "type": "string", - "description": "The version of the secret. This URI fragment is optional. If not specified, the latest version of the secret is returned." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "x-ms-client-name": "secretName" } ], "responses": { "200": { - "description": "The retrieved secret.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/SecretBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "GetSecret": { - "$ref": "./examples/GetSecret-example.json" + "RecoverDeletedSecret": { + "$ref": "./examples/RecoverDeletedSecret-example.json" } } } }, "/secrets": { "get": { - "tags": [ - "Secrets" - ], "operationId": "GetSecrets", "summary": "List secrets in a specified key vault.", "description": "The Get Secrets operation is applicable to the entire vault. However, only the base secret identifier and its attributes are provided in the response. Individual secret versions are not listed in the response. This operation requires the secrets/list permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "maxresults", "in": "query", + "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results.", "required": false, "type": "integer", "format": "int32", "minimum": 1, - "maximum": 25, - "description": "Maximum number of results to return in a page. If not specified, the service will return up to 25 results." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "maximum": 25 } ], "responses": { "200": { - "description": "A response message containing a list of secrets in the vault along with a link to the next page of secrets.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/SecretListResult" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { "GetSecrets": { "$ref": "./examples/GetSecrets-example.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, - "/secrets/{secret-name}/versions": { - "get": { - "tags": [ - "Secrets" - ], - "operationId": "GetSecretVersions", - "summary": "List all versions of the specified secret.", - "description": "The full secret identifier and attributes are provided in the response. No values are returned for the secrets. This operations requires the secrets/list permission.", + "/secrets/{secret-name}": { + "put": { + "operationId": "SetSecret", + "summary": "Sets a secret in a specified key vault.", + "description": "The SET operation adds a secret to the Azure Key Vault. If the named secret already exists, Azure Key Vault creates a new version of that secret. This operation requires the secrets/set permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "secret-name", "in": "path", + "description": "The name of the secret. The value you provide may be copied globally for the purpose of running the service. The value provided should not include personally identifiable or sensitive information.", "required": true, "type": "string", - "description": "The name of the secret." - }, - { - "name": "maxresults", - "in": "query", - "required": false, - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 25, - "description": "Maximum number of results to return in a page. If not specified, the service will return up to 25 results." + "pattern": "^[0-9a-zA-Z-]+$", + "x-ms-client-name": "secretName" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "parameters", + "in": "body", + "description": "The parameters for setting the secret.", + "required": true, + "schema": { + "$ref": "#/definitions/SecretSetParameters" + } } ], "responses": { "200": { - "description": "A response message containing a list of secrets along with a link to the next page of secrets.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SecretListResult" + "$ref": "#/definitions/SecretBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { - "GetSecretVersions": { - "$ref": "./examples/GetSecretVersions-example.json" + "SetSecret": { + "$ref": "./examples/SetSecret-example.json" } } - } - }, - "/deletedsecrets": { - "get": { - "tags": [ - "DeletedSecrets" - ], - "operationId": "GetDeletedSecrets", - "summary": "Lists deleted secrets for the specified vault.", - "description": "The Get Deleted Secrets operation returns the secrets that have been deleted for a vault enabled for soft-delete. This operation requires the secrets/list permission.", + }, + "delete": { + "operationId": "DeleteSecret", + "summary": "Deletes a secret from a specified key vault.", + "description": "The DELETE operation applies to any secret stored in Azure Key Vault. DELETE cannot be applied to an individual version of a secret. This operation requires the secrets/delete permission.", "parameters": [ { - "name": "maxresults", - "in": "query", - "required": false, - "type": "integer", - "format": "int32", - "minimum": 1, - "maximum": 25, - "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results." + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "secret-name", + "in": "path", + "description": "The name of the secret.", + "required": true, + "type": "string", + "x-ms-client-name": "secretName" } ], "responses": { "200": { - "description": "A response message containing a list of deleted secrets in the vault, along with a link to the next page of deleted secrets.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/DeletedSecretListResult" + "$ref": "#/definitions/DeletedSecretBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - }, "x-ms-examples": { - "GetDeletedSecrets": { - "$ref": "./examples/GetDeletedSecrets-example.json" + "DeleteSecret": { + "$ref": "./examples/DeleteSecret-example.json" } } } }, - "/deletedsecrets/{secret-name}": { + "/secrets/{secret-name}/{secret-version}": { "get": { - "tags": [ - "DeletedSecrets" - ], - "operationId": "GetDeletedSecret", - "summary": "Gets the specified deleted secret.", - "description": "The Get Deleted Secret operation returns the specified deleted secret along with its attributes. This operation requires the secrets/get permission.", + "operationId": "GetSecret", + "summary": "Get a specified secret from a given key vault.", + "description": "The GET operation is applicable to any secret stored in Azure Key Vault. This operation requires the secrets/get permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "secret-name", "in": "path", + "description": "The name of the secret.", "required": true, "type": "string", - "description": "The name of the secret." + "x-ms-client-name": "secretName" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "secret-version", + "in": "path", + "description": "The version of the secret. This URI fragment is optional. If not specified, the latest version of the secret is returned.", + "required": true, + "type": "string", + "x-ms-client-name": "secretVersion" } ], "responses": { "200": { - "description": "A secret bundle of the secret and its attributes.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/DeletedSecretBundle" + "$ref": "#/definitions/SecretBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "GetDeletedSecret": { - "$ref": "./examples/GetDeletedSecret-example.json" + "GetSecret": { + "$ref": "./examples/GetSecret-example.json" } } }, - "delete": { - "tags": [ - "DeletedSecrets" - ], - "operationId": "PurgeDeletedSecret", - "summary": "Permanently deletes the specified secret.", - "description": "The purge deleted secret operation removes the secret permanently, without the possibility of recovery. This operation can only be enabled on a soft-delete enabled vault. This operation requires the secrets/purge permission.", + "patch": { + "operationId": "UpdateSecret", + "summary": "Updates the attributes associated with a specified secret in a given key vault.", + "description": "The UPDATE operation changes specified attributes of an existing stored secret. Attributes that are not specified in the request are left unchanged. The value of a secret itself cannot be changed. This operation requires the secrets/set permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "secret-name", "in": "path", + "description": "The name of the secret.", "required": true, "type": "string", - "description": "The name of the secret." + "x-ms-client-name": "secretName" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "204": { - "description": "No content signaling that the secret was purged forever." + "name": "secret-version", + "in": "path", + "description": "The version of the secret.", + "required": true, + "type": "string", + "x-ms-client-name": "secretVersion" }, - "default": { - "description": "Key Vault error response describing why the operation failed.", + { + "name": "parameters", + "in": "body", + "description": "The parameters for update secret operation.", + "required": true, "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/SecretUpdateParameters" + } + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/SecretBundle" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "PurgeDeletedSecret": { - "$ref": "./examples/PurgeDeletedSecret-example.json" + "UpdateSecret": { + "$ref": "./examples/UpdateSecret-example.json" } } } }, - "/deletedsecrets/{secret-name}/recover": { + "/secrets/{secret-name}/backup": { "post": { - "tags": [ - "DeletedSecrets" - ], - "operationId": "RecoverDeletedSecret", - "summary": "Recovers the deleted secret to the latest version.", - "description": "Recovers the deleted secret in the specified vault. This operation can only be performed on a soft-delete enabled vault. This operation requires the secrets/recover permission.", + "operationId": "BackupSecret", + "summary": "Backs up the specified secret.", + "description": "Requests that a backup of the specified secret be downloaded to the client. All versions of the secret will be downloaded. This operation requires the secrets/backup permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "secret-name", "in": "path", + "description": "The name of the secret.", "required": true, "type": "string", - "description": "The name of the deleted secret." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + "x-ms-client-name": "secretName" } ], "responses": { "200": { - "description": "A Secret bundle of the original secret and its attributes.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/SecretBundle" + "$ref": "#/definitions/BackupSecretResult" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "RecoverDeletedSecret": { - "$ref": "./examples/RecoverDeletedSecret-example.json" + "BackupSecret": { + "$ref": "./examples/BackupSecret-example.json" } } } }, - "/secrets/{secret-name}/backup": { - "post": { - "tags": [ - "Secrets" - ], - "operationId": "BackupSecret", - "summary": "Backs up the specified secret.", - "description": "Requests that a backup of the specified secret be downloaded to the client. All versions of the secret will be downloaded. This operation requires the secrets/backup permission.", + "/secrets/{secret-name}/versions": { + "get": { + "operationId": "GetSecretVersions", + "summary": "List all versions of the specified secret.", + "description": "The full secret identifier and attributes are provided in the response. No values are returned for the secrets. This operations requires the secrets/list permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "secret-name", "in": "path", + "description": "The name of the secret.", "required": true, "type": "string", - "description": "The name of the secret." + "x-ms-client-name": "secretName" }, { - "$ref": "common.json#/parameters/ApiVersionParameter" + "name": "maxresults", + "in": "query", + "description": "Maximum number of results to return in a page. If not specified the service will return up to 25 results.", + "required": false, + "type": "integer", + "format": "int32", + "minimum": 1, + "maximum": 25 } ], "responses": { "200": { - "description": "The backup blob containing the backed up secret.", + "description": "The request has succeeded.", "schema": { - "$ref": "#/definitions/BackupSecretResult" + "$ref": "#/definitions/SecretListResult" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, "x-ms-examples": { - "BackupSecret": { - "$ref": "./examples/BackupSecret-example.json" + "GetSecretVersions": { + "$ref": "./examples/GetSecretVersions-example.json" } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } } }, "/secrets/restore": { "post": { - "tags": [ - "Secrets" - ], "operationId": "RestoreSecret", "summary": "Restores a backed up secret to a vault.", "description": "Restores a backed up secret, and all its versions, to a vault. This operation requires the secrets/restore permission.", "parameters": [ + { + "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" + }, { "name": "parameters", "in": "body", + "description": "The parameters to restore the secret.", "required": true, - "x-ms-client-flatten": true, "schema": { "$ref": "#/definitions/SecretRestoreParameters" - }, - "description": "The parameters to restore the secret." - }, - { - "$ref": "common.json#/parameters/ApiVersionParameter" + } } ], "responses": { "200": { - "description": "Restored secret bundle in the vault.", + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/SecretBundle" } }, "default": { - "description": "Key Vault error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "common.json#/definitions/KeyVaultError" + "$ref": "#/definitions/KeyVaultError" } } }, @@ -575,7 +572,55 @@ } }, "definitions": { - "SecretBundle": { + "Attributes": { + "type": "object", + "description": "The object attributes managed by the KeyVault service.", + "properties": { + "enabled": { + "type": "boolean", + "description": "Determines whether the object is enabled." + }, + "nbf": { + "type": "integer", + "format": "unixtime", + "description": "Not before date in UTC.", + "x-ms-client-name": "NotBefore" + }, + "exp": { + "type": "integer", + "format": "unixtime", + "description": "Expiry date in UTC.", + "x-ms-client-name": "Expires" + }, + "created": { + "type": "integer", + "format": "unixtime", + "description": "Creation time in UTC.", + "readOnly": true + }, + "updated": { + "type": "integer", + "format": "unixtime", + "description": "Last updated time in UTC.", + "readOnly": true + } + } + }, + "BackupSecretResult": { + "type": "object", + "description": "The backup secret result, containing the backup blob.", + "properties": { + "value": { + "type": "string", + "format": "base64url", + "description": "The backup blob containing the backed up secret.", + "readOnly": true + } + } + }, + "DeletedSecretBundle": { + "type": "object", + "description": "A Deleted Secret consisting of its previous id, attributes and its tags, as well as information on when it will be purged.", "properties": { "value": { "type": "string", @@ -595,25 +640,42 @@ }, "tags": { "type": "object", + "description": "Application specific metadata in the form of key-value pairs.", "additionalProperties": { "type": "string" - }, - "description": "Application specific metadata in the form of key-value pairs." + } }, "kid": { "type": "string", - "readOnly": true, - "description": "If this is a secret backing a KV certificate, then this field specifies the corresponding key backing the KV certificate." + "description": "If this is a secret backing a KV certificate, then this field specifies the corresponding key backing the KV certificate.", + "readOnly": true }, "managed": { "type": "boolean", - "readOnly": true, - "description": "True if the secret's lifetime is managed by key vault. If this is a secret backing a certificate, then managed will be true." + "description": "True if the secret's lifetime is managed by key vault. If this is a secret backing a certificate, then managed will be true.", + "readOnly": true + }, + "recoveryId": { + "type": "string", + "description": "The url of the recovery object, used to identify and recover the deleted secret." + }, + "scheduledPurgeDate": { + "type": "integer", + "format": "unixtime", + "description": "The time when the secret is scheduled to be purged, in UTC", + "readOnly": true + }, + "deletedDate": { + "type": "integer", + "format": "unixtime", + "description": "The time when the secret was deleted, in UTC", + "readOnly": true } - }, - "description": "A secret consisting of a value, id and its attributes." + } }, - "SecretItem": { + "DeletedSecretItem": { + "type": "object", + "description": "The deleted secret item containing metadata about the deleted secret.", "properties": { "id": { "type": "string", @@ -625,10 +687,10 @@ }, "tags": { "type": "object", + "description": "Application specific metadata in the form of key-value pairs.", "additionalProperties": { "type": "string" - }, - "description": "Application specific metadata in the form of key-value pairs." + } }, "contentType": { "type": "string", @@ -636,19 +698,9 @@ }, "managed": { "type": "boolean", - "readOnly": true, - "description": "True if the secret's lifetime is managed by key vault. If this is a key backing a certificate, then managed will be true." - } - }, - "description": "The secret item containing secret metadata." - }, - "DeletedSecretBundle": { - "allOf": [ - { - "$ref": "#/definitions/SecretBundle" - } - ], - "properties": { + "description": "True if the secret's lifetime is managed by key vault. If this is a key backing a certificate, then managed will be true.", + "readOnly": true + }, "recoveryId": { "type": "string", "description": "The url of the recovery object, used to identify and recover the deleted secret." @@ -656,227 +708,343 @@ "scheduledPurgeDate": { "type": "integer", "format": "unixtime", - "readOnly": true, - "description": "The time when the secret is scheduled to be purged, in UTC" + "description": "The time when the secret is scheduled to be purged, in UTC", + "readOnly": true }, "deletedDate": { "type": "integer", "format": "unixtime", - "readOnly": true, - "description": "The time when the secret was deleted, in UTC" + "description": "The time when the secret was deleted, in UTC", + "readOnly": true } - }, - "description": "A Deleted Secret consisting of its previous id, attributes and its tags, as well as information on when it will be purged." + } }, - "DeletedSecretItem": { - "allOf": [ - { - "$ref": "#/definitions/SecretItem" + "DeletedSecretListResult": { + "type": "object", + "description": "The deleted secret list result", + "properties": { + "value": { + "type": "array", + "description": "A response message containing a list of deleted secrets in the key vault along with a link to the next page of deleted secrets.", + "items": { + "$ref": "#/definitions/DeletedSecretItem" + }, + "readOnly": true + }, + "nextLink": { + "type": "string", + "description": "The URL to get the next set of deleted secrets.", + "readOnly": true } + } + }, + "DeletionRecoveryLevel": { + "type": "string", + "description": "Reflects the deletion recovery level currently in effect for secrets in the current vault. If it contains 'Purgeable', the secret can be permanently deleted by a privileged user; otherwise, only the system can purge the secret, at the end of the retention interval.", + "enum": [ + "Purgeable", + "Recoverable+Purgeable", + "Recoverable", + "Recoverable+ProtectedSubscription", + "CustomizedRecoverable+Purgeable", + "CustomizedRecoverable", + "CustomizedRecoverable+ProtectedSubscription" ], + "x-ms-enum": { + "name": "DeletionRecoveryLevel", + "modelAsString": true, + "values": [ + { + "name": "Purgeable", + "value": "Purgeable", + "description": "Denotes a vault state in which deletion is an irreversible operation, without the possibility for recovery. This level corresponds to no protection being available against a Delete operation; the data is irretrievably lost upon accepting a Delete operation at the entity level or higher (vault, resource group, subscription etc.)" + }, + { + "name": "RecoverablePurgeable", + "value": "Recoverable+Purgeable", + "description": "Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval (90 days), unless a Purge operation is requested, or the subscription is cancelled. System wil permanently delete it after 90 days, if not recovered" + }, + { + "name": "Recoverable", + "value": "Recoverable", + "description": "Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval (90 days) and while the subscription is still available. System wil permanently delete it after 90 days, if not recovered" + }, + { + "name": "RecoverableProtectedSubscription", + "value": "Recoverable+ProtectedSubscription", + "description": "Denotes a vault and subscription state in which deletion is recoverable within retention interval (90 days), immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled. System wil permanently delete it after 90 days, if not recovered" + }, + { + "name": "CustomizedRecoverablePurgeable", + "value": "CustomizedRecoverable+Purgeable", + "description": "Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge when 7 <= SoftDeleteRetentionInDays < 90). This level guarantees the recoverability of the deleted entity during the retention interval, unless a Purge operation is requested, or the subscription is cancelled." + }, + { + "name": "CustomizedRecoverable", + "value": "CustomizedRecoverable", + "description": "Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge when 7 <= SoftDeleteRetentionInDays < 90).This level guarantees the recoverability of the deleted entity during the retention interval and while the subscription is still available." + }, + { + "name": "CustomizedRecoverableProtectedSubscription", + "value": "CustomizedRecoverable+ProtectedSubscription", + "description": "Denotes a vault and subscription state in which deletion is recoverable, immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled when 7 <= SoftDeleteRetentionInDays < 90. This level guarantees the recoverability of the deleted entity during the retention interval, and also reflects the fact that the subscription itself cannot be cancelled." + } + ] + } + }, + "Error": { + "type": "object", "properties": { - "recoveryId": { + "code": { "type": "string", - "description": "The url of the recovery object, used to identify and recover the deleted secret." + "description": "The error code.", + "readOnly": true }, - "scheduledPurgeDate": { - "type": "integer", - "format": "unixtime", - "readOnly": true, - "description": "The time when the secret is scheduled to be purged, in UTC" + "message": { + "type": "string", + "description": "The error message.", + "readOnly": true }, - "deletedDate": { - "type": "integer", - "format": "unixtime", + "innererror": { + "$ref": "#/definitions/Error", + "description": "The key vault server error.", "readOnly": true, - "description": "The time when the secret was deleted, in UTC" + "x-ms-client-name": "innerError" } }, - "description": "The deleted secret item containing metadata about the deleted secret." + "x-nullable": true }, - "SecretAttributes": { - "allOf": [ - { - "$ref": "common.json#/definitions/Attributes" + "KeyVaultError": { + "type": "object", + "description": "The key vault error exception.", + "properties": { + "error": { + "$ref": "#/definitions/Error", + "description": "The key vault server error.", + "readOnly": true } - ], + } + }, + "SecretAttributes": { + "type": "object", + "description": "The secret management attributes.", "properties": { + "enabled": { + "type": "boolean", + "description": "Determines whether the object is enabled." + }, + "nbf": { + "type": "integer", + "format": "unixtime", + "description": "Not before date in UTC.", + "x-ms-client-name": "NotBefore" + }, + "exp": { + "type": "integer", + "format": "unixtime", + "description": "Expiry date in UTC.", + "x-ms-client-name": "Expires" + }, + "created": { + "type": "integer", + "format": "unixtime", + "description": "Creation time in UTC.", + "readOnly": true + }, + "updated": { + "type": "integer", + "format": "unixtime", + "description": "Last updated time in UTC.", + "readOnly": true + }, "recoverableDays": { "type": "integer", "format": "int32", - "readOnly": true, - "description": "softDelete data retention days. Value should be >=7 and <=90 when softDelete enabled, otherwise 0." + "description": "softDelete data retention days. Value should be >=7 and <=90 when softDelete enabled, otherwise 0.", + "readOnly": true }, "recoveryLevel": { - "type": "string", + "$ref": "#/definitions/DeletionRecoveryLevel", "description": "Reflects the deletion recovery level currently in effect for secrets in the current vault. If it contains 'Purgeable', the secret can be permanently deleted by a privileged user; otherwise, only the system can purge the secret, at the end of the retention interval.", - "enum": [ - "Purgeable", - "Recoverable+Purgeable", - "Recoverable", - "Recoverable+ProtectedSubscription", - "CustomizedRecoverable+Purgeable", - "CustomizedRecoverable", - "CustomizedRecoverable+ProtectedSubscription" - ], - "x-ms-enum": { - "name": "DeletionRecoveryLevel", - "modelAsString": true, - "values": [ - { - "value": "Purgeable", - "description": "Denotes a vault state in which deletion is an irreversible operation, without the possibility for recovery. This level corresponds to no protection being available against a Delete operation; the data is irretrievably lost upon accepting a Delete operation at the entity level or higher (vault, resource group, subscription etc.)" - }, - { - "value": "Recoverable+Purgeable", - "description": "Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval (90 days), unless a Purge operation is requested, or the subscription is cancelled. System wil permanently delete it after 90 days, if not recovered" - }, - { - "value": "Recoverable", - "description": "Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity during the retention interval(90 days) and while the subscription is still available. System wil permanently delete it after 90 days, if not recovered" - }, - { - "value": "Recoverable+ProtectedSubscription", - "description": "Denotes a vault and subscription state in which deletion is recoverable within retention interval (90 days), immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled. System wil permanently delete it after 90 days, if not recovered" - }, - { - "value": "CustomizedRecoverable+Purgeable", - "description": "Denotes a vault state in which deletion is recoverable, and which also permits immediate and permanent deletion (i.e. purge when 7<= SoftDeleteRetentionInDays < 90). This level guarantees the recoverability of the deleted entity during the retention interval, unless a Purge operation is requested, or the subscription is cancelled." - }, - { - "value": "CustomizedRecoverable", - "description": "Denotes a vault state in which deletion is recoverable without the possibility for immediate and permanent deletion (i.e. purge when 7<= SoftDeleteRetentionInDays < 90).This level guarantees the recoverability of the deleted entity during the retention interval and while the subscription is still available." - }, - { - "value": "CustomizedRecoverable+ProtectedSubscription", - "description": "Denotes a vault and subscription state in which deletion is recoverable, immediate and permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot be permanently canceled when 7<= SoftDeleteRetentionInDays < 90. This level guarantees the recoverability of the deleted entity during the retention interval, and also reflects the fact that the subscription itself cannot be cancelled." - } - ] - }, - "readOnly": true, - "x-nullable": false + "readOnly": true } - }, - "description": "The secret management attributes." + } }, - "SecretRestoreParameters": { + "SecretBundle": { + "type": "object", + "description": "A secret consisting of a value, id and its attributes.", "properties": { "value": { "type": "string", - "x-ms-client-name": "secretBundleBackup", - "format": "base64url", - "description": "The backup blob associated with a secret bundle." - } - }, - "description": "The secret restore parameters.", - "required": [ - "value" - ] - }, - "SecretProperties": { - "properties": { - "contentType": { + "description": "The secret value." + }, + "id": { "type": "string", - "description": "The media type (MIME type)." - } - }, - "description": "Properties of the key backing a certificate." - }, - "SecretSetParameters": { - "properties": { - "value": { + "description": "The secret id." + }, + "contentType": { "type": "string", - "description": "The value of the secret." + "description": "The content type of the secret." + }, + "attributes": { + "$ref": "#/definitions/SecretAttributes", + "description": "The secret management attributes." }, "tags": { "type": "object", + "description": "Application specific metadata in the form of key-value pairs.", "additionalProperties": { "type": "string" - }, - "description": "Application specific metadata in the form of key-value pairs." + } }, - "contentType": { + "kid": { "type": "string", - "description": "Type of the secret value such as a password." + "description": "If this is a secret backing a KV certificate, then this field specifies the corresponding key backing the KV certificate.", + "readOnly": true }, - "attributes": { - "x-ms-client-name": "secretAttributes", - "$ref": "#/definitions/SecretAttributes", - "description": "The secret management attributes." + "managed": { + "type": "boolean", + "description": "True if the secret's lifetime is managed by key vault. If this is a secret backing a certificate, then managed will be true.", + "readOnly": true } - }, - "description": "The secret set parameters.", - "required": [ - "value" - ] + } }, - "SecretUpdateParameters": { + "SecretItem": { + "type": "object", + "description": "The secret item containing secret metadata.", "properties": { - "contentType": { + "id": { "type": "string", - "description": "Type of the secret value such as a password." + "description": "Secret identifier." }, "attributes": { - "x-ms-client-name": "secretAttributes", "$ref": "#/definitions/SecretAttributes", "description": "The secret management attributes." }, "tags": { "type": "object", + "description": "Application specific metadata in the form of key-value pairs.", "additionalProperties": { "type": "string" - }, - "description": "Application specific metadata in the form of key-value pairs." + } + }, + "contentType": { + "type": "string", + "description": "Type of the secret value such as a password." + }, + "managed": { + "type": "boolean", + "description": "True if the secret's lifetime is managed by key vault. If this is a key backing a certificate, then managed will be true.", + "readOnly": true } - }, - "description": "The secret update parameters." + } }, "SecretListResult": { + "type": "object", + "description": "The secret list result.", "properties": { "value": { "type": "array", + "description": "A response message containing a list of secrets in the key vault along with a link to the next page of secrets.", "items": { "$ref": "#/definitions/SecretItem" }, - "readOnly": true, - "description": "A response message containing a list of secrets in the key vault along with a link to the next page of secrets." + "readOnly": true }, "nextLink": { "type": "string", - "readOnly": true, - "description": "The URL to get the next set of secrets." + "description": "The URL to get the next set of secrets.", + "readOnly": true } - }, - "description": "The secret list result." + } }, - "DeletedSecretListResult": { + "SecretProperties": { + "type": "object", + "description": "Properties of the key backing a certificate.", + "properties": { + "contentType": { + "type": "string", + "description": "The media type (MIME type)." + } + } + }, + "SecretRestoreParameters": { + "type": "object", + "description": "The secret restore parameters.", "properties": { "value": { - "type": "array", - "items": { - "$ref": "#/definitions/DeletedSecretItem" - }, - "readOnly": true, - "description": "A response message containing a list of the deleted secrets in the vault along with a link to the next page of deleted secrets" - }, - "nextLink": { "type": "string", - "readOnly": true, - "description": "The URL to get the next set of deleted secrets." + "format": "base64url", + "description": "The backup blob associated with a secret bundle.", + "x-ms-client-name": "secretBundleBackup" } }, - "description": "The deleted secret list result" + "required": [ + "value" + ] }, - "BackupSecretResult": { + "SecretSetParameters": { + "type": "object", + "description": "The secret set parameters.", "properties": { "value": { "type": "string", - "format": "base64url", - "readOnly": true, - "description": "The backup blob containing the backed up secret." + "description": "The value of the secret." + }, + "tags": { + "type": "object", + "description": "Application specific metadata in the form of key-value pairs.", + "additionalProperties": { + "type": "string" + } + }, + "contentType": { + "type": "string", + "description": "Type of the secret value such as a password." + }, + "attributes": { + "$ref": "#/definitions/SecretAttributes", + "description": "The secret management attributes.", + "x-ms-client-name": "secretAttributes" } }, - "description": "The backup secret result, containing the backup blob." + "required": [ + "value" + ] + }, + "SecretUpdateParameters": { + "type": "object", + "description": "The secret update parameters.", + "properties": { + "contentType": { + "type": "string", + "description": "Type of the secret value such as a password." + }, + "attributes": { + "$ref": "#/definitions/SecretAttributes", + "description": "The secret management attributes.", + "x-ms-client-name": "secretAttributes" + }, + "tags": { + "type": "object", + "description": "Application specific metadata in the form of key-value pairs.", + "additionalProperties": { + "type": "string" + } + } + } + } + }, + "parameters": { + "Azure.Core.Foundations.ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "The API version to use for this operation.", + "required": true, + "type": "string", + "minLength": 1, + "x-ms-parameter-location": "method", + "x-ms-client-name": "apiVersion" } } }