diff --git a/openapi/azure.keyvault/Ballerina.toml b/openapi/azure.keyvault/Ballerina.toml index 693cab741..ba54f7871 100644 --- a/openapi/azure.keyvault/Ballerina.toml +++ b/openapi/azure.keyvault/Ballerina.toml @@ -6,7 +6,7 @@ name = "azure.keyvault" icon = "icon.png" distribution = "2201.4.1" repository = "https://github.com/ballerina-platform/openapi-connectors/tree/main/openapi/azure.keyvault" -version = "1.5.1" +version = "1.6.1" authors = ["Ballerina"] [build-options] observabilityIncluded = true diff --git a/openapi/azure.keyvault/Module.md b/openapi/azure.keyvault/Module.md index 66a1d1374..395fcf97a 100644 --- a/openapi/azure.keyvault/Module.md +++ b/openapi/azure.keyvault/Module.md @@ -19,13 +19,13 @@ import ballerinax/azure.keyvault; ### Step 2 - Create a new connector instance You can now make the connection configuration using the access token. ```ballerina -keyvault:ClientConfig clientConfig = { +keyvault:ConnectionConfig connectionConfig = { auth : { token: token } }; -keyvault:Client baseClient = check new Client(clientConfig, serviceUrl = "{vaultBaseUrl}"); +keyvault:Client baseClient = check new Client(connectionConfig, serviceUrl = "{vaultBaseUrl}"); ``` ### Step 3 - Invoke connector operation diff --git a/openapi/azure.keyvault/openapi.yaml b/openapi/azure.keyvault/openapi.yaml index 21f64764b..6c9139287 100644 --- a/openapi/azure.keyvault/openapi.yaml +++ b/openapi/azure.keyvault/openapi.yaml @@ -27,6 +27,8 @@ info: x-tags: - Azure - Microsoft +x-ballerina-http-configurations: + httpVersion: "1.1" paths: /certificates: get: @@ -5317,6 +5319,7 @@ components: type: string description: The URL to get the next set of certificate issuers. readOnly: true + nullable: true value: type: array description: A response message containing a list of certificate issuers @@ -5379,6 +5382,7 @@ components: type: string description: The URL to get the next set of certificates. readOnly: true + nullable: true value: type: array description: A response message containing a list of certificates in the @@ -5545,6 +5549,7 @@ components: type: string description: The URL to get the next set of deleted certificates. readOnly: true + nullable: true value: type: array description: A response message containing a list of deleted certificates @@ -5570,6 +5575,7 @@ components: type: string description: The URL to get the next set of deleted keys. readOnly: true + nullable: true value: type: array description: A response message containing a list of deleted keys in the @@ -5595,6 +5601,7 @@ components: type: string description: The URL to get the next set of deleted SAS definitions. readOnly: true + nullable: true value: type: array description: A response message containing a list of the deleted SAS definitions @@ -5619,6 +5626,7 @@ components: type: string description: The URL to get the next set of deleted secrets. readOnly: true + nullable: true value: type: array description: A response message containing a list of the deleted secrets @@ -5644,6 +5652,7 @@ components: type: string description: The URL to get the next set of deleted storage accounts. readOnly: true + nullable: true value: type: array description: A response message containing a list of the deleted storage @@ -5963,6 +5972,7 @@ components: type: string description: The URL to get the next set of keys. readOnly: true + nullable: true value: type: array description: A response message containing a list of keys in the key vault @@ -6364,6 +6374,7 @@ components: type: string description: The URL to get the next set of SAS definitions. readOnly: true + nullable: true value: type: array description: A response message containing a list of SAS definitions along @@ -6464,6 +6475,7 @@ components: type: string description: The URL to get the next set of secrets. readOnly: true + nullable: true value: type: array description: A response message containing a list of secrets in the key @@ -6676,6 +6688,7 @@ components: type: string description: The URL to get the next set of storage accounts. readOnly: true + nullable: true value: type: array description: A response message containing a list of storage accounts in diff --git a/openapi/azure.keyvault/original-openapi.yaml b/openapi/azure.keyvault/original-openapi.yaml new file mode 100644 index 000000000..21f64764b --- /dev/null +++ b/openapi/azure.keyvault/original-openapi.yaml @@ -0,0 +1,6799 @@ +openapi: 3.0.1 +info: + x-ballerina-display: + label: Azure Key Vault + iconPath: "icon.png" + title: KeyVaultClient + description: > + This is a generated connector from [Azure Key Vault API v7.0](https://azure.microsoft.com/en-us/services/key-vault/) OpenAPI specification. + + The Key Vault client performs cryptographic key operations and vault operations against the Key Vault service. + x-ballerina-init-description: > + The connector initialization requires setting the API credentials. + + Create an [Azure Key Vault account](https://azure.microsoft.com/en-us/services/key-vault/) and obtain OAuth tokens following [this guide](https://docs.microsoft.com/en-us/azure/key-vault/general/authentication#the-key-vault-request-operation-flow-with-authentication). + version: "7.0" + x-apisguru-categories: + - cloud + x-logo: + url: https://assets.onestore.ms/cdnfiles/onestorerolling-1606-01000/shell/v3/images/logo/microsoft.png + x-origin: + - format: swagger + url: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/keyvault/data-plane/Microsoft.KeyVault/stable/7.0/keyvault.json + version: "2.0" + x-preferred: false + x-providerName: azure.com + x-serviceName: keyvault + x-tags: + - Azure + - Microsoft +paths: + /certificates: + get: + tags: + - Certificates + summary: List certificates in a specified key vault + description: The GetCertificates operation returns the set of certificates resources + in the specified key vault. This operation requires the certificates/list + permission. + operationId: GetCertificates + parameters: + - 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. + schema: + maximum: 25 + minimum: 1 + type: integer + format: int32 + - name: includePending + in: query + description: Specifies whether to include certificates which are not completely + provisioned. + schema: + type: boolean + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: A response message containing a list of certificates along + with a link to the next page of certificates. + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateListResult' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + GetCertificates: + parameters: + api-version: "7.0" + responses: + 200: + body: + value: + - attributes: + created: 1482188987 + enabled: true + exp: 2208988799 + nbf: 1430344421 + updated: 1482188987 + id: https://testvault1021.vault.azure.net/certificates/listCert01 + x5t: fLi3U52HunIVNXubkEnf8tP6Wbo + - attributes: + created: 1482188988 + enabled: true + exp: 2208988799 + nbf: 1430344421 + updated: 1482188988 + id: https://testvault1021.vault.azure.net/certificates/listCert02 + x5t: fLi3U52HunIVNXubkEnf8tP6Wbo + x-ms-pageable: + nextLinkName: nextLink + /certificates/contacts: + get: + tags: + - Certificates + summary: Lists the certificate contacts for a specified key vault. + description: The GetCertificateContacts operation returns the set of certificate + contact resources in the specified key vault. This operation requires the + certificates/managecontacts permission. + operationId: GetCertificateContacts + parameters: + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: The contacts for the key vault certificate. + content: + application/json: + schema: + $ref: '#/components/schemas/Contacts' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + GetCertificateContacts: + parameters: + api-version: "7.0" + responses: + 200: + body: + contacts: + - email: admin@contoso.com + name: John Doe + phone: "1111111111" + - email: admin@contoso2.com + name: Johnathan Doeman + phone: "2222222222" + id: https://karlaugsoftdeletesdk.vault-int.azure-int.net/certificates/contacts + put: + tags: + - Certificates + summary: Sets the certificate contacts for the specified key vault. + description: Sets the certificate contacts for the specified key vault. This + operation requires the certificates/managecontacts permission. + operationId: SetCertificateContacts + parameters: + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The contacts for the key vault certificate. + content: + application/json: + schema: + $ref: '#/components/schemas/Contacts' + required: true + responses: + 200: + description: The contacts for the key vault certificate. + content: + application/json: + schema: + $ref: '#/components/schemas/Contacts' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + SetCertificateContacts: + parameters: + api-version: "7.0" + contacts: + contacts: + - email: admin@contoso.com + name: John Doe + phone: "1111111111" + - email: admin@contoso2.com + name: Johnathan Doeman + phone: "2222222222" + responses: + 200: + body: + contacts: + - email: admin@contoso.com + name: John Doe + phone: "1111111111" + - email: admin@contoso2.com + name: Johnathan Doeman + phone: "2222222222" + id: https://karlaugsoftdeletesdk.vault-int.azure-int.net/certificates/contacts + x-codegen-request-body-name: contacts + delete: + tags: + - Certificates + summary: Deletes the certificate contacts for a specified key vault. + description: Deletes the certificate contacts for a specified key vault certificate. + This operation requires the certificates/managecontacts permission. + operationId: DeleteCertificateContacts + parameters: + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: The contacts for the key vault certificate. + content: + application/json: + schema: + $ref: '#/components/schemas/Contacts' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + DeleteCertificateContacts: + parameters: + api-version: "7.0" + responses: + 200: + body: + contacts: + - email: admin@contoso.com + name: John Doe + phone: "1111111111" + - email: admin@contoso2.com + name: Johnathan Doeman + phone: "2222222222" + id: https://karlaugsoftdeletesdk.vault-int.azure-int.net/certificates/contacts + /certificates/issuers: + get: + tags: + - Certificates + summary: List certificate issuers for a specified key vault. + description: The GetCertificateIssuers operation returns the set of certificate + issuer resources in the specified key vault. This operation requires the certificates/manageissuers/getissuers + permission. + operationId: GetCertificateIssuers + parameters: + - 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. + schema: + maximum: 25 + minimum: 1 + type: integer + format: int32 + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: A response message containing a list of certificate issuers + in a key vault along with a link to the next page of certificate issuers. + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateIssuerListResult' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + GetCertificateIssuers: + parameters: + api-version: "7.0" + responses: + 200: + body: + value: + - id: https://karlaugsoftdeletesdk.vault-int.azure-int.net/certificates/issuers/issuer01 + provider: Test + - id: https://karlaugsoftdeletesdk.vault-int.azure-int.net/certificates/issuers/issuer02 + provider: Test + - id: https://karlaugsoftdeletesdk.vault-int.azure-int.net/certificates/issuers/issuer03 + provider: Test + x-ms-pageable: + nextLinkName: nextLink + /certificates/issuers/{issuer-name}: + get: + tags: + - Certificates + summary: Lists the specified certificate issuer. + description: The GetCertificateIssuer operation returns the specified certificate + issuer resources in the specified key vault. This operation requires the certificates/manageissuers/getissuers + permission. + operationId: GetCertificateIssuer + parameters: + - name: issuer-name + in: path + description: The name of the issuer. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: The issuer for the key vault certificate. + content: + application/json: + schema: + $ref: '#/components/schemas/IssuerBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + GetCertificateIssuer: + parameters: + api-version: "7.0" + issuer-name: issuer01 + responses: + 200: + body: + attributes: + created: 1482188806 + enabled: true + updated: 1482189526 + credentials: + account_id: keyvaultuser + id: https://karlaugsoftdeletesdk.vault-int.azure-int.net/certificates/issuers/issuer01 + org_details: + admin_details: + - email: admin@microsoft.com + first_name: John + last_name: Doe + phone: "4255555555" + zip: 0 + provider: Test + put: + tags: + - Certificates + summary: Sets the specified certificate issuer. + description: The SetCertificateIssuer operation adds or updates the specified + certificate issuer. This operation requires the certificates/setissuers permission. + operationId: SetCertificateIssuer + parameters: + - name: issuer-name + in: path + description: The name of the issuer. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: Certificate issuer set parameter. + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateIssuerSetParameters' + required: true + responses: + 200: + description: The issuer for the key vault certificate. + content: + application/json: + schema: + $ref: '#/components/schemas/IssuerBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + SetCertificateIssuer: + parameters: + api-version: "7.0" + issuer-name: issuer01 + parameters: + credentials: + account_id: keyvaultuser + pwd: password + org_details: + admin_details: + - email: admin@microsoft.com + first_name: John + last_name: Doe + phone: "4255555555" + provider: Test + responses: + 200: + body: + attributes: + created: 1482188806 + enabled: true + updated: 1482189526 + credentials: + account_id: keyvaultuser + id: https://karlaugsoftdeletesdk.vault-int.azure-int.net/certificates/issuers/issuer01 + org_details: + admin_details: + - email: admin@microsoft.com + first_name: John + last_name: Doe + phone: "4255555555" + zip: 0 + provider: Test + x-codegen-request-body-name: parameter + delete: + tags: + - Certificates + summary: Deletes the specified certificate issuer. + description: The DeleteCertificateIssuer operation permanently removes the specified + certificate issuer from the vault. This operation requires the certificates/manageissuers/deleteissuers + permission. + operationId: DeleteCertificateIssuer + parameters: + - name: issuer-name + in: path + description: The name of the issuer. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: The issuer for the key vault certificate. + content: + application/json: + schema: + $ref: '#/components/schemas/IssuerBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + DeleteCertificateIssuer: + parameters: + api-version: "7.0" + issuer-name: issuer01 + responses: + 200: + body: + attributes: + created: 1482188806 + enabled: true + updated: 1482189526 + credentials: + account_id: keyvaultuser + id: https://karlaugsoftdeletesdk.vault-int.azure-int.net/certificates/issuers/issuer01 + org_details: + admin_details: + - email: admin@microsoft.com + first_name: John + last_name: Doe + phone: "4255555555" + zip: 0 + provider: Test + patch: + tags: + - Certificates + summary: Updates the specified certificate issuer. + description: The UpdateCertificateIssuer operation performs an update on the + specified certificate issuer entity. This operation requires the certificates/setissuers + permission. + operationId: UpdateCertificateIssuer + parameters: + - name: issuer-name + in: path + description: The name of the issuer. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: Certificate issuer update parameter. + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateIssuerUpdateParameters' + required: true + responses: + 200: + description: The issuer for the key vault certificate. + content: + application/json: + schema: + $ref: '#/components/schemas/IssuerBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + UpdateCertificateIssuer: + parameters: + api-version: "7.0" + issuer-name: issuer01 + parameters: + credentials: + account_id: newuseraccount + pwd: newpassword + provider: Test + responses: + 200: + body: + attributes: + created: 1482188806 + enabled: true + updated: 1482189526 + credentials: + account_id: newuseraccount + id: https://karlaugsoftdeletesdk.vault-int.azure-int.net/certificates/issuers/issuer01 + org_details: + admin_details: + - email: admin@microsoft.com + first_name: John + last_name: Doe + phone: "4255555555" + zip: 0 + provider: Test + x-codegen-request-body-name: parameter + /certificates/restore: + post: + tags: + - Certificates + summary: Restores a backed up certificate to a vault. + description: Restores a backed up certificate, and all its versions, to a vault. + This operation requires the certificates/restore permission. + operationId: RestoreCertificate + parameters: + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The parameters to restore the certificate. + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateRestoreParameters' + required: true + responses: + 200: + description: Restored certificate bundle in the vault. + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + RestoreCertificate: + parameters: + api-version: "7.0" + certificateName: testcert + value: JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUkwTXpnMVlqQTNZaTFrTlRRM0xUUXlaVFV0WVdVNVpTMDJNVEJrWXpNNVpHWmhaamdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLm85bmpNWEFSZWVla2NaRXBsVTNjdUxQcVZlWmxFbGRDM01XOWpYR0h6bnBXRTdHRGVOSXJraGZscHdTWXFnQnBYQkozMFpUQkRpRmpROENXSnJfUGlsUWNDRkZyN0xrdWJhWUs0TW1zcVh5WGIzbkRJcUJkQmZIUVNpZ1ZET0J5Ym9sUlRNNDYzYjBTbXhLVzJheEdFS2NuZzQ5WFkycG1SR0Vrb0plcHJWZ0tyRkpOUGQ3cGJIS3hQSWdDOFlnT2xudnZxR280RlRDSzh0ZWotcUt2UzBfRGV6Uk5vdTZqZ25SekpxX0g2NGxWMk1hQ0NnUy0xbTlyOGVOTVVvSlhTV1hwc0lneng1RzdEbzIya1ZEY25vMW9rajlCMXNvbklkWmtuY1JybDJBVHNRZVlzZXdkUVd1VmhxRzVLN0pNQWo5YzBRdkxhTmlpdl9PY2pFcm5qUS4zbmI4azJ3SEcyNHFJelNNb184WG13LnJzc3NMNjJ1aUNfTm9IbG5zQlgzcEEtck1uY3g5R3V2NmJYSHpKamxwOWNMUnVaSDBSWlJYVXRwU3BPQWdyZ20tU3BxeEdWSjd2bmprbV9FSzJwYy1sZHNjUWtRSDB4bVFVcGZFNzN5b1VTYTNXVVNMS2VIVnJLdUg5MUtJR0tLODE5ejc5d1Y5Y0F3UjlzcHJxbFFWZnlKdlNFM2tnZTh1RVBpRFFVMFl5WnJqVjBsMGJCU3VkeTN1MVlsVHB6Wk1EWmpUcE05ZGtMclgtaGdxZ1FGa2xFa1hNRWlzd0RDZVM3Y3J2bFg1bnVzbWh5SkZCMklCd3dxNWJieHptV1diU3JOc3lFMmJmWEpXOWN4TFlQcnJJZFpfbkd0X29RSGVQcUFZTS1iVnpTdzdBRGJjMU15NTZwclBGLW9PSm40MHptOTBaaFBTVGMyQXNKRGFBa3R5WFU4WktOYUhFVUlHLWI1SGhUdFBuZ20wN0FrWEtQNngwaDhzZ3ZIaGdCeGpfdWRfQVpQc3pLWG1HdUhFTW9lRGhpT3NkQVdRR0pwR2t0NHVlbmZyamNSeXVlaXJiTC1RV3o4MEtZUnk1QklxbzVJc19RVHpWN2dqMGstYS0td24tazNsNTJ4YjhaNkRXd2tWZ3hqUlNXOXZnV0pVd2U5M1ZrVWtHM3NLRW5SOE9ueTNjWlhQVl9LbWtBTEdlR0ZzQm53SmQwY3dueTBCN2I5VWQyQ19kWEZ0N1BvbnFVNldfT016cC1Nb1NtRzRHbEFpUkVfQ3FrWlhkalhIMVItSmpObUNfdXlPUTdaN1BVaDAtNmd2YUxpcE1CamlWR1FwdzlEZDhmVmtCbWk4VW5uOUxPYXJmSXVtcEJyUE43TTJhM05KdjN6b0NkanhZVFVUMTN1aElpYWl3aExoUFZhT2pUbFRmTkpqbHhIbG5lbGJ1RWJsZTk0bVV1bW8wcjhKRlFMSDdfRjhXMVo0OC1BcjhYYXJwMXhIY0FReHk1WWYwclktdUU1dTAyRnRHUHlPZ0JfNV9WdFlNR2VfRE1mdENLOGVMZGFnVllMRDJDNDUxTldZeVVfeHdNUWdQbXBaMWFnSEdCb2s0ejhsSFBndVhCQ3R2WFFuTHBXQTVBamdOLWNoWjNwUGJmc2RkNjBhekJuWDVaVXQza2hYaWNDdWk4b0xidEtzQUdmckNOZzFwT2Q0MHBHMEJlVy1lNVE1WWQydjY4eFh5a2RiTXhFblFCM3Fzd1djVlh1QXBIR18wREZVVmZvSlc2aVBZcDNWVE51amM5M3QtMDcxWnlZbUZ4V0RfVThMYTAtM19RLV8yZ0pwMVBaVV8tMVBRM1huLXdSWk1vb3JkZGZQa1VPZ0lqdWkwa1IwZWt5RjZvdWdLNnJrSVZHaGp3YUp0ekdKczJLdGxncnRCcEs2MXZEaE5zbFR5VHU5OUp2T2RFTXhwRG5lTEg4NnlvVnhxT3lIT3lxNjByXzdpTHgtdy03Q3FzWTloT3dmQlBZZ3BQVlM2bm9oZVBocTkwaGJTX0lrM21YbnRkRUNMREtSMi1wWFh6bjlPRjZIN09EdHB4S0VXQkdCaHJ0Ykxmd2JZS3dmWmZSVTJVUHpkLUxFd1lQdDloU203Z3lSODNoYkZiSFNBV1cySncxRWl1c3FURWRsRW1lQ3k2cFp1MVFZWko0TUQ0OG5rVXMwdmVHUVhTU2Ytb2RhQm1fYjZZdVh1cWcyWk03MlZjUTd4ZzV4MmpFenFqcllmdjdTTGJINFZBcWp0aFg5LUdRaWEwWEZaS18xempIenhkd1B0R2lSOHJfMkFFZTgtRXFoNi1FaTZKdjRFZjYyMnRrNWFJUWx3R1pETWpGSVNuUkpRdV8xcnJiY1E3enZsbWhUSWFQcUJNRFVxeHBEOXNWUlhuSHdIaTl1b1BCUTllbWJIMkV5WDV6MEhWRXlDa1JEbUd3cmR2RGdsOFVzMUhURjVwYXlYZmF2WkZUZjl3WFZyQXpsRFBEQkFJVFMzWnVJMEJWR2pJUGV1SnRiako4S1pTczRFQVNRRTVyVjViTUpNQXcwa19nYkVRTEZGSjJVb0ZzcWU1QUszM2xGXzR5cGMxU0JaWjJfUzYtbEQyNkpyRFVJSjFFRmJhbWtoUk12bWJIT1Utc0hDT0lRcHdadlJzV3Q3NExSQ1ZyQ09jMGpUdE5TT1JPUW5XRHVXRlFXSzk1TkRGMG96WjIyLVFEMU9YOE9iU3daaHdOXzNfS1pHRmtVMEhNdzNjSTI5LWUxbFltRDV3cmJ0ZlRFbllOeHJKOGpuUWFBY2FoNy14Q0JKeUQ3elo1MXIzRVVyY2VnazBzc1dLeHRPVjRLcTZENmxuVmU3bFpUT1dfTU5aZi1JSzJUbnZCaVZIMHk0SkVGaUxzSDJHbTM1d28yYlZVaXJsT1ljVEk1NlZhdDhMRWhGaEotVlUyNk84NHo2dUJFZmJucEZLbmdKc3pfYVlucW1zNWV1bmd3ek5ndjdlT0U0cUdKSURyMTRBUXRWdEYxcWdrZHNnVllWVXg4U29SQ0NobE5VUzRNRGxhc1hwS1VmV19ENWIxbDRkbXZiNEZNRHJqakJ6djk5dGJSeGZFYUVOSFlYTHZFZnJ0b0pMeW9na2tmNkxlbVoxVDZRbnRtNlR4S1IycU81WU1vMnRJZHlQNmZNRmkweEYtdE1IaHNSdVN3VEpybW1nREcteHVpZllVNkpfaElSNkMzVmo2VkFMMW1oZy0xeW1pRXZuanVLbElONzc4NmFWdVNpNmx5TjJJNzZqY0R6SHZ0VW1ibkVvWWtORHNPQXdqQk9MNFBlS0VjR1hWcm5YNDJhNW5IRWM2cmZQdjZ0Q2tVSUI0UldIdzEyUTFiNDM2N1JvRS1PTWN3TnV6ampob1M0S1ZJbHo4UEFMOW9YYTR4NXlQeG1aVzZ0UUVna1pKeFhEcS00SWRtd1UzTnpVZUoxdGpNaXFsc0xRWDdlc29fTHRtTWJ3bm83YkI3bjRlVnZ4aUtQU3p3dW94c25aaGs1b3ZSSE1xU0NtZjU2MjJvUTZvWEdmNUJLWExlQWdqaE1Sd21razEtUzlGajlyc1hlT19VYjJOMF9hVEFLemlidXIxNVcxaHI3Wk1PVFlxOFlSSGVPaWxSX3Bkdjl5NTlDRDQ1WmE0ZXFURHVrNmRxZ1d4YnoyVVVtMnpwM3pvTHVKSVZ1Y3FIaUVRTVNfMnFKcy1xQTAwT2FFY3huZTM2Q1RsZVNwZjF5cjh2VjNWNW1mQU5zRnJBa21CMnBRWTNfZ21UbldTYTJ3UWlMa2RFRllPSExTeEk5UVowNHo4ZFRfbW5QMmIwWV96N3ZLa0VGQmFpNU02UFdPWjVIOUx1M3Rnay1fR0g0ODd6ZHpuQm0weWZZY3ZIOHJUd1QyQl9UZVRFMG4xcWFRdDRiQ0diUkFQNE1DTDl0SGlIcmlzWEllejQzZlZ3b1c4R2x4YmxKanlLWkpXbmlRNjlBYks3SmYyUER6d2NVSHhkZU5HNGxEZmt6WmFxU2lybGRzZlhXOHBGLWZ6WFVVWHR4eDF4Um5nQ1hJVkxLbU5ZbV9CNnNrNGo0VzROVFMwQTBOcFhsZGJCWjZWWmFDMDNvRHVGUFY0MGtwdWQ0WEd3Q1l3M244ZjFHb0Z6Sk42QjFqOTRLeTdtNE5YT1JsQ3ZaRW5qZTl6T241T1d1ZG9USWRoRzBobXVDUTZ6TXI2YkVaTUFoV1ZFdlREY19iXzZsOWdLWmVxNmVtekxvcmptOEQzLXcyLXRBYlE2Tmpjd0J3eEhMZzlCRllRRFdvaU9UVmJKN2VBcUVFMHVxVkhBcE9KbFVIc2tmQy1uV3NzOV9fRTFURHBLcjRfRE93NFhPUGNzT3dlVU9EUWg3cVFXRE1ZcDVHU1poVWE4MVVHczhmemZKU3JPbmtaTmRVTS10Y0h3R01mX3didy11dmt4UFUtV0tvNUNqR2M2aU5KMDB4MjZZdUpCWXd6TVFyeDBJQWgxMjVBWlozX2FvaFFpLWw3a1pZVE82Q0JVOVZsYllNMndrZXp4ZGhrQ1oxd080Z1NNbDlKU3A5ejhxNV84SU1WM1pma00xV1VqSGZMQk4xRXdFMjRxZFVzcWxyU3NZN1hQaVlpcXQ5ZktXVmZDTWw4RU0yd2ZHYlhxMUI4eWl2UlpMcko0eEk2MUdVUWJFVGU4akNTYTF2aUxxZ0FIa25IYjVjVHIwbDRhTW1EZGZKWnJxZEdpb1lPb2IwdHBuc3IxanRfZm1obGhJa1NSQnREUk5XWEU1OXBjVXlULXpyVjBxZl9sOHN2TlNEV2N3d09YQ3lITWZzLWw0T29xMldVWTVLQi1nSG1HYUJod0oxa19ra3V2S0hlMl9TY0loc3JjTXV1eW5aLW14Vzl5NHBBS3pvdVFsQjR0ZGZvbHdSRk5KX0tHYWJPZXJiWFdDT0ZTd0JVTjdNaG0wOXNyVS1VWG5od1IwdTYyTjVvMDlfbGN5eThnWDg1ZUVrenhuOGZ2NHd2T0Y2dUd1cFk5UGxpSTRLMTNqSHlOd0ZuY2VmRlp2b0dxVlhkcUg5RGJkYS0zY1FhbVFlNmlMek0wRDlnLXlFc2NBTkpKS3ltelVzemZZdV8yY0p0TEhsd0I3NVhLeW1EMG9nUkRvRkRwTmNPd1dRRUlwdVJwU0pfdWtzR2EwZkd3MGVBTU4tQmc1OUs3emhRWHJISUZOckN1S1VPMVdvTkV5WkM2UGlKSUwtUlRsTFQ2WlBNZmdSZzZiUl9aQk43X2dseHBIakNDaFZXMkZ3MnJFUDJJX1pSeHFqdS1WbmVwV2o4eU1CaHZXZzdXNm9QWm1odmVtUTBkQUljNVZTbVVaelhvNFVURmJxSFN2MGlyVTNscVk2eUl1MGRPd2t2MlF4ZENfQVdRUmdLSGRUeG1xYXFUSXJwclZyUHZ1MDFQSGlFbVRnaDZZVEZ6Yllqb3JEeFExWDhlTUN5Rl80cWNjMnhOdTJRblBIdUR0RGZkSy1NV2xJUDhHUEhSMmhPMjlCa0JJSEM4TlgxZmxDN1ZSZkZsQ09McGVIeWl0MGRSd1d2S2tieGNIWl9fRE5ZLVBNQlZMZGpyR3lxT2JoQnpQZHZMeFpXWVU3THNRbnM1dmxiMTc5YXczX3VmclRIWGs0MVpjaDY2ekFRRl9tekQ3ZEVuMm1fb2tBaTh6NTRwdzdxUDAwNHkzenNPd0RmR0htYWF2c3dGMW5NMUN2YXhXajRINE45dVNUaV9DM1oza3lTRHlUNGdUZjNqc0FKUEJybXdSQVBpaU5PTTU3c0x2Y3dJRk9ENnA5QkdWbjFwbjQyZGRTU3A1M3JieTZEcnlwcHdDaDFrampQX3lCbTZRZnd6MElGUWJiSG1zVDNVa2RMb1dURjFSMF9sbjJtR1kxU0hHT2o3VHl1YnQ5d2xLVW5nczVMTWhVcHo3NU1LR3F6UkFnWXNKcHVKUVl1RVpKeGFPSHNmY2VwakdrcFdoMEtfWkhZUEJESzIwOFVqb3FqMDdlVVVueTBaXzJrNXUxTjQzWGJ3V0ZvWVBhdndheW1MYkhWdkRwbzdwMU9JT1IyNkt0SzdPeGlnZ0ZybGVISWNaODFwQzRCdlNzRnZsY1BCZEpHLTZxWTU0Q3J0R2xhaDRvQWplUXgxWS1YU0NLNnZLYUIwWnZHc2lIajhRQ0ZURjRuLUJqTWIzWDcycDJ5Q0tPRlpMRk5qcVR1aHJoYXNnMi1pWTNOTWdwVEQ5eVBSdjA2X1VpcEVfYjVsQ0R0Mmx5QU5NYVpZR1RvSmJTSVhBcFlyU1hEM1dFWllhTGUzQmFSUEJUYTAyeWpyVFZPRDRGNHRFR3c5MkZJZThOSk5NYXRXMFhPSFAwVWxKTXlQUDF2MVdvOUh5aFllaDFfdWg3SlRLcS1hWnJjOS1Xd0ItQXBKTHBQeGxmRzlGZkgwdjNwSTl0Z1VndWJmSkJQVjMwNll2MlNqQ0M2MmVYN3VFTUgzcXQ3TmFYcFVsNXZEVHpfMF9Vc3VlWERQcDNqV01XQTMwenFaYTRFT0dXdElMb0tEM1RjRWNVcmJONGV1bHFQSkFNcWdWdmk2YWRGdTgxU2w5cU1rVVUwaWpqMjZhZDFaeVlEUUZtWlJ4NjJYUW9ZdG81bXJ0eFZhYWtNNndqbkVPSUdJaHhBTnJoX0dNVzVxREhzMEV6TDU4b3lOY0Q5dE1MUC03N1FCbTZwUTFsR0swMVJ6Y3FzTk14ZzRMTzl2ZHQ3NFpIdEhMXzA1TjF2TUt4TE5GbkdhZmwxN1E0eEM0Z3NQeXpYdzBjcklyV2tIQlNQX0NoWE94SmZORWdyNjJOMXEzQVJZa0U1TVlCbzctM3djb3dNT09GcTlrakN1ZGpoekplRjRTUHdfMnFVWVhZRTZsNXJTYjYwUFlFSkJxdW82Skh5ZmdlOXFJX0Rzdmg4eEY1STJfLWtLT2pxU3FZam02NjU0cXVES3phQ3JWLUJFLWtQNF9DOU5OQ0xTaEVWUV92Z3hYdDhzbTRWNGNRMElDRmFzaWV6VnNuV1QtYmRQTGxBT2RqOS15RmhYVTRUYVF3YnZqQ0E2UHQ0aDNVWGdnQzNqWU5IMmJtRGpYSzhFdFJYRTV6cmJsTDRKMFZ1OGxHQVBZaGtOcGNOakNrNWhSSW5jT0dybE9aUk9jdTdSeVczR2JWM2Y1MGJKN0xLNHJjMnJCMTZuemhBdk41WXlydWdwQzdCOE9OR3NTY25ha1V1alJzRzZGYVpydDNzTDJMOW5RTUNoNE9INFF3VWpKWFZKUFJ2MHhPTF9jVEQtdjk0QWgwbWdtcFJ2Q1dhUkl5MXRxeDZHTmZ1R1Nyb0tObmtHYjRiRE1oblpZMmwxQWluWHlCMG5uRGlvci1EUmo1cjhRZi1iaUR6cGhTallzZTZrakdLR0ZObzU4WjFfaGxEaGFob1pQX1lRdlBtWi1Tb2pNaGhMRXZqMXEyZzZWRVd6a1FDWTdIWVEwM1Y3cHVCVm4yaXM1NXpBSGV4cGpERWoxWDgxWU92bnVTdXRhMGx3VkFEMkRoNjZDcmM2VVh2SEtUZTBCeFlsQWdVdkhQc1BkSy1OdVk4S3RaeGNqTWNDVWM0OVl6VW43RVBTamFNaHJ2Ni1mM0pwc09Na3JwREpLM0dPTUVRMUV4cnhYV1lGaGtLaHR2UXZkMXZCVS12b0pRcWJveU9vS1hMM29Xb0FRVnljWlR3Y2laeW4wbUtkVF96NDNFZGhNcDNKS3N5blJ3OVZtSzk3Q3lldGl5LV9HaWVMSngtWDladVMzOUdNa0YxaFVmYmkyc3FJZGZMZ0diem5uMTluTlRVUDlOR3dhaWhybU9Ib1lZeUJ6WE4tby1UWUxhSS01bkNuQ2FSSW9QTF9XSVhyWDZPSzdZU21IWjk4a2xJS19JNTlPSXlWSllrMVh6bGVwd1lPLXUwU0x6bTEtN0dKSE54RGVOMlZhUEk3TThVem10X0x5alliWWxocFFJQnNyUktsMmZZeExKaGt6Q3NjcWp2bVhDemRLVDNhNFV3NDJ4eDlsOWl6dFQ0UmtnV21fYV9YWWk0b0gwdjNCUXRSZ3NfUTBPaGo2T2Y2dEtyZU5XZmcxVDRjMk01SERJd3UxTkl2QXBqNzZtOXJWQkdPWTZFUnhfa2Y3d2twb1g5dWRvcjBCbEx4a1FCc0lwZXpUdzc1MTBncU81Nm1UWXlBUzFCUVdOY1Q2aWhfN3F4ZTVoUkVlZVB5YUpFMnhqR2JNWGg3V1hGYjN0ejVWVWJOTFpxMjBiM3E0UFdkdjJXX1Foc2VUY0JTRDY1eVFPYndTai1UcVpNNi1teUZHb3B6dVdfRWcxU3pzNzRaY3RMSUxyN3pMLXRyeC1WTTVfVHllMVZXbG9ZOTZVYUJyUktpQWU1SVhKMlBQd2RIY1p4SWx4N3dBRXdueXVOZXA2b2NKcXRwZUJ1elB0LTFaX3UyWjZrQmR4V0lpYlVEaGxOU3AxM1NkTGw0Z2hkemVqZWFaYVllRDVtTGltWWJ4dEhsQ1ZiTm0yNU1ZbDYxMFU3QlZnNVJJSXB6VUdmZ2Z5NnpJRzRLQjBMR3BISzNhdHRRUExvQ1VlTDRYNVdBUUFsb3BRa0RKOU5lTHFGdHN4cWpZaGJnZ1Z5am9ScjNPOVhzYzlJVEtVaXJaUDlyTVl0eFduT0tUck9YYVk2WVR2Wi05QUhpT3ZfdTRhOElTS01DVng3OUlnXzdqTjFfREhjdGd5cEEzVnpkbjNKdlJJQTlfbHZDV2dTSS1NUjlPQ19xekhIUmU5dENqWklDVzhwRURSYVhZOHc4UUQ0bXJicmFLTTNsWmtTNUF2NVp2WjFRTDJlZkExbXlJdmN2czhmekxRUFM0Nm0xX3ZPVzcxN05ydDQzeUcwbUZxZnk4aExaZEUzQ2RkMzRtVVFXWVdqSkdvQXZ0VHBXRmpwWkwwOERjQUd0RzVzdkU0Mi1WWjRqSVVYQ2JsemZaczl3N2VsNThvRkJLUng5dUJLby1PWmYxTVloVEZrSlU1V3YtUEVreXRPSVpfU09nZVM2RTVMTUZsOVpZenZ0QkJuWWF0bDY4NGpEdWx0STh4LXpmSHdwUEFwNk9CQVpxalk3S3JoSVJuVGRoc2Y1VUpCcmtvU1JGUFlaaXE4RjJLWHA2Nm1PbDMyRm5RTVprMUlDVkxiYVpnUFlWNnl5UXpZdEdhbjhOc3BFTG10RWkwMVlTZE1ySUxkUF9TVTZwXzJ1NU1oY0RPMDF0Y2hwMHp6eUVfTVp4YWJodXpMWUVIeXJvYl83cjFKdWNjZUQ4SlM5T3JBdEk1YXdsbEhGSFRRWExOWGJuTHdTQ2JrdHNiTGFoa05ya0ZXR1RDNFRzUlBfYTlHMVhFTE5DRkhaMVhvS3NsQTdMMzFGaWpyNFpEYjRQeW5hT1BrSlhCcEx6MGNLN2FmeFVxNWlySHhZNEQyVkdNT3gwUmc5UEJJeE1vdzN6TmVGZ3Y5dzRTdkJ5VUpQdjNGV3huX004M3g5dldiWFh3bU9LbHlLNVpWQi11LWxKVno5Rm81YWRfVEtwUkxqSGdNWURKNU9Ka2dhaEFQMmhOaG9lb0FicnBPNzVYT2tYZ3pONDdwVW1kdzhmZV9FN3ZSeUREZi1LNVZNS2UzOXRPSi0xRmxtemJVc0pET0lScHp5WVl0Y2Q4cGtPU3JQYnIzMWdJNFRIUjJHV2xwZWJCZ3VhYmppck9UTjI1Zy02MmRPWWVKNHVwNjI3MjdnbWNQWF9EYmJfSFdrTnVLaXBmdkJ1UmVNN2J1WE9LVzg2bllHSW5ZNzJZZ2lvYVpIaEJnY3pHbktuUUlkWTJ2U3NzQ3E2b1FSUGJqeHRQZ1gxT1h2bXNucmNBencwN01ULTNueWF1RDBfNG90RGJueF92dm1fM203ajBwcjBGUWZ6NWs1UEVNUG1sOFVhenFxX2xEU3djV2JOU21JbWF3OWt3U2NXN2xrOUViNTRLRTRhaWt2bVRxXzRuN3lkSDNQblI3bC1RMXE2X2k5VWdHUVFfSmk5UDZQbmszQzd6TTVYbDBpYllEVXVUV2FUdlRrX2ZjaXo0VUJXWkV1T0lLU2xZaHVBVzFQUTJPU3NiUWxPbDU4U3ZvTEYtS2w3TmNkRXRBODJVWjdkLVFCN2xKNWFCcnd0Vmx6TDFxX2Y1UGd6a2NtcW1pLVViM2tUQ0xlNjJYbzN1MmFvSnNTQ0c4bXhwZkJ6dVFVVkk3WXdTa2ktWUtNUnlJSGhuOG9xRDNQS0xMbHk2LVZkZy1VREE1RWhhLXA0TnZYb2lLb3ptRHdBZFFpeG1IcnJTdUEwWmh0eE14N0FSc0pqc285blZKR1BOSzhCeTMtbXQycnNOOHlMdHpyRXdkUzBtLW1sRHRKak9CWHJ1NmhWOFBPeV9vSWVzYmJtWkcxSk96Tkl5YmhPOWdNakpsNTBSQXVmcW1sSXJpOEVXQk9vdzdVT1RKQjgtTkR6VzVXdWNiS0VLOGotdWtSYXhhQklPcTJBTnI1Tl9hTEF2RFpmalp1cDl1RGNTc2FUOTNWR0dmQlhHX1BYRlhGWnNtd2NnamxsQWN3bkhCS2V6QWd3SnprRXpFaEdEOFhQMVh0dXJPZHh2YTRyd2ZtVG1yM1pHVWFmY0tTUm5malpnVERSVThVRFd4ZjRwMjB1T1h5RzBBUzlJLUF6WGN0Nm5EOFVQUlB1WDQ3UG1fN05mdWFVTkt4SEZ2RFdOdWYwcVE1OFlvZmhydjJlRDlzUFJFWV9CWjhXWm9IYy0tbVZ5MmM0aDdvTTUzQlFKbTQzRzNkaXotclRwWE0xUDExakc4em5XU3RBQkJxbW40LXdKVVl1UGpDV0VtY29qdGtRZEZmcjQzRUNqTzE1SDJaZGN6MkphZmpUcmxPdWlQOG96ZjEwa2RTYjBURTFVOXI1dHRIU0ZzOUxPVlZHVjJnQUxjUGtMU3R0clgwMXZHMWZLS1ZTRVI2TzlZM0pZYW02X0FwU2xONnlRbmlqM3NJTzdKc2xYdHhaMzY2bXI2Vnl6WmphajVVODlJSjdJUlY3eXBkOWtuZy1RRlZMT0FhRGU1eENvZG1jRjY4ZGp4LTZBVWpQWnBHOFYxVG04OXh5c3BTaU40M0lmLURacTlaMXFjSXNDOUJ4XzlxTHE2S3kwNTIydnBKWkw4NEdCZElXM0FuUUdKbFY2dkRXbThpcF9LMjg2NG8zcEg4UTdFWnpqc05KZ3p6RFU2SkU2Y2psTVdhMDR5dkVMa2dnUm9feVM1MWUzam1BNUFFdWpXLUJ6TXlzTjVkeUpiZC1HcnN4VFltck1wMWI0dFNhMXV1ZHBSdWl2cUFLdV9qbTBvYTA4UHZqRjJyNjRXYXZQZHVxcUs2VGUtMDc1RkFQNHFEZE5ocmpJSHpneWEtUWowY2NCRWtZbUo3di1mUWxneUxzaF80bHJZQmVyWnNCMDM1Z2Z2b19CakQ0Q1VWVWFTRkRya2U2OE41N1prblU0UkZXN1NNQXViaE93WjlCd1pmT0tuajV3bDhfemRFTDVLVDBQUm5IejRjQk01OTZGNXhleDFORzNqME80Y3JDbzVod0xMMUVwMnVweVlULXpfTkdkT1MwMG50bGt0dnNKMGFZSURuQy1SSDRYcUdBUXlpY3hJVzNnTXh3LUNvYlIyUGdPa1dLTVBJN2xFelNLN0VKcjZkZENmblhHRF9scE9HSXgtUTROdjFOU3E4VGw1dkRtdmdOXzZCOEhHbmV5bXdpQUlJZ3NpWWhfUmR0NnBrdWJLVF92aFkwMTI1WWZkck9NaW9keTFLbEpNR3NJNGxqX1dJYVRHQjdoY1dtY0stMy1NNWlZVnJUSktaR2RZbUFobXI3bkZVT28zWFFCZkVVZFpKb2Itc1R6eDdNYWttd2JEcHdQdHB5OXFQem03akI0ZC1yYmlncDI3azRTYlVFOXNFWTZVeVVJVk80Y2l5R3ltZThpOEdLY2dSWXJ3YTZmVlItTnNvcm16dmd5eGZVcDFGWDZuR0xNbE5VMDNEblBVU0JLT1RWTzVnM2JuNG1DNWI3anBVQnUwQTk5R2ZkTEJGaXg4dURwR2NsQm51TFhncjcyRFdCRmFKeldkZXNZbTlaLWk0WDBaUTh4cVZwdGpXTnI5Sm5sVDlLeDVKZXdRSHZkeXRRdHRaTXc3TS01Unc5UHJreklWd1JPZE5PVkxwRWl5RmVqM3YyZmJGRFVoRmg2ME00NWRMQ0hqU0k5eC15dDZ6LUVtQlBpdGtkcWpUT3hLam1qVV9WNzIta09tVndhZkY3MzdTcVRKa0lpWlVic002bEJoQ3Rxd2cwNi1DelR4U1pMYVgzOF95dE51aUY1S0JfcXVwcU54SGJ4TTVZN0l5SnJUcGR4MG9qNFZzWDlxWkFjTGxCZnRNaTFUSTVLMkJRSERSNW5FY2UwT2J1SWpjdlNrcjNYMmZwUWQ1cHlLdnBXcXpNbnNuQ3NsVnYyWUY5ZDZHVWFKeHlfQ2MzRVJqOXZIMnRJb2hBckh6VzJlN1lNUTRyQnducnowOXc0aWNnNG11TDdVSnVsVnJLcjdJS3FDYjJyWFViTDBIRUVrTUd3T0pISEVnVWxlYzRGajRNQl9ZNnh4SFJuekVKMVVBRXVTeDJaZG9Bd1JsSjMwRHZYTWMxcFo0NWktYXE5eV9oOFJxaUZSUlQwSktjYzFpeFA1Y1JWRmVpbFhKWXN0cDV6X1pKZ1FrSTdCQlBaR0M2bkZ5RC11LWh4MzhQN0IzQjdUUzdoWVlXdm9ETFpGSkI0a1ZGRUhvNlRKdWNDVlpJaEFMdHlfN3dreFFxdU1mMFNOREQtV0FPWUJkY3JpZzZmYnNKSVhvc2lMSWNDM3hOOGw2X1dzNk1UMXdXODZkcWRUWkJnN1Z6YUlnREJ2RDRNakRLdjk2M0k2c3ZmeG5FWWNEQ3dDalo5M2JwUGRJd0htZEY1ZE0xTGZVLTExMktBN3dCQTJWYjU2cFdBMWk2QXo3Z1N6RXhQRkZvVkNBdFlJUnBFcHh5SVBaQUVHV05zeDNpNEk2Z2lyZi1hUmFWejFXUURCemd3ZDd3TlpqV2xrRVlyRFBBZTFPVnl0bU9HQWlGZmZiQWVPaVF0V1lzMHYzVGFTOGcydk9peXRvakE4ZzM2dDQwQTB6T3pKYnlzUUM0Z0hjODJuVDdQUDJBTFdPU0RLTmxSX2M0eHFWTkxjdlhxZHFBNmpVRlBUY1FONzk4U1FRbGprcmd1bzhEcGxTZTBnODl1VHUwV0ttcFltSFA0WEtmeXRGRWlBR1FDSmIwZUl6NVZsTlAyVnFiRGRMcW1JSzhuNVlNSUtDY2ItY0FUdGFoRXU4QkxQcVE2VC1aa2t4MF93M2RmZjhVX3ZCZUFwS090SERMWUVqcTBnVktxUHhaUWczY3RJS2oxdXJPeTIybnJ5aTlnZWZVc2QzZUYyMnBCQkx2YWVWSk96QUZndk5YdnRiTXFsUW1CXzQxNG1tVGVtaGFlNktjOW9KRF9sLUxKWDZPU1FISlo4MHQ4Ql9VZkdacFZES1NubmFmMmY4UHYyMy1EUmlGNlNyQ0ZKN0d4TEhUNXJSNzU2MW1YUlV5Qy1leWtocVI1ZFZSZDZhOVQwSGY0TlZSbjJiaVdxeWhPR2VUa0hKazE0YllOUFdYTm5XSHl1VTdyNEZoOVVsb2lES2xIQjQ0VjlmYS1YMzE0c2VHZHRqUFNLdWhFRHBMeV90VU95aWU3aThJaGNIaE1XOHlFNi1Oa0lZSnF4cU5EbjAwdUkzSEhEUWtGYzFQV0RYdlVIcnBJUFRJcFFBQ3c1dkNWT2JpUmFoQVBJM2tFRFh4ZkY1S2VLMXRuS1hsZWRxQmRIc3lCUkZuNnp6T1p1UHdOWktKNHlYVDhoS2wyamQtNTlqdWpibDBmNF9WdVJFdmVQOW9FWWtTOHU3UmlBVEVHa1lPVkg3MkZXTzBzLVNJWGVRRkQzX3VvWjdrM0xjSm9GVjlXMDZrQUVWY1dURVZGRUlwamtNMy1FYnJSUVdMcy1heWVYQkNFSUxsQ2t0di1LblA2N0pyZFV0bTI2cnFlVXZ5MzdTMTBCTE53YjRiNHBvREhMS2FveGFuZy1iRjZUb29PR01UU01MWXUzaUlLc0R3Wm9kZG1WR0xyQ3FxNWJJR1BFZTNoMnc1RjFNZ1hyVEU2TmFubXpKckh5eHVPc0VyaGctaEpGeGVCcWE4WjZZWFduTXIxNDhLanNoYVAyeVpFSWV6OG81UEc3cWRWaHFRenhYT1c3eEQwSTUycjBvbkhxM1hzcV9SOGhFby1UYVdPbmY1NW1YYTNWMk81LV9XanZxZThWdzdwTUF5dG95dmh2NTVTVk9xcVdkNXNIdGhITzd0OWlMdDNFYVMxX0ZnaU8zVmVENmlvUVBNNjZsWmhaYkpZZHo4b1RFeU9SR09KbkpjSVpqVm1YSlJIbXF2eXZsUlpjdkVMM19KR1hEOEZGNHlBVE0zaGhlNDN6VEJVdk9oYlRjckhNQTRLZjhWczR4cU02QWFsczVBZzRUbVZSSnVLLUVRWFZCaFE0TEpBbEgxVXZzN3lKYTdLM2hsQlZEMWo5WXRWS2htMVhPNFJySTNrZmVxYmxoMTRHQ1NEdnI2OExyTk53SUZsY1JEY1pKalBOQi1GWGhUd25PbW50ZVItOFY0UTJVa19tczdTTm9ZUElWRnJqY1R6X1ZkQ3dYRTFmMjNocHpqQ2tnWGlsSUlNNEpNMkZmcDNTZTY2c1JHc1RXXzBBbF81R3Fqd3ZfZFBYWDA0RHJNMFI5dGljTHhLczBnM3hkSXF1M0huamxBRFU3S0c1Yl9NUmxUdWJCQ3pEamtJQWRRUEFwcUhaWktnODYyLWloMDE4bERfbFViWEwyMGhFNFBNbTE0eEg3R0dPQ3FWa1o3RVU4ekd5Yl9xWHV4RF9LZHFLSVR5eUc2WC00MHhOeTJ1cWpDMmlvVVpiM25Tam5kZWFiX19kbC1jMDBLWkU4RnhTRnRMN0RreWxpTWM2Yy1VQXBhUlZKQy1aa2NBaXlPZ2NBOVZQa0x5a2xlcGRNYXY1Y1J2a3FvTHhmS3RMU2FhS0taWEdveFd5OWp2am5KZHZfMmZDTXlUeFdOUWl6MzI5NG9mNkNNY09sTmc5VW5iaUlHb1JVX20tMHQzamNRWHBrZ0pDWlMwcmQyZ3RGVExYdUVlYU9ZTnJjZ2dPWkVQMkstc19kNUlCU2JqNXE1QS1HYU9hbzFuRmdFOEFlMDdEVXVzeTBYeVEzd0cxb3JIOXUtSUxpSHpyd01Ickx5ZWkwYmpYSm9HcVBuSWd5d29nWjdZRmF6a1ZSTGE4OTBZQjlXR2p2SEdqZ19yYmVabWRDWkFoalNiTlRveFN3bGkxMnh0bl93WkNWVkhlNzUtSGNkTHZHaGgyekwwVjlROG84NFI1NUFKVV9fNjI2REMxT2w0cXVLcEt1Z1EwMHowZElPbzMwcG5IT3hqa2xlcGRMM0dyN3dHNXZsSUJKbXVWMlBReC1Hc0JmX3lYbUhxOXBZZ2RJeXl3ZjNqSjlDcmROYXM1RGNseUExUS1Sa3MzdWtyU3dublN1ZE5OeTNCRlJ5ZkgtbHhWQmpYSHQxUUlQM2JLbjRvNmRPSHNLclc5XzRPVnBNREQ0UjNMRmpYNFM3MDJ5ZmdXSkk5Wld6TDFadk40X2t0Zy1iVHNYOC1zdzJfa2Y3dXVldmJmMkYzLThmM3lvNDNUZ2dQaDU2TEZjbFNidGdaNE05MDRTLWF5SGQ2NkhVbmU5T1Axc1NldGdKWXdZZVN6TTgzY2FUUXVqRVA4bFhEQWxKZGJ0MTRhZ2FValJkNlBNLVVIUGdGUmNtRTd5Y0k4YzNSdWxrVkU2Wk5qeUU4VkNnaFRoN2JMNTJNYXhUcVMzQWJKNUpHak9ESkk4ZTczV1BFZHZPZ1FPNnZvak0xNDFnSjFtaW9rTFNIbXNwVWRhSFdIdkNkc2VHeTZyZmJfYktmeGJGS3FNTEN6T3VKbjhxd3hlNUxJQms2djJCUmNzM1I4ZnI1VjBSQXB5U3J3bmRuWExFRHdVRU90YzdwSTBqajVNeGFJaWxKU1FMb00ydXpiWXZaVE1INklXSndEdU1hNW04MlFCRnV3TWFZRDd6WmNwM0RGb2dFc0N5YnFjZFd5SFBhV3NxQk5GSDRuYXdwRnMwQ2xZMWMwbGZQR1RnTWZJeTRxRnV5U012cHNkYWZORUdBdVFpYU5zRzROSnNJV2NYbFNFQ1FsLVhRaHF2YkpUWE03NldPVTVld0RneGRGeG5WREVhdFRlQWZZaUVEN1ZBelFNUXNFenU4VUx4VmI3RWJzX3RsUW5hU2hVX3E3RjNUVEV3VUpPdDNCeFdPcWFCbmhNdUdOdU5CNXJabFd3YVhrUTFNdGxwOEFmWTBXSF9kX2F3VXdQbUpCQXFEX0xKRncybWVBS25OZl85NlZiUW5iU2J1ME5uejlvTnVXVmNMcWZIeDIzX1JfVVE5enZibTlkaGlSaUxSMnVDUzN2d21XS1UzVG9vbks2c1NpeWNmYnh2QjE1TnFnN2l4UUV6M2U2emVkX3pQYy1GdF91ckRrR1dOTFJ1d2Zyb001REQ5XzQ0UFVvLU1SQ2NiVGp1emxqQmVjOXRUc1NRdnZWVnp3WHdNY004Zl8yWEJxcU5OVl91b3V6dVRPWkFfbkNVTDV0T1dFSXZIZmlDRWxJV3lrS0U1TUFUUVlUY3FRd0VwNUlBeDFDOXdudnZtVk5NcmFFNHpDSDJuZllsUGNIYWpMUGlXcHpUdUR4anJGeFhIbVBUc1JTM0Q1YU1yTmM5emwyZkR6ckJsbzV0Y1pPT0ladlR4X0ExeFA3RlFnNjMtbUZzTGlRZG16NzM1bWVjUEFmdkROMnV4dWp3YXFITGx5NGlLelljVVRjbHFhYV92X25VM09ESUxkcWt1S1pCZFZzZGwwX19YeDdkSlFHNG5nN3kxU0d1V2Z1NEdRRnV3azE5b1hJM0ptU0c2WVZHSW5wSUlNYjcwSy1BREliMlZBWjlVaUloMW1HNmpUZWRHWHJtMzF5b3Jnak1PUlRERU1rYnZCeTFaazVrR0E0V05aSmRKRnlSQUtXT3VNbVZOVXRWcTFWRHpkTkpNdGhaWUZHQUU5MEtBZVlaZDdmaFRSZlY3ZlFYdzhWOENmM3IxdmdMTXJyZ2JSOGwzeUsybFBLMnhMcFl0cVpRanFaREpvSjlwUHBlcHEwRF9Dc1JEcVlDVi0zNE5GbldXWklZQmtmZTRPSGFFZTRlXzNQOGxNVTFKUWlJY1dXWmJ1ZUJXSnlpNDQ1b24wRm0zVzdlYTRnUUJCN2c1MzU4MUJBZW9ZQVRUYnFFV0J0LWU4OS1YMDd1Nk1vSDVKUU80OV9kSW0wNU11VVlrV3ZQODFHNDMySDFPYmgxRUJBNG1WdHYtM2ZqeGVDRldiZHVzTWxxa3RYbXVodjBEVWdmWGh4OEoxS2JaMUdjN3cyT1E4S29KZXNGM2QyTzIycjFkdHRIamdmbHBUZlVXOGFaN2hPZ2otSy0wRHg5dXV3ZmNVVWMwUnd6bkNMbVdqd0lnZ2NfQWZJbVRpd1ljZWgzQzlpVnpLdkcyV3BfZHpCMjgzM3YycGI3SlRKbmFYT3VSSlhiM1JQS0pONGcyVXV1NnNYc1JBd2FlTnVtVVVpM1B5b0pCY3dhZFRsbVVrQ2JNcjJMQzBzYmZkbjNMOHk0bTd1UGg3VTJ1RE5EaGk1LTZaWUNYZE5SRVNzajVrR0QxNzJoUHRSVEV6RzhUeEN6Nlp4dE5MQ004a3pHVWtjS2FLeVctZFdaaFVWRENsZVdnQ3F0NWdvNUI1OEVaV2RJbi1SRTRxREZ5RlBDNDg3bk9nMUVyVmZBN0NHWldha1F2QXN5ZUhKb3dkc0RrdzZIV0x0Y2ZwQTJENHEyZ1Z2aDdraHVNMmwxSE5DdWxNOWJSXzZZYlhuTGlCMzIzN3Zjc1d2bHpBVmJCd0J3WHRQT3RGWEEwc0V3c3Qtb2N5V3Z4WFNsT19kdlhRNUdHa2pLcjhFX1hzM0dvZmlqaHpsZF91OWFROGNTek1XbE5xRGNPWncxdncxNUtaeFNXR1QzcDJ4S1VHLWtSZW1Jc1h6VW91TFdma2RCbk41Vk1tUTdJTXA1RkFfcmdHWnFwVHByaHJMSlVaeTNZN3I4bG1McW15Z055a2FMNWkyVEpIT3RWVHB2eHVzck1LMnUtSzdpbUJVMHlkQndFaHNOS1RWMXlGZng4Q2JZazJTeUo2QVlWeWZLM1FhVEdqb2FFMGxocGNPRUIycmpfUDhFWHAydlJ3TWZsYjBtc2daYTFCOE93d1BXRUJMdlROVjVzUEYycFpUaFlnM2xWVzFjSlZlTlBLRTJfYU1zS0p3UGVIY19YTTNrdDBXVkpMbTBnZzE2ek5EMjlsaUlfNTBjOW1VN2NpVG1hNEd5ZzJtSkUzVkg3VWxUanVkRldmNTZpSEZHNlJpU0FqVUFtMmtBTkNGMjFyb3ljVUhFTGo1aVlQZF90S09vcmJvRDlWRGcweDRDc3BQMmRKZWVzMVR6aVMwNU5qU096cnd4dG5qMTBBZ3kyd3B5XzUtbVl6dVJvYTUtNXVPSFhDRkFNSW5QQ2doakFudHVYUGw5REJRb1ZSMWYwUS1NdnJWQU1Qc3pfaXMxc2xZaTlFT3NDUWp1R2hsNGlxYmVNWWRhbFVZZllGYnd5dktaTGNlZndjaVdpY3EycWhpM2FxaWQ5WkVwVGRyR0FvRjItdmd5cWVsSjlRb2NfSG8xRldZdjFrVUR3RTBmQ2ZlV1FteHBFMTQyYmlZNVNnV01CaE9tVTBKWkt1c0hCV3B1ZWJ1TDVlc2RHVEJwRWtpcEpHWmtQSlB0YzBvTlJSVU90TVdZTTYxbXZaXzRTTFpqOW9kZ2U1akMwMHBzSHVYTUExTG5USDZ0R3FnSDlTd1Izd08zOTNTQnRMRU5oNy10UEVEVWc0dHpJeXAxTHQ4R2dWS09DTl8tc2RCbnlpSjJaNmYwSThEMXVPQnJYN0JGb3E2aHlkOWtMWnZiX2E1VHFUdzNKZDJCdHRzOHBWS3hhaXFtTW1WUmZPbU4xYmRJSHhlVUNCQzdXdE1LZUc0M2FNLXpYZDBfUmI4MkxJTVVVRDJadUxXb0MwUGZzUmpiYWNpOVhBOFlBVTE1WllTOVh1YV82NUZYT2xxcl9sT1RuUjd5Y0JZY2J5T2tIeGpIWVFmRGkyQmZRV0NkMElXaF9WcUxNZWozT3ZEUW5FZDZvNEU1N21FQ1lQUEJUSkFIZTNHTjU2UEl6T2xLNTRtVV9USUNpX0JKTkRXemJvdl8wSnVEWExZMmUxZnhCOXNURmc4c1hINUozYUhYY2dpYUdSaHlnMjRKZElJV3dkcXFRbmlLZWNfS1IxVTJhbEVqX2xPQTNNb3FadHk5Zzhnc2RCMjRmQlRLOWJZUnc5eW9OVWhrSl9fM2NxNlozVVFvc3VrWklreDJwVlRoTkU3THdEQ2gxbnVRYlpvUlZrN1NKc1pjWkZ1TTd1SUJRWUNVMGRIQzFRS2lublQxc3R5WDduM3RRLXZPWGRsSENaOEtmSERpR2tsemdKUkhVSFUwdU9JQUNuNGtUbkRzN1ZrRGtEZ2YxalBhYXVYLUR4X19Cdm5oWXIxRFp5eS01N2x3SG85c21rZDFNcGFUVGRLR0cxOVktUDh3MmcyNXJCcVlWQjhBZXRlbXQ1bEtZdE8yckhJNmZSSDZrLVhSM2I3WkVlSFA5MV9UTkc4QVZtV1djMUhaMmdYN0gySzgyUzRoUk1JcEItdkxUaFI2QmV4bTdDeXJHSFZqNHN3M0dtZWd0cG1obmJlNEZQRVo1UTZnNGhScUpmYTJvOUswZDI1aktwaURBTFllRVY3Y1VDUjhBVjRYNU5WR3hWdWppOVdYN0gwaU1mUjZHMmpIVkFZSmloSkxOSC1JSENWcVhxdng0ZWNSRmVxNGRqUjNBWjRITm5kNUJBaGlTSHRObkhlM3EzeG93cFduQVh4M0hHeFZKcUozZ0pVdDVtdGcyb29pYnJiTTVFVU1HT290QlZGT0k5eGd4RmZYT3dhYXNPNWxIbTVoQnFWZVczOHlXS1FqYU50VG16TjlITjFrRWFfS0JacHU0d3RGeGswNkdWTmFEUS1QbmZBV0FJalByQ1FjSjJMQ25kS2FBSHJyYTQ3WTI0dWJYd1hPNUZsSVh6NElaZzI3Z3NzTXpVR3kwdUtGc29LdnJrZkFLdjVWblR1WlJ6aklrZzNoZExLR2FMb3RPVmFwZkp5VnNidGh6T0JrSERUMDllcVlOYkFwbWdYWGdoVTZSb05nV3IwOURSMmZQV1FyaUVzbm9Gc21yZWc1MUUtc2JUWjJCb3FqVW1zRnlndjJZdVhpdTVXdFFUNGtKQ1NxczZZVEw0cGhoQy1sTEhubWs3Q0ZKVnNMUHpUM2ZUcVF5M2V6Sno5dUxyUWJKRXVVMGgyWHQtNGwzaENtNU1hQlVVUGU1SU0tWHZhVk5QM3FQUGN6NjEzZkt1WmwzV3NmZVVtYzl4OWhrbElxRlI4RE1aOFdpYnhJSG5CXy1vTnpvcGV3SXZkOU1RV18wQ0hJRlNWWV9lMDNfNlN4SDBiLU5DX1Y3MXZHNXpNTXpqUkc2WXB1d3hMVUQzQnV6cHNWSVR5ZTd4M1RSWFBxNE42aXF4cFlTeWpyMUUwVnk2UXhzWGc1Q0NsZEozN0p0R082b3pTY1gtdDNKOFJBbVk5Zk41WTRURUZCZkxFT3VtdkQ0WXdjd0xuVktKMnVYN3A5MWZjTTUzVVRhTVc4UTZSZ2JFaTlnZjg5SXl1OFc0WTBIQ0REbDE2dVhCSXdZR3IxX1lyRy1zOUU1dU9FbjVpVm9oY1JsX0RrZlNNenBsSUhPWkJzLVM2X0tud2lZMXZYeThhTWlqb2tFaTVOZnBMbUdZdklwdk1MUFViUzBrQXhGTWo3dktnRXR0S09pU2wxVTJleFF5d0tsYnJtUGxFamZ3YnFjRVZkbmZvTFhIYXpfNlhYTE1Qb1FobWhKUWtvVFN6UDFIb2J4UWY4Uk53VmpaeGF0enpxMGtpMjVmUXlTNTlET0wtVGtiWlFqOTByUnpCQ0hVaTZlNWFmNUN2b3p1T2NIdEJmRnJHVkw4R0JQMk1JWi1UTGsxZXcteFpBbE10UVRITEVuUE1US1Q3X0VwY2dJalNDQTVsZHFXQndZVWxJaXZWd3NzNXRlWEswQkNvWjY3OWxyTVdTOEIwUmRwbjM1djlPU1JOejh3TUFTNER4UVV3OXhOTzBrSjdCWHdUM1dOem90dVFFVDFIeWpEcDV0UHY2MVZuVlVDc3pRME1TaTcwakU2OGtnVm9TM0sxaHFxNUhyZlJoYTVEM2MzZDFBWnJzaUVsMXpMNU5OamktNnBpZENKVmxZeFNBa0gyc2VlZ3lGeUVVV2p3ejZRZzBzeWYtUGtCWVFaRGtKOGJsUWFyUjRMdVJGVmViUTZ0bnQtVThmS0M1d3kydzFXMUhiWUZOWHRzUnVkcm03WWVtUDI2eVVNRzNPUEktLS1zV3VEUW1VblIzemNaVGZkcVBkc3ZyRmtES1JESWZfN3hsbDBLVGtIbHEyRjJOTTBiYjlDb281SG5RdERpX1pJZmIxa3pZd1BHTDZMV1hsazdhcENaQ3daWVBLNWNmbHkyWU84QzRuX2w4eDJkLXdkclBMWGNMRi1xZnRtX2RzZmNrNjBrNUtGenozZEJKV0otY2l1ZWM0S010Sm1JMklxUm50MVpJRnNTOGhEcTF3b0ItLXVTX3ZfZ3lMMVRxRklNWE80b1dUZktOV0l6d1NOUVM3UGdCYXdIMHVIemZDeFJ1bmh5enRMTEdMZEtBamZxc3d6R2dDMnV0THcyOVJoZWtLWVNyaElGWFVoNFFjZF9GOUxfNXZyc3pSaXpKekRUMGVkWlhSVkZNdTFsV29zQUs2YV8wUGVZbFI5cC1XMS03eWo3dGJveGZGdzMyd3o2VlNWamJrMHlIUnpRYmtwNkp6QlIwcm1QU3VlU1QtcHNCSWVwSGI3S0dHQjA0ZmJvLXk2N3VSRkxKTHZlcTJua1o3dDFIRGozQ2taVGduUmJ0S0xYRVNkb3RFY0toQ1ZXaXNrTDZabURLVWJJTkF1MXpLMlJhZkJhNzVDNlVPX2llVnAweTBJX1JnT3hEd1Z4QzVReS0zdVZkc2trcFo5VGduUGhXQWlURF9tQlBmeWhQN2NCbFZvUUhoY1lKYWVjQ21jQmtVcTd3cmx1emdEWEduUkFveUp6MXlwZWNjWC1IUnlqOEFFYXhxSkVUeGpWTFpNODBNS0xtRjNXZWt1dVMxSDIxLTFYUFcyaDBfSkE1OTg1cm9uWnBCSUtoaXptUU44YVNndjBIbFlmVi03cTl1Vi0wLXFrNXVQWnljQkRDYnpUZnlGaEdzWGdKU0tPSm5PYkU0QWktMW14NHpJY3FSRmNiWkt1cF80clc5Z2lFX1pfYjBpTWlMTGlBUHJ5dGo5T241ckx1MnJhY2UxUHFvb2VrZzFuWWxCRllTdzA0eHBWSjNGNURCOTBDMHh0SzAyMEtEakpRU1VCZW52dUpsZ3V4WVMwWnQ1N3dKcnVXdmFpYUlIalFBTmRjMU1lSVJEZjF1Z2EwZ1NwVjZPbEltMlY2aTVDMllfcmY1eHJITmVlWjdwU3A1X3c1UTk5YlU4RkdEMHZNbXE5azc1eTdsR3NTMVlwc2stY2RZd0pSek5oa3RPeW5GOFZBNlcxSjkzVmZsa2Q0NTFnMGRJM3dGd05kY0FqWG8xdUMzWF9zdU1JOUl2ZU9jcWFqWlVNcEFCMTZzbU9waHVpQXlBcjNTbTltMTJMMVBvbzVVVDE4V1lEbFl6eXhNYkRmWmRUX0I2R2lNUnpFYVlHSENyQjJoaUhsYXlDdlpCNW9lbkVTUG1rS1c0dFNmOXhRc0R4U2U1ZnR0UGh4enJ4UWxieEM1V2dINlBibzdYdFcxdUpMUEVzVnlwdGRjS2lPSHczQ0d4dXA1NnVNdjhlRW50SGRHdVFERmVfalk5TUJYZXNsdnMtQTdBVzg0VUFvWE0xd0RYUFo0SVZjdmozSWRpbTh1WUVDU0dXMHlPcUo2MEVBYk9nM2ZERW1wbEpNVTBuc2kzREZmbWlqNkVRZ25hdk4yVUN0Z1lKVUUtUVoxU3lHTEY3OVlIRXhFVFRUZ0RheHNIYnZCX2NibWFwNC0zaGhPS041OXlQUmN1ZldZTGtrMUhpODg2c3V6VWJZa2MxTkZRWlBGekdYV28yUUFvUXlCQm5DS01YT2QyZzBPS2RaSFBYRUtVR05FM3A2blo1WVFCMUx4dXJhTVJCSUNqV2lHN1E2cC1XdXRpNHFvNnRvUjgyQlFFZUtqSC1KV2t4a0NoZ2tFaXpUSjFGcjlHRFZ0c3duOUdFcTBKZjJ0aFhKWXZUTkdTY2tTVFEwUzFIa0NlcVNLOXAyN0p3NHl4RTlocmFVdHYzaXl4MEhFZmNnTlNLVTk0WmpFa0R5UFozUXNLUUlCa0xweHJReGRsZ1hSV2ptMEpJSWQ3WmRiT3I0YUZPN2ozZlM2a3EwQk5SVzFBVnhRWXpkLThFWkV3b2w0MFNyNmFfaG5tUUo4WWZvYlFoTDBhZFBfWUNaT3dBc0g3alc4U0lKbGV1b0hLX2hPc2Fha1hkTnJPaFNoQ2VVYjNpNUQxRmxkak12SWFEajJFN1dfUDJodmVna25PNkFhOFJlZ1JRN1dvQkVpdGU4OEszeVdPOWJkdmZ1NjFJaTBIRU1RUm5LQVBILU83RVpMVWdzTmd1ak5YRW1jRmdmRmhmU1Zudko4Vjd1UnNmbE9NcEZkTmZzNU1KUDdEcEF6R3Q0aGRQaG14ZlBseDdqTXh4cnpOQ19GS0tvRDBwcWdJdWtTVnlMZzdrbXkwOE9paTk1QUNMREZsTnlQZjNtaUVUMHRfaHBmWFZrckhCZDB1Qk5Banltb2J6WmF5bW05SFhLTTFVSUFJN21WQWdUZnVUYmQ3eEY5TjlDNUJTZXVyVDJtYnNaY0JtWFNfa3hZTWtSWjFkSkdjN3FwVFBSZUxOVm10UURBVzZWdTZUWlpHNDREMHdRNllKalItNlFiVnNSR2NReGtxR09KQ2MyYm44SEdvMnZCSG50TTdEZVM0RXdLUXh0bVduVXdITTNVT0ZHaWVOVmRvZDhzcllzaE9sM2tvZlN1YUxIUkZiRGdVQlZoaHBFV3dUejF1VlhOd2VVN003N0R1dGJZYTFiRXRJY0hneXJjQUJTVW41dlh4cEhhbVY1RTJHczhEeDhYTmlBaWdYREJfbmhFZEdWWkVqSmd1TDg5VXltR0c0X3Z0cVMtN3hGYmtJaFpPMXBEVHZTMm1KM04zNUduNGI2S1FWcUEyWEY5amJwRFF0VFY0bEgwZWhiLUFyeGtGMkJjbnA0RUdNZWs0eDRXN1RfNEdtNzlFb3V0TjJzSW9iSFhXYi14bURJbUVId3ZHZkFsYkc5ZFFLZ1pDT3Rrb3EzUHJvY0hEMVFUTElpNEpQYU0zc1VFNngwcy00NXR5cEFHQ3N2MDhralVkUW5GbUVTYUhTYzJjSE5CUEFFX2ZzMGU2bm1fakRLektON095RkV5Ymd1bHZ5RTRsb2ZxWkxfcnNxWFlPN3lvT2oxX2FLVHhGa2ptallGNWhiS2FjcDhCNWstRUZUWVZYMzMzWG9OelJreDRnOFNWZW0xVUNibE1QOTJxb3BLUklPaWNJQWpmN2dkS2hhQmZTaE04UUt6bDJBVjBVU3lwMkdrUFRja0NrWEtXUXhhbl9RLWhtZ2l0V2w5ZVpOR3BpUjVSUGxqR3VRaVRYNlJENGZKcUdEQWNMSnEwYjZYZGhva24zMHd0Tmktc2J0RUN6NC1HV1ZOZVVBYThETl9haFNaMXAwT1MwMkRkbGVKOG1ZcW5vYThEbF90ZGZEV0xiNDg4WVplU3JwUmV2WlBJWm5OQ1lQUngxTDdxMVVGcWhfajVrQ1N3Q0VWTEpDUFdzaXlKSzluXzU5c3lUaW9DemxyM2tuTVZ2bDBZSnFYdXF2eW95TUZrcDdGdVdBbWtfYUR4eURaYm1mRGNLNVFnM0c2YlVwVXhPQVJyamgteWtreVpfcmxsa1hLUjVrTnJJMFFKYkw5UHBiWFNtMzZVSTFNajB4alVael9IYmx1Z3J3c2lzRUtGcGw0T0k2bUY1cUNLZVAwWmFmaW1nblhxS0d0RW9wNU9kTHNGRXNoa3BSSWh4Wk02eTVta0RZM0FrX0c5N0FuLUxzaVVWdG5IN2NYNUJPbHZIMVktREFGdzhkQTBpOFhPbkJoWnZ4aFZqdXctbWtHWjBITURVS0RMWk5uUVR1RXNnVEpDT1RQOVc5R0xtaGNfMGRSS1UwQTQ0RFVRU0l4SmxEYzNYWmdYOV9XdWxMY08tdjJib3pvLUhLcTB3blN0dmlPSU9YQ21BRW9PWDFodWROaUJmdktBc2NYTnE1bGc1YmtaN3dDR0xSQWoxUjRSelhDMnVsaUkyZ3lpMTFHZU1VanpoU0h5Ylk4NG5vWGpDODNJcGFTX1FTYl9WUFEyeWhMWExVdnp4SHJ4YldpajQ1a1VEMWJEZUkxOHhhQmd4UzJ6VlRVMF9FcW1WaU9wbjRnTWczd2oxMW5tV0JYOHVHUHlkUENhV2dtbFJTVXNxVXVGQ0dYZ3RNUFN2R09XRkl0LV82YzFWdVlzMGJDNzl3QnhwYy1MdENkRXIweVM4NWZKQTE3aktoclFINUJLQXNneUhKbzFVU21FZGMtTDRweWpkMS1obnZUYzZxRHBXQmhSREhieV9DeXBfc28ycERfYk12eFZ1YnBDX3FIT0dlaVRLSkpTcHdmMC1OdFRLSnAyUzloUXNQYnhIeUFlQy11ZThIMXA0WlcwWVVyWGpJRDVoS2pKRzQ4b1E2THBsaEJTWlNCa0xpczRqNm5nV2ozN0dLZEFNN01jNlpKVFZRdEw4RXZjWWNTSUlEN0liMHAzXzBIQzRKX21NTEtjRlZWWVp4TjlvSkVPZWJLUFVzbndwelVUX05KbjQ4VVZrMGwzeGtDaFlEVDVmMENoNl9MSmhSSzY3ckI0dXk2WTY3N2ZKN3RjRGFfWWsxZlotcmVpSlBRNHhMTnNOZ05hU0FoQ2tqZE5Nb241bmlPUFNhQUtVcWdDbkhsZzN5bDhPOXFhcVk1aXk0TzFlS1hHcmY1THkxV0lNX1luNmcyeFg4aF9TZ3hlcTdRN2ZOYlhIT0Ztd1Ywdk04aXhhRmJZYnF0N2hHT1pjWnVQaFVOaVdDSF8xb0MyUHlIUE1IcEtWcWdaOUNYYkdQNmFhY3J0UmpRMkxZdUZNSnNWRVhlN1gxNm1xMDZpd0dLUWxsUlZxXzZoZGtqUUs2SVpDVTNzMXV3cFlGeHdaTW1CQVVCaG1lb2kzUVItQlhrYnc0RU9nYXllQTJkSUV6a2g3cXFOYmNXNlNBdnp2eXd4cUlQT1FTSWYtMVlSRnZfSDBpYXN2MmQ0R0kxNHpDWXUtXzMwT0hqYzYyX0VMLWg4V29pa2Z3cTNXZWZNMTduN2hGSmZzMFNWNTVHY2U3UTdDQkxxNEVkSTlXc0t1MDlxeWhNWHJwUlZPWTBrZzdsNjYxa281c0VsN1RxYzgxNWl6OU1wS3RZU1RlV1lsd3pnb011clJDNktNYmZEV2poUmlldGo0Z0RkSW9GaUQ0dHJGNjZvU2k0WTE2WkNxYkVPMWVKNGNseWZZWk8zbzBwSk1NQ0gybUlwTVZPMkRueGJSSURIOUxiSEU2VE1qQjYtZkw1a3d3WUVoSHI3UnNaMnFFYUdWMDdXcFkwMUdoTWpEZXE5dGI3Qm0xXzFvcWtsdVcwMjZRUng5Vzcxa0RwU0xPNkxia1RWS2xuMlB4VmdZa3F5V0pHNlZUbU81T21fRWxlblhQMmx0bV9VVXN4MXgwdkxWczR1ejlHV1VYTGZKbVlzZnViQXBwVF85anZyRDlkV2xWc3NKdUMwRlVVNWxOUVUyOEJWSXpycV9ublJVRUJjc3BLR2d1RmN0Mjk0V2xFVjZzNFdTSU5vNG8zaVM1RWtfX1FsZEp3c3JKT3ZQS2M0S05OM1F2cFJDa3hPQ2VwZGpZZEMtbVdfMGxNdWVoVzVmcGUzRnhFMGhjeHFrZmkyUXA1Mk5VYkVZVWpPV2JRZ3UySVVmX3ZBMWpIRW9UTzRQNS1vYTBrRHZaUmxPQldRbTMyS0g0RkhwYWpiNndLTWVIOU1VZ2ZlS0dBNWVJRDRxaWwxWURONkRMa1BKT3FkeU91UGdqMTQ2WWJkZEtQdmFDOF9YS2w5Nm5BV1lfMVo3ZTNKYW9NNzhZR2pMaEV3alFpdHlSOElLRTV1ZmFDZHdYMWNPMG5FQlRnYTZPNzFrSEJkMEpGLTQ5X2FPX2RoWWo0WmVLWVNxOVhkQ1NHNGQzSFNxVGVsT2ozX0tzUGp5dk5ScmkzY0loVmJVWHkwcVoyN1NqdlRRcHFEaW5yMDBra1Q2OC13SXMxcXJhazQtcjZoQUFUeTM4S2FrUFJWYy1WMUQxUVppR3hFYUdrbUg5bF9YT2hFOEtHREIzZFgxNVNOREptRi1PR1dKSlJZNWhqZmpFWVNEVUhmb1NHTElNei01Wk5hVUs5cm42cFBMcWZfcTc1dkZ1TWRISzZhcTl3eWUtQTdLTjZyS0xqMlNfclV3RHk4dnBlbFBBTktNTG5Td09mV2U2eXdFRmFJTDRVLS01Z0NvczJBbGd0OWE4QmRKOVpsUDBUSzZEb0RVY0JTbE9VTWNJNGZXb0lDYkhwc3FnS1d3MUJXc0xGTFU1UnNSZVF0ZHhmSFNZdWs4azFWUlNhQnZnSEh5Uk9NemJXYzhSWmJCVjlQc1doaEpMeVpMM3RldzJ0RkhaM2h2U1A2SUVidWpxSE0tYnRWSXFqb3BEOHFDMG90YkNERnNqdXV0bFdVekgxTXhNVFFGdk1KY1Rfa0swM3NOSVBNTnc1MVlrQm1fV0hiQTNZY1V6d3BPd1JNNnQ4YWFVV2diRUkyNm93Szlhd3BUTzJmVHVncjdzNTJoWTFBNVRpMXRobDM4TU84UGNfeTFyYWJBeEVsMGloTUw3VlRFWmxhUml2VW5JS09ORDdXSXE0U2RHbjZzbXJLWW1LUGRFNy1vZzJfMXVhWkJyblRScHNrd1FiZUVlM09tT0lRUjltb3ZmNkRCdlZlVGtieG4zTHgyM2hwUVRRYlpFSTRORFFHMnlzTXcwSnQ4OHl2dEo3NkpwSEFYbWhkZUpBNWI0QTBYb2JvSW80a1JGTjNlUWlCQlB1eTVsZU1qeEZnVVE0N3Y2M0pyNmtibXpfSEVTZHowOGhNeUozakN4Q3ViNWdJVGhtbVdkQ1lIUjZRYjRtWlowMjhIT0ZCNTl6MkY4QVVENXNwU2wyZmhKZHBtUl9aZ1BsaVBuUm9YNGVPU25Dc2ZLTW95X1YwNk1KRTl3VGZPSXU1ME40cEhoTE9qQXNUX3NCSHBfYWJMb0x1ekpJZXdtV29SRThVR2xWVENOX2hJQk1pdWI1V01lbDgwa09nbHJTNXRMZnNCdW1qTTZXUEladUpjRG1jWlozdXpEeFBkRWdHbFZydXE0ZmpfMFBoUF9uNS1FcEVtYTkzZDFaLURCTXU3Wk54QWYwS1ZBOXVJOXZ1WFNQRDJOVmRpMG5QRFFjbFRCRWhKYW8wM01uc1VGbkxBNVZqQlJnQVV2Y05Cd3ZlYzRfOE9WMDJLRVRxZ0hMZ2tzbkIxdU1jZ0cxYnVQWHF5cmJJelN3WGJiTFViOTFWSkZERl9ZNGFTWGhWR0kyUzFpdGdZOVlsYzl3aFlJYU9pQy1KcTNiRUZiVnZiZnJnemMwOUtiYl9ya214ZjFpWDVRczh0blYybHpSaVB1eExibGx6dmlEYkM4ZkpMRE44VHo4NExMa0lMZHNmdjBHaWtkRThSelU5cFNnMVU5ZURUT0RnVktDRmtzaXdJbEJ5MDRqd0d5NnNwb1BudUxweG53OWhKQnpUc0M5dVRUTmlZeUk0SmxpdWs4Z3ZpR0JTT2lMeGNiRVlXTGFpN2NNQUYtcnI4VTYya2hDYlZZVU1mVGhnQjg5aklmNlZSa3pVSGs0QXVSR1k1QnpraWxBcDhHeHg2M1RacnVXR3ZMa1FKek5wNS1PVGN3V3hEN2N1VlFULU5icVNZRmZYMnZVcEt2Unp0WjNxeTJOMTRIYmdIeUZMYnl6SVVoTXdiNkY2M3dwcnlIN0hfMHp3OGRfb0N3bWVCMVBTQVBUcFhiYjhRZjluQlRXbjFCWlBMbUNVc1ZCaUFYQV8zUWp2SWkwUXlrN3gtb3BGc1E3OFdJUVpadkhsb0NRNWI4UGd0bVdaNUFwVDhPc1dXQU1sYkFzdXRLdXZjTFkzbW9DeFZIOGxzclZxOHVXSjhlQzgxUV9uOG5YNGFqcnZiNm51M2ZXTXRDNmxFeWwzSW1JSHRHd3lvVVZOVW4xZWlBQVpnYzdiQUlnNlBoV1pxS25DMkFyU19lbEVheVFUd0ZTWWxrM2Zjdlo4Z3RMOHB5THY0YkpEalI5NUprM1g4NGJEek5uSndfY2o2Y2Fqb0F3WW9nc3RRZFRnd0pqTU1WaU1Fa2hraVE2SVRUU3lDNUJmOTBCa2VXbWZwM2N3Y3c2cThwMG5NZEdnMjNDc0p4VHNla18zbFotRS1KcHZESHJnVUV4d3g1Z3lCVy1STjdrX2xnaGd3OUw3QUNTbHdGb2pHVzlZSzA4T0J3Tjg4ZEQwLVlmMkZSRmFnaFVQY0RfWXhmaC1qNDkyaGY1SnE1WWtyOGJMZENiZjdBTGgyeUp6UTRoUGREMDdnNW1uNThnT3ZMUWo4Z2tvTTBfMHVGOHBRaHpqenRjVlRaM2NBNkZobEI2a0Zkdk9OQXZVLXI5YkpFb2NOaW5fRTJmb1B4VUxqOVdEdGxaX3N2bWtEVzBjR05fRWRlR1dKLXhLcTdWNDRzck5vd0lCOEprZHE4dUhZXzFadVg3bWV6MHNYc0lNSEFFSWhkSnBJelpYQzVjYW9lTDRfalVxelB3dzJzMG1IU29CSlpQNjNWODhFQVpMVkdtaklwaC1PTkhQeU9QemFlQ21xajFlTVFaODdJSGNhYm1yUGNaWDFITTVvRi1meTZ5RFVzdUJyRkx1dmRyX0VJQ21TM0sxWEZmWVhsMkZCU1ZsRGNpUDJ0YVF1RzR0dHhjaWhoRWpERDVDcEZ4S2dha0lRSWc3VVFBTy1rUTN3THZHdW5CcG4wVy04eGpWRFBoU28zUUNOc29sNF9zWnFqVTBoeEVNTVo3YkVxTzNSVDNTVW1OM3RjdG9LWTBySzBxZmR1bk5iSXNjdG5TcUVPYzg3dWd4VTBXNHlQYjBNOEoyQUwySkV0bXlRZmN5RTBDalkzVjVZMjNlN19UVV83bEk5alBTbnhvVi0wdUhCRjZ0Z2xYN3p1akdJSG82MU5CMHo2MHpXZ01hYklqd0Rha3dPYXV2Uy1yX2RqbEZpeUUyZlJvQnNPNDN5WlI1OGJqcHhpRHJxOWdnMEtJcktBQ0gtWjliTUdxeFBIbHVrb1FGeHAtMWszQjdndE5GdGh4dEJqMng5Q1FBVUJwMFNZYXRhUmgwVlBPRGptMWhLd2FUTnUyNDlxZW0tbERiNTRhNFplaGZqVExkS1RoalFiMktwY2FCbVg4ekpQbnRhVlA2MXdDeVRGVDBSN2RIVHloZUhfS0NYbHA0WDN0ekdoRTg5VDVVWjVxVEZJWmNDR2I4YzM1c0pjYnh5bWZ0aUJJd05sUFRlbkNid3dfQXlOUWhreG95Wk1iai1lQ3NBN1M4V3FaUEp6ZVozWE5iV0ZJeS13S3hFMnVyTTJKRXd4eExXRllwOFQ1cFBQQVF1NG1NT0k3SDlfNzRTcWpMRFpCU1Myd3dUdU1YZW1aSDJuWVI0WmdCUF94UkZENzYyM204ZzRuLUdNNGhibVZPMW1LTllJbDlHdzljbkpQOHpSSWlNbUppWEdXTjktbjRPVHFRWExFVnlKbnlUQ0RCMzFTSFctTThyeUJMemEtOUxOdFZhUzVTWkM1UG1vem9EMFZyY2hFVEZmelhwREJfZGYwNk1aYS1icEpBQklTVWJidi1hM0Zobm9JUU0yRW1uT1N2Rkw1ZFdDRlZMcXAwREJOZEVOS0FiQmJaNGdaaGNEREVoSVQwQzh4dWJ5MjN1MW55ZlowRld0WXFoTTh1TS0xVzVOTlNLZGkwVFVhQ2d5OHhBdEh5Wk9YeWgzVFRMVTh2ME1rbjFRRjh5ODRsOVJlejE5VTR5Z2JqX01CVUJreGYtNnhpSFRVQkNpQmN1UnoxM1pSTkVMNUFzTUZLalQ3Y25zRDJxNS1fdDk4dEZ3SmNQejBTLVctbzFtVnBRSkFjZWZ1ZXBRcUdvVzdLNWIzMWFCVHUwWVc3MTZCeW1pSVEwTU5VdC1Cbnc0VTZtdG9wWWJVRjExVXhSSHl2R050dVVUMlp1MDFJSWlKTVRvYmxoZXlYQkFraEVUaDJTXy1Cckc4cG5oZWFZaE94a2wwZE1nZy1ISlJ6V0RXSHJTZ2tUN2plaThNNnhOY0Nwc19veC1kNkdsX1FwYnRkRGZWaGQ3clRaTzhCNTFQSVN3Yk9aYUhkZHotRlhUZmd1c3p6S0RwZmtSWjN0T010VFJ0U1ZWR2t3eG8wRWdfQW9iRVJSNnBBblRfN1hZQmpFWl9BSVVwQkhmYldjZENyUkN5YnR4b2VUU0RvS0twblJkV0E3cnpiLUtDQmVzNG9mdWhicnNldEdWXy1rT0dLc2FuT0lPbkNPQWdHc2VFb19NTnBvZVpjWmd5QlRlaHFmNXlCQ3FZN2FmM2E2Q0F0V2hfSE1IVzl4cGk1TVlZVk9sRVBWWHZHTFp4bi1xS2hzUDVwM0g4a0VHam10d21CWGFuQVhkNE1HemZtWnA2UkZ2d0VIaFJHNFJQQkZYSkZld3laMW1oSzZZVDZXYnpuUGloTC1PTjJPVnJEc25CSWdEUGVtclpnaVJIVWdnMkk0MXNnX1RMWTQ2N2NYUm1JZUc4NWpUTmRieEhkRkt5UWhNS045UUVBYXhDTGJsaF9FZFF1LWJtcnFfNVZoRmIwSDlocF93S0M2bFlOM3BFR3ZsajN5QzNIYU1LTW8xSVlBTkROcmhGM096U2VHUS1SWmZHeFQtZTNwdmRzc2ROTHE5XzNrdWdGZnB5ck1GY01iMkl5MFk1ajN2bF9vNTFvLVdiYUN1Wl9KZEZfb19JZV9zZ1ZnTUhoTVA0elIzRlBEVjVjVUR0bEtWWldSa25XMTRaZ1hnbFNRRG5kSG5lbmpqR1N0WkZnelh6c0FqX2xibm5BXzZnS2ktZHQ5SXk4aW92cFN1SzhTMmMxRFdqU2xIQ1FMS2tCdWR0REI4RFRaYjZneHJCZ0piNEpFUWp1LV9mUXlPR1NOellNZ01ISHFiVTVVbmpxOFVlQkFlclNnQnEzTWRza0xRNjlRVS04clRZbGszVEVLeFQzS3hhTUx6MmxWTkZSMzRkUDl5Zm9HMnZvOW9PS1VEb3VUaXRwNkdhV29Vdm5jWkdDME52bktJaUIzc1NiQ3pOWFdWbFpDWDhWdFhRQnB4NV9USDNhYi14bUJOUnVQMUZ4dlExNERsanZHQVBOM19DcHhxaHAwTmxzbk9xNzlqYmV0TmtqVHVrUTFZLVVhS1lUVFZOaTlQV21CbWJJTGx6X1FfQ21lSml1M1BwVVUyM28yNHlkR0JFTzZNZFg3aldMdHp5c1hxSVJyV1JUS0g1dG1rT3VwNlQzck03UGotb0NNMURacGZHdFUycU9aVW5hZF9TNGR2V3RBT0EzMVVsLU1DQjlLLUpHZEhyU1NKS0xoODNqM2d1ZDdoTUswVFJmYzVXLWdaZzdiT2xUc2EwcTB5anVKTzAxYmZQdjdQTjN2cTRkT1RabWluNnBJMzJSbzBTQU5NZzlBRkdvR1g3TElaR0Y5bVRMZkZGbkJTUlctaW5taW0yRW1NR1piQV9hNUdvTWxOamhmV2JvLW5aNHZubkI0M1NjZlNwZnI2LWRvRzd2VUZzMHlPUURuM0VvZF9ZcHBwUUwtLWtKR3VlYndlTVk4ZmdtVy14NktjRENjSEl6NU04MzhROC1KTEpPNzVLS0ZqREZGa3JtTGZfTGF5ZTJuekpKVGxhN0NnMUMyWS1kMFJGZnd3ODRHb1JjaGpVS0RPQnlFUDVlNzRpcnVSc2hjQjl4QVUweFpyZlIydmdQM2gwbG9UYjJ5UG9wekVwaXV3N01XZDA0eGhsMWhJUm1haXloRFMxc3R3WFh3aDN5SlNuWE5NMngwdnY5bGpQTmRDTzBiQ1lyZVQ1SXY3eFp0WEl1VW5jaWI3eldUQWZNZHM2cXF6Unp6Wkx5YXFTT0JrQkxJLW82R05SMm9PX3F6dTZteG5tMlJGOUlMcEdxYnRnZHhYTTdScVNkNVBEa1RfVjhrVzdOOXlfTUJuc2RpV05uelo3WndPNldrUlNvbkJPc0licVFVS3NXR1dUZ1E4ajE4dy1hd3hnWVJNQlhrY3lEakt5S0piMjZrWjhnRXNlcVQtM3RPTHdFeGM5cjh1MEtLT1M5YlROZDF3YTRFTWZHMEhFeE1SdmdqQ2N5QTlLa1pnU3Y3eTlNRm1BS2k1M3FXNnVvRHRfX1Bwa0lFLVpqUGhLLTdSa3Y1TmJUQnI1bmctTlR6ekFHc2s2enVPdnBpU05JSWxBRXNlUUJERWNES0c0M1Fsa0N0X3g0VmJ2QW9kQk9lTVJpZWNMeTVtLXo2SVZyME9xX0Jnek16ZW85Wl9xZFhWdFZobTU5ZkhDek1rcEM5WEN2dTVXaVU5UzhsV3Y0VmM1STZXa294QW9vZ081QXJFVVV4T3JsMzlma0ZpR2FvUmNBbWM0dG81anhUUjhuWVJXQ2tFdUQ1dEoxcFFUNkhpaW9XMk1OTXR0OExMTTFpeUMwejI4bWFlcmdBZUxGQ3pTODZ6QnJybXVTWFJEQlhhaW9DWGM3VkoxSEtmSUFYcDY2ZEZ3RjhRUkdUOE9LMm55dlZIMzlvRWhSX2M2T1NiRzJvYkxTOXdWM2RFSUFiY0RhR3hjVUpCU1JXeTdUR0ZhcWdhemlwRVRnejF0NThlNUZhS1AyUnoxMHV3LVRHSWN3VVJtRXhlSzVnbDZJWWdMVThKYmVNdWtpbTM4dVFXaklVQXEwOWhva3RsRFNueG8zRFg2STJjdFYtRk9xYk9rX1dLRURHRG9aRG9neG84UFNELUJWeGJrQldRZEwtTUNENUpzblBGRjZhLV9BdFBaWktKYnZoM0t5bWQwNXVfbk9qTURUdXFKU0xuNUV4MjFPbXAzQW9WZlpNYVlTV1hzaXpOWU10cEVReEMwbWp4aDFFLTNmRm5uOE9GdzVnTXFXNXN5d0ZHRklYcUF5MFlmc0Fsb0ZBTkstRVZvVmpCbjY0b0Q5X1NsNVBwZmxFZVlaSFFRS09IRmxWazVwdUhlZHdpckNfZGhkdGp2TnV2ZlNSb1BLU0VJWGxnV2owRHRrRkFiaXJkd1FNTFBUc21CT2pOYnhSWFkzVG9Qd0RSZGo3eC03VVJxY2Ftbjh2VW9UT1MxYWE4WVRMNm5FNVhsVHpuOW01MEh6ek1Rb2tnemcxQlFLSjRsMFJkbWw1a1RiX2tTRm5XY0hobHp5UGt3RUxvZnZfYnlBN0lSXzV0d21LLUZGcUVsYnE5WW1IaXNrR1BWMlpHTDFmTDFGaU1RSmtxLXNzeFlTNjZJRVZ3b1pCaGw4dUZJbnVidXhFeGJaSEpTX2xQY0pLTnQzcExWazJJSzJpc2duVFgwTnlJRWNzMG9pdDlfQVRERUJ5OHZwWTYyTjIxYk9la1lJM1o1Q0pleFFpVTc5VU1wektndTJvTGlaWnBaeXJ4TnVMa3BWSzJpT2toanNaN3gzNDhRdjBSUjdRN3p1aWM4b2hnbWYySUs5cjltOW93MTg4MlpRNFlETTdlOGlxc0t3dkZkOWZuOERlcWl2cmROQUhRcjFlQTZnN3BVSkpZZTNiUDJKLWpGSnN1azQwWXBFUXZVdGFaZjF0cUpPQlMtWlhvOE00aGEwUE5KTWx0bFhmZGJub2x6aHRnYVF5blR3WHJBRTBSZmtnWjlMaHFtenI3ay16TWEyM0t3UHdncDJmUGgzSmV0Z202Nkp4eHBnVjQ2dVl3UTVwSUFibll3MDFOTUxFTXlQaUNySlFFRWtwaXo4WG9hOGtJMkdRdkh3b1pTYlMtNzFZcHMzQ2oyLVZkRTBNaV8zUnRJUEZyaVVTUERfS2cxQ25pQlduN0IzS1pUYjd1MFFwOXl0VE1TdDNRbUNwcnR4YlktVWFwWEtESUYwYVVCN1RPaDRuN2lFZ0pQYzV5M1A1LVZkQ1VxUHJKS2VwckUxN3AzMmFyWjE4VFFwZE5rRHdXRWJWZFlMZDNvc2tTdkhCMHBmbTFablpMZzNpSGo3SmxFX0VsT0RIOVQ4MXRBS3ZyUFlzZUJsWnZQbEdUbDdRN29XN0tSZ21zVDJHMmlqOW11RlVEWEoyLU9ycFhHTWFURGxpdGNhcmpXR0tjMXFJRWhzQ0IybjI3LUlDX2FnbDdHbG4xUkdCRC02bEZGQjFuTVBWcHJpVGljQjA3THJZblNHSTVRdzFpY0pYNnV1TzYyOHRTMEh6Z0llUEdRVzhPMEtyR0xEZkktX2ozQkphbEN1eEpMeW5sdmE4MDVaWFZ3RUdCcEcyaGFOSlVleXhJeWFSamM2SGdOZzNHXzNIbFItWXhiUjBfSmtEODJwczhfd1VmZTBGOW4yYkUzWEVNeEd1bm9rbWdWbTdxQ3I0TzNxQk1HZ0dvN3ExNFRVTGhndk9GeXVZU3BKdkJ2a290NVptZS02SC1idVYySlVjNENQYUN6Y0pFSnB6QlNmTnk3eEFlQmNvbEN4Q0w2MzZDZS0yeUFGVTFFdjJ0NkN1U1BHZUlyY0RrRlUzT2RWOWxvRVlJaG5nNUdEdDdXUjN1RDJsRkh0M1dWLS1ieHkwSFU4YkZmT0c4b0hoU25NN1hsOWtGR1ROWUVxUndIUjk4eENYeXVlS1ZEMHVlN0ZPNnotY3dxV1NxX3BFb0ZUX0V4OFlHU0EtS1k4N1RCRFY1ODlYSEdMYW05bm43RXJybTdNc1p5Znp4V0NBb0U4YkktX0hRN3dTLVVTc3JuZkh0eVJCVkRMcHRSUDVXWDhTSW5jekUwbTFsZFdRUFRZdDFZTVdld1M1Wk5GWll0SFFVSU9FUzNRVlZ5dWlrcXZQczBQWE5Db1p1ZUJoVVViZlVab0E1WFpDTXFYWVdsQnBUMzRVWkRTV3RxUnRVcXhjZlk5YmpvNzZWNjRfSFAxUHJ4V2NQMFZFVi1QVmhxTE55VmRZd0VsRTB5YnlyWlNsRjRwVlM4VTdsd1VlS01UMnpHNWVDLUktakxpUEU5S1M0eWU5WEdtZjlVZEZjd1V3cXBiMjl0cVFFdXRUNFRmUU54elM1dzFqblUySF9BVmxvNm5LZGJiLWt5RjB5WGZyRXB4VHJtR1VSZTRqMEVzMHBXbU0xOVZxY05yeDJDczh0UDlGTlFxNlptQnJ1QVY5ajE0SlpOdUhvY1ozMmU3cTdsN2tfcWlseEtDN1hjR3lRS3U0YlpXdS1qWUEzdm5OSDVORnAyaEd4aWFLVmRka1pDQVlTUnBqMHVNZ1FuVGNEUkppTTJoV1piaGY0OXBUaUVwak90dmhIbHV0WDdYdmpnTDVZcWtVRzNBbUZVelZIOWs1QkFpUXo2VUtwVVJjUFVNUnFPTG5fbkpMd0VsY2xKUE0xYldZdEhZNHNTdzl0OTMzSjZxdzdENFdNRGJRLVI0QlJubkxwNUZZRUtSY2Z1cHVKWWtxV29xd3dQUzc4b1E1UmZfSF9VbVlBZEFOUXhsLVU0MUw5RTE1TEZqaFBsMUZObFhNLUp5ZVNJNjhlbUJ1NGNWY1l4d0oyMGd6Y2NuSWs5UEtjdXdUWE1IUjVIMmNtZENxRnVBY3lYUlJCaGhGRVBfNjFmbmxnRjMxMFZSdS02c3JmOVhnTGFuMEdtaVNZSC1UaVpmcUFrUjItRVlvdWxFUG9UWUw5OUhTekcwQTBveXhpc2YyaER3Z1NxNDVpbjJaTU9BQnRrNGpGT2ZKQ2kyOVZxMkV5YXVOQmRodkFQeUVzVHJpcV9ydHZPN1phUUs1Ulc3QndPZ0RsY3k5b0ROcmVfRG5mZm9jRUNmc3hMVndab0Z0Sm02eUpoNmU5SDVTOFdMcmF3MEhDTklaR2QyaWNTUTJEMG5oMjh6b3JSY1lfanpIYjBwX0VIZk1iNjhxa1hoQmREVE80ZVQxeGNtRmZuUXRCQnRCMVJYaEd6cW1MRlhTUXJRRWxHWFY0czZxNWFYRlJQNkljdGowQk02VkxHWXVpOUdZb3YxZEVrWVRaS3Y0QUtnQndySWRGazl4N0hOT29YRm8yRlgzY0hWTUpWU0hzck4xY00wekN5SVNGdDNkaHB4TnVsVHY5TkdfQWZmUUg4X3NQa05Ua1R6clcyRlM1RkZpTjVrQXJLeUZRRGlWNEZHZTRxWE5WbFhfOURtLW1Hdk03Q2lPWDg2Q3Z1OEg2c2JEckxFR2VxdVJFSHdxaE9DYnR1VDljczNIYlBsbDlvODhxTkw4TV9CSzc3aUh2a0lSQUc2Qkl3Qkt5ZFo1QUNpVnh0NVhIZ0tEUE05a1VaMTdLM3FwYXFUblk1YWw1QjF3bXVYMkwwSDVGckxxQjJTTFBPUE9zcU1RTlNidGExQXBkai1KMm0ybzFWY1JPaGhWeVJza29iLVNOUDd5WGJrbGlUOWJTSHl5YzFvbzFXcTZKYnNZd2hwdVI5aS1YX1cwYkc5M0hyYS10c2pvYmZPYjFBeW5sRXotRGpqZXl1eEt1UGVtLXVvRVlTWkZfbXRsd1JxbVNFSkFwWmlxQms5VHFTZW04LVBCZWxRR000MVhBOWtFeHc3cm41anROODZEdTdUX3JvRnRTWGxpakFQUm44ZTI4XzcyNEwyTWtrN3FPREpLMkg4Mzdvc3J5bjNXRWE5MW80OTJuTS1BcGNTZ0pfUUEzbURqUTJtaHZNVElPakh5TFRCZlBjaW4tby1UQzRhc28wdmpJUEhLZ3pUeE5oWnpYNHMySjFSRF9ldW91cHhfNXhocDdCTDZSTWt4eWVMd0o3Y2VwZFhDVmNmdzdzRDEwQnlyVGVtSnVoT2oxaWhrc1lVUmdEZFI4M3pweFl1Sk11a0ZqbjlxbEQ2a3c5YndNWnRpU2h4QjFZUHNuV1daV3U0TXFsVTg3SldZQzlEMzFUdXhiNFltYndsd1RsQTV6dFBTS3diTk1fYUI4aXZVUUhUazBPdFFwcndXMTlCdU9FbjFtWnpBYnJ0WkUyZ3NFQ2w3TTREWjZWR29nMGtza3gwSUlDVks3WkxEQmZRYXhIWmxFOFk2SGFCS0JrekhKSHE3MUNfcnMwcEo0UWZRV1NiNGdkRFpIeVpWY3JaNktPbEZsQTBma25LdEN4YnpjM3U2TUM5enFXa1ZYWWZZeWVvM1JSNUg3UVJZaUJqM1R6SjJVMVF4U1VqQjZyU19XeW9vWlhnNHNyeG5QRWdKak01TTdfMC1yY3NWVlVVdVNzT2RXMXFybjRlSy1Kd3Q0elkwUHhLYU5wZzRkMTFLUURIVXJkRjdPbnd4UmJ0NktLSFlGYW03UGh0ZVozV0dGbnBIbktzdHJYOVk2bEREYjBTLW5KQ3o4ODF5cUhUSmZ5YkhfRWFxS3R0ZU5ub3dDc190Nkt4NTVBS3o4c2VaU1psOXJnb0k1V0FrVkR5YmlfSlFFdTJnZnp0YzN0M1hCMnlTVDg4bl9BcDJNbU80X0V4QXBoVEpfNzdrYmJvWkl1Yll2ejA2Sjh5ZjR5Mk1yXzgySlFLVVBQYWhuNEozejR3eS16d2EtaDFLRkkyZThQTDZzODF3YmZ1QndrNlBHNFItZWg4UVhybEJrSXVqMkJ4eGU4VUZ3VUZONW9kbzY4VC1SWTF0bVdPRlZndnpDUkJKc1Zjb3htLU1CTGZsdW5XbTBVdDRvd0F1MlRKQ3lUaTRpWDhIM3E0X1lQTy1zMXBiQnRRaU0wQU01azVFNkdoZlc3MS1lQjJ2cHMtMjRORzE5R2gzTEhvTzNlelJtWmhwX3k3QXYxV0I5OURrbmJ6NXZ6dGxwcW92Y2hNNWRDOFNQalFkMDBDRW5NRmtwaVQ3SDZZTmFKVG5BcnVoanhTU2RKLXUxSmdGSE1ObzJpNEtfR0xxY1BlSGlIaTlPZDM5S2NGdVNQeHAxOV9wc0Z5bHRzWVp5cXhoNldJSG55bkRvdEpiOHd4dFU0bk1FMWFvazFZNk9yc1FUeGFtNnBFQnludFljbzFoLUlhanZHSGliWkV2UGdLNjgyc2RoZ295RjJ5OG1na2JTNWxHVDd6U2tYWm0yeUZwOGk0X0tVUnlYWUtqUndFZWdKTmktQ0gxWWs3ZHgwbExOaElOVzJEWkdyN3RFd1dOd2tFMzFHdWwtaXZWZzdGMTNMN2xXNW9OWTk1WXFXQlh0RzBsRHVoUlduSHg5dTNWV0twSDFmT0xDcnVIS1VXdzM3MmhtX21KS3U5UW1tQjNrWDF3SURXSkQ0SnFfeWlaekMxWEdIOEFzRmJfOFhtTGo3YW1aUmRwRFRRSmV3WlE2NXFJem44VEx0ekFhTUktUUlQZXJDSEZmeDFYWW81ZUpWdHc4MWphVHFRQWJCLVZ5X3ZXMG4zNXhUVklEOGdJUlpYakhRVEg3YTgtaDY3ZVFPdUNtS00yR2NZQjlFSmNRLVRPdUd5ck5Cd0lBckNxSGxDSzF3SjlPZjFYMjQ2cjY3dnd6MkJCQUdRWWp5dF9yZ09PcFFadGthV0pMd25ncXEwRE1pYWt5cE5LSlVJbEViX3ZkUGp6SFFKMV9IVzlMSFB2UWVHUmVJRTY2YzEyWlBBTm5tcndDaXR4M3hzcWNJZVd2d0Vya0ZzcWMteUlZbFd0V1Y4ejVmdklMY2JvSWRxVTJ4c3RqR0lvZDhudEp3RVRMeDJJQTZ6TUZHZ2E1UDZkcVhiMm85TUtxT3U3Z3UxYzBUaGtjVzB1QUFSb1F5ZzhDcnMzX0VfcC1YRXpCZGVWNzBIWUhXNk5CaV91OUVfLWVKVm13Vl9RcmJxanM4bEJxeEhsR1ZyUHVIbjd0ZU1ncXk5cjY4b0c4RVZRRFZUV0tXYWZ1U3Q1bHJpWXlTMlk5QnFqbXduUlBFR3lqTzJtLXVNRTRHQU84d0s2eFZVeWF1emlRQ0FyLnN4blQ5QmJTbklGT0RKQ1Y4WGR3RXc + responses: + 200: + body: + attributes: + created: 1523990186 + enabled: true + exp: 1555526186 + nbf: 1523989586 + recoveryLevel: Purgeable + updated: 1523990186 + cer: MIIDMjCCAhqgAwIBAgIQGn/FrGQZT/Cd9kgXIsytEjANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDEwtleGFtcGxlLmNvbTAeFw0xODA0MTcxODI2MjZaFw0xOTA0MTcxODM2MjZaMBYxFDASBgNVBAMTC2V4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsODIu9EJhfnn57k4++j6dC1M6Egi9aZucFQ9Jc29vFG9L9BkzllPGluKKdH1ypsrAUif7yGaq5d1nDyLhZUncU8dV/YIA7oll/fC+d0H4A37kVbM/60zXhXnKRx+DRZ2hJQzNBOodCaZpyZZEuYvtWdSCSILpa0R7yXYevjLaG5LfckOzuurXqeos7WB+l2q1c+6zx1KbNXbBl7QOz2nzk9oJU7CdhPOc+LOLppmsXRwwluKtmCDyKdrKAF/dANp5zGXFsognQcRctLSGQp8FbgBVQyZ+v81n9bPpSaBoUQMcH4uG9jPO6CWwbDSWE+FVYAm5kgjuW/1hqRSnOEV8QIDAQABo3wwejAOBgNVHQ8BAf8EBAMCBaAwCQYDVR0TBAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwHwYDVR0jBBgwFoAUaYJoBFokrORdsxOTA8sgrosMOmgwHQYDVR0OBBYEFGmCaARaJKzkXbMTkwPLIK6LDDpoMA0GCSqGSIb3DQEBCwUAA4IBAQAxL3t0kV1dq/PGUztjW+qK6Nh4sx7jsU59JtjON6zcibJ4hM+Q3Z+cEvW9zuGkuTbLz6fKNL9VnkF1LnlWTsyRmS7bF15/7iOgfdrr0vkJKVM1Zv/tqKEpBJ7Cbc0vW/VJQxZN+OlqGNc9bcx3cnqkRwpkgM25T0dVpoWtCgMwayUtbPFbTZWHHbpzHLF2BzYf5HyW1BoKXcVPM3r/rS7RETasRRsz2GqXXdfhjCd+HKVyv5kD9N3WcFNUsaq3TqAUZyOx9bO0Cn3gkmgz05JpfhPEylXwVpVAccOoXsNoFdxEKGO0w7pk7PwOhsW8sFprdXWp6OxtL0rrCNFF/llT + id: https://demovault-rude-junior-95.vault.azure.net/certificates/testcert/21983500952149bbb3129b0c60e367a6 + kid: https://demovault-rude-junior-95.vault.azure.net/keys/testcert/21983500952149bbb3129b0c60e367a6 + policy: + attributes: + created: 1523990175 + enabled: true + updated: 1523990175 + id: https://rude-junior-95.vault.azure.net/certificates/testcert/policy + issuer: + name: Self + key_props: + exportable: true + key_size: 2048 + kty: RSA + reuse_key: false + lifetime_actions: + - action: + action_type: AutoRenew + trigger: + lifetime_percentage: 80 + secret_props: + contentType: application/x-pkcs12 + x509_props: + basic_constraints: + ca: false + ekus: + - 1.3.6.1.5.5.7.3.1 + - 1.3.6.1.5.5.7.3.2 + key_usage: + - digitalSignature + - keyEncipherment + subject: CN=example.com + validity_months: 12 + sid: https://demovault-rude-junior-95.vault.azure.net/secrets/testcert/21983500952149bbb3129b0c60e367a6 + x5t: Z-n6Mydb08bmyOgk7bmx5HT8tyo + x-codegen-request-body-name: parameters + /certificates/{certificate-name}: + delete: + tags: + - Certificates + summary: Deletes a certificate from a specified key vault. + description: Deletes all versions of a certificate object along with its associated + policy. Delete certificate cannot be used to remove individual versions of + a certificate object. This operation requires the certificates/delete permission. + operationId: DeleteCertificate + parameters: + - name: certificate-name + in: path + description: The name of the certificate. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: The deleted certificate. + content: + application/json: + schema: + $ref: '#/components/schemas/DeletedCertificateBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + DeleteCertificate: + parameters: + api-version: "7.0" + certificate-name: importCert01 + responses: + 200: + body: + attributes: + created: 1493938557 + enabled: true + exp: 2208988799 + nbf: 1430344421 + recoveryLevel: Recoverable+Purgeable + updated: 1493938557 + cer: MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE= + deletedDate: 1493938558 + id: https://kv-sdk-test.vault-int.azure-int.net/certificates/importCert01/f00e72f0ddee4dddadc27c0f605d84d7 + kid: https://kv-sdk-test.vault-int.azure-int.net/keys/importCert01/f00e72f0ddee4dddadc27c0f605d84d7 + policy: + attributes: + created: 1493938557 + enabled: true + updated: 1493938557 + id: https://kv-sdk-test.vault-int.azure-int.net/certificates/importCert01/policy + issuer: + name: Unknown + key_props: + exportable: true + key_size: 2048 + kty: RSA + reuse_key: false + lifetime_actions: + - action: + action_type: EmailContacts + trigger: + lifetime_percentage: 80 + secret_props: + contentType: application/x-pkcs12 + x509_props: + basic_constraints: + ca: false + ekus: [] + key_usage: [] + subject: CN=KeyVaultTest + validity_months: 297 + recoveryId: https://kv-sdk-test.vault-int.azure-int.net/deletedcertificates/importCert01 + scheduledPurgeDate: 1501714558 + sid: https://kv-sdk-test.vault-int.azure-int.net/secrets/importCert01/f00e72f0ddee4dddadc27c0f605d84d7 + x5t: fLi3U52HunIVNXubkEnf8tP6Wbo + /certificates/{certificate-name}/backup: + post: + tags: + - Certificates + summary: Backs up the specified certificate. + description: Requests that a backup of the specified certificate be downloaded + to the client. All versions of the certificate will be downloaded. This operation + requires the certificates/backup permission. + operationId: BackupCertificate + parameters: + - name: certificate-name + in: path + description: The name of the certificate. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: The backup blob containing the backed up certificate. + content: + application/json: + schema: + $ref: '#/components/schemas/BackupCertificateResult' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + BackupCertificate: + parameters: + api-version: "7.0" + certificateName: testcert + responses: + 200: + body: + value: JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUkwTXpnMVlqQTNZaTFrTlRRM0xUUXlaVFV0WVdVNVpTMDJNVEJrWXpNNVpHWmhaamdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLm85bmpNWEFSZWVla2NaRXBsVTNjdUxQcVZlWmxFbGRDM01XOWpYR0h6bnBXRTdHRGVOSXJraGZscHdTWXFnQnBYQkozMFpUQkRpRmpROENXSnJfUGlsUWNDRkZyN0xrdWJhWUs0TW1zcVh5WGIzbkRJcUJkQmZIUVNpZ1ZET0J5Ym9sUlRNNDYzYjBTbXhLVzJheEdFS2NuZzQ5WFkycG1SR0Vrb0plcHJWZ0tyRkpOUGQ3cGJIS3hQSWdDOFlnT2xudnZxR280RlRDSzh0ZWotcUt2UzBfRGV6Uk5vdTZqZ25SekpxX0g2NGxWMk1hQ0NnUy0xbTlyOGVOTVVvSlhTV1hwc0lneng1RzdEbzIya1ZEY25vMW9rajlCMXNvbklkWmtuY1JybDJBVHNRZVlzZXdkUVd1VmhxRzVLN0pNQWo5YzBRdkxhTmlpdl9PY2pFcm5qUS4zbmI4azJ3SEcyNHFJelNNb184WG13LnJzc3NMNjJ1aUNfTm9IbG5zQlgzcEEtck1uY3g5R3V2NmJYSHpKamxwOWNMUnVaSDBSWlJYVXRwU3BPQWdyZ20tU3BxeEdWSjd2bmprbV9FSzJwYy1sZHNjUWtRSDB4bVFVcGZFNzN5b1VTYTNXVVNMS2VIVnJLdUg5MUtJR0tLODE5ejc5d1Y5Y0F3UjlzcHJxbFFWZnlKdlNFM2tnZTh1RVBpRFFVMFl5WnJqVjBsMGJCU3VkeTN1MVlsVHB6Wk1EWmpUcE05ZGtMclgtaGdxZ1FGa2xFa1hNRWlzd0RDZVM3Y3J2bFg1bnVzbWh5SkZCMklCd3dxNWJieHptV1diU3JOc3lFMmJmWEpXOWN4TFlQcnJJZFpfbkd0X29RSGVQcUFZTS1iVnpTdzdBRGJjMU15NTZwclBGLW9PSm40MHptOTBaaFBTVGMyQXNKRGFBa3R5WFU4WktOYUhFVUlHLWI1SGhUdFBuZ20wN0FrWEtQNngwaDhzZ3ZIaGdCeGpfdWRfQVpQc3pLWG1HdUhFTW9lRGhpT3NkQVdRR0pwR2t0NHVlbmZyamNSeXVlaXJiTC1RV3o4MEtZUnk1QklxbzVJc19RVHpWN2dqMGstYS0td24tazNsNTJ4YjhaNkRXd2tWZ3hqUlNXOXZnV0pVd2U5M1ZrVWtHM3NLRW5SOE9ueTNjWlhQVl9LbWtBTEdlR0ZzQm53SmQwY3dueTBCN2I5VWQyQ19kWEZ0N1BvbnFVNldfT016cC1Nb1NtRzRHbEFpUkVfQ3FrWlhkalhIMVItSmpObUNfdXlPUTdaN1BVaDAtNmd2YUxpcE1CamlWR1FwdzlEZDhmVmtCbWk4VW5uOUxPYXJmSXVtcEJyUE43TTJhM05KdjN6b0NkanhZVFVUMTN1aElpYWl3aExoUFZhT2pUbFRmTkpqbHhIbG5lbGJ1RWJsZTk0bVV1bW8wcjhKRlFMSDdfRjhXMVo0OC1BcjhYYXJwMXhIY0FReHk1WWYwclktdUU1dTAyRnRHUHlPZ0JfNV9WdFlNR2VfRE1mdENLOGVMZGFnVllMRDJDNDUxTldZeVVfeHdNUWdQbXBaMWFnSEdCb2s0ejhsSFBndVhCQ3R2WFFuTHBXQTVBamdOLWNoWjNwUGJmc2RkNjBhekJuWDVaVXQza2hYaWNDdWk4b0xidEtzQUdmckNOZzFwT2Q0MHBHMEJlVy1lNVE1WWQydjY4eFh5a2RiTXhFblFCM3Fzd1djVlh1QXBIR18wREZVVmZvSlc2aVBZcDNWVE51amM5M3QtMDcxWnlZbUZ4V0RfVThMYTAtM19RLV8yZ0pwMVBaVV8tMVBRM1huLXdSWk1vb3JkZGZQa1VPZ0lqdWkwa1IwZWt5RjZvdWdLNnJrSVZHaGp3YUp0ekdKczJLdGxncnRCcEs2MXZEaE5zbFR5VHU5OUp2T2RFTXhwRG5lTEg4NnlvVnhxT3lIT3lxNjByXzdpTHgtdy03Q3FzWTloT3dmQlBZZ3BQVlM2bm9oZVBocTkwaGJTX0lrM21YbnRkRUNMREtSMi1wWFh6bjlPRjZIN09EdHB4S0VXQkdCaHJ0Ykxmd2JZS3dmWmZSVTJVUHpkLUxFd1lQdDloU203Z3lSODNoYkZiSFNBV1cySncxRWl1c3FURWRsRW1lQ3k2cFp1MVFZWko0TUQ0OG5rVXMwdmVHUVhTU2Ytb2RhQm1fYjZZdVh1cWcyWk03MlZjUTd4ZzV4MmpFenFqcllmdjdTTGJINFZBcWp0aFg5LUdRaWEwWEZaS18xempIenhkd1B0R2lSOHJfMkFFZTgtRXFoNi1FaTZKdjRFZjYyMnRrNWFJUWx3R1pETWpGSVNuUkpRdV8xcnJiY1E3enZsbWhUSWFQcUJNRFVxeHBEOXNWUlhuSHdIaTl1b1BCUTllbWJIMkV5WDV6MEhWRXlDa1JEbUd3cmR2RGdsOFVzMUhURjVwYXlYZmF2WkZUZjl3WFZyQXpsRFBEQkFJVFMzWnVJMEJWR2pJUGV1SnRiako4S1pTczRFQVNRRTVyVjViTUpNQXcwa19nYkVRTEZGSjJVb0ZzcWU1QUszM2xGXzR5cGMxU0JaWjJfUzYtbEQyNkpyRFVJSjFFRmJhbWtoUk12bWJIT1Utc0hDT0lRcHdadlJzV3Q3NExSQ1ZyQ09jMGpUdE5TT1JPUW5XRHVXRlFXSzk1TkRGMG96WjIyLVFEMU9YOE9iU3daaHdOXzNfS1pHRmtVMEhNdzNjSTI5LWUxbFltRDV3cmJ0ZlRFbllOeHJKOGpuUWFBY2FoNy14Q0JKeUQ3elo1MXIzRVVyY2VnazBzc1dLeHRPVjRLcTZENmxuVmU3bFpUT1dfTU5aZi1JSzJUbnZCaVZIMHk0SkVGaUxzSDJHbTM1d28yYlZVaXJsT1ljVEk1NlZhdDhMRWhGaEotVlUyNk84NHo2dUJFZmJucEZLbmdKc3pfYVlucW1zNWV1bmd3ek5ndjdlT0U0cUdKSURyMTRBUXRWdEYxcWdrZHNnVllWVXg4U29SQ0NobE5VUzRNRGxhc1hwS1VmV19ENWIxbDRkbXZiNEZNRHJqakJ6djk5dGJSeGZFYUVOSFlYTHZFZnJ0b0pMeW9na2tmNkxlbVoxVDZRbnRtNlR4S1IycU81WU1vMnRJZHlQNmZNRmkweEYtdE1IaHNSdVN3VEpybW1nREcteHVpZllVNkpfaElSNkMzVmo2VkFMMW1oZy0xeW1pRXZuanVLbElONzc4NmFWdVNpNmx5TjJJNzZqY0R6SHZ0VW1ibkVvWWtORHNPQXdqQk9MNFBlS0VjR1hWcm5YNDJhNW5IRWM2cmZQdjZ0Q2tVSUI0UldIdzEyUTFiNDM2N1JvRS1PTWN3TnV6ampob1M0S1ZJbHo4UEFMOW9YYTR4NXlQeG1aVzZ0UUVna1pKeFhEcS00SWRtd1UzTnpVZUoxdGpNaXFsc0xRWDdlc29fTHRtTWJ3bm83YkI3bjRlVnZ4aUtQU3p3dW94c25aaGs1b3ZSSE1xU0NtZjU2MjJvUTZvWEdmNUJLWExlQWdqaE1Sd21razEtUzlGajlyc1hlT19VYjJOMF9hVEFLemlidXIxNVcxaHI3Wk1PVFlxOFlSSGVPaWxSX3Bkdjl5NTlDRDQ1WmE0ZXFURHVrNmRxZ1d4YnoyVVVtMnpwM3pvTHVKSVZ1Y3FIaUVRTVNfMnFKcy1xQTAwT2FFY3huZTM2Q1RsZVNwZjF5cjh2VjNWNW1mQU5zRnJBa21CMnBRWTNfZ21UbldTYTJ3UWlMa2RFRllPSExTeEk5UVowNHo4ZFRfbW5QMmIwWV96N3ZLa0VGQmFpNU02UFdPWjVIOUx1M3Rnay1fR0g0ODd6ZHpuQm0weWZZY3ZIOHJUd1QyQl9UZVRFMG4xcWFRdDRiQ0diUkFQNE1DTDl0SGlIcmlzWEllejQzZlZ3b1c4R2x4YmxKanlLWkpXbmlRNjlBYks3SmYyUER6d2NVSHhkZU5HNGxEZmt6WmFxU2lybGRzZlhXOHBGLWZ6WFVVWHR4eDF4Um5nQ1hJVkxLbU5ZbV9CNnNrNGo0VzROVFMwQTBOcFhsZGJCWjZWWmFDMDNvRHVGUFY0MGtwdWQ0WEd3Q1l3M244ZjFHb0Z6Sk42QjFqOTRLeTdtNE5YT1JsQ3ZaRW5qZTl6T241T1d1ZG9USWRoRzBobXVDUTZ6TXI2YkVaTUFoV1ZFdlREY19iXzZsOWdLWmVxNmVtekxvcmptOEQzLXcyLXRBYlE2Tmpjd0J3eEhMZzlCRllRRFdvaU9UVmJKN2VBcUVFMHVxVkhBcE9KbFVIc2tmQy1uV3NzOV9fRTFURHBLcjRfRE93NFhPUGNzT3dlVU9EUWg3cVFXRE1ZcDVHU1poVWE4MVVHczhmemZKU3JPbmtaTmRVTS10Y0h3R01mX3didy11dmt4UFUtV0tvNUNqR2M2aU5KMDB4MjZZdUpCWXd6TVFyeDBJQWgxMjVBWlozX2FvaFFpLWw3a1pZVE82Q0JVOVZsYllNMndrZXp4ZGhrQ1oxd080Z1NNbDlKU3A5ejhxNV84SU1WM1pma00xV1VqSGZMQk4xRXdFMjRxZFVzcWxyU3NZN1hQaVlpcXQ5ZktXVmZDTWw4RU0yd2ZHYlhxMUI4eWl2UlpMcko0eEk2MUdVUWJFVGU4akNTYTF2aUxxZ0FIa25IYjVjVHIwbDRhTW1EZGZKWnJxZEdpb1lPb2IwdHBuc3IxanRfZm1obGhJa1NSQnREUk5XWEU1OXBjVXlULXpyVjBxZl9sOHN2TlNEV2N3d09YQ3lITWZzLWw0T29xMldVWTVLQi1nSG1HYUJod0oxa19ra3V2S0hlMl9TY0loc3JjTXV1eW5aLW14Vzl5NHBBS3pvdVFsQjR0ZGZvbHdSRk5KX0tHYWJPZXJiWFdDT0ZTd0JVTjdNaG0wOXNyVS1VWG5od1IwdTYyTjVvMDlfbGN5eThnWDg1ZUVrenhuOGZ2NHd2T0Y2dUd1cFk5UGxpSTRLMTNqSHlOd0ZuY2VmRlp2b0dxVlhkcUg5RGJkYS0zY1FhbVFlNmlMek0wRDlnLXlFc2NBTkpKS3ltelVzemZZdV8yY0p0TEhsd0I3NVhLeW1EMG9nUkRvRkRwTmNPd1dRRUlwdVJwU0pfdWtzR2EwZkd3MGVBTU4tQmc1OUs3emhRWHJISUZOckN1S1VPMVdvTkV5WkM2UGlKSUwtUlRsTFQ2WlBNZmdSZzZiUl9aQk43X2dseHBIakNDaFZXMkZ3MnJFUDJJX1pSeHFqdS1WbmVwV2o4eU1CaHZXZzdXNm9QWm1odmVtUTBkQUljNVZTbVVaelhvNFVURmJxSFN2MGlyVTNscVk2eUl1MGRPd2t2MlF4ZENfQVdRUmdLSGRUeG1xYXFUSXJwclZyUHZ1MDFQSGlFbVRnaDZZVEZ6Yllqb3JEeFExWDhlTUN5Rl80cWNjMnhOdTJRblBIdUR0RGZkSy1NV2xJUDhHUEhSMmhPMjlCa0JJSEM4TlgxZmxDN1ZSZkZsQ09McGVIeWl0MGRSd1d2S2tieGNIWl9fRE5ZLVBNQlZMZGpyR3lxT2JoQnpQZHZMeFpXWVU3THNRbnM1dmxiMTc5YXczX3VmclRIWGs0MVpjaDY2ekFRRl9tekQ3ZEVuMm1fb2tBaTh6NTRwdzdxUDAwNHkzenNPd0RmR0htYWF2c3dGMW5NMUN2YXhXajRINE45dVNUaV9DM1oza3lTRHlUNGdUZjNqc0FKUEJybXdSQVBpaU5PTTU3c0x2Y3dJRk9ENnA5QkdWbjFwbjQyZGRTU3A1M3JieTZEcnlwcHdDaDFrampQX3lCbTZRZnd6MElGUWJiSG1zVDNVa2RMb1dURjFSMF9sbjJtR1kxU0hHT2o3VHl1YnQ5d2xLVW5nczVMTWhVcHo3NU1LR3F6UkFnWXNKcHVKUVl1RVpKeGFPSHNmY2VwakdrcFdoMEtfWkhZUEJESzIwOFVqb3FqMDdlVVVueTBaXzJrNXUxTjQzWGJ3V0ZvWVBhdndheW1MYkhWdkRwbzdwMU9JT1IyNkt0SzdPeGlnZ0ZybGVISWNaODFwQzRCdlNzRnZsY1BCZEpHLTZxWTU0Q3J0R2xhaDRvQWplUXgxWS1YU0NLNnZLYUIwWnZHc2lIajhRQ0ZURjRuLUJqTWIzWDcycDJ5Q0tPRlpMRk5qcVR1aHJoYXNnMi1pWTNOTWdwVEQ5eVBSdjA2X1VpcEVfYjVsQ0R0Mmx5QU5NYVpZR1RvSmJTSVhBcFlyU1hEM1dFWllhTGUzQmFSUEJUYTAyeWpyVFZPRDRGNHRFR3c5MkZJZThOSk5NYXRXMFhPSFAwVWxKTXlQUDF2MVdvOUh5aFllaDFfdWg3SlRLcS1hWnJjOS1Xd0ItQXBKTHBQeGxmRzlGZkgwdjNwSTl0Z1VndWJmSkJQVjMwNll2MlNqQ0M2MmVYN3VFTUgzcXQ3TmFYcFVsNXZEVHpfMF9Vc3VlWERQcDNqV01XQTMwenFaYTRFT0dXdElMb0tEM1RjRWNVcmJONGV1bHFQSkFNcWdWdmk2YWRGdTgxU2w5cU1rVVUwaWpqMjZhZDFaeVlEUUZtWlJ4NjJYUW9ZdG81bXJ0eFZhYWtNNndqbkVPSUdJaHhBTnJoX0dNVzVxREhzMEV6TDU4b3lOY0Q5dE1MUC03N1FCbTZwUTFsR0swMVJ6Y3FzTk14ZzRMTzl2ZHQ3NFpIdEhMXzA1TjF2TUt4TE5GbkdhZmwxN1E0eEM0Z3NQeXpYdzBjcklyV2tIQlNQX0NoWE94SmZORWdyNjJOMXEzQVJZa0U1TVlCbzctM3djb3dNT09GcTlrakN1ZGpoekplRjRTUHdfMnFVWVhZRTZsNXJTYjYwUFlFSkJxdW82Skh5ZmdlOXFJX0Rzdmg4eEY1STJfLWtLT2pxU3FZam02NjU0cXVES3phQ3JWLUJFLWtQNF9DOU5OQ0xTaEVWUV92Z3hYdDhzbTRWNGNRMElDRmFzaWV6VnNuV1QtYmRQTGxBT2RqOS15RmhYVTRUYVF3YnZqQ0E2UHQ0aDNVWGdnQzNqWU5IMmJtRGpYSzhFdFJYRTV6cmJsTDRKMFZ1OGxHQVBZaGtOcGNOakNrNWhSSW5jT0dybE9aUk9jdTdSeVczR2JWM2Y1MGJKN0xLNHJjMnJCMTZuemhBdk41WXlydWdwQzdCOE9OR3NTY25ha1V1alJzRzZGYVpydDNzTDJMOW5RTUNoNE9INFF3VWpKWFZKUFJ2MHhPTF9jVEQtdjk0QWgwbWdtcFJ2Q1dhUkl5MXRxeDZHTmZ1R1Nyb0tObmtHYjRiRE1oblpZMmwxQWluWHlCMG5uRGlvci1EUmo1cjhRZi1iaUR6cGhTallzZTZrakdLR0ZObzU4WjFfaGxEaGFob1pQX1lRdlBtWi1Tb2pNaGhMRXZqMXEyZzZWRVd6a1FDWTdIWVEwM1Y3cHVCVm4yaXM1NXpBSGV4cGpERWoxWDgxWU92bnVTdXRhMGx3VkFEMkRoNjZDcmM2VVh2SEtUZTBCeFlsQWdVdkhQc1BkSy1OdVk4S3RaeGNqTWNDVWM0OVl6VW43RVBTamFNaHJ2Ni1mM0pwc09Na3JwREpLM0dPTUVRMUV4cnhYV1lGaGtLaHR2UXZkMXZCVS12b0pRcWJveU9vS1hMM29Xb0FRVnljWlR3Y2laeW4wbUtkVF96NDNFZGhNcDNKS3N5blJ3OVZtSzk3Q3lldGl5LV9HaWVMSngtWDladVMzOUdNa0YxaFVmYmkyc3FJZGZMZ0diem5uMTluTlRVUDlOR3dhaWhybU9Ib1lZeUJ6WE4tby1UWUxhSS01bkNuQ2FSSW9QTF9XSVhyWDZPSzdZU21IWjk4a2xJS19JNTlPSXlWSllrMVh6bGVwd1lPLXUwU0x6bTEtN0dKSE54RGVOMlZhUEk3TThVem10X0x5alliWWxocFFJQnNyUktsMmZZeExKaGt6Q3NjcWp2bVhDemRLVDNhNFV3NDJ4eDlsOWl6dFQ0UmtnV21fYV9YWWk0b0gwdjNCUXRSZ3NfUTBPaGo2T2Y2dEtyZU5XZmcxVDRjMk01SERJd3UxTkl2QXBqNzZtOXJWQkdPWTZFUnhfa2Y3d2twb1g5dWRvcjBCbEx4a1FCc0lwZXpUdzc1MTBncU81Nm1UWXlBUzFCUVdOY1Q2aWhfN3F4ZTVoUkVlZVB5YUpFMnhqR2JNWGg3V1hGYjN0ejVWVWJOTFpxMjBiM3E0UFdkdjJXX1Foc2VUY0JTRDY1eVFPYndTai1UcVpNNi1teUZHb3B6dVdfRWcxU3pzNzRaY3RMSUxyN3pMLXRyeC1WTTVfVHllMVZXbG9ZOTZVYUJyUktpQWU1SVhKMlBQd2RIY1p4SWx4N3dBRXdueXVOZXA2b2NKcXRwZUJ1elB0LTFaX3UyWjZrQmR4V0lpYlVEaGxOU3AxM1NkTGw0Z2hkemVqZWFaYVllRDVtTGltWWJ4dEhsQ1ZiTm0yNU1ZbDYxMFU3QlZnNVJJSXB6VUdmZ2Z5NnpJRzRLQjBMR3BISzNhdHRRUExvQ1VlTDRYNVdBUUFsb3BRa0RKOU5lTHFGdHN4cWpZaGJnZ1Z5am9ScjNPOVhzYzlJVEtVaXJaUDlyTVl0eFduT0tUck9YYVk2WVR2Wi05QUhpT3ZfdTRhOElTS01DVng3OUlnXzdqTjFfREhjdGd5cEEzVnpkbjNKdlJJQTlfbHZDV2dTSS1NUjlPQ19xekhIUmU5dENqWklDVzhwRURSYVhZOHc4UUQ0bXJicmFLTTNsWmtTNUF2NVp2WjFRTDJlZkExbXlJdmN2czhmekxRUFM0Nm0xX3ZPVzcxN05ydDQzeUcwbUZxZnk4aExaZEUzQ2RkMzRtVVFXWVdqSkdvQXZ0VHBXRmpwWkwwOERjQUd0RzVzdkU0Mi1WWjRqSVVYQ2JsemZaczl3N2VsNThvRkJLUng5dUJLby1PWmYxTVloVEZrSlU1V3YtUEVreXRPSVpfU09nZVM2RTVMTUZsOVpZenZ0QkJuWWF0bDY4NGpEdWx0STh4LXpmSHdwUEFwNk9CQVpxalk3S3JoSVJuVGRoc2Y1VUpCcmtvU1JGUFlaaXE4RjJLWHA2Nm1PbDMyRm5RTVprMUlDVkxiYVpnUFlWNnl5UXpZdEdhbjhOc3BFTG10RWkwMVlTZE1ySUxkUF9TVTZwXzJ1NU1oY0RPMDF0Y2hwMHp6eUVfTVp4YWJodXpMWUVIeXJvYl83cjFKdWNjZUQ4SlM5T3JBdEk1YXdsbEhGSFRRWExOWGJuTHdTQ2JrdHNiTGFoa05ya0ZXR1RDNFRzUlBfYTlHMVhFTE5DRkhaMVhvS3NsQTdMMzFGaWpyNFpEYjRQeW5hT1BrSlhCcEx6MGNLN2FmeFVxNWlySHhZNEQyVkdNT3gwUmc5UEJJeE1vdzN6TmVGZ3Y5dzRTdkJ5VUpQdjNGV3huX004M3g5dldiWFh3bU9LbHlLNVpWQi11LWxKVno5Rm81YWRfVEtwUkxqSGdNWURKNU9Ka2dhaEFQMmhOaG9lb0FicnBPNzVYT2tYZ3pONDdwVW1kdzhmZV9FN3ZSeUREZi1LNVZNS2UzOXRPSi0xRmxtemJVc0pET0lScHp5WVl0Y2Q4cGtPU3JQYnIzMWdJNFRIUjJHV2xwZWJCZ3VhYmppck9UTjI1Zy02MmRPWWVKNHVwNjI3MjdnbWNQWF9EYmJfSFdrTnVLaXBmdkJ1UmVNN2J1WE9LVzg2bllHSW5ZNzJZZ2lvYVpIaEJnY3pHbktuUUlkWTJ2U3NzQ3E2b1FSUGJqeHRQZ1gxT1h2bXNucmNBencwN01ULTNueWF1RDBfNG90RGJueF92dm1fM203ajBwcjBGUWZ6NWs1UEVNUG1sOFVhenFxX2xEU3djV2JOU21JbWF3OWt3U2NXN2xrOUViNTRLRTRhaWt2bVRxXzRuN3lkSDNQblI3bC1RMXE2X2k5VWdHUVFfSmk5UDZQbmszQzd6TTVYbDBpYllEVXVUV2FUdlRrX2ZjaXo0VUJXWkV1T0lLU2xZaHVBVzFQUTJPU3NiUWxPbDU4U3ZvTEYtS2w3TmNkRXRBODJVWjdkLVFCN2xKNWFCcnd0Vmx6TDFxX2Y1UGd6a2NtcW1pLVViM2tUQ0xlNjJYbzN1MmFvSnNTQ0c4bXhwZkJ6dVFVVkk3WXdTa2ktWUtNUnlJSGhuOG9xRDNQS0xMbHk2LVZkZy1VREE1RWhhLXA0TnZYb2lLb3ptRHdBZFFpeG1IcnJTdUEwWmh0eE14N0FSc0pqc285blZKR1BOSzhCeTMtbXQycnNOOHlMdHpyRXdkUzBtLW1sRHRKak9CWHJ1NmhWOFBPeV9vSWVzYmJtWkcxSk96Tkl5YmhPOWdNakpsNTBSQXVmcW1sSXJpOEVXQk9vdzdVT1RKQjgtTkR6VzVXdWNiS0VLOGotdWtSYXhhQklPcTJBTnI1Tl9hTEF2RFpmalp1cDl1RGNTc2FUOTNWR0dmQlhHX1BYRlhGWnNtd2NnamxsQWN3bkhCS2V6QWd3SnprRXpFaEdEOFhQMVh0dXJPZHh2YTRyd2ZtVG1yM1pHVWFmY0tTUm5malpnVERSVThVRFd4ZjRwMjB1T1h5RzBBUzlJLUF6WGN0Nm5EOFVQUlB1WDQ3UG1fN05mdWFVTkt4SEZ2RFdOdWYwcVE1OFlvZmhydjJlRDlzUFJFWV9CWjhXWm9IYy0tbVZ5MmM0aDdvTTUzQlFKbTQzRzNkaXotclRwWE0xUDExakc4em5XU3RBQkJxbW40LXdKVVl1UGpDV0VtY29qdGtRZEZmcjQzRUNqTzE1SDJaZGN6MkphZmpUcmxPdWlQOG96ZjEwa2RTYjBURTFVOXI1dHRIU0ZzOUxPVlZHVjJnQUxjUGtMU3R0clgwMXZHMWZLS1ZTRVI2TzlZM0pZYW02X0FwU2xONnlRbmlqM3NJTzdKc2xYdHhaMzY2bXI2Vnl6WmphajVVODlJSjdJUlY3eXBkOWtuZy1RRlZMT0FhRGU1eENvZG1jRjY4ZGp4LTZBVWpQWnBHOFYxVG04OXh5c3BTaU40M0lmLURacTlaMXFjSXNDOUJ4XzlxTHE2S3kwNTIydnBKWkw4NEdCZElXM0FuUUdKbFY2dkRXbThpcF9LMjg2NG8zcEg4UTdFWnpqc05KZ3p6RFU2SkU2Y2psTVdhMDR5dkVMa2dnUm9feVM1MWUzam1BNUFFdWpXLUJ6TXlzTjVkeUpiZC1HcnN4VFltck1wMWI0dFNhMXV1ZHBSdWl2cUFLdV9qbTBvYTA4UHZqRjJyNjRXYXZQZHVxcUs2VGUtMDc1RkFQNHFEZE5ocmpJSHpneWEtUWowY2NCRWtZbUo3di1mUWxneUxzaF80bHJZQmVyWnNCMDM1Z2Z2b19CakQ0Q1VWVWFTRkRya2U2OE41N1prblU0UkZXN1NNQXViaE93WjlCd1pmT0tuajV3bDhfemRFTDVLVDBQUm5IejRjQk01OTZGNXhleDFORzNqME80Y3JDbzVod0xMMUVwMnVweVlULXpfTkdkT1MwMG50bGt0dnNKMGFZSURuQy1SSDRYcUdBUXlpY3hJVzNnTXh3LUNvYlIyUGdPa1dLTVBJN2xFelNLN0VKcjZkZENmblhHRF9scE9HSXgtUTROdjFOU3E4VGw1dkRtdmdOXzZCOEhHbmV5bXdpQUlJZ3NpWWhfUmR0NnBrdWJLVF92aFkwMTI1WWZkck9NaW9keTFLbEpNR3NJNGxqX1dJYVRHQjdoY1dtY0stMy1NNWlZVnJUSktaR2RZbUFobXI3bkZVT28zWFFCZkVVZFpKb2Itc1R6eDdNYWttd2JEcHdQdHB5OXFQem03akI0ZC1yYmlncDI3azRTYlVFOXNFWTZVeVVJVk80Y2l5R3ltZThpOEdLY2dSWXJ3YTZmVlItTnNvcm16dmd5eGZVcDFGWDZuR0xNbE5VMDNEblBVU0JLT1RWTzVnM2JuNG1DNWI3anBVQnUwQTk5R2ZkTEJGaXg4dURwR2NsQm51TFhncjcyRFdCRmFKeldkZXNZbTlaLWk0WDBaUTh4cVZwdGpXTnI5Sm5sVDlLeDVKZXdRSHZkeXRRdHRaTXc3TS01Unc5UHJreklWd1JPZE5PVkxwRWl5RmVqM3YyZmJGRFVoRmg2ME00NWRMQ0hqU0k5eC15dDZ6LUVtQlBpdGtkcWpUT3hLam1qVV9WNzIta09tVndhZkY3MzdTcVRKa0lpWlVic002bEJoQ3Rxd2cwNi1DelR4U1pMYVgzOF95dE51aUY1S0JfcXVwcU54SGJ4TTVZN0l5SnJUcGR4MG9qNFZzWDlxWkFjTGxCZnRNaTFUSTVLMkJRSERSNW5FY2UwT2J1SWpjdlNrcjNYMmZwUWQ1cHlLdnBXcXpNbnNuQ3NsVnYyWUY5ZDZHVWFKeHlfQ2MzRVJqOXZIMnRJb2hBckh6VzJlN1lNUTRyQnducnowOXc0aWNnNG11TDdVSnVsVnJLcjdJS3FDYjJyWFViTDBIRUVrTUd3T0pISEVnVWxlYzRGajRNQl9ZNnh4SFJuekVKMVVBRXVTeDJaZG9Bd1JsSjMwRHZYTWMxcFo0NWktYXE5eV9oOFJxaUZSUlQwSktjYzFpeFA1Y1JWRmVpbFhKWXN0cDV6X1pKZ1FrSTdCQlBaR0M2bkZ5RC11LWh4MzhQN0IzQjdUUzdoWVlXdm9ETFpGSkI0a1ZGRUhvNlRKdWNDVlpJaEFMdHlfN3dreFFxdU1mMFNOREQtV0FPWUJkY3JpZzZmYnNKSVhvc2lMSWNDM3hOOGw2X1dzNk1UMXdXODZkcWRUWkJnN1Z6YUlnREJ2RDRNakRLdjk2M0k2c3ZmeG5FWWNEQ3dDalo5M2JwUGRJd0htZEY1ZE0xTGZVLTExMktBN3dCQTJWYjU2cFdBMWk2QXo3Z1N6RXhQRkZvVkNBdFlJUnBFcHh5SVBaQUVHV05zeDNpNEk2Z2lyZi1hUmFWejFXUURCemd3ZDd3TlpqV2xrRVlyRFBBZTFPVnl0bU9HQWlGZmZiQWVPaVF0V1lzMHYzVGFTOGcydk9peXRvakE4ZzM2dDQwQTB6T3pKYnlzUUM0Z0hjODJuVDdQUDJBTFdPU0RLTmxSX2M0eHFWTkxjdlhxZHFBNmpVRlBUY1FONzk4U1FRbGprcmd1bzhEcGxTZTBnODl1VHUwV0ttcFltSFA0WEtmeXRGRWlBR1FDSmIwZUl6NVZsTlAyVnFiRGRMcW1JSzhuNVlNSUtDY2ItY0FUdGFoRXU4QkxQcVE2VC1aa2t4MF93M2RmZjhVX3ZCZUFwS090SERMWUVqcTBnVktxUHhaUWczY3RJS2oxdXJPeTIybnJ5aTlnZWZVc2QzZUYyMnBCQkx2YWVWSk96QUZndk5YdnRiTXFsUW1CXzQxNG1tVGVtaGFlNktjOW9KRF9sLUxKWDZPU1FISlo4MHQ4Ql9VZkdacFZES1NubmFmMmY4UHYyMy1EUmlGNlNyQ0ZKN0d4TEhUNXJSNzU2MW1YUlV5Qy1leWtocVI1ZFZSZDZhOVQwSGY0TlZSbjJiaVdxeWhPR2VUa0hKazE0YllOUFdYTm5XSHl1VTdyNEZoOVVsb2lES2xIQjQ0VjlmYS1YMzE0c2VHZHRqUFNLdWhFRHBMeV90VU95aWU3aThJaGNIaE1XOHlFNi1Oa0lZSnF4cU5EbjAwdUkzSEhEUWtGYzFQV0RYdlVIcnBJUFRJcFFBQ3c1dkNWT2JpUmFoQVBJM2tFRFh4ZkY1S2VLMXRuS1hsZWRxQmRIc3lCUkZuNnp6T1p1UHdOWktKNHlYVDhoS2wyamQtNTlqdWpibDBmNF9WdVJFdmVQOW9FWWtTOHU3UmlBVEVHa1lPVkg3MkZXTzBzLVNJWGVRRkQzX3VvWjdrM0xjSm9GVjlXMDZrQUVWY1dURVZGRUlwamtNMy1FYnJSUVdMcy1heWVYQkNFSUxsQ2t0di1LblA2N0pyZFV0bTI2cnFlVXZ5MzdTMTBCTE53YjRiNHBvREhMS2FveGFuZy1iRjZUb29PR01UU01MWXUzaUlLc0R3Wm9kZG1WR0xyQ3FxNWJJR1BFZTNoMnc1RjFNZ1hyVEU2TmFubXpKckh5eHVPc0VyaGctaEpGeGVCcWE4WjZZWFduTXIxNDhLanNoYVAyeVpFSWV6OG81UEc3cWRWaHFRenhYT1c3eEQwSTUycjBvbkhxM1hzcV9SOGhFby1UYVdPbmY1NW1YYTNWMk81LV9XanZxZThWdzdwTUF5dG95dmh2NTVTVk9xcVdkNXNIdGhITzd0OWlMdDNFYVMxX0ZnaU8zVmVENmlvUVBNNjZsWmhaYkpZZHo4b1RFeU9SR09KbkpjSVpqVm1YSlJIbXF2eXZsUlpjdkVMM19KR1hEOEZGNHlBVE0zaGhlNDN6VEJVdk9oYlRjckhNQTRLZjhWczR4cU02QWFsczVBZzRUbVZSSnVLLUVRWFZCaFE0TEpBbEgxVXZzN3lKYTdLM2hsQlZEMWo5WXRWS2htMVhPNFJySTNrZmVxYmxoMTRHQ1NEdnI2OExyTk53SUZsY1JEY1pKalBOQi1GWGhUd25PbW50ZVItOFY0UTJVa19tczdTTm9ZUElWRnJqY1R6X1ZkQ3dYRTFmMjNocHpqQ2tnWGlsSUlNNEpNMkZmcDNTZTY2c1JHc1RXXzBBbF81R3Fqd3ZfZFBYWDA0RHJNMFI5dGljTHhLczBnM3hkSXF1M0huamxBRFU3S0c1Yl9NUmxUdWJCQ3pEamtJQWRRUEFwcUhaWktnODYyLWloMDE4bERfbFViWEwyMGhFNFBNbTE0eEg3R0dPQ3FWa1o3RVU4ekd5Yl9xWHV4RF9LZHFLSVR5eUc2WC00MHhOeTJ1cWpDMmlvVVpiM25Tam5kZWFiX19kbC1jMDBLWkU4RnhTRnRMN0RreWxpTWM2Yy1VQXBhUlZKQy1aa2NBaXlPZ2NBOVZQa0x5a2xlcGRNYXY1Y1J2a3FvTHhmS3RMU2FhS0taWEdveFd5OWp2am5KZHZfMmZDTXlUeFdOUWl6MzI5NG9mNkNNY09sTmc5VW5iaUlHb1JVX20tMHQzamNRWHBrZ0pDWlMwcmQyZ3RGVExYdUVlYU9ZTnJjZ2dPWkVQMkstc19kNUlCU2JqNXE1QS1HYU9hbzFuRmdFOEFlMDdEVXVzeTBYeVEzd0cxb3JIOXUtSUxpSHpyd01Ickx5ZWkwYmpYSm9HcVBuSWd5d29nWjdZRmF6a1ZSTGE4OTBZQjlXR2p2SEdqZ19yYmVabWRDWkFoalNiTlRveFN3bGkxMnh0bl93WkNWVkhlNzUtSGNkTHZHaGgyekwwVjlROG84NFI1NUFKVV9fNjI2REMxT2w0cXVLcEt1Z1EwMHowZElPbzMwcG5IT3hqa2xlcGRMM0dyN3dHNXZsSUJKbXVWMlBReC1Hc0JmX3lYbUhxOXBZZ2RJeXl3ZjNqSjlDcmROYXM1RGNseUExUS1Sa3MzdWtyU3dublN1ZE5OeTNCRlJ5ZkgtbHhWQmpYSHQxUUlQM2JLbjRvNmRPSHNLclc5XzRPVnBNREQ0UjNMRmpYNFM3MDJ5ZmdXSkk5Wld6TDFadk40X2t0Zy1iVHNYOC1zdzJfa2Y3dXVldmJmMkYzLThmM3lvNDNUZ2dQaDU2TEZjbFNidGdaNE05MDRTLWF5SGQ2NkhVbmU5T1Axc1NldGdKWXdZZVN6TTgzY2FUUXVqRVA4bFhEQWxKZGJ0MTRhZ2FValJkNlBNLVVIUGdGUmNtRTd5Y0k4YzNSdWxrVkU2Wk5qeUU4VkNnaFRoN2JMNTJNYXhUcVMzQWJKNUpHak9ESkk4ZTczV1BFZHZPZ1FPNnZvak0xNDFnSjFtaW9rTFNIbXNwVWRhSFdIdkNkc2VHeTZyZmJfYktmeGJGS3FNTEN6T3VKbjhxd3hlNUxJQms2djJCUmNzM1I4ZnI1VjBSQXB5U3J3bmRuWExFRHdVRU90YzdwSTBqajVNeGFJaWxKU1FMb00ydXpiWXZaVE1INklXSndEdU1hNW04MlFCRnV3TWFZRDd6WmNwM0RGb2dFc0N5YnFjZFd5SFBhV3NxQk5GSDRuYXdwRnMwQ2xZMWMwbGZQR1RnTWZJeTRxRnV5U012cHNkYWZORUdBdVFpYU5zRzROSnNJV2NYbFNFQ1FsLVhRaHF2YkpUWE03NldPVTVld0RneGRGeG5WREVhdFRlQWZZaUVEN1ZBelFNUXNFenU4VUx4VmI3RWJzX3RsUW5hU2hVX3E3RjNUVEV3VUpPdDNCeFdPcWFCbmhNdUdOdU5CNXJabFd3YVhrUTFNdGxwOEFmWTBXSF9kX2F3VXdQbUpCQXFEX0xKRncybWVBS25OZl85NlZiUW5iU2J1ME5uejlvTnVXVmNMcWZIeDIzX1JfVVE5enZibTlkaGlSaUxSMnVDUzN2d21XS1UzVG9vbks2c1NpeWNmYnh2QjE1TnFnN2l4UUV6M2U2emVkX3pQYy1GdF91ckRrR1dOTFJ1d2Zyb001REQ5XzQ0UFVvLU1SQ2NiVGp1emxqQmVjOXRUc1NRdnZWVnp3WHdNY004Zl8yWEJxcU5OVl91b3V6dVRPWkFfbkNVTDV0T1dFSXZIZmlDRWxJV3lrS0U1TUFUUVlUY3FRd0VwNUlBeDFDOXdudnZtVk5NcmFFNHpDSDJuZllsUGNIYWpMUGlXcHpUdUR4anJGeFhIbVBUc1JTM0Q1YU1yTmM5emwyZkR6ckJsbzV0Y1pPT0ladlR4X0ExeFA3RlFnNjMtbUZzTGlRZG16NzM1bWVjUEFmdkROMnV4dWp3YXFITGx5NGlLelljVVRjbHFhYV92X25VM09ESUxkcWt1S1pCZFZzZGwwX19YeDdkSlFHNG5nN3kxU0d1V2Z1NEdRRnV3azE5b1hJM0ptU0c2WVZHSW5wSUlNYjcwSy1BREliMlZBWjlVaUloMW1HNmpUZWRHWHJtMzF5b3Jnak1PUlRERU1rYnZCeTFaazVrR0E0V05aSmRKRnlSQUtXT3VNbVZOVXRWcTFWRHpkTkpNdGhaWUZHQUU5MEtBZVlaZDdmaFRSZlY3ZlFYdzhWOENmM3IxdmdMTXJyZ2JSOGwzeUsybFBLMnhMcFl0cVpRanFaREpvSjlwUHBlcHEwRF9Dc1JEcVlDVi0zNE5GbldXWklZQmtmZTRPSGFFZTRlXzNQOGxNVTFKUWlJY1dXWmJ1ZUJXSnlpNDQ1b24wRm0zVzdlYTRnUUJCN2c1MzU4MUJBZW9ZQVRUYnFFV0J0LWU4OS1YMDd1Nk1vSDVKUU80OV9kSW0wNU11VVlrV3ZQODFHNDMySDFPYmgxRUJBNG1WdHYtM2ZqeGVDRldiZHVzTWxxa3RYbXVodjBEVWdmWGh4OEoxS2JaMUdjN3cyT1E4S29KZXNGM2QyTzIycjFkdHRIamdmbHBUZlVXOGFaN2hPZ2otSy0wRHg5dXV3ZmNVVWMwUnd6bkNMbVdqd0lnZ2NfQWZJbVRpd1ljZWgzQzlpVnpLdkcyV3BfZHpCMjgzM3YycGI3SlRKbmFYT3VSSlhiM1JQS0pONGcyVXV1NnNYc1JBd2FlTnVtVVVpM1B5b0pCY3dhZFRsbVVrQ2JNcjJMQzBzYmZkbjNMOHk0bTd1UGg3VTJ1RE5EaGk1LTZaWUNYZE5SRVNzajVrR0QxNzJoUHRSVEV6RzhUeEN6Nlp4dE5MQ004a3pHVWtjS2FLeVctZFdaaFVWRENsZVdnQ3F0NWdvNUI1OEVaV2RJbi1SRTRxREZ5RlBDNDg3bk9nMUVyVmZBN0NHWldha1F2QXN5ZUhKb3dkc0RrdzZIV0x0Y2ZwQTJENHEyZ1Z2aDdraHVNMmwxSE5DdWxNOWJSXzZZYlhuTGlCMzIzN3Zjc1d2bHpBVmJCd0J3WHRQT3RGWEEwc0V3c3Qtb2N5V3Z4WFNsT19kdlhRNUdHa2pLcjhFX1hzM0dvZmlqaHpsZF91OWFROGNTek1XbE5xRGNPWncxdncxNUtaeFNXR1QzcDJ4S1VHLWtSZW1Jc1h6VW91TFdma2RCbk41Vk1tUTdJTXA1RkFfcmdHWnFwVHByaHJMSlVaeTNZN3I4bG1McW15Z055a2FMNWkyVEpIT3RWVHB2eHVzck1LMnUtSzdpbUJVMHlkQndFaHNOS1RWMXlGZng4Q2JZazJTeUo2QVlWeWZLM1FhVEdqb2FFMGxocGNPRUIycmpfUDhFWHAydlJ3TWZsYjBtc2daYTFCOE93d1BXRUJMdlROVjVzUEYycFpUaFlnM2xWVzFjSlZlTlBLRTJfYU1zS0p3UGVIY19YTTNrdDBXVkpMbTBnZzE2ek5EMjlsaUlfNTBjOW1VN2NpVG1hNEd5ZzJtSkUzVkg3VWxUanVkRldmNTZpSEZHNlJpU0FqVUFtMmtBTkNGMjFyb3ljVUhFTGo1aVlQZF90S09vcmJvRDlWRGcweDRDc3BQMmRKZWVzMVR6aVMwNU5qU096cnd4dG5qMTBBZ3kyd3B5XzUtbVl6dVJvYTUtNXVPSFhDRkFNSW5QQ2doakFudHVYUGw5REJRb1ZSMWYwUS1NdnJWQU1Qc3pfaXMxc2xZaTlFT3NDUWp1R2hsNGlxYmVNWWRhbFVZZllGYnd5dktaTGNlZndjaVdpY3EycWhpM2FxaWQ5WkVwVGRyR0FvRjItdmd5cWVsSjlRb2NfSG8xRldZdjFrVUR3RTBmQ2ZlV1FteHBFMTQyYmlZNVNnV01CaE9tVTBKWkt1c0hCV3B1ZWJ1TDVlc2RHVEJwRWtpcEpHWmtQSlB0YzBvTlJSVU90TVdZTTYxbXZaXzRTTFpqOW9kZ2U1akMwMHBzSHVYTUExTG5USDZ0R3FnSDlTd1Izd08zOTNTQnRMRU5oNy10UEVEVWc0dHpJeXAxTHQ4R2dWS09DTl8tc2RCbnlpSjJaNmYwSThEMXVPQnJYN0JGb3E2aHlkOWtMWnZiX2E1VHFUdzNKZDJCdHRzOHBWS3hhaXFtTW1WUmZPbU4xYmRJSHhlVUNCQzdXdE1LZUc0M2FNLXpYZDBfUmI4MkxJTVVVRDJadUxXb0MwUGZzUmpiYWNpOVhBOFlBVTE1WllTOVh1YV82NUZYT2xxcl9sT1RuUjd5Y0JZY2J5T2tIeGpIWVFmRGkyQmZRV0NkMElXaF9WcUxNZWozT3ZEUW5FZDZvNEU1N21FQ1lQUEJUSkFIZTNHTjU2UEl6T2xLNTRtVV9USUNpX0JKTkRXemJvdl8wSnVEWExZMmUxZnhCOXNURmc4c1hINUozYUhYY2dpYUdSaHlnMjRKZElJV3dkcXFRbmlLZWNfS1IxVTJhbEVqX2xPQTNNb3FadHk5Zzhnc2RCMjRmQlRLOWJZUnc5eW9OVWhrSl9fM2NxNlozVVFvc3VrWklreDJwVlRoTkU3THdEQ2gxbnVRYlpvUlZrN1NKc1pjWkZ1TTd1SUJRWUNVMGRIQzFRS2lublQxc3R5WDduM3RRLXZPWGRsSENaOEtmSERpR2tsemdKUkhVSFUwdU9JQUNuNGtUbkRzN1ZrRGtEZ2YxalBhYXVYLUR4X19Cdm5oWXIxRFp5eS01N2x3SG85c21rZDFNcGFUVGRLR0cxOVktUDh3MmcyNXJCcVlWQjhBZXRlbXQ1bEtZdE8yckhJNmZSSDZrLVhSM2I3WkVlSFA5MV9UTkc4QVZtV1djMUhaMmdYN0gySzgyUzRoUk1JcEItdkxUaFI2QmV4bTdDeXJHSFZqNHN3M0dtZWd0cG1obmJlNEZQRVo1UTZnNGhScUpmYTJvOUswZDI1aktwaURBTFllRVY3Y1VDUjhBVjRYNU5WR3hWdWppOVdYN0gwaU1mUjZHMmpIVkFZSmloSkxOSC1JSENWcVhxdng0ZWNSRmVxNGRqUjNBWjRITm5kNUJBaGlTSHRObkhlM3EzeG93cFduQVh4M0hHeFZKcUozZ0pVdDVtdGcyb29pYnJiTTVFVU1HT290QlZGT0k5eGd4RmZYT3dhYXNPNWxIbTVoQnFWZVczOHlXS1FqYU50VG16TjlITjFrRWFfS0JacHU0d3RGeGswNkdWTmFEUS1QbmZBV0FJalByQ1FjSjJMQ25kS2FBSHJyYTQ3WTI0dWJYd1hPNUZsSVh6NElaZzI3Z3NzTXpVR3kwdUtGc29LdnJrZkFLdjVWblR1WlJ6aklrZzNoZExLR2FMb3RPVmFwZkp5VnNidGh6T0JrSERUMDllcVlOYkFwbWdYWGdoVTZSb05nV3IwOURSMmZQV1FyaUVzbm9Gc21yZWc1MUUtc2JUWjJCb3FqVW1zRnlndjJZdVhpdTVXdFFUNGtKQ1NxczZZVEw0cGhoQy1sTEhubWs3Q0ZKVnNMUHpUM2ZUcVF5M2V6Sno5dUxyUWJKRXVVMGgyWHQtNGwzaENtNU1hQlVVUGU1SU0tWHZhVk5QM3FQUGN6NjEzZkt1WmwzV3NmZVVtYzl4OWhrbElxRlI4RE1aOFdpYnhJSG5CXy1vTnpvcGV3SXZkOU1RV18wQ0hJRlNWWV9lMDNfNlN4SDBiLU5DX1Y3MXZHNXpNTXpqUkc2WXB1d3hMVUQzQnV6cHNWSVR5ZTd4M1RSWFBxNE42aXF4cFlTeWpyMUUwVnk2UXhzWGc1Q0NsZEozN0p0R082b3pTY1gtdDNKOFJBbVk5Zk41WTRURUZCZkxFT3VtdkQ0WXdjd0xuVktKMnVYN3A5MWZjTTUzVVRhTVc4UTZSZ2JFaTlnZjg5SXl1OFc0WTBIQ0REbDE2dVhCSXdZR3IxX1lyRy1zOUU1dU9FbjVpVm9oY1JsX0RrZlNNenBsSUhPWkJzLVM2X0tud2lZMXZYeThhTWlqb2tFaTVOZnBMbUdZdklwdk1MUFViUzBrQXhGTWo3dktnRXR0S09pU2wxVTJleFF5d0tsYnJtUGxFamZ3YnFjRVZkbmZvTFhIYXpfNlhYTE1Qb1FobWhKUWtvVFN6UDFIb2J4UWY4Uk53VmpaeGF0enpxMGtpMjVmUXlTNTlET0wtVGtiWlFqOTByUnpCQ0hVaTZlNWFmNUN2b3p1T2NIdEJmRnJHVkw4R0JQMk1JWi1UTGsxZXcteFpBbE10UVRITEVuUE1US1Q3X0VwY2dJalNDQTVsZHFXQndZVWxJaXZWd3NzNXRlWEswQkNvWjY3OWxyTVdTOEIwUmRwbjM1djlPU1JOejh3TUFTNER4UVV3OXhOTzBrSjdCWHdUM1dOem90dVFFVDFIeWpEcDV0UHY2MVZuVlVDc3pRME1TaTcwakU2OGtnVm9TM0sxaHFxNUhyZlJoYTVEM2MzZDFBWnJzaUVsMXpMNU5OamktNnBpZENKVmxZeFNBa0gyc2VlZ3lGeUVVV2p3ejZRZzBzeWYtUGtCWVFaRGtKOGJsUWFyUjRMdVJGVmViUTZ0bnQtVThmS0M1d3kydzFXMUhiWUZOWHRzUnVkcm03WWVtUDI2eVVNRzNPUEktLS1zV3VEUW1VblIzemNaVGZkcVBkc3ZyRmtES1JESWZfN3hsbDBLVGtIbHEyRjJOTTBiYjlDb281SG5RdERpX1pJZmIxa3pZd1BHTDZMV1hsazdhcENaQ3daWVBLNWNmbHkyWU84QzRuX2w4eDJkLXdkclBMWGNMRi1xZnRtX2RzZmNrNjBrNUtGenozZEJKV0otY2l1ZWM0S010Sm1JMklxUm50MVpJRnNTOGhEcTF3b0ItLXVTX3ZfZ3lMMVRxRklNWE80b1dUZktOV0l6d1NOUVM3UGdCYXdIMHVIemZDeFJ1bmh5enRMTEdMZEtBamZxc3d6R2dDMnV0THcyOVJoZWtLWVNyaElGWFVoNFFjZF9GOUxfNXZyc3pSaXpKekRUMGVkWlhSVkZNdTFsV29zQUs2YV8wUGVZbFI5cC1XMS03eWo3dGJveGZGdzMyd3o2VlNWamJrMHlIUnpRYmtwNkp6QlIwcm1QU3VlU1QtcHNCSWVwSGI3S0dHQjA0ZmJvLXk2N3VSRkxKTHZlcTJua1o3dDFIRGozQ2taVGduUmJ0S0xYRVNkb3RFY0toQ1ZXaXNrTDZabURLVWJJTkF1MXpLMlJhZkJhNzVDNlVPX2llVnAweTBJX1JnT3hEd1Z4QzVReS0zdVZkc2trcFo5VGduUGhXQWlURF9tQlBmeWhQN2NCbFZvUUhoY1lKYWVjQ21jQmtVcTd3cmx1emdEWEduUkFveUp6MXlwZWNjWC1IUnlqOEFFYXhxSkVUeGpWTFpNODBNS0xtRjNXZWt1dVMxSDIxLTFYUFcyaDBfSkE1OTg1cm9uWnBCSUtoaXptUU44YVNndjBIbFlmVi03cTl1Vi0wLXFrNXVQWnljQkRDYnpUZnlGaEdzWGdKU0tPSm5PYkU0QWktMW14NHpJY3FSRmNiWkt1cF80clc5Z2lFX1pfYjBpTWlMTGlBUHJ5dGo5T241ckx1MnJhY2UxUHFvb2VrZzFuWWxCRllTdzA0eHBWSjNGNURCOTBDMHh0SzAyMEtEakpRU1VCZW52dUpsZ3V4WVMwWnQ1N3dKcnVXdmFpYUlIalFBTmRjMU1lSVJEZjF1Z2EwZ1NwVjZPbEltMlY2aTVDMllfcmY1eHJITmVlWjdwU3A1X3c1UTk5YlU4RkdEMHZNbXE5azc1eTdsR3NTMVlwc2stY2RZd0pSek5oa3RPeW5GOFZBNlcxSjkzVmZsa2Q0NTFnMGRJM3dGd05kY0FqWG8xdUMzWF9zdU1JOUl2ZU9jcWFqWlVNcEFCMTZzbU9waHVpQXlBcjNTbTltMTJMMVBvbzVVVDE4V1lEbFl6eXhNYkRmWmRUX0I2R2lNUnpFYVlHSENyQjJoaUhsYXlDdlpCNW9lbkVTUG1rS1c0dFNmOXhRc0R4U2U1ZnR0UGh4enJ4UWxieEM1V2dINlBibzdYdFcxdUpMUEVzVnlwdGRjS2lPSHczQ0d4dXA1NnVNdjhlRW50SGRHdVFERmVfalk5TUJYZXNsdnMtQTdBVzg0VUFvWE0xd0RYUFo0SVZjdmozSWRpbTh1WUVDU0dXMHlPcUo2MEVBYk9nM2ZERW1wbEpNVTBuc2kzREZmbWlqNkVRZ25hdk4yVUN0Z1lKVUUtUVoxU3lHTEY3OVlIRXhFVFRUZ0RheHNIYnZCX2NibWFwNC0zaGhPS041OXlQUmN1ZldZTGtrMUhpODg2c3V6VWJZa2MxTkZRWlBGekdYV28yUUFvUXlCQm5DS01YT2QyZzBPS2RaSFBYRUtVR05FM3A2blo1WVFCMUx4dXJhTVJCSUNqV2lHN1E2cC1XdXRpNHFvNnRvUjgyQlFFZUtqSC1KV2t4a0NoZ2tFaXpUSjFGcjlHRFZ0c3duOUdFcTBKZjJ0aFhKWXZUTkdTY2tTVFEwUzFIa0NlcVNLOXAyN0p3NHl4RTlocmFVdHYzaXl4MEhFZmNnTlNLVTk0WmpFa0R5UFozUXNLUUlCa0xweHJReGRsZ1hSV2ptMEpJSWQ3WmRiT3I0YUZPN2ozZlM2a3EwQk5SVzFBVnhRWXpkLThFWkV3b2w0MFNyNmFfaG5tUUo4WWZvYlFoTDBhZFBfWUNaT3dBc0g3alc4U0lKbGV1b0hLX2hPc2Fha1hkTnJPaFNoQ2VVYjNpNUQxRmxkak12SWFEajJFN1dfUDJodmVna25PNkFhOFJlZ1JRN1dvQkVpdGU4OEszeVdPOWJkdmZ1NjFJaTBIRU1RUm5LQVBILU83RVpMVWdzTmd1ak5YRW1jRmdmRmhmU1Zudko4Vjd1UnNmbE9NcEZkTmZzNU1KUDdEcEF6R3Q0aGRQaG14ZlBseDdqTXh4cnpOQ19GS0tvRDBwcWdJdWtTVnlMZzdrbXkwOE9paTk1QUNMREZsTnlQZjNtaUVUMHRfaHBmWFZrckhCZDB1Qk5Banltb2J6WmF5bW05SFhLTTFVSUFJN21WQWdUZnVUYmQ3eEY5TjlDNUJTZXVyVDJtYnNaY0JtWFNfa3hZTWtSWjFkSkdjN3FwVFBSZUxOVm10UURBVzZWdTZUWlpHNDREMHdRNllKalItNlFiVnNSR2NReGtxR09KQ2MyYm44SEdvMnZCSG50TTdEZVM0RXdLUXh0bVduVXdITTNVT0ZHaWVOVmRvZDhzcllzaE9sM2tvZlN1YUxIUkZiRGdVQlZoaHBFV3dUejF1VlhOd2VVN003N0R1dGJZYTFiRXRJY0hneXJjQUJTVW41dlh4cEhhbVY1RTJHczhEeDhYTmlBaWdYREJfbmhFZEdWWkVqSmd1TDg5VXltR0c0X3Z0cVMtN3hGYmtJaFpPMXBEVHZTMm1KM04zNUduNGI2S1FWcUEyWEY5amJwRFF0VFY0bEgwZWhiLUFyeGtGMkJjbnA0RUdNZWs0eDRXN1RfNEdtNzlFb3V0TjJzSW9iSFhXYi14bURJbUVId3ZHZkFsYkc5ZFFLZ1pDT3Rrb3EzUHJvY0hEMVFUTElpNEpQYU0zc1VFNngwcy00NXR5cEFHQ3N2MDhralVkUW5GbUVTYUhTYzJjSE5CUEFFX2ZzMGU2bm1fakRLektON095RkV5Ymd1bHZ5RTRsb2ZxWkxfcnNxWFlPN3lvT2oxX2FLVHhGa2ptallGNWhiS2FjcDhCNWstRUZUWVZYMzMzWG9OelJreDRnOFNWZW0xVUNibE1QOTJxb3BLUklPaWNJQWpmN2dkS2hhQmZTaE04UUt6bDJBVjBVU3lwMkdrUFRja0NrWEtXUXhhbl9RLWhtZ2l0V2w5ZVpOR3BpUjVSUGxqR3VRaVRYNlJENGZKcUdEQWNMSnEwYjZYZGhva24zMHd0Tmktc2J0RUN6NC1HV1ZOZVVBYThETl9haFNaMXAwT1MwMkRkbGVKOG1ZcW5vYThEbF90ZGZEV0xiNDg4WVplU3JwUmV2WlBJWm5OQ1lQUngxTDdxMVVGcWhfajVrQ1N3Q0VWTEpDUFdzaXlKSzluXzU5c3lUaW9DemxyM2tuTVZ2bDBZSnFYdXF2eW95TUZrcDdGdVdBbWtfYUR4eURaYm1mRGNLNVFnM0c2YlVwVXhPQVJyamgteWtreVpfcmxsa1hLUjVrTnJJMFFKYkw5UHBiWFNtMzZVSTFNajB4alVael9IYmx1Z3J3c2lzRUtGcGw0T0k2bUY1cUNLZVAwWmFmaW1nblhxS0d0RW9wNU9kTHNGRXNoa3BSSWh4Wk02eTVta0RZM0FrX0c5N0FuLUxzaVVWdG5IN2NYNUJPbHZIMVktREFGdzhkQTBpOFhPbkJoWnZ4aFZqdXctbWtHWjBITURVS0RMWk5uUVR1RXNnVEpDT1RQOVc5R0xtaGNfMGRSS1UwQTQ0RFVRU0l4SmxEYzNYWmdYOV9XdWxMY08tdjJib3pvLUhLcTB3blN0dmlPSU9YQ21BRW9PWDFodWROaUJmdktBc2NYTnE1bGc1YmtaN3dDR0xSQWoxUjRSelhDMnVsaUkyZ3lpMTFHZU1VanpoU0h5Ylk4NG5vWGpDODNJcGFTX1FTYl9WUFEyeWhMWExVdnp4SHJ4YldpajQ1a1VEMWJEZUkxOHhhQmd4UzJ6VlRVMF9FcW1WaU9wbjRnTWczd2oxMW5tV0JYOHVHUHlkUENhV2dtbFJTVXNxVXVGQ0dYZ3RNUFN2R09XRkl0LV82YzFWdVlzMGJDNzl3QnhwYy1MdENkRXIweVM4NWZKQTE3aktoclFINUJLQXNneUhKbzFVU21FZGMtTDRweWpkMS1obnZUYzZxRHBXQmhSREhieV9DeXBfc28ycERfYk12eFZ1YnBDX3FIT0dlaVRLSkpTcHdmMC1OdFRLSnAyUzloUXNQYnhIeUFlQy11ZThIMXA0WlcwWVVyWGpJRDVoS2pKRzQ4b1E2THBsaEJTWlNCa0xpczRqNm5nV2ozN0dLZEFNN01jNlpKVFZRdEw4RXZjWWNTSUlEN0liMHAzXzBIQzRKX21NTEtjRlZWWVp4TjlvSkVPZWJLUFVzbndwelVUX05KbjQ4VVZrMGwzeGtDaFlEVDVmMENoNl9MSmhSSzY3ckI0dXk2WTY3N2ZKN3RjRGFfWWsxZlotcmVpSlBRNHhMTnNOZ05hU0FoQ2tqZE5Nb241bmlPUFNhQUtVcWdDbkhsZzN5bDhPOXFhcVk1aXk0TzFlS1hHcmY1THkxV0lNX1luNmcyeFg4aF9TZ3hlcTdRN2ZOYlhIT0Ztd1Ywdk04aXhhRmJZYnF0N2hHT1pjWnVQaFVOaVdDSF8xb0MyUHlIUE1IcEtWcWdaOUNYYkdQNmFhY3J0UmpRMkxZdUZNSnNWRVhlN1gxNm1xMDZpd0dLUWxsUlZxXzZoZGtqUUs2SVpDVTNzMXV3cFlGeHdaTW1CQVVCaG1lb2kzUVItQlhrYnc0RU9nYXllQTJkSUV6a2g3cXFOYmNXNlNBdnp2eXd4cUlQT1FTSWYtMVlSRnZfSDBpYXN2MmQ0R0kxNHpDWXUtXzMwT0hqYzYyX0VMLWg4V29pa2Z3cTNXZWZNMTduN2hGSmZzMFNWNTVHY2U3UTdDQkxxNEVkSTlXc0t1MDlxeWhNWHJwUlZPWTBrZzdsNjYxa281c0VsN1RxYzgxNWl6OU1wS3RZU1RlV1lsd3pnb011clJDNktNYmZEV2poUmlldGo0Z0RkSW9GaUQ0dHJGNjZvU2k0WTE2WkNxYkVPMWVKNGNseWZZWk8zbzBwSk1NQ0gybUlwTVZPMkRueGJSSURIOUxiSEU2VE1qQjYtZkw1a3d3WUVoSHI3UnNaMnFFYUdWMDdXcFkwMUdoTWpEZXE5dGI3Qm0xXzFvcWtsdVcwMjZRUng5Vzcxa0RwU0xPNkxia1RWS2xuMlB4VmdZa3F5V0pHNlZUbU81T21fRWxlblhQMmx0bV9VVXN4MXgwdkxWczR1ejlHV1VYTGZKbVlzZnViQXBwVF85anZyRDlkV2xWc3NKdUMwRlVVNWxOUVUyOEJWSXpycV9ublJVRUJjc3BLR2d1RmN0Mjk0V2xFVjZzNFdTSU5vNG8zaVM1RWtfX1FsZEp3c3JKT3ZQS2M0S05OM1F2cFJDa3hPQ2VwZGpZZEMtbVdfMGxNdWVoVzVmcGUzRnhFMGhjeHFrZmkyUXA1Mk5VYkVZVWpPV2JRZ3UySVVmX3ZBMWpIRW9UTzRQNS1vYTBrRHZaUmxPQldRbTMyS0g0RkhwYWpiNndLTWVIOU1VZ2ZlS0dBNWVJRDRxaWwxWURONkRMa1BKT3FkeU91UGdqMTQ2WWJkZEtQdmFDOF9YS2w5Nm5BV1lfMVo3ZTNKYW9NNzhZR2pMaEV3alFpdHlSOElLRTV1ZmFDZHdYMWNPMG5FQlRnYTZPNzFrSEJkMEpGLTQ5X2FPX2RoWWo0WmVLWVNxOVhkQ1NHNGQzSFNxVGVsT2ozX0tzUGp5dk5ScmkzY0loVmJVWHkwcVoyN1NqdlRRcHFEaW5yMDBra1Q2OC13SXMxcXJhazQtcjZoQUFUeTM4S2FrUFJWYy1WMUQxUVppR3hFYUdrbUg5bF9YT2hFOEtHREIzZFgxNVNOREptRi1PR1dKSlJZNWhqZmpFWVNEVUhmb1NHTElNei01Wk5hVUs5cm42cFBMcWZfcTc1dkZ1TWRISzZhcTl3eWUtQTdLTjZyS0xqMlNfclV3RHk4dnBlbFBBTktNTG5Td09mV2U2eXdFRmFJTDRVLS01Z0NvczJBbGd0OWE4QmRKOVpsUDBUSzZEb0RVY0JTbE9VTWNJNGZXb0lDYkhwc3FnS1d3MUJXc0xGTFU1UnNSZVF0ZHhmSFNZdWs4azFWUlNhQnZnSEh5Uk9NemJXYzhSWmJCVjlQc1doaEpMeVpMM3RldzJ0RkhaM2h2U1A2SUVidWpxSE0tYnRWSXFqb3BEOHFDMG90YkNERnNqdXV0bFdVekgxTXhNVFFGdk1KY1Rfa0swM3NOSVBNTnc1MVlrQm1fV0hiQTNZY1V6d3BPd1JNNnQ4YWFVV2diRUkyNm93Szlhd3BUTzJmVHVncjdzNTJoWTFBNVRpMXRobDM4TU84UGNfeTFyYWJBeEVsMGloTUw3VlRFWmxhUml2VW5JS09ORDdXSXE0U2RHbjZzbXJLWW1LUGRFNy1vZzJfMXVhWkJyblRScHNrd1FiZUVlM09tT0lRUjltb3ZmNkRCdlZlVGtieG4zTHgyM2hwUVRRYlpFSTRORFFHMnlzTXcwSnQ4OHl2dEo3NkpwSEFYbWhkZUpBNWI0QTBYb2JvSW80a1JGTjNlUWlCQlB1eTVsZU1qeEZnVVE0N3Y2M0pyNmtibXpfSEVTZHowOGhNeUozakN4Q3ViNWdJVGhtbVdkQ1lIUjZRYjRtWlowMjhIT0ZCNTl6MkY4QVVENXNwU2wyZmhKZHBtUl9aZ1BsaVBuUm9YNGVPU25Dc2ZLTW95X1YwNk1KRTl3VGZPSXU1ME40cEhoTE9qQXNUX3NCSHBfYWJMb0x1ekpJZXdtV29SRThVR2xWVENOX2hJQk1pdWI1V01lbDgwa09nbHJTNXRMZnNCdW1qTTZXUEladUpjRG1jWlozdXpEeFBkRWdHbFZydXE0ZmpfMFBoUF9uNS1FcEVtYTkzZDFaLURCTXU3Wk54QWYwS1ZBOXVJOXZ1WFNQRDJOVmRpMG5QRFFjbFRCRWhKYW8wM01uc1VGbkxBNVZqQlJnQVV2Y05Cd3ZlYzRfOE9WMDJLRVRxZ0hMZ2tzbkIxdU1jZ0cxYnVQWHF5cmJJelN3WGJiTFViOTFWSkZERl9ZNGFTWGhWR0kyUzFpdGdZOVlsYzl3aFlJYU9pQy1KcTNiRUZiVnZiZnJnemMwOUtiYl9ya214ZjFpWDVRczh0blYybHpSaVB1eExibGx6dmlEYkM4ZkpMRE44VHo4NExMa0lMZHNmdjBHaWtkRThSelU5cFNnMVU5ZURUT0RnVktDRmtzaXdJbEJ5MDRqd0d5NnNwb1BudUxweG53OWhKQnpUc0M5dVRUTmlZeUk0SmxpdWs4Z3ZpR0JTT2lMeGNiRVlXTGFpN2NNQUYtcnI4VTYya2hDYlZZVU1mVGhnQjg5aklmNlZSa3pVSGs0QXVSR1k1QnpraWxBcDhHeHg2M1RacnVXR3ZMa1FKek5wNS1PVGN3V3hEN2N1VlFULU5icVNZRmZYMnZVcEt2Unp0WjNxeTJOMTRIYmdIeUZMYnl6SVVoTXdiNkY2M3dwcnlIN0hfMHp3OGRfb0N3bWVCMVBTQVBUcFhiYjhRZjluQlRXbjFCWlBMbUNVc1ZCaUFYQV8zUWp2SWkwUXlrN3gtb3BGc1E3OFdJUVpadkhsb0NRNWI4UGd0bVdaNUFwVDhPc1dXQU1sYkFzdXRLdXZjTFkzbW9DeFZIOGxzclZxOHVXSjhlQzgxUV9uOG5YNGFqcnZiNm51M2ZXTXRDNmxFeWwzSW1JSHRHd3lvVVZOVW4xZWlBQVpnYzdiQUlnNlBoV1pxS25DMkFyU19lbEVheVFUd0ZTWWxrM2Zjdlo4Z3RMOHB5THY0YkpEalI5NUprM1g4NGJEek5uSndfY2o2Y2Fqb0F3WW9nc3RRZFRnd0pqTU1WaU1Fa2hraVE2SVRUU3lDNUJmOTBCa2VXbWZwM2N3Y3c2cThwMG5NZEdnMjNDc0p4VHNla18zbFotRS1KcHZESHJnVUV4d3g1Z3lCVy1STjdrX2xnaGd3OUw3QUNTbHdGb2pHVzlZSzA4T0J3Tjg4ZEQwLVlmMkZSRmFnaFVQY0RfWXhmaC1qNDkyaGY1SnE1WWtyOGJMZENiZjdBTGgyeUp6UTRoUGREMDdnNW1uNThnT3ZMUWo4Z2tvTTBfMHVGOHBRaHpqenRjVlRaM2NBNkZobEI2a0Zkdk9OQXZVLXI5YkpFb2NOaW5fRTJmb1B4VUxqOVdEdGxaX3N2bWtEVzBjR05fRWRlR1dKLXhLcTdWNDRzck5vd0lCOEprZHE4dUhZXzFadVg3bWV6MHNYc0lNSEFFSWhkSnBJelpYQzVjYW9lTDRfalVxelB3dzJzMG1IU29CSlpQNjNWODhFQVpMVkdtaklwaC1PTkhQeU9QemFlQ21xajFlTVFaODdJSGNhYm1yUGNaWDFITTVvRi1meTZ5RFVzdUJyRkx1dmRyX0VJQ21TM0sxWEZmWVhsMkZCU1ZsRGNpUDJ0YVF1RzR0dHhjaWhoRWpERDVDcEZ4S2dha0lRSWc3VVFBTy1rUTN3THZHdW5CcG4wVy04eGpWRFBoU28zUUNOc29sNF9zWnFqVTBoeEVNTVo3YkVxTzNSVDNTVW1OM3RjdG9LWTBySzBxZmR1bk5iSXNjdG5TcUVPYzg3dWd4VTBXNHlQYjBNOEoyQUwySkV0bXlRZmN5RTBDalkzVjVZMjNlN19UVV83bEk5alBTbnhvVi0wdUhCRjZ0Z2xYN3p1akdJSG82MU5CMHo2MHpXZ01hYklqd0Rha3dPYXV2Uy1yX2RqbEZpeUUyZlJvQnNPNDN5WlI1OGJqcHhpRHJxOWdnMEtJcktBQ0gtWjliTUdxeFBIbHVrb1FGeHAtMWszQjdndE5GdGh4dEJqMng5Q1FBVUJwMFNZYXRhUmgwVlBPRGptMWhLd2FUTnUyNDlxZW0tbERiNTRhNFplaGZqVExkS1RoalFiMktwY2FCbVg4ekpQbnRhVlA2MXdDeVRGVDBSN2RIVHloZUhfS0NYbHA0WDN0ekdoRTg5VDVVWjVxVEZJWmNDR2I4YzM1c0pjYnh5bWZ0aUJJd05sUFRlbkNid3dfQXlOUWhreG95Wk1iai1lQ3NBN1M4V3FaUEp6ZVozWE5iV0ZJeS13S3hFMnVyTTJKRXd4eExXRllwOFQ1cFBQQVF1NG1NT0k3SDlfNzRTcWpMRFpCU1Myd3dUdU1YZW1aSDJuWVI0WmdCUF94UkZENzYyM204ZzRuLUdNNGhibVZPMW1LTllJbDlHdzljbkpQOHpSSWlNbUppWEdXTjktbjRPVHFRWExFVnlKbnlUQ0RCMzFTSFctTThyeUJMemEtOUxOdFZhUzVTWkM1UG1vem9EMFZyY2hFVEZmelhwREJfZGYwNk1aYS1icEpBQklTVWJidi1hM0Zobm9JUU0yRW1uT1N2Rkw1ZFdDRlZMcXAwREJOZEVOS0FiQmJaNGdaaGNEREVoSVQwQzh4dWJ5MjN1MW55ZlowRld0WXFoTTh1TS0xVzVOTlNLZGkwVFVhQ2d5OHhBdEh5Wk9YeWgzVFRMVTh2ME1rbjFRRjh5ODRsOVJlejE5VTR5Z2JqX01CVUJreGYtNnhpSFRVQkNpQmN1UnoxM1pSTkVMNUFzTUZLalQ3Y25zRDJxNS1fdDk4dEZ3SmNQejBTLVctbzFtVnBRSkFjZWZ1ZXBRcUdvVzdLNWIzMWFCVHUwWVc3MTZCeW1pSVEwTU5VdC1Cbnc0VTZtdG9wWWJVRjExVXhSSHl2R050dVVUMlp1MDFJSWlKTVRvYmxoZXlYQkFraEVUaDJTXy1Cckc4cG5oZWFZaE94a2wwZE1nZy1ISlJ6V0RXSHJTZ2tUN2plaThNNnhOY0Nwc19veC1kNkdsX1FwYnRkRGZWaGQ3clRaTzhCNTFQSVN3Yk9aYUhkZHotRlhUZmd1c3p6S0RwZmtSWjN0T010VFJ0U1ZWR2t3eG8wRWdfQW9iRVJSNnBBblRfN1hZQmpFWl9BSVVwQkhmYldjZENyUkN5YnR4b2VUU0RvS0twblJkV0E3cnpiLUtDQmVzNG9mdWhicnNldEdWXy1rT0dLc2FuT0lPbkNPQWdHc2VFb19NTnBvZVpjWmd5QlRlaHFmNXlCQ3FZN2FmM2E2Q0F0V2hfSE1IVzl4cGk1TVlZVk9sRVBWWHZHTFp4bi1xS2hzUDVwM0g4a0VHam10d21CWGFuQVhkNE1HemZtWnA2UkZ2d0VIaFJHNFJQQkZYSkZld3laMW1oSzZZVDZXYnpuUGloTC1PTjJPVnJEc25CSWdEUGVtclpnaVJIVWdnMkk0MXNnX1RMWTQ2N2NYUm1JZUc4NWpUTmRieEhkRkt5UWhNS045UUVBYXhDTGJsaF9FZFF1LWJtcnFfNVZoRmIwSDlocF93S0M2bFlOM3BFR3ZsajN5QzNIYU1LTW8xSVlBTkROcmhGM096U2VHUS1SWmZHeFQtZTNwdmRzc2ROTHE5XzNrdWdGZnB5ck1GY01iMkl5MFk1ajN2bF9vNTFvLVdiYUN1Wl9KZEZfb19JZV9zZ1ZnTUhoTVA0elIzRlBEVjVjVUR0bEtWWldSa25XMTRaZ1hnbFNRRG5kSG5lbmpqR1N0WkZnelh6c0FqX2xibm5BXzZnS2ktZHQ5SXk4aW92cFN1SzhTMmMxRFdqU2xIQ1FMS2tCdWR0REI4RFRaYjZneHJCZ0piNEpFUWp1LV9mUXlPR1NOellNZ01ISHFiVTVVbmpxOFVlQkFlclNnQnEzTWRza0xRNjlRVS04clRZbGszVEVLeFQzS3hhTUx6MmxWTkZSMzRkUDl5Zm9HMnZvOW9PS1VEb3VUaXRwNkdhV29Vdm5jWkdDME52bktJaUIzc1NiQ3pOWFdWbFpDWDhWdFhRQnB4NV9USDNhYi14bUJOUnVQMUZ4dlExNERsanZHQVBOM19DcHhxaHAwTmxzbk9xNzlqYmV0TmtqVHVrUTFZLVVhS1lUVFZOaTlQV21CbWJJTGx6X1FfQ21lSml1M1BwVVUyM28yNHlkR0JFTzZNZFg3aldMdHp5c1hxSVJyV1JUS0g1dG1rT3VwNlQzck03UGotb0NNMURacGZHdFUycU9aVW5hZF9TNGR2V3RBT0EzMVVsLU1DQjlLLUpHZEhyU1NKS0xoODNqM2d1ZDdoTUswVFJmYzVXLWdaZzdiT2xUc2EwcTB5anVKTzAxYmZQdjdQTjN2cTRkT1RabWluNnBJMzJSbzBTQU5NZzlBRkdvR1g3TElaR0Y5bVRMZkZGbkJTUlctaW5taW0yRW1NR1piQV9hNUdvTWxOamhmV2JvLW5aNHZubkI0M1NjZlNwZnI2LWRvRzd2VUZzMHlPUURuM0VvZF9ZcHBwUUwtLWtKR3VlYndlTVk4ZmdtVy14NktjRENjSEl6NU04MzhROC1KTEpPNzVLS0ZqREZGa3JtTGZfTGF5ZTJuekpKVGxhN0NnMUMyWS1kMFJGZnd3ODRHb1JjaGpVS0RPQnlFUDVlNzRpcnVSc2hjQjl4QVUweFpyZlIydmdQM2gwbG9UYjJ5UG9wekVwaXV3N01XZDA0eGhsMWhJUm1haXloRFMxc3R3WFh3aDN5SlNuWE5NMngwdnY5bGpQTmRDTzBiQ1lyZVQ1SXY3eFp0WEl1VW5jaWI3eldUQWZNZHM2cXF6Unp6Wkx5YXFTT0JrQkxJLW82R05SMm9PX3F6dTZteG5tMlJGOUlMcEdxYnRnZHhYTTdScVNkNVBEa1RfVjhrVzdOOXlfTUJuc2RpV05uelo3WndPNldrUlNvbkJPc0licVFVS3NXR1dUZ1E4ajE4dy1hd3hnWVJNQlhrY3lEakt5S0piMjZrWjhnRXNlcVQtM3RPTHdFeGM5cjh1MEtLT1M5YlROZDF3YTRFTWZHMEhFeE1SdmdqQ2N5QTlLa1pnU3Y3eTlNRm1BS2k1M3FXNnVvRHRfX1Bwa0lFLVpqUGhLLTdSa3Y1TmJUQnI1bmctTlR6ekFHc2s2enVPdnBpU05JSWxBRXNlUUJERWNES0c0M1Fsa0N0X3g0VmJ2QW9kQk9lTVJpZWNMeTVtLXo2SVZyME9xX0Jnek16ZW85Wl9xZFhWdFZobTU5ZkhDek1rcEM5WEN2dTVXaVU5UzhsV3Y0VmM1STZXa294QW9vZ081QXJFVVV4T3JsMzlma0ZpR2FvUmNBbWM0dG81anhUUjhuWVJXQ2tFdUQ1dEoxcFFUNkhpaW9XMk1OTXR0OExMTTFpeUMwejI4bWFlcmdBZUxGQ3pTODZ6QnJybXVTWFJEQlhhaW9DWGM3VkoxSEtmSUFYcDY2ZEZ3RjhRUkdUOE9LMm55dlZIMzlvRWhSX2M2T1NiRzJvYkxTOXdWM2RFSUFiY0RhR3hjVUpCU1JXeTdUR0ZhcWdhemlwRVRnejF0NThlNUZhS1AyUnoxMHV3LVRHSWN3VVJtRXhlSzVnbDZJWWdMVThKYmVNdWtpbTM4dVFXaklVQXEwOWhva3RsRFNueG8zRFg2STJjdFYtRk9xYk9rX1dLRURHRG9aRG9neG84UFNELUJWeGJrQldRZEwtTUNENUpzblBGRjZhLV9BdFBaWktKYnZoM0t5bWQwNXVfbk9qTURUdXFKU0xuNUV4MjFPbXAzQW9WZlpNYVlTV1hzaXpOWU10cEVReEMwbWp4aDFFLTNmRm5uOE9GdzVnTXFXNXN5d0ZHRklYcUF5MFlmc0Fsb0ZBTkstRVZvVmpCbjY0b0Q5X1NsNVBwZmxFZVlaSFFRS09IRmxWazVwdUhlZHdpckNfZGhkdGp2TnV2ZlNSb1BLU0VJWGxnV2owRHRrRkFiaXJkd1FNTFBUc21CT2pOYnhSWFkzVG9Qd0RSZGo3eC03VVJxY2Ftbjh2VW9UT1MxYWE4WVRMNm5FNVhsVHpuOW01MEh6ek1Rb2tnemcxQlFLSjRsMFJkbWw1a1RiX2tTRm5XY0hobHp5UGt3RUxvZnZfYnlBN0lSXzV0d21LLUZGcUVsYnE5WW1IaXNrR1BWMlpHTDFmTDFGaU1RSmtxLXNzeFlTNjZJRVZ3b1pCaGw4dUZJbnVidXhFeGJaSEpTX2xQY0pLTnQzcExWazJJSzJpc2duVFgwTnlJRWNzMG9pdDlfQVRERUJ5OHZwWTYyTjIxYk9la1lJM1o1Q0pleFFpVTc5VU1wektndTJvTGlaWnBaeXJ4TnVMa3BWSzJpT2toanNaN3gzNDhRdjBSUjdRN3p1aWM4b2hnbWYySUs5cjltOW93MTg4MlpRNFlETTdlOGlxc0t3dkZkOWZuOERlcWl2cmROQUhRcjFlQTZnN3BVSkpZZTNiUDJKLWpGSnN1azQwWXBFUXZVdGFaZjF0cUpPQlMtWlhvOE00aGEwUE5KTWx0bFhmZGJub2x6aHRnYVF5blR3WHJBRTBSZmtnWjlMaHFtenI3ay16TWEyM0t3UHdncDJmUGgzSmV0Z202Nkp4eHBnVjQ2dVl3UTVwSUFibll3MDFOTUxFTXlQaUNySlFFRWtwaXo4WG9hOGtJMkdRdkh3b1pTYlMtNzFZcHMzQ2oyLVZkRTBNaV8zUnRJUEZyaVVTUERfS2cxQ25pQlduN0IzS1pUYjd1MFFwOXl0VE1TdDNRbUNwcnR4YlktVWFwWEtESUYwYVVCN1RPaDRuN2lFZ0pQYzV5M1A1LVZkQ1VxUHJKS2VwckUxN3AzMmFyWjE4VFFwZE5rRHdXRWJWZFlMZDNvc2tTdkhCMHBmbTFablpMZzNpSGo3SmxFX0VsT0RIOVQ4MXRBS3ZyUFlzZUJsWnZQbEdUbDdRN29XN0tSZ21zVDJHMmlqOW11RlVEWEoyLU9ycFhHTWFURGxpdGNhcmpXR0tjMXFJRWhzQ0IybjI3LUlDX2FnbDdHbG4xUkdCRC02bEZGQjFuTVBWcHJpVGljQjA3THJZblNHSTVRdzFpY0pYNnV1TzYyOHRTMEh6Z0llUEdRVzhPMEtyR0xEZkktX2ozQkphbEN1eEpMeW5sdmE4MDVaWFZ3RUdCcEcyaGFOSlVleXhJeWFSamM2SGdOZzNHXzNIbFItWXhiUjBfSmtEODJwczhfd1VmZTBGOW4yYkUzWEVNeEd1bm9rbWdWbTdxQ3I0TzNxQk1HZ0dvN3ExNFRVTGhndk9GeXVZU3BKdkJ2a290NVptZS02SC1idVYySlVjNENQYUN6Y0pFSnB6QlNmTnk3eEFlQmNvbEN4Q0w2MzZDZS0yeUFGVTFFdjJ0NkN1U1BHZUlyY0RrRlUzT2RWOWxvRVlJaG5nNUdEdDdXUjN1RDJsRkh0M1dWLS1ieHkwSFU4YkZmT0c4b0hoU25NN1hsOWtGR1ROWUVxUndIUjk4eENYeXVlS1ZEMHVlN0ZPNnotY3dxV1NxX3BFb0ZUX0V4OFlHU0EtS1k4N1RCRFY1ODlYSEdMYW05bm43RXJybTdNc1p5Znp4V0NBb0U4YkktX0hRN3dTLVVTc3JuZkh0eVJCVkRMcHRSUDVXWDhTSW5jekUwbTFsZFdRUFRZdDFZTVdld1M1Wk5GWll0SFFVSU9FUzNRVlZ5dWlrcXZQczBQWE5Db1p1ZUJoVVViZlVab0E1WFpDTXFYWVdsQnBUMzRVWkRTV3RxUnRVcXhjZlk5YmpvNzZWNjRfSFAxUHJ4V2NQMFZFVi1QVmhxTE55VmRZd0VsRTB5YnlyWlNsRjRwVlM4VTdsd1VlS01UMnpHNWVDLUktakxpUEU5S1M0eWU5WEdtZjlVZEZjd1V3cXBiMjl0cVFFdXRUNFRmUU54elM1dzFqblUySF9BVmxvNm5LZGJiLWt5RjB5WGZyRXB4VHJtR1VSZTRqMEVzMHBXbU0xOVZxY05yeDJDczh0UDlGTlFxNlptQnJ1QVY5ajE0SlpOdUhvY1ozMmU3cTdsN2tfcWlseEtDN1hjR3lRS3U0YlpXdS1qWUEzdm5OSDVORnAyaEd4aWFLVmRka1pDQVlTUnBqMHVNZ1FuVGNEUkppTTJoV1piaGY0OXBUaUVwak90dmhIbHV0WDdYdmpnTDVZcWtVRzNBbUZVelZIOWs1QkFpUXo2VUtwVVJjUFVNUnFPTG5fbkpMd0VsY2xKUE0xYldZdEhZNHNTdzl0OTMzSjZxdzdENFdNRGJRLVI0QlJubkxwNUZZRUtSY2Z1cHVKWWtxV29xd3dQUzc4b1E1UmZfSF9VbVlBZEFOUXhsLVU0MUw5RTE1TEZqaFBsMUZObFhNLUp5ZVNJNjhlbUJ1NGNWY1l4d0oyMGd6Y2NuSWs5UEtjdXdUWE1IUjVIMmNtZENxRnVBY3lYUlJCaGhGRVBfNjFmbmxnRjMxMFZSdS02c3JmOVhnTGFuMEdtaVNZSC1UaVpmcUFrUjItRVlvdWxFUG9UWUw5OUhTekcwQTBveXhpc2YyaER3Z1NxNDVpbjJaTU9BQnRrNGpGT2ZKQ2kyOVZxMkV5YXVOQmRodkFQeUVzVHJpcV9ydHZPN1phUUs1Ulc3QndPZ0RsY3k5b0ROcmVfRG5mZm9jRUNmc3hMVndab0Z0Sm02eUpoNmU5SDVTOFdMcmF3MEhDTklaR2QyaWNTUTJEMG5oMjh6b3JSY1lfanpIYjBwX0VIZk1iNjhxa1hoQmREVE80ZVQxeGNtRmZuUXRCQnRCMVJYaEd6cW1MRlhTUXJRRWxHWFY0czZxNWFYRlJQNkljdGowQk02VkxHWXVpOUdZb3YxZEVrWVRaS3Y0QUtnQndySWRGazl4N0hOT29YRm8yRlgzY0hWTUpWU0hzck4xY00wekN5SVNGdDNkaHB4TnVsVHY5TkdfQWZmUUg4X3NQa05Ua1R6clcyRlM1RkZpTjVrQXJLeUZRRGlWNEZHZTRxWE5WbFhfOURtLW1Hdk03Q2lPWDg2Q3Z1OEg2c2JEckxFR2VxdVJFSHdxaE9DYnR1VDljczNIYlBsbDlvODhxTkw4TV9CSzc3aUh2a0lSQUc2Qkl3Qkt5ZFo1QUNpVnh0NVhIZ0tEUE05a1VaMTdLM3FwYXFUblk1YWw1QjF3bXVYMkwwSDVGckxxQjJTTFBPUE9zcU1RTlNidGExQXBkai1KMm0ybzFWY1JPaGhWeVJza29iLVNOUDd5WGJrbGlUOWJTSHl5YzFvbzFXcTZKYnNZd2hwdVI5aS1YX1cwYkc5M0hyYS10c2pvYmZPYjFBeW5sRXotRGpqZXl1eEt1UGVtLXVvRVlTWkZfbXRsd1JxbVNFSkFwWmlxQms5VHFTZW04LVBCZWxRR000MVhBOWtFeHc3cm41anROODZEdTdUX3JvRnRTWGxpakFQUm44ZTI4XzcyNEwyTWtrN3FPREpLMkg4Mzdvc3J5bjNXRWE5MW80OTJuTS1BcGNTZ0pfUUEzbURqUTJtaHZNVElPakh5TFRCZlBjaW4tby1UQzRhc28wdmpJUEhLZ3pUeE5oWnpYNHMySjFSRF9ldW91cHhfNXhocDdCTDZSTWt4eWVMd0o3Y2VwZFhDVmNmdzdzRDEwQnlyVGVtSnVoT2oxaWhrc1lVUmdEZFI4M3pweFl1Sk11a0ZqbjlxbEQ2a3c5YndNWnRpU2h4QjFZUHNuV1daV3U0TXFsVTg3SldZQzlEMzFUdXhiNFltYndsd1RsQTV6dFBTS3diTk1fYUI4aXZVUUhUazBPdFFwcndXMTlCdU9FbjFtWnpBYnJ0WkUyZ3NFQ2w3TTREWjZWR29nMGtza3gwSUlDVks3WkxEQmZRYXhIWmxFOFk2SGFCS0JrekhKSHE3MUNfcnMwcEo0UWZRV1NiNGdkRFpIeVpWY3JaNktPbEZsQTBma25LdEN4YnpjM3U2TUM5enFXa1ZYWWZZeWVvM1JSNUg3UVJZaUJqM1R6SjJVMVF4U1VqQjZyU19XeW9vWlhnNHNyeG5QRWdKak01TTdfMC1yY3NWVlVVdVNzT2RXMXFybjRlSy1Kd3Q0elkwUHhLYU5wZzRkMTFLUURIVXJkRjdPbnd4UmJ0NktLSFlGYW03UGh0ZVozV0dGbnBIbktzdHJYOVk2bEREYjBTLW5KQ3o4ODF5cUhUSmZ5YkhfRWFxS3R0ZU5ub3dDc190Nkt4NTVBS3o4c2VaU1psOXJnb0k1V0FrVkR5YmlfSlFFdTJnZnp0YzN0M1hCMnlTVDg4bl9BcDJNbU80X0V4QXBoVEpfNzdrYmJvWkl1Yll2ejA2Sjh5ZjR5Mk1yXzgySlFLVVBQYWhuNEozejR3eS16d2EtaDFLRkkyZThQTDZzODF3YmZ1QndrNlBHNFItZWg4UVhybEJrSXVqMkJ4eGU4VUZ3VUZONW9kbzY4VC1SWTF0bVdPRlZndnpDUkJKc1Zjb3htLU1CTGZsdW5XbTBVdDRvd0F1MlRKQ3lUaTRpWDhIM3E0X1lQTy1zMXBiQnRRaU0wQU01azVFNkdoZlc3MS1lQjJ2cHMtMjRORzE5R2gzTEhvTzNlelJtWmhwX3k3QXYxV0I5OURrbmJ6NXZ6dGxwcW92Y2hNNWRDOFNQalFkMDBDRW5NRmtwaVQ3SDZZTmFKVG5BcnVoanhTU2RKLXUxSmdGSE1ObzJpNEtfR0xxY1BlSGlIaTlPZDM5S2NGdVNQeHAxOV9wc0Z5bHRzWVp5cXhoNldJSG55bkRvdEpiOHd4dFU0bk1FMWFvazFZNk9yc1FUeGFtNnBFQnludFljbzFoLUlhanZHSGliWkV2UGdLNjgyc2RoZ295RjJ5OG1na2JTNWxHVDd6U2tYWm0yeUZwOGk0X0tVUnlYWUtqUndFZWdKTmktQ0gxWWs3ZHgwbExOaElOVzJEWkdyN3RFd1dOd2tFMzFHdWwtaXZWZzdGMTNMN2xXNW9OWTk1WXFXQlh0RzBsRHVoUlduSHg5dTNWV0twSDFmT0xDcnVIS1VXdzM3MmhtX21KS3U5UW1tQjNrWDF3SURXSkQ0SnFfeWlaekMxWEdIOEFzRmJfOFhtTGo3YW1aUmRwRFRRSmV3WlE2NXFJem44VEx0ekFhTUktUUlQZXJDSEZmeDFYWW81ZUpWdHc4MWphVHFRQWJCLVZ5X3ZXMG4zNXhUVklEOGdJUlpYakhRVEg3YTgtaDY3ZVFPdUNtS00yR2NZQjlFSmNRLVRPdUd5ck5Cd0lBckNxSGxDSzF3SjlPZjFYMjQ2cjY3dnd6MkJCQUdRWWp5dF9yZ09PcFFadGthV0pMd25ncXEwRE1pYWt5cE5LSlVJbEViX3ZkUGp6SFFKMV9IVzlMSFB2UWVHUmVJRTY2YzEyWlBBTm5tcndDaXR4M3hzcWNJZVd2d0Vya0ZzcWMteUlZbFd0V1Y4ejVmdklMY2JvSWRxVTJ4c3RqR0lvZDhudEp3RVRMeDJJQTZ6TUZHZ2E1UDZkcVhiMm85TUtxT3U3Z3UxYzBUaGtjVzB1QUFSb1F5ZzhDcnMzX0VfcC1YRXpCZGVWNzBIWUhXNk5CaV91OUVfLWVKVm13Vl9RcmJxanM4bEJxeEhsR1ZyUHVIbjd0ZU1ncXk5cjY4b0c4RVZRRFZUV0tXYWZ1U3Q1bHJpWXlTMlk5QnFqbXduUlBFR3lqTzJtLXVNRTRHQU84d0s2eFZVeWF1emlRQ0FyLnN4blQ5QmJTbklGT0RKQ1Y4WGR3RXc + /certificates/{certificate-name}/create: + post: + tags: + - Certificates + summary: Creates a new certificate. + description: If this is the first version, the certificate resource is created. + This operation requires the certificates/create permission. + operationId: CreateCertificate + parameters: + - name: certificate-name + in: path + description: The name of the certificate. + required: true + schema: + pattern: ^[0-9a-zA-Z-]+$ + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The parameters to create a certificate. + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateCreateParameters' + required: true + responses: + 202: + description: Created certificate bundle. + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateOperation' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + CreateCertificate: + parameters: + api-version: "7.0" + certificate-name: selfSignedCert01 + parameters: + policy: + issuer: + name: Self + key_props: + exportable: true + key_size: 2048 + kty: RSA + reuse_key: false + secret_props: + contentType: application/x-pkcs12 + x509_props: + sans: + dns_names: + - onedrive.microsoft.com + - xbox.microsoft.com + subject: CN=*.microsoft.com + responses: + 202: + body: + cancellation_requested: false + csr: MIIC4zCCAcsCAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqe8aINnShK+wQC8QU7fwsviQc9+yiOnqU3adXA6qNjn21HTdRBa7cyQIk1STxHIBLTT/GaEJwqsUi6UvZaPEHokOWsr1bP9M7xOPTicBcRyMrr6bOxsmGczYtu1z2TzzXDD7q7IEignE7/LowGEaIADCIU9iuWk7TiJ+1Q/VLh/B3xPsgVjY+n7zEQ53gBiDHSl7XfELfwmslOQ28TVNogUyXsxHcVxQQYJeI7HqqY448LeleK69Ld86lkBixLEm1pD7HSbEx3WI2lyUQAGR6hD3YFaiIWVpQeEyI7p1jmtQlnfZdEL4q9wdlEEcwd3h3PAZpEBhCixahF54fci3pwIDAQABoIGDMIGABgkqhkiG9w0BCQ4xczBxMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwNQYDVR0RBC4wLIIWb25lZHJpdmUubWljcm9zb2Z0LmNvbYISeGJveC5taWNyb3NvZnQuY29tMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBACiLeghirF+yCuYGVUPDB3wKQJn2iLY1za9ncxCehIVqOkFK09AphzoxF6Yid90AKCaa/dT/Ohm7oTyVQ+YcZnT00LUNFVG48AOE8YDiw9tjAG9OORsAz80xnv2qaLw2TCVIQ6NjrI83LqAm1GJ8rAnpdD/ZTuWM7TvSO5g/jm/Q0oSuKpMgj3YxpwgB9Ac6YEfVzOnm76OkUcpvR5MS4BoTfRv4thdSnU+uwqxM+HtdSVTbHQeC2U/hM1cyzDMpl1rZRklmiEOoPUeDasEIBVTJhAxR8xAeKJJD7Wzj4mJPw4UMvF8zQZzW8EKYvB1hkVYY+HQ85L+XcXd8lco7hU4= + id: https://testvault1021.vault.azure.net/certificates/selfSignedCert01/pending + issuer: + name: Self + request_id: 6faacd568ab049a2803861e8dd3ae21f + status: inProgress + status_details: Pending certificate created. Certificate request is + in progress. This may take some time based on the issuer provider. + Please check again later. + x-codegen-request-body-name: parameters + /certificates/{certificate-name}/import: + post: + tags: + - Certificates + summary: Imports a certificate into a specified key vault. + description: Imports an existing valid certificate, containing a private key, + into Azure Key Vault. The certificate to be imported can be in either PFX + or PEM format. If the certificate is in PEM format the PEM file must contain + the key as well as x509 certificates. This operation requires the certificates/import + permission. + operationId: ImportCertificate + parameters: + - name: certificate-name + in: path + description: The name of the certificate. + required: true + schema: + pattern: ^[0-9a-zA-Z-]+$ + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The parameters to import the certificate. + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateImportParameters' + required: true + responses: + 200: + description: Imported certificate bundle to the vault. + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + ImportCertificate: + parameters: + api-version: "7.0" + certificate-name: importCert01 + parameters: + policy: + key_props: + exportable: true + key_size: 2048 + kty: RSA + reuse_key: false + secret_props: + contentType: application/x-pkcs12 + pwd: "123" + value: MIIJOwIBAzCCCPcGCSqGSIb3DQEHAaCCCOgEggjkMIII4DCCBgkGCSqGSIb3DQEHAaCCBfoEggX2MIIF8jCCBe4GCyqGSIb3DQEMCgECoIIE/jCCBPowHAYKKoZIhvcNAQwBAzAOBAj15YH9pOE58AICB9AEggTYLrI+SAru2dBZRQRlJY7XQ3LeLkah2FcRR3dATDshZ2h0IA2oBrkQIdsLyAAWZ32qYR1qkWxLHn9AqXgu27AEbOk35+pITZaiy63YYBkkpR+pDdngZt19Z0PWrGwHEq5z6BHS2GLyyN8SSOCbdzCz7blj3+7IZYoMj4WOPgOm/tQ6U44SFWek46QwN2zeA4i97v7ftNNns27ms52jqfhOvTA9c/wyfZKAY4aKJfYYUmycKjnnRl012ldS2lOkASFt+lu4QCa72IY6ePtRudPCvmzRv2pkLYS6z3cI7omT8nHP3DymNOqLbFqr5O2M1ZYaLC63Q3xt3eVvbcPh3N08D1hHkhz/KDTvkRAQpvrW8ISKmgDdmzN55Pe55xHfSWGB7gPw8sZea57IxFzWHTK2yvTslooWoosmGxanYY2IG/no3EbPOWDKjPZ4ilYJe5JJ2immlxPz+2e2EOCKpDI+7fzQcRz3PTd3BK+budZ8aXX8aW/lOgKS8WmxZoKnOJBNWeTNWQFugmktXfdPHAdxMhjUXqeGQd8wTvZ4EzQNNafovwkI7IV/ZYoa++RGofVR3ZbRSiBNF6TDj/qXFt0wN/CQnsGAmQAGNiN+D4mY7i25dtTu/Jc7OxLdhAUFpHyJpyrYWLfvOiS5WYBeEDHkiPUa/8eZSPA3MXWZR1RiuDvuNqMjct1SSwdXADTtF68l/US1ksU657+XSC+6ly1A/upz+X71+C4Ho6W0751j5ZMT6xKjGh5pee7MVuduxIzXjWIy3YSd0fIT3U0A5NLEvJ9rfkx6JiHjRLx6V1tqsrtT6BsGtmCQR1UCJPLqsKVDvAINx3cPA/CGqr5OX2BGZlAihGmN6n7gv8w4O0k0LPTAe5YefgXN3m9pE867N31GtHVZaJ/UVgDNYS2jused4rw76ZWN41akx2QN0JSeMJqHXqVz6AKfz8ICS/dFnEGyBNpXiMRxrY/QPKi/wONwqsbDxRW7vZRVKs78pBkE0ksaShlZk5GkeayDWC/7Hi/NqUFtIloK9XB3paLxo1DGu5qqaF34jZdktzkXp0uZqpp+FfKZaiovMjt8F7yHCPk+LYpRsU2Cyc9DVoDA6rIgf+uEP4jppgehsxyT0lJHax2t869R2jYdsXwYUXjgwHIV0voj7bJYPGFlFjXOp6ZW86scsHM5xfsGQoK2Fp838VT34SHE1ZXU/puM7rviREHYW72pfpgGZUILQMohuTPnd8tFtAkbrmjLDo+k9xx7HUvgoFTiNNWuq/cRjr70FKNguMMTIrid+HwfmbRoaxENWdLcOTNeascER2a+37UQolKD5ksrPJG6RdNA7O2pzp3micDYRs/+s28cCIxO//J/d4nsgHp6RTuCu4+Jm9k0YTw2Xg75b2cWKrxGnDUgyIlvNPaZTB5QbMid4x44/lE0LLi9kcPQhRgrK07OnnrMgZvVGjt1CLGhKUv7KFc3xV1r1rwKkosxnoG99oCoTQtregcX5rIMjHgkc1IdflGJkZzaWMkYVFOJ4Weynz008i4ddkske5vabZs37Lb8iggUYNBYZyGzalruBgnQyK4fz38Fae4nWYjyildVfgyo/fCePR2ovOfphx9OQJi+M9BoFmPrAg+8ARDZ+R+5yzYuEc9ZoVX7nkp7LTGB3DANBgkrBgEEAYI3EQIxADATBgkqhkiG9w0BCRUxBgQEAQAAADBXBgkqhkiG9w0BCRQxSh5IAGEAOAAwAGQAZgBmADgANgAtAGUAOQA2AGUALQA0ADIAMgA0AC0AYQBhADEAMQAtAGIAZAAxADkANABkADUAYQA2AGIANwA3MF0GCSsGAQQBgjcRATFQHk4ATQBpAGMAcgBvAHMAbwBmAHQAIABTAHQAcgBvAG4AZwAgAEMAcgB5AHAAdABvAGcAcgBhAHAAaABpAGMAIABQAHIAbwB2AGkAZABlAHIwggLPBgkqhkiG9w0BBwagggLAMIICvAIBADCCArUGCSqGSIb3DQEHATAcBgoqhkiG9w0BDAEGMA4ECNX+VL2MxzzWAgIH0ICCAojmRBO+CPfVNUO0s+BVuwhOzikAGNBmQHNChmJ/pyzPbMUbx7tO63eIVSc67iERda2WCEmVwPigaVQkPaumsfp8+L6iV/BMf5RKlyRXcwh0vUdu2Qa7qadD+gFQ2kngf4Dk6vYo2/2HxayuIf6jpwe8vql4ca3ZtWXfuRix2fwgltM0bMz1g59d7x/glTfNqxNlsty0A/rWrPJjNbOPRU2XykLuc3AtlTtYsQ32Zsmu67A7UNBw6tVtkEXlFDqhavEhUEO3dvYqMY+QLxzpZhA0q44ZZ9/ex0X6QAFNK5wuWxCbupHWsgxRwKftrxyszMHsAvNoNcTlqcctee+ecNwTJQa1/MDbnhO6/qHA7cfG1qYDq8Th635vGNMW1w3sVS7l0uEvdayAsBHWTcOC2tlMa5bfHrhY8OEIqj5bN5H9RdFy8G/W239tjDu1OYjBDydiBqzBn8HG1DSj1Pjc0kd/82d4ZU0308KFTC3yGcRad0GnEH0Oi3iEJ9HbriUbfVMbXNHOF+MktWiDVqzndGMKmuJSdfTBKvGFvejAWVO5E4mgLvoaMmbchc3BO7sLeraHnJN5hvMBaLcQI38N86mUfTR8AP6AJ9c2k514KaDLclm4z6J8dMz60nUeo5D3YD09G6BavFHxSvJ8MF0Lu5zOFzEePDRFm9mH8W0N/sFlIaYfD/GWU/w44mQucjaBk95YtqOGRIj58tGDWr8iUdHwaYKGqU24zGeRae9DhFXPzZshV1ZGsBQFRaoYkyLAwdJWIXTi+c37YaC8FRSEnnNmS79Dou1Kc3BvK4EYKAD2KxjtUebrV174gD0Q+9YuJ0GXOTspBvCFd5VT2Rw5zDNrA/J3F5fMCk4wOzAfMAcGBSsOAwIaBBSxgh2xyF+88V4vAffBmZXv8Txt4AQU4O/NX4MjxSodbE7ApNAMIvrtREwCAgfQ + responses: + 200: + body: + attributes: + created: 1493938557 + enabled: true + exp: 2208988799 + nbf: 1430344421 + recoveryLevel: Recoverable+Purgeable + updated: 1493938557 + cer: MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE= + id: https://kv-sdk-test.vault-int.azure-int.net/certificates/importCert01/f00e72f0ddee4dddadc27c0f605d84d7 + kid: https://kv-sdk-test.vault-int.azure-int.net/keys/importCert01/f00e72f0ddee4dddadc27c0f605d84d7 + policy: + attributes: + created: 1493938557 + enabled: true + updated: 1493938557 + id: https://kv-sdk-test.vault-int.azure-int.net/certificates/importCert01/policy + issuer: + name: Unknown + key_props: + exportable: true + key_size: 2048 + kty: RSA + reuse_key: false + lifetime_actions: + - action: + action_type: EmailContacts + trigger: + lifetime_percentage: 80 + secret_props: + contentType: application/x-pkcs12 + x509_props: + basic_constraints: + ca: false + ekus: [] + key_usage: [] + subject: CN=KeyVaultTest + validity_months: 297 + sid: https://kv-sdk-test.vault-int.azure-int.net/secrets/importCert01/f00e72f0ddee4dddadc27c0f605d84d7 + x5t: fLi3U52HunIVNXubkEnf8tP6Wbo + x-codegen-request-body-name: parameters + /certificates/{certificate-name}/pending: + get: + tags: + - Certificates + summary: Gets the creation operation of a certificate. + description: Gets the creation operation associated with a specified certificate. + This operation requires the certificates/get permission. + operationId: GetCertificateOperation + parameters: + - name: certificate-name + in: path + description: The name of the certificate. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: The certificate operation response. + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateOperation' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + GetCertificateOperation: + parameters: + api-version: "7.0" + certificate-name: selfSignedCert01 + responses: + 200: + body: + cancellation_requested: false + csr: MIIC4zCCAcsCAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqe8aINnShK+wQC8QU7fwsviQc9+yiOnqU3adXA6qNjn21HTdRBa7cyQIk1STxHIBLTT/GaEJwqsUi6UvZaPEHokOWsr1bP9M7xOPTicBcRyMrr6bOxsmGczYtu1z2TzzXDD7q7IEignE7/LowGEaIADCIU9iuWk7TiJ+1Q/VLh/B3xPsgVjY+n7zEQ53gBiDHSl7XfELfwmslOQ28TVNogUyXsxHcVxQQYJeI7HqqY448LeleK69Ld86lkBixLEm1pD7HSbEx3WI2lyUQAGR6hD3YFaiIWVpQeEyI7p1jmtQlnfZdEL4q9wdlEEcwd3h3PAZpEBhCixahF54fci3pwIDAQABoIGDMIGABgkqhkiG9w0BCQ4xczBxMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwNQYDVR0RBC4wLIIWb25lZHJpdmUubWljcm9zb2Z0LmNvbYISeGJveC5taWNyb3NvZnQuY29tMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBACiLeghirF+yCuYGVUPDB3wKQJn2iLY1za9ncxCehIVqOkFK09AphzoxF6Yid90AKCaa/dT/Ohm7oTyVQ+YcZnT00LUNFVG48AOE8YDiw9tjAG9OORsAz80xnv2qaLw2TCVIQ6NjrI83LqAm1GJ8rAnpdD/ZTuWM7TvSO5g/jm/Q0oSuKpMgj3YxpwgB9Ac6YEfVzOnm76OkUcpvR5MS4BoTfRv4thdSnU+uwqxM+HtdSVTbHQeC2U/hM1cyzDMpl1rZRklmiEOoPUeDasEIBVTJhAxR8xAeKJJD7Wzj4mJPw4UMvF8zQZzW8EKYvB1hkVYY+HQ85L+XcXd8lco7hU4= + id: https://testvault1021.vault.azure.net/certificates/selfSignedCert01/pending + issuer: + name: Self + request_id: 6faacd568ab049a2803861e8dd3ae21f + status: inProgress + status_details: Pending certificate created. Certificate request is + in progress. This may take some time based on the issuer provider. + Please check again later. + delete: + tags: + - Certificates + summary: Deletes the creation operation for a specific certificate. + description: Deletes the creation operation for a specified certificate that + is in the process of being created. The certificate is no longer created. + This operation requires the certificates/update permission. + operationId: DeleteCertificateOperation + parameters: + - name: certificate-name + in: path + description: The name of the certificate. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: A message containing the certificate operation response. + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateOperation' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + DeleteCertificateOperation: + parameters: + api-version: "7.0" + certificate-name: deletedRequestedCert01 + responses: + 200: + body: + cancellation_requested: false + csr: MIIC4zCCAcsCAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApf+kGcL+5uivj/ToYbQ15zcx3caEnpzXaX2eJgL0/Kwaz4u2/bNJ9+hoXnlOFFbCp4canVoNvgu8fw5NOu9U3gJNFQwjHeAqfsg8okZGkIk0riIpp4MMb/4GQb2y3B28AcTu2FANdzLoZzBqmQs51KBe1RONkdtqDYXIvnb5G+9+P7PCy5G//Ga0JAP6Y6P8+TrE9JLEj6Sny0ljLMpMyt4rIRAtNfKYSeiWVQmYX4jZfImIW3iq91zwMsRlrzTm80mNfHPCv7V/8NmYuh0MQgCr49lLbbKCgzDyo9h8sblVQvR5TAylpIk7bSQNf4tSdVNHnsF6CJWu6Pg31hyMpQIDAQABoIGDMIGABgkqhkiG9w0BCQ4xczBxMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwNQYDVR0RBC4wLIIWb25lZHJpdmUubWljcm9zb2Z0LmNvbYISeGJveC5taWNyb3NvZnQuY29tMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAHVjmYFs3FmecaJ1ExhK1WCFJaQJUTVbPJ1xJ93UJlLivhzI1yhQO9nMC2DKV+E+UCxceqjae6OG5LUhXfYAziS0HTc80+ZcUqrZRb5ZRt+8HU0TPbTDDqjj8wMZ4VlgQ3eXGAGesMfZV3AqWwa5itofvqm8KAmL4Yn/XMSHcKfRx3h9WnC6RXgZ8WNYK+r5o+gHlmuF7/AaNFh8UjIsjjOZQ0Yin/vA4yBEYTt1/OC7pScs3bdL9CIf4rC98qaMSf4B2W/vfrXUo0gGPYcep25jy7xnIltSY80Trn3Mty5YQ0IT+KPQcJKhbryGg6bIy4jJDwS7zkn51MR1q3kNoOA= + id: https://testvault1021.vault.azure.net/certificates/deletedRequestedCert01/pending + issuer: + name: issuer03 + request_id: b88791e33d9c4d609d3e3cc3d2d40d11 + status: inProgress + status_details: Pending certificate created. Certificate request is + in progress. This may take some time based on the issuer provider. + Please check again later. + patch: + tags: + - Certificates + summary: Updates a certificate operation. + description: Updates a certificate creation operation that is already in progress. + This operation requires the certificates/update permission. + operationId: UpdateCertificateOperation + parameters: + - name: certificate-name + in: path + description: The name of the certificate. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The certificate operation response. + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateOperationUpdateParameter' + required: true + responses: + 200: + description: A message containing the certificate operation response. + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateOperation' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + UpdateCertificateOperation: + parameters: + api-version: "7.0" + certificate-name: cancellationRequestedCert01 + certificateOperation: + cancellation_requested: true + responses: + 200: + body: + cancellation_requested: true + csr: MIIC4zCCAcsCAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxxM2zqnPtpH8aiHX5TdEoZLO0Y6fsjk9QcjKgnHomrwUc9vK20UYYEPKt9aGOT7HNx0do8OulPCnLPrKowci8UHu1qRW/qHvsOJQ/UrQoMCHxtXptVc7Avx8WQb045sCdgp/Cl4xO8LMZa70kE4dghZU9zmNZk8wqDIxyYdh1lqqfGe49EWOxcfszTeeKs8KCsQznjExbsudBHLLWoX4VFTGMe3VcIPcV6iFf70buHKznDMXFiRC0IYwkc/GyWIadB1CSEae8k/0evsPI5lYYZLaO/kLffEUtzysqxZNCQR+S0eVPTGTLHa+fndnPPs65XZDzSZi2fZL01oXUfCAQQIDAQABoIGDMIGABgkqhkiG9w0BCQ4xczBxMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwNQYDVR0RBC4wLIIWb25lZHJpdmUubWljcm9zb2Z0LmNvbYISeGJveC5taWNyb3NvZnQuY29tMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBAKto/ZF9+02fQ3sLuIsRuap/O/AZz3IhAubNfyCaWvVGVAQz/Aqpf5c/liyKhxqRG6LR9Zu50oxRK5222ezR+56vJikjdXRVShf2xYsMm1CbCM1JuzsnkTeoUHHE12xx1srH/9TH+DVZIk6NXxc4wVIagbpwxiS5gR3Nly5k0ZVv7R1B79J0GUqSwK6qjuooWrBsYMEx319hz8fB/Y4jnPE8p+Cnn3AGEqnebVngXncq/QnHxnrRVfvKFVySqRvlsvM8buILmBbIaywEUqwhNtZX2i9E7reEJ8aeZcf+lAeKF3YDvffaXGTc75aiZlBk30Lv/hn0vs9T0/FedUnIae4= + id: https://testvault1021.vault.azure.net/certificates/cancellationRequestedCert01/pending + issuer: + name: issuer02 + request_id: 3dd81d528cc84c5a837c607f1a50f2e1 + status: inProgress + status_details: Pending certificate created. Certificate request is + in progress. This may take some time based on the issuer provider. + Please check again later. + x-codegen-request-body-name: certificateOperation + /certificates/{certificate-name}/pending/merge: + post: + tags: + - Certificates + summary: Merges a certificate or a certificate chain with a key pair existing + on the server. + description: The MergeCertificate operation performs the merging of a certificate + or certificate chain with a key pair currently available in the service. This + operation requires the certificates/create permission. + operationId: MergeCertificate + parameters: + - name: certificate-name + in: path + description: The name of the certificate. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The parameters to merge certificate. + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateMergeParameters' + required: true + responses: + 201: + description: Merged certificate bundle to the vault. + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + MergeCertificate: + parameters: + api-version: "7.0" + certificate-name: testcert + parameters: + x5c: + - MIICxTCCAb....trimmed for brevitiy...EPAQj8= + responses: + 201: + body: + attributes: + created: 1435699919 + enabled: true + exp: 1530394215 + nbf: 1435699215 + updated: 1435699919 + cer: ……de34534…… + id: https://mykeyvault.vault.azure.net/certificates/mycert1/f366e1a9dd774288ad84a45a5f620352 + kid: https:// mykeyvault.vault.azure.net/keys/mycert1/f366e1a9dd774288ad84a45a5f620352 + pending: + id: https:// mykeyvault.vault.azure.net/certificates/mycert1/pending + policy: + attributes: + created: 1435699811 + enabled: true + updated: 1435699811 + id: https:// mykeyvault.vault.azure.net/certificates/mycert1/policy + issuer: + name: Unknown + key_props: + exportable: false + key_size: 2048 + kty: RSA + reuse_key: false + lifetime_actions: + - action: + action_type: EmailContacts + trigger: + lifetime_percentage: 80 + secret_props: + contentType: application/x-pkcs12 + x509_props: + ekus: + - 1.3.6.1.5.5.7.3.1 + - 1.3.6.1.5.5.7.3.2 + subject: CN=Mycert1 + validity_months: 12 + sid: ' mykeyvault.vault.azure.net/secrets/mycert1/f366e1a9dd774288ad84a45a5f620352' + x5t: n14q2wbvyXr71Pcb58NivuiwJKk + x-codegen-request-body-name: parameters + /certificates/{certificate-name}/policy: + get: + tags: + - Certificates + summary: Lists the policy for a certificate. + description: The GetCertificatePolicy operation returns the specified certificate + policy resources in the specified key vault. This operation requires the certificates/get + permission. + operationId: GetCertificatePolicy + parameters: + - name: certificate-name + in: path + description: The name of the certificate in a given key vault. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: The certificate policy. + content: + application/json: + schema: + $ref: '#/components/schemas/CertificatePolicy' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + GetCertificatePolicy: + parameters: + api-version: "7.0" + certificate-name: updateCert01 + responses: + 200: + body: + attributes: + created: 1482188947 + enabled: true + updated: 1482188947 + id: https://testvault1021.vault.azure.net/certificates/updateCert01/policy + issuer: + name: Unknown + key_props: + exportable: true + key_size: 2048 + kty: RSA + reuse_key: false + lifetime_actions: + - action: + action_type: EmailContacts + trigger: + lifetime_percentage: 80 + secret_props: + contentType: application/x-pkcs12 + x509_props: + basic_constraints: + ca: false + ekus: [] + key_usage: [] + subject: CN=KeyVaultTest + validity_months: 297 + patch: + tags: + - Certificates + summary: Updates the policy for a certificate. + description: Set specified members in the certificate policy. Leave others as + null. This operation requires the certificates/update permission. + operationId: UpdateCertificatePolicy + parameters: + - name: certificate-name + in: path + description: The name of the certificate in the given vault. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The policy for the certificate. + content: + application/json: + schema: + $ref: '#/components/schemas/CertificatePolicy' + required: true + responses: + 200: + description: The certificate policy + content: + application/json: + schema: + $ref: '#/components/schemas/CertificatePolicy' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + UpdateCertificatePolicy: + parameters: + api-version: "7.0" + certificate-name: updateCert01 + certificatePolicy: + attributes: + enabled: true + issuer: + name: Self + key_props: + exportable: true + key_size: 2048 + kty: RSA + reuse_key: false + lifetime_actions: + - action: + action_type: EmailContacts + trigger: + lifetime_percentage: 80 + secret_props: + contentType: application/x-pkcs12 + x509_props: + ekus: [] + key_usage: [] + subject: CN=KeyVaultTest + validity_months: 297 + responses: + 200: + body: + attributes: + created: 1482188947 + enabled: true + updated: 1482188948 + id: https://testvault1021.vault.azure.net/certificates/updateCert01/policy + issuer: + name: Self + key_props: + exportable: true + key_size: 2048 + kty: RSA + reuse_key: false + lifetime_actions: + - action: + action_type: EmailContacts + trigger: + lifetime_percentage: 80 + secret_props: + contentType: application/x-pkcs12 + x509_props: + basic_constraints: + ca: false + ekus: [] + key_usage: [] + subject: CN=KeyVaultTest + validity_months: 297 + x-codegen-request-body-name: certificatePolicy + /certificates/{certificate-name}/versions: + get: + tags: + - Certificates + summary: List the versions of a certificate. + description: The GetCertificateVersions operation returns the versions of a + certificate in the specified key vault. This operation requires the certificates/list + permission. + operationId: GetCertificateVersions + parameters: + - name: certificate-name + in: path + description: The name of the certificate. + required: true + schema: + type: string + - 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. + schema: + maximum: 25 + minimum: 1 + type: integer + format: int32 + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: A response message containing a list of certificates in the + key vault along with a link to the next page of keys. + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateListResult' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + GetCertificateVersions: + parameters: + api-version: "7.0" + certificate-name: listVersionsCert01 + responses: + 200: + body: + value: + - attributes: + created: 1482189534 + enabled: true + exp: 2208988799 + nbf: 1430344421 + updated: 1482189534 + id: https://karlaugsoftdeletesdk.vault-int.azure-int.net/certificates/listVersionsCert01/002ade539442463aba45c0efb42e3e84 + x5t: fLi3U52HunIVNXubkEnf8tP6Wbo + - attributes: + created: 1482189532 + enabled: true + exp: 2208988799 + nbf: 1430344421 + updated: 1482189532 + id: https://karlaugsoftdeletesdk.vault-int.azure-int.net/certificates/listVersionsCert01/7fcb3e9eb8bf43f3a6ff4b9c3740801d + x5t: fLi3U52HunIVNXubkEnf8tP6Wbo + x-ms-pageable: + nextLinkName: nextLink + /certificates/{certificate-name}/{certificate-version}: + get: + tags: + - Certificates + summary: Gets information about a certificate. + description: Gets information about a specific certificate. This operation requires + the certificates/get permission. + operationId: GetCertificate + parameters: + - name: certificate-name + in: path + description: The name of the certificate in the given vault. + required: true + schema: + type: string + - name: certificate-version + in: path + description: The version of the certificate. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: The retrieved certificate. + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + GetCertificate: + parameters: + api-version: "7.0" + certificate-name: selfSignedCert01 + certificate-version: pending + responses: + 200: + body: + cancellation_requested: false + csr: MIIC4zCCAcsCAQAwGjEYMBYGA1UEAwwPKi5taWNyb3NvZnQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqe8aINnShK+wQC8QU7fwsviQc9+yiOnqU3adXA6qNjn21HTdRBa7cyQIk1STxHIBLTT/GaEJwqsUi6UvZaPEHokOWsr1bP9M7xOPTicBcRyMrr6bOxsmGczYtu1z2TzzXDD7q7IEignE7/LowGEaIADCIU9iuWk7TiJ+1Q/VLh/B3xPsgVjY+n7zEQ53gBiDHSl7XfELfwmslOQ28TVNogUyXsxHcVxQQYJeI7HqqY448LeleK69Ld86lkBixLEm1pD7HSbEx3WI2lyUQAGR6hD3YFaiIWVpQeEyI7p1jmtQlnfZdEL4q9wdlEEcwd3h3PAZpEBhCixahF54fci3pwIDAQABoIGDMIGABgkqhkiG9w0BCQ4xczBxMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwNQYDVR0RBC4wLIIWb25lZHJpdmUubWljcm9zb2Z0LmNvbYISeGJveC5taWNyb3NvZnQuY29tMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQELBQADggEBACiLeghirF+yCuYGVUPDB3wKQJn2iLY1za9ncxCehIVqOkFK09AphzoxF6Yid90AKCaa/dT/Ohm7oTyVQ+YcZnT00LUNFVG48AOE8YDiw9tjAG9OORsAz80xnv2qaLw2TCVIQ6NjrI83LqAm1GJ8rAnpdD/ZTuWM7TvSO5g/jm/Q0oSuKpMgj3YxpwgB9Ac6YEfVzOnm76OkUcpvR5MS4BoTfRv4thdSnU+uwqxM+HtdSVTbHQeC2U/hM1cyzDMpl1rZRklmiEOoPUeDasEIBVTJhAxR8xAeKJJD7Wzj4mJPw4UMvF8zQZzW8EKYvB1hkVYY+HQ85L+XcXd8lco7hU4= + id: https://testvault1021.vault.azure.net/certificates/selfSignedCert01/pending + issuer: + name: Self + request_id: 6faacd568ab049a2803861e8dd3ae21f + status: completed + target: https://testvault1021.vault.azure.net/certificates/selfSignedCert01 + patch: + tags: + - Certificates + summary: Updates the specified attributes associated with the given certificate. + description: The UpdateCertificate operation applies the specified update on + the given certificate; the only elements updated are the certificate's attributes. + This operation requires the certificates/update permission. + operationId: UpdateCertificate + parameters: + - name: certificate-name + in: path + description: The name of the certificate in the given key vault. + required: true + schema: + type: string + - name: certificate-version + in: path + description: The version of the certificate. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The parameters for certificate update. + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateUpdateParameters' + required: true + responses: + 200: + description: The updated certificate. + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + UpdateCertificate: + parameters: + api-version: "7.0" + certificate-name: updateCert01 + certificate-version: c3d31d7b36c942ad83ef36fc0785a4fc + parameters: + attributes: + enabled: true + exp: 2208988799 + nbf: 1430344421 + tags: + department: KeyVaultTest + responses: + 200: + body: + attributes: + created: 1482188981 + enabled: true + exp: 2208988799 + nbf: 1430344421 + updated: 1482188981 + cer: MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE= + id: https://testvault1021.vault.azure.net/certificates/updateCert01/c3d31d7b36c942ad83ef36fc0785a4fc + kid: https://testvault1021.vault.azure.net/keys/updateCert01/c3d31d7b36c942ad83ef36fc0785a4fc + sid: https://testvault1021.vault.azure.net/secrets/updateCert01/c3d31d7b36c942ad83ef36fc0785a4fc + tags: + department: KeyVaultTest + x5t: fLi3U52HunIVNXubkEnf8tP6Wbo + x-codegen-request-body-name: parameters + /deletedcertificates: + get: + tags: + - DeletedCertificates + summary: Lists the deleted certificates in the specified vault currently available + for recovery. + description: The GetDeletedCertificates operation retrieves the certificates + in the current vault which are in a deleted state and ready for recovery or + purging. This operation includes deletion-specific information. This operation + requires the certificates/get/list permission. This operation can only be + enabled on soft-delete enabled vaults. + operationId: GetDeletedCertificates + parameters: + - 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. + schema: + maximum: 25 + minimum: 1 + type: integer + format: int32 + - name: includePending + in: query + description: Specifies whether to include certificates which are not completely + provisioned. + schema: + type: boolean + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: A response message containing a list of deleted certificates + in the vault along with a link to the next page of deleted certificates + content: + application/json: + schema: + $ref: '#/components/schemas/DeletedCertificateListResult' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + GetDeletedCertificates: + parameters: + api-version: "7.0" + maxresults: "1" + responses: + 200: + body: + nextLink: https://kv-sdk-test.vault-int.azure-int.net:443/deletedcertificates?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMTIhTURBd01ETTVJV05sY25ScFptbGpZWFJsTDB4SlUxUkVSVXhGVkVWRVEwVlNWRlJGVTFRd0wxQlBURWxEV1NFd01EQXdNamdoT1RrNU9TMHhNaTB6TVZReU16bzFPVG8xT1M0NU9UazVPVGs1V2lFLSIsIlRhcmdldExvY2F0aW9uIjowfQ&maxresults=1 + value: + - attributes: + created: 1493937658 + enabled: true + exp: 2208988799 + nbf: 1430344421 + recoveryLevel: Recoverable+Purgeable + updated: 1493937658 + deletedDate: 1493937659 + id: https://kv-sdk-test.vault-int.azure-int.net/certificates/listdeletedcerttest0 + recoveryId: https://kv-sdk-test.vault-int.azure-int.net/deletedcertificates/listdeletedcerttest0 + scheduledPurgeDate: 1501713659 + x5t: fLi3U52HunIVNXubkEnf8tP6Wbo + x-ms-pageable: + nextLinkName: nextLink + /deletedcertificates/{certificate-name}: + get: + tags: + - DeletedCertificates + summary: Retrieves information about the specified deleted certificate. + description: The GetDeletedCertificate operation retrieves the deleted certificate + information plus its attributes, such as retention interval, scheduled permanent + deletion and the current deletion recovery level. This operation requires + the certificates/get permission. + operationId: GetDeletedCertificate + parameters: + - name: certificate-name + in: path + description: The name of the certificate + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: A Certificate bundle of the certificate and its attributes + content: + application/json: + schema: + $ref: '#/components/schemas/DeletedCertificateBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + GetDeletedCertificate: + parameters: + api-version: "7.0" + certificate-name: getDeletedCert + responses: + 200: + body: + attributes: + created: 1493938289 + enabled: true + exp: 2208988799 + nbf: 1430344421 + recoveryLevel: Recoverable+Purgeable + updated: 1493938291 + cer: MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE= + deletedDate: 1493938292 + id: https://kv-sdk-test.vault-int.azure-int.net/certificates/getDeletedCert/f60f2a4f8ae442cfb41ca2090bd4b769 + kid: https://kv-sdk-test.vault-int.azure-int.net/keys/getDeletedCert/f60f2a4f8ae442cfb41ca2090bd4b769 + policy: + attributes: + created: 1493938289 + enabled: true + updated: 1493938291 + id: https://kv-sdk-test.vault-int.azure-int.net/certificates/getDeletedCert/policy + issuer: + name: Unknown + key_props: + exportable: true + key_size: 2048 + kty: RSA + reuse_key: false + lifetime_actions: + - action: + action_type: EmailContacts + trigger: + lifetime_percentage: 80 + secret_props: + contentType: application/x-pkcs12 + x509_props: + basic_constraints: + ca: false + ekus: [] + key_usage: [] + subject: CN=KeyVaultTest + validity_months: 297 + recoveryId: https://kv-sdk-test.vault-int.azure-int.net/deletedcertificates/getDeletedCert + scheduledPurgeDate: 1501714292 + sid: https://kv-sdk-test.vault-int.azure-int.net/secrets/getDeletedCert/f60f2a4f8ae442cfb41ca2090bd4b769 + x5t: fLi3U52HunIVNXubkEnf8tP6Wbo + headers: {} + delete: + tags: + - DeletedCertificates + summary: Permanently deletes the specified deleted certificate. + description: The PurgeDeletedCertificate operation performs an irreversible + deletion of the specified certificate, without possibility for recovery. The + operation is not available if the recovery level does not specify 'Purgeable'. + This operation requires the certificate/purge permission. + operationId: PurgeDeletedCertificate + parameters: + - name: certificate-name + in: path + description: The name of the certificate + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 204: + description: No content signaling that the certificate was purged forever. + content: {} + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + PurgeDeletedCertificate: + parameters: + api-version: "7.0" + certificate-name: deletedcertificates + responses: + 204: + body: "" + /deletedcertificates/{certificate-name}/recover: + post: + tags: + - DeletedCertificates + summary: Recovers the deleted certificate back to its current version under + /certificates. + description: The RecoverDeletedCertificate operation performs the reversal of + the Delete operation. The operation is applicable in vaults enabled for soft-delete, + and must be issued during the retention interval (available in the deleted + certificate's attributes). This operation requires the certificates/recover + permission. + operationId: RecoverDeletedCertificate + parameters: + - name: certificate-name + in: path + description: The name of the deleted certificate + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: A Certificate bundle of the original certificate and its attributes + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + RecoverDeletedCertificate: + parameters: + api-version: "7.0" + certificate-name: CertCreateDeleteRecoverPurgeTest + responses: + 200: + body: + attributes: + created: 1493938486 + enabled: true + exp: 2208988799 + nbf: 1430344421 + recoveryLevel: Recoverable+Purgeable + updated: 1493938486 + cer: MIICODCCAeagAwIBAgIQqHmpBAv+CY9IJFoUhlbziTAJBgUrDgMCHQUAMBYxFDASBgNVBAMTC1Jvb3QgQWdlbmN5MB4XDTE1MDQyOTIxNTM0MVoXDTM5MTIzMTIzNTk1OVowFzEVMBMGA1UEAxMMS2V5VmF1bHRUZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5bVAT73zr4+N4WVv2+SvTunAw08ksS4BrJW/nNliz3S9XuzMBMXvmYzU5HJ8TtEgluBiZZYd5qsMJD+OXHSNbsLdmMhni0jYX09h3XlC2VJw2sGKeYF+xEaavXm337aZZaZyjrFBrrUl51UePaN+kVFXNlBb3N3TYpqa7KokXenJQuR+i9Gv9a77c0UsSsDSryxppYhKK7HvTZCpKrhVtulF5iPMswWe9np3uggfMamyIsK/0L7X9w9B2qN7993RR0A00nOk4H6CnkuwO77dSsD0KJsk6FyAoZBzRXDZh9+d9R76zCL506NcQy/jl0lCiQYwsUX73PG5pxOh02OwKwIDAQABo0swSTBHBgNVHQEEQDA+gBAS5AktBh0dTwCNYSHcFmRjoRgwFjEUMBIGA1UEAxMLUm9vdCBBZ2VuY3mCEAY3bACqAGSKEc+41KpcNfQwCQYFKw4DAh0FAANBAGqIjo2geVagzuzaZOe1ClGKhZeiCKfWAxklaGN+qlGUbVS4IN4V1lot3VKnzabasmkEHeNxPwLn1qvSD0cX9CE= + id: https://kv-sdk-test.vault-int.azure-int.net/certificates/CertCreateDeleteRecoverPurgeTest/9ff2572a2c3145679057da8b7f6a4b1d + kid: https://kv-sdk-test.vault-int.azure-int.net/keys/CertCreateDeleteRecoverPurgeTest/9ff2572a2c3145679057da8b7f6a4b1d + policy: + attributes: + created: 1493938486 + enabled: true + updated: 1493938486 + id: https://kv-sdk-test.vault-int.azure-int.net/certificates/CertCreateDeleteRecoverPurgeTest/policy + issuer: + name: Unknown + key_props: + exportable: true + key_size: 2048 + kty: RSA + reuse_key: false + lifetime_actions: + - action: + action_type: EmailContacts + trigger: + lifetime_percentage: 80 + secret_props: + contentType: application/x-pkcs12 + x509_props: + basic_constraints: + ca: false + ekus: [] + key_usage: [] + subject: CN=KeyVaultTest + validity_months: 297 + sid: https://kv-sdk-test.vault-int.azure-int.net/secrets/CertCreateDeleteRecoverPurgeTest/9ff2572a2c3145679057da8b7f6a4b1d + x5t: fLi3U52HunIVNXubkEnf8tP6Wbo + /deletedkeys: + get: + tags: + - DeletedKeys + summary: Lists the deleted keys in the specified vault. + description: Retrieves a list of the keys in the Key Vault as JSON Web Key structures + that contain the public part of a deleted key. This operation includes deletion-specific + information. The Get Deleted Keys operation is applicable for vaults enabled + for soft-delete. While the operation can be invoked on any vault, it will + return an error if invoked on a non soft-delete enabled vault. This operation + requires the keys/list permission. + operationId: GetDeletedKeys + parameters: + - 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. + schema: + maximum: 25 + minimum: 1 + type: integer + format: int32 + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: A response message containing a list of deleted keys in the + vault along with a link to the next page of deleted keys. + content: + application/json: + schema: + $ref: '#/components/schemas/DeletedKeyListResult' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + GetDeletedKeys: + parameters: + $skiptoken: eyJOZXh0TWFya2VyIjoiMiE5MiFNREF3TURJeklXdGxlUzlNU1ZOVVJFVk1SVlJGUkV0RldWUkZVMVF3SVRBd01EQXlPQ0V5TURFM0xUQTFMVEEwVkRJeU9qRTJPakF5TGpnM09URXpOemxhSVEtLSIsIlRhcmdldExvY2F0aW9uIjowfQ + api-version: "7.0" + maxresults: "1" + responses: + 200: + body: + nextLink: https://kv-sdk-test.vault-int.azure-int.net:443/deletedkeys?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzYhTURBd01EVTJJV3RsZVM5TVNWTlVSRVZNUlZSRlJFdEZXVlJGVTFRd0x6RkRRa0ZGTkVaQk5qQTBNelJGTmtZNE9FUXdORE5GTkRFM09FUkNPVFE1SVRBd01EQXlPQ0V5TURFM0xUQTFMVEEwVkRJeU9qUTNPakU1TGpVeU1UZ3dPVEZhSVEtLSIsIlRhcmdldExvY2F0aW9uIjowfQ&maxresults=1 + value: + - attributes: + created: 1493938031 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1493938031 + deletedDate: 1493938031 + kid: https://kv-sdk-test.vault-int.azure-int.net/keys/listdeletedkeytest0 + recoveryId: https://kv-sdk-test.vault-int.azure-int.net/deletedkeys/listdeletedkeytest0 + scheduledPurgeDate: 1501714031 + x-ms-pageable: + nextLinkName: nextLink + /deletedkeys/{key-name}: + get: + tags: + - DeletedKeys + summary: Gets the public part of a deleted key. + description: 'The Get Deleted Key operation is applicable for soft-delete enabled + vaults. While the operation can be invoked on any vault, it will return an + error if invoked on a non soft-delete enabled vault. This operation requires + the keys/get permission. ' + operationId: GetDeletedKey + parameters: + - name: key-name + in: path + description: The name of the key. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: A DeletedKeyBundle consisting of a WebKey plus its Attributes + and deletion information. + content: + application/json: + schema: + $ref: '#/components/schemas/DeletedKeyBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + GetDeletedKey: + parameters: + api-version: "7.0" + key-name: CreateSoftKeyTest + responses: + 200: + body: + attributes: + created: 1493942451 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1493942451 + deletedDate: 1493942452 + key: + e: AQAB + key_ops: + - encrypt + - decrypt + - sign + - verify + - wrapKey + - unwrapKey + kid: https://kv-sdk-test.vault-int.azure-int.net/keys/CreateSoftKeyTest/78deebed173b48e48f55abf87ed4cf71 + kty: RSA + n: 2HJAE5fU3Cw2Rt9hEuq-F6XjINKGa-zskfISVqopqUy60GOs2eyhxbWbJBeUXNor_gf-tXtNeuqeBgitLeVa640UDvnEjYTKWjCniTxZRaU7ewY8BfTSk-7KxoDdLsPSpX_MX4rwlAx-_1UGk5t4sQgTbm9T6Fm2oqFd37dsz5-Gj27UP2GTAShfJPFD7MqU_zIgOI0pfqsbNL5xTQVM29K6rX4jSPtylZV3uWJtkoQIQnrIHhk1d0SC0KwlBV3V7R_LVYjiXLyIXsFzSNYgQ68ZjAwt8iL7I8Osa-ehQLM13DVvLASaf7Jnu3sC3CWl3Gyirgded6cfMmswJzY87w + recoveryId: https://kv-sdk-test.vault-int.azure-int.net/deletedkeys/CreateSoftKeyTest + scheduledPurgeDate: 1501718452 + tags: + purpose: unit test + 'test name ': CreateGetDeleteKeyTest + delete: + tags: + - DeletedKeys + summary: Permanently deletes the specified key. + description: The Purge Deleted Key operation is applicable for soft-delete enabled + vaults. While the operation can be invoked on any vault, it will return an + error if invoked on a non soft-delete enabled vault. This operation requires + the keys/purge permission. + operationId: PurgeDeletedKey + parameters: + - name: key-name + in: path + description: The name of the key + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 204: + description: No content, signaling that the key was permanently purged. + content: {} + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + PurgeDeletedKey: + parameters: + api-version: "7.0" + key-name: testdeletedkey + responses: + 204: + body: "" + /deletedkeys/{key-name}/recover: + post: + tags: + - DeletedKeys + summary: Recovers the deleted key to its latest version. + description: The Recover Deleted Key operation is applicable for deleted keys + in soft-delete enabled vaults. It recovers the deleted key back to its latest + version under /keys. An attempt to recover an non-deleted key will return + an error. Consider this the inverse of the delete operation on soft-delete + enabled vaults. This operation requires the keys/recover permission. + operationId: RecoverDeletedKey + parameters: + - name: key-name + in: path + description: The name of the deleted key. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: A Key bundle of the original key and its attributes + content: + application/json: + schema: + $ref: '#/components/schemas/KeyBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + RecoverDeletedKey: + parameters: + api-version: "7.0" + key-name: CreateDeleteRecoverPurgeTest + responses: + 200: + body: + attributes: + created: 1493938342 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1493938342 + key: + e: AQAB + key_ops: + - encrypt + - decrypt + - sign + - verify + - wrapKey + - unwrapKey + kid: https://kv-sdk-test.vault-int.azure-int.net/keys/CreateDeleteRecoverPurgeTest/6fc2be54c6be4a7ea7bbb8a2a99a1996 + kty: RSA + n: v-SWMCmPNKoK_rB_pNXUl6Iwh9Kqd3XzQlh6SXi_slBishqP7pyKEFjNbUvMSlyvPt21rJupLbJr-yhsK2Rq2V6O0doGuCsoadgNGih1aVAuUJAJls1-b-G1IJjD18ArM4RitnCvJmQFqyK2RVHa3EpEfaQW4gcRrsRAhiJDjc1L1S3skdt-E_rZfL7DIh1ZtqFyQAqIWSAG0BXDdbgfEx1kJKqH-HRokDKeMCIaJtKZof6e-DJr3e9Iy8aAR7V-BsZ7vY7JMjyeEukMzEji4MEsIyOESL67DgFllDEi4OM_3WKyxr6uXxzHDzmppWsk2ykLsYA_ALLnR3ZNZCuL9Q + tags: + purpose: unit test + 'test name ': CreateDeleteRecoverPurgeTest + /deletedsecrets: + get: + tags: + - DeletedSecrets + 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. + operationId: GetDeletedSecrets + parameters: + - 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. + schema: + maximum: 25 + minimum: 1 + type: integer + format: int32 + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + 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. + content: + application/json: + schema: + $ref: '#/components/schemas/DeletedSecretListResult' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + GetDeletedSecrets: + parameters: + $skiptoken: eyJOZXh0TWFya2VyIjoiMiExMDAhTURBd01ESTVJWE5sWTNKbGRDOU1TVk5VUkVWTVJWUkZSRk5GUTFKRlZGUkZVMVF3SVRBd01EQXlPQ0V5TURFM0xUQTFMVEEwVkRFNU9qSTFPakU0TGpJNE5qUXdORFZhSVEtLSIsIlRhcmdldExvY2F0aW9uIjowfQ + api-version: "7.0" + maxresults: "1" + responses: + 200: + body: + nextLink: https://kv-sdk-test.vault-int.azure-int.net:443/deletedsecrets?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNDQhTURBd01EWXlJWE5sWTNKbGRDOU1TVk5VUkVWTVJWUkZSRk5GUTFKRlZGUkZVMVF3THpZMU16ZERSRVJGTlRJNU5qUkRSa1pDTVRkQ1JVWXhORGszUXpSQ1JEZEVJVEF3TURBeU9DRXlNREUzTFRBMUxUQTBWREl5T2pRME9qUXdMamsxTnpZeE1UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=1 + value: + - attributes: + created: 1493937855 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1493937855 + contentType: plainText + deletedDate: 1493937855 + id: https://kv-sdk-test.vault-int.azure-int.net/secrets/listdeletedsecrettest0 + recoveryId: https://kv-sdk-test.vault-int.azure-int.net/deletedsecrets/listdeletedsecrettest0 + scheduledPurgeDate: 1501713855 + x-ms-pageable: + nextLinkName: nextLink + /deletedsecrets/{secret-name}: + get: + tags: + - DeletedSecrets + 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: GetDeletedSecret + parameters: + - name: secret-name + in: path + description: The name of the secret. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: A secret bundle of the secret and its attributes. + content: + application/json: + schema: + $ref: '#/components/schemas/DeletedSecretBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + GetDeletedSecret: + parameters: + api-version: "7.0" + secret-name: GetDeletedSecretTest + responses: + 200: + body: + attributes: + created: 1493938433 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1493938433 + deletedDate: 1493938433 + id: https://kv-sdk-test.vault-int.azure-int.net/secrets/GetDeletedSecretTest/b595353d9c39413d80626575b3b5d865 + recoveryId: https://kv-sdk-test.vault-int.azure-int.net/deletedsecrets/GetDeletedSecretTest + scheduledPurgeDate: 1501714433 + delete: + tags: + - DeletedSecrets + 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. + operationId: PurgeDeletedSecret + parameters: + - name: secret-name + in: path + description: The name of the secret. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 204: + description: No content signaling that the secret was purged forever. + content: {} + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + PurgeDeletedSecret: + parameters: + api-version: "7.0" + secret-name: testsecret + responses: + 204: + body: "" + /deletedsecrets/{secret-name}/recover: + post: + tags: + - DeletedSecrets + 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: RecoverDeletedSecret + parameters: + - name: secret-name + in: path + description: The name of the deleted secret. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: A Secret bundle of the original secret and its attributes. + content: + application/json: + schema: + $ref: '#/components/schemas/SecretBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + RecoverDeletedSecret: + parameters: + api-version: "7.0" + secret-name: SecretCreateDeleteRecoverPurgeTest + responses: + 200: + body: + attributes: + created: 1493937960 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1493937960 + id: https://kv-sdk-test.vault-int.azure-int.net/secrets/SecretCreateDeleteRecoverPurgeTest/16f5f7feb7004280b7f3b8ac50cd01f9 + /deletedstorage: + get: + tags: + - DeletedStorage + summary: Lists deleted storage accounts for the specified vault. + description: The Get Deleted Storage Accounts operation returns the storage + accounts that have been deleted for a vault enabled for soft-delete. This + operation requires the storage/list permission. + operationId: GetDeletedStorageAccounts + parameters: + - 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. + schema: + maximum: 25 + minimum: 1 + type: integer + format: int32 + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: A response message containing a list of deleted storage accounts + in the vault, along with a link to the next page of deleted storage accounts. + content: + application/json: + schema: + $ref: '#/components/schemas/DeletedStorageListResult' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + List Deleted Storage Accounts: + parameters: + api-version: "7.0" + vaultBaseUrl: https://storage-sdk-test.vault-int.azure-int.net/ + responses: + 200: + body: + nextLink: https://{BaseUri}/storage?api-version=7.0&%24skiptoken= + value: + - attributes: + created: 1490738386 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1490738386 + deletedDate: 1490760000 + id: https://storage-sdk-test.vault-int.azure-int.net/storage/listDeletedStorage01 + recoveryId: https://storage-sdk-test.vault-int.azure-int.net/deletedstorage/listDeletedStorage01 + resourceId: /subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc1 + scheduledPurgeDate: 1490790000 + tags: + tag1: val1 + tag2: val2 + - attributes: + created: 1490738386 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1490738386 + deletedDate: 1490760000 + id: https://storage-sdk-test.vault-int.azure-int.net/storage/listDeletedStorage02 + recoveryId: https://storage-sdk-test.vault-int.azure-int.net/deletedstorage/listDeletedStorage02 + resourceId: /subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc2 + scheduledPurgeDate: 1490790000 + tags: + tag3: val3 + tag4: val4 + headers: {} + x-ms-pageable: + nextLinkName: nextLink + /deletedstorage/{storage-account-name}: + get: + tags: + - DeletedStorage + summary: Gets the specified deleted storage account. + description: The Get Deleted Storage Account operation returns the specified + deleted storage account along with its attributes. This operation requires + the storage/get permission. + operationId: GetDeletedStorageAccount + parameters: + - name: storage-account-name + in: path + description: The name of the storage account. + required: true + schema: + pattern: ^[0-9a-zA-Z]+$ + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: The deleted storage account and information on when it will + be purged, and how to recover the deleted storage account. + content: + application/json: + schema: + $ref: '#/components/schemas/DeletedStorageBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Get Deleted Storage: + parameters: + api-version: "7.0" + storage-account-name: deleteStrg01 + vaultBaseUrl: https://storage-sdk-test.vault-int.azure-int.net/ + responses: + 200: + body: + activeKeyName: key1 + attributes: + created: 1490738386 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1490738386 + autoRegenerateKey: true + deletedDate: 1490760000 + id: https://storage-sdk-test.vault-int.azure-int.net/storage/deleteStrg01 + recoveryId: https://storage-sdk-test.vault-int.azure-int.net/deletedstorage/deleteStrg01 + regenerationPeriod: P30D + resourceId: /subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc + scheduledPurgeDate: 1490790000 + tags: + tag1: val1 + tag2: val2 + headers: {} + delete: + tags: + - DeletedStorage + summary: Permanently deletes the specified storage account. + description: The purge deleted storage account operation removes the secret + permanently, without the possibility of recovery. This operation can only + be performed on a soft-delete enabled vault. This operation requires the storage/purge + permission. + operationId: PurgeDeletedStorageAccount + parameters: + - name: storage-account-name + in: path + description: The name of the storage account. + required: true + schema: + pattern: ^[0-9a-zA-Z]+$ + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 204: + description: No content signaling that the storage account was purged forever. + content: {} + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Purge Deleted Storage Account: + parameters: + api-version: "7.0" + storage-account-name: purgeStrg01 + vaultBaseUrl: https://storage-sdk-test.vault-int.azure-int.net/ + responses: + 204: + body: {} + headers: {} + /deletedstorage/{storage-account-name}/recover: + post: + tags: + - DeletedStorage + summary: Recovers the deleted storage account. + description: Recovers the deleted storage account in the specified vault. This + operation can only be performed on a soft-delete enabled vault. This operation + requires the storage/recover permission. + operationId: RecoverDeletedStorageAccount + parameters: + - name: storage-account-name + in: path + description: The name of the storage account. + required: true + schema: + pattern: ^[0-9a-zA-Z]+$ + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: A storage bundle of the original storage account and its attributes. + content: + application/json: + schema: + $ref: '#/components/schemas/StorageBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Recover Deleted Storage Account: + parameters: + api-version: "7.0" + storage-account-name: recoverStrg01 + vaultBaseUrl: https://storage-sdk-test.vault-int.azure-int.net/ + responses: + 200: + body: + activeKeyName: key1 + attributes: + created: 1490738386 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1490738386 + autoRegenerateKey: true + id: https://storage-sdk-test.vault-int.azure-int.net/storage/recoverStrg01 + regenerationPeriod: P30D + resourceId: /subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc + tags: + tag1: val1 + tag2: val2 + headers: {} + /deletedstorage/{storage-account-name}/sas: + get: + tags: + - DeletedStorage + summary: Lists deleted SAS definitions for the specified vault and storage account. + description: The Get Deleted Sas Definitions operation returns the SAS definitions + that have been deleted for a vault enabled for soft-delete. This operation + requires the storage/listsas permission. + operationId: GetDeletedSasDefinitions + parameters: + - name: storage-account-name + in: path + description: The name of the storage account. + required: true + schema: + pattern: ^[0-9a-zA-Z]+$ + type: string + - 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. + schema: + maximum: 25 + minimum: 1 + type: integer + format: int32 + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: A response message containing a list of deleted SAS definitions + for the storage account, along with a link to the next page of deleted + SAS definitions. + content: + application/json: + schema: + $ref: '#/components/schemas/DeletedSasDefinitionListResult' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + List Deleted Storage Sas Definitions: + parameters: + api-version: "7.0" + storage-account-name: listsas01 + vaultBaseUrl: https://storage-sdk-test.vault-int.azure-int.net/ + responses: + 200: + body: + nextLink: https://{BaseUri}/deletedstorage/listsas01/sas?api-version=7.0&%24skiptoken= + value: + - attributes: + created: 1490738438 + enabled: true + recoveryLevel: Recoverable + updated: 1490738438 + deletedDate: 1490760000 + id: https://storage-sdk-test.vault-int.azure-int.net/storage/listsas01/sas/listDeletedSasDef01 + recoveryId: https://storage-sdk-test.vault-int.azure-int.net/deletedstorage/listsas01/sas/listDeletedSasDef01 + scheduledPurgeDate: 1490790000 + sid: https://storage-sdk-test.vault-int.azure-int.net/secrets/listsas01-listDeletedSasDef01 + - attributes: + created: 1490738438 + enabled: true + recoveryLevel: Recoverable + updated: 1490738438 + deletedDate: 1490760000 + id: https://storage-sdk-test.vault-int.azure-int.net/storage/listsas01/sas/listDeletedSasDef02 + recoveryId: https://storage-sdk-test.vault-int.azure-int.net/deletedstorage/listsas01/sas/listDeletedSasDef02 + scheduledPurgeDate: 1490790000 + sid: https://storage-sdk-test.vault-int.azure-int.net/secrets/listsas01-listDeletedSasDef02 + headers: {} + x-ms-pageable: + nextLinkName: nextLink + /deletedstorage/{storage-account-name}/sas/{sas-definition-name}: + get: + tags: + - DeletedStorage + summary: Gets the specified deleted sas definition. + description: The Get Deleted SAS Definition operation returns the specified + deleted SAS definition along with its attributes. This operation requires + the storage/getsas permission. + operationId: GetDeletedSasDefinition + parameters: + - name: storage-account-name + in: path + description: The name of the storage account. + required: true + schema: + pattern: ^[0-9a-zA-Z]+$ + type: string + - name: sas-definition-name + in: path + description: The name of the SAS definition. + required: true + schema: + pattern: ^[0-9a-zA-Z]+$ + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: The deleted SAS definition and information on when the it will + be purged, and how to recover the deleted SAS definition. + content: + application/json: + schema: + $ref: '#/components/schemas/DeletedSasDefinitionBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Get Deleted Storage Sas Definition: + parameters: + api-version: "7.0" + sas-definition-name: deleteStrgSasDef01 + storage-account-name: deletesas01 + vaultBaseUrl: https://storage-sdk-test.vault-int.azure-int.net/ + responses: + 200: + body: + attributes: + created: 1490738438 + enabled: true + recoveryLevel: Recoverable + updated: 1490738438 + deletedDate: 1490760000 + id: https://storage-sdk-test.vault-int.azure-int.net/storage/deletesas01/sas/deleteStrgSasDef01 + recoveryId: https://storage-sdk-test.vault-int.azure-int.net/deletedstorage/deletesas01/sas/deleteStrgSasDef01 + sasType: service + scheduledPurgeDate: 1490790000 + sid: https://storage-sdk-test.vault-int.azure-int.net/secrets/deletesas01-deleteStrgSasDef01 + templateUri: se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=XXFNfuMCHYrBx0bhemJ7PWn0xGfImMXT6LfbXWvtRUk%3D + validityPeriod: P15D + headers: {} + /deletedstorage/{storage-account-name}/sas/{sas-definition-name}/recover: + post: + tags: + - DeletedStorage + summary: Recovers the deleted SAS definition. + description: Recovers the deleted SAS definition for the specified storage account. + This operation can only be performed on a soft-delete enabled vault. This + operation requires the storage/recover permission. + operationId: RecoverDeletedSasDefinition + parameters: + - name: storage-account-name + in: path + description: The name of the storage account. + required: true + schema: + pattern: ^[0-9a-zA-Z]+$ + type: string + - name: sas-definition-name + in: path + description: The name of the SAS definition. + required: true + schema: + pattern: ^[0-9a-zA-Z]+$ + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: A SAS definition bundle of the original SAS definition and + its attributes. + content: + application/json: + schema: + $ref: '#/components/schemas/SasDefinitionBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Recover Deleted Storage Sas Definition: + parameters: + api-version: "7.0" + sas-definition-name: recoverStrgSasDef01 + storage-account-name: recoversas01 + vaultBaseUrl: https://storage-sdk-test.vault-int.azure-int.net/ + responses: + 200: + body: + attributes: + created: 1490738438 + enabled: true + recoveryLevel: Recoverable + updated: 1490738438 + id: https://storage-sdk-test.vault-int.azure-int.net/storage/recoversas01/sas/recoverStrgSasDef01 + sasType: service + sid: https://storage-sdk-test.vault-int.azure-int.net/secrets/recoversas01-recoverStrgSasDef01 + templateUri: se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=XXFNfuMCHYrBx0bhemJ7PWn0xGfImMXT6LfbXWvtRUk%3D + validityPeriod: P15D + headers: {} + /keys: + get: + tags: + - Keys + summary: List keys in the specified vault. + description: Retrieves a list of the keys in the Key Vault as JSON Web Key structures + that contain the public part of a stored key. The LIST operation is applicable + to all key types, however only the base key identifier, attributes, and tags + are provided in the response. Individual versions of a key are not listed + in the response. This operation requires the keys/list permission. + operationId: GetKeys + parameters: + - 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. + schema: + maximum: 25 + minimum: 1 + type: integer + format: int32 + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: A response message containing a list of keys in the vault along + with a link to the next page of keys. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyListResult' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + GetKeys: + parameters: + $skiptoken: eyJOZXh0TWFya2VyIjoiMiE4MCFNREF3TURFMElXdGxlUzlUUkV0VVJWTlVTMFZaSVRBd01EQXlPQ0V5TURFM0xUQXlMVEUzVkRBd09qQXhPakEyTGpnd056azBOemhhSVEtLSIsIlRhcmdldExvY2F0aW9uIjowfQ + api-version: "7.0" + maxresults: "1" + responses: + 200: + body: + nextLink: https://kv-sdk-test.vault-int.azure-int.net:443/keys?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiE5NiFNREF3TURJM0lXdGxlUzlWVUVSQlZFVkxSVmxCVkZSU1NVSlZWRVZUVkVWVFZDRXdNREF3TWpnaE1qQXhOeTB3TlMwd05GUXdNVG94TVRveE5pNDNNekE0TnpReVdpRS0iLCJUYXJnZXRMb2NhdGlvbiI6MH0&maxresults=1 + value: + - attributes: + created: 1493937656 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1493937656 + kid: https://kv-sdk-test.vault-int.azure-int.net/keys/sdktestkey + x-ms-pageable: + nextLinkName: nextLink + /keys/restore: + post: + tags: + - Keys + summary: Restores a backed up key to a vault. + description: 'Imports a previously backed up key into Azure Key Vault, restoring + the key, its key identifier, attributes and access control policies. The RESTORE + operation may be used to import a previously backed up key. Individual versions + of a key cannot be restored. The key is restored in its entirety with the + same key name as it had when it was backed up. If the key name is not available + in the target Key Vault, the RESTORE operation will be rejected. While the + key name is retained during restore, the final key identifier will change + if the key is restored to a different vault. Restore will restore all versions + and preserve version identifiers. The RESTORE operation is subject to security + constraints: The target Key Vault must be owned by the same Microsoft Azure + Subscription as the source Key Vault The user must have RESTORE permission + in the target Key Vault. This operation requires the keys/restore permission.' + operationId: RestoreKey + parameters: + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The parameters to restore the key. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyRestoreParameters' + required: true + responses: + 200: + description: Restored key bundle in the vault. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + RestoreKey: + parameters: + api-version: "7.0" + key-name: testkey + value: JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUppTlRjMk5ESTVaaTB5TlRZNExUUTFZbVV0WW1aaFlTMHpOMlZrTURkbVl6QmpPREVpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLllNSVBfTXJRcTQ2X2ZwRExfSDNSSkpzSUotM05oeUJkMXlrOWJCS05JOGdnTjMxYWg2cWVoY1BISExnSnJ4OGprQkxMWFBxcDVmMXpsaWxfclVrLUtrT3J5YzhaSTljc3NNNV9TeTN4cEk0Wnk2V0ljNWNqUFd1R0NDbUJwQXlydEdPVnpoalF4bzNyVFcxRFNxZ1pVdnI4VEpseTJQS3J2aUlfUmduRWQ2LVJWS3V1Vk40ZWZWYUs5WFZUbW4xdmZ5Z3pwVHJfVFdDOVBGbXpoT0p6Z1U5OF85X25WcldWSE5TMXVMWEpYbldoQU9mUll0VlJORVFJRU5lTGMtZzNjTXJLOTFzNk5XeE5xZkZfR0w2UHg2cVhHMldXQ09nMzU3ZkJnT1ZTdERLaVZINk4xTWVkUTVwaWFkeHhUVDZMSFpva0I0eDFKbEFJZkxfYlU2OVBWdy5GOVFiM3RWbE1LcHJDS0stWUVpODJ3LlQwTVFpYXV3MGw5TWJfRFdEY1hvbzFqTjZJWXU1OVk3U0VMMm1ndFUweDNYTDl5VHNqZUY0Y2I0NExBaF9vUDdnbUgzbjdKLVZEX3hKN2hXY01XNnlTNDlFX005aXlndDlTQ2w5ZjRTdWtpM0NZdkwwUUVSVFlLSW1qMi1BRkRMWkl3Tm1HYmE4RzhheFBxR2NOS3NSZ0daZ1lUVG9pWUxxQnJ5cmJ2TEp1ZENxZ2plUWRpNU1tdHlQRnBhZ0hwSHZLa3VjRkdwLVhtSjFLYk8yQTJRT1dRVFFaOUNlcmVCcXJDbjI0SXdhUXJVQzRyTkQydzBVQTFUY3dFZXVWQkdFTGRKWm9zWHM2Q0dEZmpaSHFjdnB6NzRKd3g1T0VpcV9EUHM5VEtya01ob3djRXBsWjhaSk1jTlFSZnU5Sjg5ZDdZWGdHZEI1aWtKenA1WlY4OXcxMmIwekNITllKamdkZEhTNjJmalZlYUUxT09QXzd5Zlg1dEpiNmQ1QVhpZ3ItSkozbGI3Y2JhOXE2NHBsYmlhck1LemFiNUhtMkxNRnVLQnI1TmFrbzVQMDBoUUJnR2M2aXBJSzhNT2NLc2RhQjJGcjUwX1ViNnJEUzA4NnUzNy1DSHRGRnF5LTFBaGlDaXhRakNNTF9rWGtJMHZEYmJqRi1feGtNZGFCVi1BdTc5TzZ6V2pzRGVlV0t0VXZWUW5CMGM0Qnk3SVdDTGVWdzIyaTA5WWk3MnpCcWZPRjRyTmd4VTNrSjdfLTVib1dteVlXNndNOGVzTjR4R1kzUGhVNHlLRV91RGc2dk5Od3Q1c2NXWW9TMHh4NlBDb3M4S0R0Y3ItVXlwUTkydGhVX0ZYZ3E5U3RUWXEyWWdWV0dQbnM1Q0RMT0RBSi1sMTFJNklpdGxQN0hoeUxvMzlqNzdpV2ZUS0RnTDVrcDdEOUUzX3FkUFprdGpWUER1M1pRY1Q3MzlOMnp6XzFrWHJEb20tNlBQcXdWUzZtUXpBVW1xaXhTaXZjcWJxalpJRnRPbGxLRkE2cWVyaDJlU0FZelRNU0N1d0p4REJSQjUtbjBNUWxJSGpDMTdkTFpoVnFEMVNiNlBycV95OXN2Mml2V3E5TGE5R2ZHbEhBNlZZM1QzUWRTQ3VrWVJqWFhxLUItTm5WZGhGTVZhbFZ2b3NySmZuSEZhWGZMaTBnczVVOUt1NHlqRDdRb1cxeVIxSVk5T3JaNHFSUXdrcG5tOU8ycnJIMXBtX1hTekxRVDRrWmNLYnVneHNvWXRsRE9TaW9iS0RYdTFNdENxdkRudnh6OEZ3MUdwTXJCdUxrVlFEVmVlUDJqNFp3TGxPbkxUTmk4YlNjTm1fN3ZUc1RQbTRJRDltanBXSThCYXA4M1RLaTNkelAxazFpM0dncnIxSEpVQU96Q0NjUTRnaWxES1o4UkVsUWUyMUJBcUo3eUVublZsdWN5RzZBV2E3dmlZWXV4eEJIa0RsN1hHZHZYMGpJMjZyd2NTX0ZIMnlOaWFmZDN3SkkxMzQyWEF2VDdDUWVoOGRaZWRKU3FYUUdqQjVCSGF5Vl9vZnplVXBfOEhqRkRoS1VkcmNJNGkwa0ZwcEhkUFhNQXUxMjh3RHUyTG5VenlNNEpad1NJdW1fbmpiUTNJU1R5bUVMTngzd3QyV1NFT2Q3QUt5S3lCNEJzU3NkUE1HZXdLSTFnc2otSENFb05Cd3hQQkF2VnFDSUkzbGY5NG0tRU04LVh6TnRCVXFpT3Y5ZERCa2d2ekptSTlrMk9fVmpjbUZrbkdKb2kxVnpZcGlRVTRYbElaempDd3NDRHFrYWh1YmNxWFdyMDhVdFBtV0hGRXk0Q0tvclZMN1VIaVhsVnJPR1VHdFN2dWN3S2RjS1RPeldsUngtRGNGMExDek1kR1p3Y2czZWk1bWl0bFliRjJVbGJOMmJaU0NQWDljOWxFU2RBUUhxUEVsNXJhVDY3aDlWeGxPc3doYW54SkZvNGVuRENaYWZObURGRzJMYTY5RXFCVjZLTHowXzR1S1pDNW14YXZEazZXS3lmb0ROeXFzdVZMdG83WXNqUk4xNTJYMDVYSEhuRVN6NG5lM2MwandXYXo2MFpJR0Q1TUhNUUhQeTdPNFdnYWthVnNKZU9mYUNza3diYjQ5cV9tQnNYME5mWlBjcWFiRFhoWjdCWUxROVhFUkdibndkM0pEQmgtX1RUN2s2WERpY0tUblZQdWVGN3dzVl80aE9HUkpkVEk2UFRmV2o1dWY4dTdxRU9BdUt5NmV1Vk1LeTk3TVdLT1Q4LVpRbDBoSWowcmJWR1pILVI0cnFIMXZfVmdRUGRpLXFXb3FXcWt5MGFaSzNDTkEzUXhXZnRMR3AwcUVXcHU2T1EtQ2hONy12eE4wdFVlZGREWlF5V1d0d3g2VFcxS2hDQldaR2pabTlBQzY4YlUyQnVOTUU1NW9VV0dsbmNOOUVuRnpnTm1RTVR1SzV2VGd3WkJITWpmUXpsSUdfeWZ3QXVtSHljSzVPT092eDk1SGM3d0RBRDJXMVdSb2h5MDV5TFJkbEJ2XzREUXJyTWthZEVwZjB1dHZod1V3ZXZSNU1jVkV5Yk93VUw2Z2Y5a3JDNEw0YlR1bUJRbG9Ccng1aDNuTHhZdzkwcmlqbG5LajVZYkthZWpyTXdiSW15Ri1xVk5NbWpTd2I1MlN0SjB3T0czeE9HZkJRRHhQWHJtSXhoMERSOEdzSzBkeS0xSElJZWo1LW9STWRfSjlhVkt6MFk0d3g2VjIzaC1qUDNxMjRKYmF3dndsQTZyVjVpVUZkaDZKUXJpTU5DLV9hRF91X181VTd0OENIN1pWQ3VQM25JaTV4N2dtcWFsSzNlZ0htM3BkYl9sb3dYRTRaRUJETHZ0a2lobC13LVBGc3VZb1VKSUZWcUZ2VnM1RW5TU01XMFBJWE9TZlZNWW1KWmVrYmlHX1FqeGtCMjNCaHpZclNqQ3oxcW5TTXg5a3ZicDlRaDFuZFJYSkpJUFUyamVIdUxCNE9nVzNoenluQ2FxQXZQRXVHMlhuS3B4WGZ4QUtOeldpTElOLTBsUTRfUXQ0dHctZmphWVJVVjVLVWpyYlZnazI1MDZIUG1ZVEdWUVdRX203Z1NBU1BaajZEYklua3U3SzhFWnI2b3d1SDI1M1hxazlrSWwyTE1CcHZqT2tOTWFRTXhLcjItMllkUEV5LS1mTUFQTHBfVU15MnhqbEtMS2s3blhJdV9IMXZSbmdfVlVyVkhuZUdqRmFuODdRRU9SU1Y3clRBcHJPMmZUMmpfOWhoNkptdFlrUXFnRzg2WXlKa3NValdzM3hwZGk2TlBGRUxqQWd5T0ZDLTRrTWdLbGdJM2lUSElCV1Ezamp0U2UwR2N0MUs3QnBCSlJySUFGLTFVQjZKVDZjSjI4Z01zd0k5OGt1ZDVob1hZbVQ1bEEtWmFELUk4ZE0wcUZ0SEg4a1lXX256em85bTY5LWlZZlZfd3N5Mm1CdnVlb05RZGRRS0JrbWlVTW54VjkwdEF5RWc4WXJaWUwxck9jWHFjb2VJNl84UmV0bXZZeFZNMWJwdXFfajlmTXYtelRBOUpDZXlKMXFBTjVWQWFpY0lnZzFKWElDTEI5amVTT09zUXcxYXZxdk03TjFBcndDcjZvTUhycTVaQ0VLODV5VmI1RzhjY3Rld29pSFlzdVlPT0hnSDNMbmNoV3pmSjNNaUVjTTZfVjdSZHZCUWQwM2tQekdFVjh1STJ1aDl0bUxrNkY3VUt6WU02RXhJNW1LUEM5LVFOMk14ZTB6NDZrZTJteEdHR3cteXFMNjFHR0FpS0FjcENsSzVHeHlRbVBuREo4RHFKTk9WWDNoX283YTExVW8zMmtkdEcyaHVYcERVc2F5NkU4VGJ5R1dFZ3dmWDdaVnZrN1VNM2VqdDNqWXBxYmRZSlBNTUJCMGdNOU9mSVFjS0lUcm9IMHJEbFE2Wmt4UGM0ZHBlQ21NMzg3NXBXTlFrZzFKSnVRZzN4cE9WZ0VGallabEVENTBFaVZKNzg3cUM1YUdtakxRWl9yLVA3X2hJN09lcExWZ1BHSEFTUkxsd0dOLUZwTDc4UW9VempfWHUwNlBkNkF1VExtYmpoVmlERC11ZG5xdTVVR3dKNGxZamJqSkNBN3VQT2VfdWpzUWhZd1VHQV9YQnlsbkVySWxMN09YSE9UeGFEbEpHSDQtNHdNcm9hbmhPWTVoZ2NWZHZVQlpVZ1JEVWg0MGwzejhGVWJhUmxpaEUxeXQwdU5vR3F3TWRyWnZoTkl3YVFjUFlQeVV3UTdBdWh1dl9qSXRVcWlGQm9ncnlSb3Njd3oycXR0am12OEFRWUh5QWx5OXVqdmJ1cnk1TGNJaF9FUWZUekJuSnlfcDVZdzBDWG5CSzg3ZkVIOHJhWkh4V0VUcHFseHlmWWRWZjlQakRYTGJMYWJWQ2J6TXNSMnNYZkFvNm00VmhnaEYtQ0dOV3lta25EMDBUbWU0TGE0Vy1BLU9lR2o3Mi1uOFZjNmI5Zzc4d25tYkF0dGRyUThQWVdLUXZjdXlEbHZ5RUdHSF81VW10bFN5ajJKbHRLZXN3N1dzai1hazhDWDFidGRzU2xoQldjYUJ0dGozUmp3bEN4aEQyTXlWdHR6dDIwN3JPQjdxdEFJeVg1enJZMUxaSHB3RW1NeDhkWnM3NDdlY2ZhZVM0ZFFCWmN6U3lCNFZFWVRRWGdIeWdFX3EtYndfZXhqNWs5c0RHeHNTRnF5elFCVm9VOUtlbmFtZTRESnNMWFdaaW51UEhZUVNtWDJUZFBabXNkSHhCa3BBcHJiLUg0SGdFSnBPYWxCa0d3aFhza0hwYjZUTkhQeHktb09tLWhBaXptTVZPZzlnTDJOSHpSdUFtb0kzVTRFd2FfR0Vub3d0ZUFRU0xlY016WjZxZ3l1ZGswcG51UnlONlAxbTNCU1ExODRXUzNqeDFDNDYwTEFKM2FySS00QWV1aW5fMFZYM3FHdmEzNDR2ZXQ4N0RSN0liTUUzS01rWWtUdXotaHpqbnhHVVQ1cXZhWnYwNzdQVHExbTVDUVBUZGVlNlNnMzRmLXlseGg3MGoxSS1OWnZ3aFAyTFZ2OTJkdVZ4SlJSN3hzbEp6UzU3NXE3aWZ1UEcwUnp0NE55M1lESno0TWVDTk5wWklwTUJKeGR2bkc3azhsbXlvQlVRYmR6OHhCdW5YT3FsRDFHU205M05LYy13bzdxZnpJanYwWjF6WVpwLW5LN0o2NEUtSnp4MkQxZ2xJRG5vZGw5R215UzlwbzMzOUlZYU9QZlJnSTNad1FTVkdwcEJQN0dNRUdsRkVxbG83bTUtNFNZWEc2SmRYYU5yM2lRVmdoUEtkQWVpLWJDTEFQbGJGSkNFQVU1NXJfSEVmS2xUNS0zNlN5ZHRlcWFTZEdvMVhGRXpadWFILV96OEJsd1hXME4wdFJpdHo3SXh1OU5BTkM4R3V0Z2t2WHVFUl9Obnc1VUlsYXJlcE02VERfWl9lOHJGRDdoYXhWMVd0b1pkOUJTd05iUm1JeXU2Y2ZaelgyeFNPVlJVSndWSEctWTNaRGRpcWtzb19XR0J2TFJKQlRWT3NvZVZucWUxWktqb0NRSzFEYUZPb3B4UDdTTWhwOVlpY29XRk9VUU5ONS1EQjMtNjhDbURzdjE1LXMzRFRxUUM1OHhpd2JZLTRuWWt0eVNRV2F5elRvYlZOWG1idmI5SzktdWowYVRWRkx6SDFHMFl2TG1oU1NTd2tfM08tY3RSUExFblhQU1FWNkdVT2p5d0xIT1hTRDZfY1lTN1JrVXR4Mmc4bV8xbmhJUW0wOFd1aTVNSkdQR0JEb0RmN0szd3oyMnRnUVFXTDEwY2J0SlVvQkYyNjJVaUg3TE5pMjJWQ2tsMElYMVVRNy13cEkwcDhkV1NvV282U25PYTdkUTVpQkliZjlQX3JRd1dhYVl1NV9aQlpwQ000VXFWY2dhR1NZVnNxRHpXRVY4LXRjazBYOE51STJyZ3JSOTRDSnhjSms5MWwtb3owbldhTUFocHJubjJfd3hSWEdOYXkzNmJqU3EzWXhNMXN0dDFNN1JjenU3UTJQei1mZGpHWUFOSHZxQUtYUTZpbUphQXNwbE50Skh1SUp1andyTlRQd0ZzNGE5bDRkWHdNMDRRSWZoYzR5em1icDlYRjdVWVU0MjNXTWhRU2RMNUpaTld5QXVxOEFuRzdtd2dTUDNUMjROVGh1U0Z6Zjd1Tk5ySmdfUFk5VUNWcmlPS3FEN1lVS0FSZ1FFQ0EtTmthbG5YU0V1VEN2azJpZkVYOEh6cTJJbDV3TEZyOVFKVjBmT19EUkNyUzVzRHVaVmJ3RDI0Y2VqT3libWd1VWFuTDhiMklqS3h6TFVPT2tlMkVPNVRRTXRQUWZjeTYydkV5c2NwQzJFYXd6YUN2V3ViMVNXS2RZVnUtcVBzdFV4eWlPUHNpcFR3V1kzTXVNRkpwclNscWFVUDFJa3N6M0Q0VGpqSElzb0c2TUFsbFRZcUItSWpuSEhmYzI2blM3cmExeVVjbHRIRWtEd3Q4R1I2bmctNk9XNWJtT0J2VFFDamRUUDhSbXZ3b2tIRXZGQTlXbGs2OVZIVFpFSlNaNGdRZXFzcW83SEJJQ0h3dlViOW16YkhnaU50bGQ1WUFHT3V1U3BOTE1UcTM5LTMzVVZoTjBLa0hLUXZCenI1OXFmaFBIU3lVRnVMZzI4b2pYMGRvb3gySlFEZ1BobHZVYkR3cGluREJqVHBiMDdsY09EYVI3ZWN2M0tDOUhJQVdreDlhV0lza21Yb0FWYVNWTDBsZ05NQzNHVkxSMURfcGVoQTZySWs2Rl9qbDY0N0w4SERqRFJEbjZRRnRIa21BYW10TU9WSzdPMS1UXy1UTldwaDZ3YVFOdTBrV1ktZXAyRERndDk2enRYUkZTVWdNOXJMMnk3OENOMkVFWW1mQUktM1VjamdUblUxRnJXaEZ3dC1JNlVmNFZwNlY4XzZxTjJzVDJyeWFLWHo0Y0JJY0NoNm8tS0RpOW95SDV3MFF5eDhWb0xTNlN0YVEyYU5FejlKamctZ0N4aVp0Q1JYeWlnaWx3NTQ5VWFWMldreHR2bDZkeWRmZmFTM2ptYUxqaDRmOXhHa1JQRUdqZmZvMVY0dUN5QkI5QkNoaVVCZG1qVGxlVlJROG5Ccm5WQW5qYXVIYTRsV3VkNkhjSzU5VjJNTlpNTVdtS0tvb0E4cWtuMzVUY25EdXluSjJITUNnZElCSnVQVU9TeTI1QnhuZnA4RU5NSlZrV19UeU9uTXk5b3JtNTVobHhmSjRENThad2FRREs0QWlFZk1IVHdJc09uZ2pnU0o0S1JDdjFRa1NVeDdYRVhNU0lNUWtUYTBqS19aNS1PQ1ZNc3NBbzEzVzg1VlFKbVpDQ0tZRzZWbS1ybnVYSUdZZlZWLTg1OG93OEJZUGhDYVRhVzRkVnBLWERDRDVfc1FsamdJSnd0Vmc0T0RKY1dxelJpWWpUaXMyVzVjdlBvT1haNUIyZnFaVTlCWGVPQWM4S3Y2a2ZDVWp0OFV5UDFTaGswN2xtZ1A5b25PMWJ0eVc5VnhQSE5uUHcxNjZDeXJmVVcxaEFHQjB1YTFNYmtEVTdfdk40SlowY3VWNV9iLW9sUm80eV9yeGQ3UGRWREJsZHBWTUxsV3haLVhiV1VqdFpTVndaT01rOEtvV2F0bld6NVI0S1ZLNkFnbWJFTHhpa1MxSjYxZ1lJNlhTcm8wRnF1N0dNM2JXdlZQYm1xR3Q4SV9UcjNHamlKeDZ3OUhvZGlLbEZQc2JMakE3OWJuSG5DcHdwSEZBWGI5d3E3dmMtSF8wTU1WVGw3eE56bzhIZ1FfR2tPWEl1OV9uMVJiZS1SRDRXUmlId1RuYm5ZbXpHNjN4b3dHTlBJN2c4R203ZkxfTnpDWGhveDdUSUhXMjh0WFFCeVk4ZmR3X3YtMUtvU2lhSjNwNHBJUnlRQm1rQnpmOTlGRlpPS2g1bUxLMnBrSE9INWFlblFFNng2cHFDakNkcW53Uzk3eGJ0Skp1TkF4M1V6UDdHM2l5WlN5ZWw4SEd0YU1UZVdITzFuaE9lZFNlcTVhaGk4dEFFeVp2MFFScUxsQTRaQUxrVGh5ZUNZckpBd1cyaUJaOW5DRUVnemxqT01wdTJndHpDRnk5WktZWUloaWZKdVQ3dlBHdVhGTUtLVlg0WFU5ZmVoOFhIMUVWbnZ4cENuRjl5eEZneThuVW5CdUdsRkVWOFVCVU5oOE5BcElZY3BlTDd5Q1F5bDZQN3Fock43SEhINEloNmhLS2lVaUItWjRNMHJUSk9mZkd6MFhGWmlaSDdYT21KazBNc3pCbEVhaEFFbjJTU1JaaVFXTThsRFRRcEdrX0p3QkpRX1FVTmtMZnhCcHpsSzBUMGFxS1d3M2doWFktT3FqelM4cTFXOHVBYzNabFRUMFZHRWdWdU8yNl9vRXpXTnZYYnpKMUVfVEFxUkVWS0xfOWFlem1zM3JqYy1GdldSR2pMV09OTXhUdGw5ZzE5RFdhbFA2alJlUlJFeEg3djBLTEdvSHV1RW5IVHNQX2hsMnZuM05WWWl3dFFualFCOXpiMjZKRmxwZzZFaEF1STN4bFZMM3hwRE9qZUlPNXM3MllKY1MzcjAzYkIzbTVHMUljRVU4SkR2WTF5MjJQaG5iOGVmNno1cmk4RDY5clVLWThFOXFraExXYVhOMjRTLTZBYjNRZUtKcmxIR09yaEc2ZkpCdElqTF93Rk9kWjJqOFo0bVBZdmJaNUNEUTdnM01yYVh1aVJ6cWdvdXk3TkliempzOEZETkQ4ZHNMR1Z0OUNLanRVMnR5a0JrSUpQZlhrZ3U0LUpSVFRETjNINGdwek9md1B5V18xOXRMdlBKNEpRbHlzbnhKaEptSW5TUEtUUTljclJHVFFlS0F3THZZemdCMG5QWkIxd2dQVWJHaXRsaHlTV1pqbWplVU5oSnNnb0Z3ZHRFdTloTjRDejROWUVLZ1ozWnBKTC1sZmVJbmp0VEIwN1A4dWtpV3FHeGNBaVI5TDRPdl94VmxNYm9hblduNENNLThVSnZjRGhVRGtpTGt0eHRJOE03Zk01bngtMkFSX3MwcnlDV0F1YmVmQUxRdHVEUnQ1MVZrZnlJZkJ2UWFyb3dINnpIX1ZfZ1lJWFdOdDlvTElMT3FrNHlqcmR5Z0ZXWTl2QXZQN1Y4Q1lraUZuSVVrWGNaeUNsT2dmcTM5bXRKeHBMM2Nzb3VaWFRIcDExZ0xibWRUNUVTbjIwRThiblpEcTVvSEVEWGxPbGZHSE9ldmx6RnRCX1V4R1h0S1lYOUoxQWlLekJyZGI3QmJvemRFcDAteHVpeTZYRFp1Yjc5LW1LcnVQTDJaWWIxaTVoVmpRQUN2RnAyUHBaT2k3eFVmSlJoT0Z3Zi00OUphVE9XTjMtYVhVb0N1a0NpMWdqODhkQ29QWWNVdWs5WmxNelpkV1hJcDlnQ1gyN196U0U1WURCYWlWQ1dPc3c0Q0pGYmMta1FUOUNaMzRkU1hiczZ4S1N0OS1haHI5b3NpY2JHY2laMUlDV182WWRLM0l6ckh1UUV6TnNDQ0tEdW9iVVFRZFpBUlFMeWFlR2w0NWczN21Gb0tQN2J4b01aY1AzRjB3MzdBR0xMVzFjVi02dU5uaWhZQ1p0dThZckZQdWF4aF9VVUxPTk1SZXN5TFVsRHVydmxuQVV5ajFVMU1TbEMxTGtPbV9VV29NdVBzX1VqU2M3SDc3RTgwcmd2QmZCQTdaMkRQMmpWOFFRUmI2Q1RieEtpRkk5TFhmRlI3MjlFcURZVXVRRUk1ZDN0Y3liN3U4TzJlQnZfVGo5TzRPREx5Wjk3Z3BMdVZ3dUpVb3FqQVJnRU91U2lHdWwxaFJxYTl5NlZ0ZmpMNE5qajJJYjFsY2JyQS5OcXpkcGU4Yjdxc2MzQmpYRlhaWVpR + responses: + 200: + body: + attributes: + created: 1493938217 + enabled: false + exp: 1893484800 + nbf: 1262332800 + recoveryLevel: Recoverable+Purgeable + updated: 1493938217 + key: + e: AQAB + key_ops: + - encrypt + - decrypt + - sign + - verify + - wrapKey + - unwrapKey + kid: https://kv-sdk-test.vault-int.azure-int.net/keys/KeyBackupRestoreTest/d7a019f5da8843aea30722a7edcc37f7 + kty: RSA + n: v6XXEveP0G4tVvtszozRrSSo6zYDOScH8YBVBBY1CR2MCXBk-iMnKgzUyePi9_ofP3AmOxXx-2AsLC8rxi6n3jQNbGtIvQ4oMdUEhWVcVkmwdl0XyOouofEmIHeSxRg6wXFG4tYAKLmKsO9HqmU5n7ebdDlYngcobc1xHsP0u8e0ltntlgWBlSthmY8AMKW9Sb_teEYhilbkvt_ALr00G_4XHmfq7hSOZePWbGSWQW6yC7__9MrlDfzaSlHyBIyLppPEB7u6Zewrl_eNJWoUVrouIGA32qNETIOr_wxXRVGKoerTt-wFC-CXPn30W_6CmKSxoFBNvnzijg5hAU9V0w + x-codegen-request-body-name: parameters + /keys/{key-name}: + put: + tags: + - Keys + summary: Imports an externally created key, stores it, and returns key parameters + and attributes to the client. + description: The import key operation may be used to import any key type into + an Azure Key Vault. If the named key already exists, Azure Key Vault creates + a new version of the key. This operation requires the keys/import permission. + operationId: ImportKey + parameters: + - name: key-name + in: path + description: Name for the imported key. + required: true + schema: + pattern: ^[0-9a-zA-Z-]+$ + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The parameters to import a key. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyImportParameters' + required: true + responses: + 200: + description: Imported key bundle to the vault. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Import key: + parameters: + api-version: "7.0" + key-name: ImportSoftKeyTest + parameters: + key: + d: GeT1_D5LAZa7qlC7WZ0DKJnOth8kcPrN0urTEFtWCbmHQWkAad_px_VUpGp0BWDDzENbXbQcu4QCCdf4crve5eXt8dVI86OSah-RpEdBq8OFsETIhg2Tmq8MbYTJexoynRcIC62xAaCmkFMmu931gQSvWnYWTEuOPgmD2oE_F-bP9TFlGRc69a6MSbtcSRyFTsd5KsUr40QS4zf2W4kZCOWejyLuxk88SXgUqcJx86Ulc1Ol1KkTBLadvReAZCyCMwKBlNRGw46BU_iK0vK7rTD9fmEd639Gjti6eLpnyQYpnVe8uGgwVU1fHBkAKyapWoEG6VMhMntcrvgukKLIsQ + dp: ZGnmWx-Nca71z9a9vvT4g02iv3S-3kSgmhl8JST09YQwK8tfiK7nXnNMtXJi2K4dLKKnLicGtCzB6W3mXdLcP2SUOWDOeStoBt8HEBT4MrI1psCKqnBum78WkHju90rBFj99amkP6UeQy5EASAzgmKQu2nUaUnRV0lYP8LHMCkE + dq: dtpke0foFs04hPS6XYLA5lc7-1MAHfZKN4CkMAofwDqPmRQzCxpDJUk0gMWGJEdU_Lqfbg22Py44cci0dczH36NW3UU5BL86T2_SPPDOuyX7kDscrIJCdowxQCGJHGRBEozM_uTL46wu6UnUIv7m7cuGgodJyZBcdwpo6ziFink + e: AQAB + kty: RSA + n: nKAwarTrOpzd1hhH4cQNdVTgRF-b0ubPD8ZNVf0UXjb62QuAk3Dn68ESThcF7SoDYRx2QVcfoMC9WCcuQUQDieJF-lvJTSer1TwH72NBovwKlHvrXqEI0a6_uVYY5n-soGt7qFZNbwQLdWWA6PrbqTLIkv6r01dcuhTiQQAn6OWEa0JbFvWfF1kILQIaSBBBaaQ4R7hZs7-VQTHGD7J1xGteof4gw2VTiwNdcE8p5UG5b6S9KQwAeET4yB4KFPwQ3TDdzxJQ89mwYVi_sgAIggN54hTq4oEKYJHBOMtFGIN0_HQ60ZSUnpOi87xNC-8VFqnv4rfTQ7nkK6XMvjMVfw + p: v1jeCPnuJQM2PW2690Q9KJk0Ulok8VFGjkcHUHVi3orKdy7y_TCIWM6ZGvgFzI6abinzYbTEPKV4wFdMAwvOWmawXj5YrsoeB44_HXJ0ak_5_iP6XXR8MLGXbd0ZqsxvAZyzMj9vyle7EN2cBod6aenI2QZoRDucPvjPwZsZotk + q: 0Yv-Dj6qnvx_LL70lUnKA6MgHE_bUC4drl5ZNDDsUdUUYfxIK4G1rGU45kHGtp-Qg-Uyf9s52ywLylhcVE3jfbjOgEozlSwKyhqfXkLpMLWHqOKj9fcfYd4PWKPOgpzWsqjA6fJbBUMYo0CU2G9cWCtVodO7sBJVSIZunWrAlBc + qi: Y9KD5GaHkAYmAqpOfAQUMr71QuAAaBb0APzMuUvoEYw39PD3_vJeh9HZ15QmJ8zCX10-nlzUB-bWwvK-rGcJXbK4pArilr5MiaYv7e8h5eW2zs2_itDJ6Oebi-wVbMhg7DvUTBbkCvPhhIedE4UlDQmMYP7RhzVVs7SfmkGs_DQ + tags: + purpose: unit test + responses: + 200: + body: + attributes: + created: 1493942691 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1493942691 + key: + e: AQAB + key_ops: + - encrypt + - decrypt + - sign + - verify + - wrapKey + - unwrapKey + kid: https://kv-sdk-test.vault-int.azure-int.net/keys/ImportSoftKeyTest/2eb4a15d74184c6f84159c3ca90f0f4b + kty: RSA + n: nKAwarTrOpzd1hhH4cQNdVTgRF-b0ubPD8ZNVf0UXjb62QuAk3Dn68ESThcF7SoDYRx2QVcfoMC9WCcuQUQDieJF-lvJTSer1TwH72NBovwKlHvrXqEI0a6_uVYY5n-soGt7qFZNbwQLdWWA6PrbqTLIkv6r01dcuhTiQQAn6OWEa0JbFvWfF1kILQIaSBBBaaQ4R7hZs7-VQTHGD7J1xGteof4gw2VTiwNdcE8p5UG5b6S9KQwAeET4yB4KFPwQ3TDdzxJQ89mwYVi_sgAIggN54hTq4oEKYJHBOMtFGIN0_HQ60ZSUnpOi87xNC-8VFqnv4rfTQ7nkK6XMvjMVfw + tags: + purpose: unit test + x-codegen-request-body-name: parameters + delete: + tags: + - Keys + summary: Deletes a key of any type from storage in Azure Key Vault. + description: The delete key operation cannot be used to remove individual versions + of a key. This operation removes the cryptographic material associated with + the key, which means the key is not usable for Sign/Verify, Wrap/Unwrap or + Encrypt/Decrypt operations. This operation requires the keys/delete permission. + operationId: DeleteKey + parameters: + - name: key-name + in: path + description: The name of the key to delete. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: The public part of the deleted key and deletion information + on when the key will be purged. + content: + application/json: + schema: + $ref: '#/components/schemas/DeletedKeyBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Delete key: + parameters: + api-version: "7.0" + key-name: CreateSoftKeyTest + responses: + 200: + body: + attributes: + created: 1493942451 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1493942451 + deletedDate: 1493942452 + key: + e: AQAB + key_ops: + - encrypt + - decrypt + - sign + - verify + - wrapKey + - unwrapKey + kid: https://kv-sdk-test.vault-int.azure-int.net/keys/CreateSoftKeyTest/78deebed173b48e48f55abf87ed4cf71 + kty: RSA + n: 2HJAE5fU3Cw2Rt9hEuq-F6XjINKGa-zskfISVqopqUy60GOs2eyhxbWbJBeUXNor_gf-tXtNeuqeBgitLeVa640UDvnEjYTKWjCniTxZRaU7ewY8BfTSk-7KxoDdLsPSpX_MX4rwlAx-_1UGk5t4sQgTbm9T6Fm2oqFd37dsz5-Gj27UP2GTAShfJPFD7MqU_zIgOI0pfqsbNL5xTQVM29K6rX4jSPtylZV3uWJtkoQIQnrIHhk1d0SC0KwlBV3V7R_LVYjiXLyIXsFzSNYgQ68ZjAwt8iL7I8Osa-ehQLM13DVvLASaf7Jnu3sC3CWl3Gyirgded6cfMmswJzY87w + recoveryId: https://kv-sdk-test.vault-int.azure-int.net/deletedkeys/CreateSoftKeyTest + scheduledPurgeDate: 1501718452 + tags: + purpose: unit test + 'test name ': CreateGetDeleteKeyTest + /keys/{key-name}/backup: + post: + tags: + - Keys + summary: Requests that a backup of the specified key be downloaded to the client. + description: The Key Backup operation exports a key from Azure Key Vault in + a protected form. Note that this operation does NOT return key material in + a form that can be used outside the Azure Key Vault system, the returned key + material is either protected to a Azure Key Vault HSM or to Azure Key Vault + itself. The intent of this operation is to allow a client to GENERATE a key + in one Azure Key Vault instance, BACKUP the key, and then RESTORE it into + another Azure Key Vault instance. The BACKUP operation may be used to export, + in protected form, any key type from Azure Key Vault. Individual versions + of a key cannot be backed up. BACKUP / RESTORE can be performed within geographical + boundaries only; meaning that a BACKUP from one geographical area cannot be + restored to another geographical area. For example, a backup from the US geographical + area cannot be restored in an EU geographical area. This operation requires + the key/backup permission. + operationId: BackupKey + parameters: + - name: key-name + in: path + description: The name of the key. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: The backup blob containing the backed up key. + content: + application/json: + schema: + $ref: '#/components/schemas/BackupKeyResult' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + BackupKey: + parameters: + api-version: "7.0" + key-name: testkey + responses: + 200: + body: + value: JkF6dXJlS2V5VmF1bHRLZXlCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUppTlRjMk5ESTVaaTB5TlRZNExUUTFZbVV0WW1aaFlTMHpOMlZrTURkbVl6QmpPREVpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLllNSVBfTXJRcTQ2X2ZwRExfSDNSSkpzSUotM05oeUJkMXlrOWJCS05JOGdnTjMxYWg2cWVoY1BISExnSnJ4OGprQkxMWFBxcDVmMXpsaWxfclVrLUtrT3J5YzhaSTljc3NNNV9TeTN4cEk0Wnk2V0ljNWNqUFd1R0NDbUJwQXlydEdPVnpoalF4bzNyVFcxRFNxZ1pVdnI4VEpseTJQS3J2aUlfUmduRWQ2LVJWS3V1Vk40ZWZWYUs5WFZUbW4xdmZ5Z3pwVHJfVFdDOVBGbXpoT0p6Z1U5OF85X25WcldWSE5TMXVMWEpYbldoQU9mUll0VlJORVFJRU5lTGMtZzNjTXJLOTFzNk5XeE5xZkZfR0w2UHg2cVhHMldXQ09nMzU3ZkJnT1ZTdERLaVZINk4xTWVkUTVwaWFkeHhUVDZMSFpva0I0eDFKbEFJZkxfYlU2OVBWdy5GOVFiM3RWbE1LcHJDS0stWUVpODJ3LlQwTVFpYXV3MGw5TWJfRFdEY1hvbzFqTjZJWXU1OVk3U0VMMm1ndFUweDNYTDl5VHNqZUY0Y2I0NExBaF9vUDdnbUgzbjdKLVZEX3hKN2hXY01XNnlTNDlFX005aXlndDlTQ2w5ZjRTdWtpM0NZdkwwUUVSVFlLSW1qMi1BRkRMWkl3Tm1HYmE4RzhheFBxR2NOS3NSZ0daZ1lUVG9pWUxxQnJ5cmJ2TEp1ZENxZ2plUWRpNU1tdHlQRnBhZ0hwSHZLa3VjRkdwLVhtSjFLYk8yQTJRT1dRVFFaOUNlcmVCcXJDbjI0SXdhUXJVQzRyTkQydzBVQTFUY3dFZXVWQkdFTGRKWm9zWHM2Q0dEZmpaSHFjdnB6NzRKd3g1T0VpcV9EUHM5VEtya01ob3djRXBsWjhaSk1jTlFSZnU5Sjg5ZDdZWGdHZEI1aWtKenA1WlY4OXcxMmIwekNITllKamdkZEhTNjJmalZlYUUxT09QXzd5Zlg1dEpiNmQ1QVhpZ3ItSkozbGI3Y2JhOXE2NHBsYmlhck1LemFiNUhtMkxNRnVLQnI1TmFrbzVQMDBoUUJnR2M2aXBJSzhNT2NLc2RhQjJGcjUwX1ViNnJEUzA4NnUzNy1DSHRGRnF5LTFBaGlDaXhRakNNTF9rWGtJMHZEYmJqRi1feGtNZGFCVi1BdTc5TzZ6V2pzRGVlV0t0VXZWUW5CMGM0Qnk3SVdDTGVWdzIyaTA5WWk3MnpCcWZPRjRyTmd4VTNrSjdfLTVib1dteVlXNndNOGVzTjR4R1kzUGhVNHlLRV91RGc2dk5Od3Q1c2NXWW9TMHh4NlBDb3M4S0R0Y3ItVXlwUTkydGhVX0ZYZ3E5U3RUWXEyWWdWV0dQbnM1Q0RMT0RBSi1sMTFJNklpdGxQN0hoeUxvMzlqNzdpV2ZUS0RnTDVrcDdEOUUzX3FkUFprdGpWUER1M1pRY1Q3MzlOMnp6XzFrWHJEb20tNlBQcXdWUzZtUXpBVW1xaXhTaXZjcWJxalpJRnRPbGxLRkE2cWVyaDJlU0FZelRNU0N1d0p4REJSQjUtbjBNUWxJSGpDMTdkTFpoVnFEMVNiNlBycV95OXN2Mml2V3E5TGE5R2ZHbEhBNlZZM1QzUWRTQ3VrWVJqWFhxLUItTm5WZGhGTVZhbFZ2b3NySmZuSEZhWGZMaTBnczVVOUt1NHlqRDdRb1cxeVIxSVk5T3JaNHFSUXdrcG5tOU8ycnJIMXBtX1hTekxRVDRrWmNLYnVneHNvWXRsRE9TaW9iS0RYdTFNdENxdkRudnh6OEZ3MUdwTXJCdUxrVlFEVmVlUDJqNFp3TGxPbkxUTmk4YlNjTm1fN3ZUc1RQbTRJRDltanBXSThCYXA4M1RLaTNkelAxazFpM0dncnIxSEpVQU96Q0NjUTRnaWxES1o4UkVsUWUyMUJBcUo3eUVublZsdWN5RzZBV2E3dmlZWXV4eEJIa0RsN1hHZHZYMGpJMjZyd2NTX0ZIMnlOaWFmZDN3SkkxMzQyWEF2VDdDUWVoOGRaZWRKU3FYUUdqQjVCSGF5Vl9vZnplVXBfOEhqRkRoS1VkcmNJNGkwa0ZwcEhkUFhNQXUxMjh3RHUyTG5VenlNNEpad1NJdW1fbmpiUTNJU1R5bUVMTngzd3QyV1NFT2Q3QUt5S3lCNEJzU3NkUE1HZXdLSTFnc2otSENFb05Cd3hQQkF2VnFDSUkzbGY5NG0tRU04LVh6TnRCVXFpT3Y5ZERCa2d2ekptSTlrMk9fVmpjbUZrbkdKb2kxVnpZcGlRVTRYbElaempDd3NDRHFrYWh1YmNxWFdyMDhVdFBtV0hGRXk0Q0tvclZMN1VIaVhsVnJPR1VHdFN2dWN3S2RjS1RPeldsUngtRGNGMExDek1kR1p3Y2czZWk1bWl0bFliRjJVbGJOMmJaU0NQWDljOWxFU2RBUUhxUEVsNXJhVDY3aDlWeGxPc3doYW54SkZvNGVuRENaYWZObURGRzJMYTY5RXFCVjZLTHowXzR1S1pDNW14YXZEazZXS3lmb0ROeXFzdVZMdG83WXNqUk4xNTJYMDVYSEhuRVN6NG5lM2MwandXYXo2MFpJR0Q1TUhNUUhQeTdPNFdnYWthVnNKZU9mYUNza3diYjQ5cV9tQnNYME5mWlBjcWFiRFhoWjdCWUxROVhFUkdibndkM0pEQmgtX1RUN2s2WERpY0tUblZQdWVGN3dzVl80aE9HUkpkVEk2UFRmV2o1dWY4dTdxRU9BdUt5NmV1Vk1LeTk3TVdLT1Q4LVpRbDBoSWowcmJWR1pILVI0cnFIMXZfVmdRUGRpLXFXb3FXcWt5MGFaSzNDTkEzUXhXZnRMR3AwcUVXcHU2T1EtQ2hONy12eE4wdFVlZGREWlF5V1d0d3g2VFcxS2hDQldaR2pabTlBQzY4YlUyQnVOTUU1NW9VV0dsbmNOOUVuRnpnTm1RTVR1SzV2VGd3WkJITWpmUXpsSUdfeWZ3QXVtSHljSzVPT092eDk1SGM3d0RBRDJXMVdSb2h5MDV5TFJkbEJ2XzREUXJyTWthZEVwZjB1dHZod1V3ZXZSNU1jVkV5Yk93VUw2Z2Y5a3JDNEw0YlR1bUJRbG9Ccng1aDNuTHhZdzkwcmlqbG5LajVZYkthZWpyTXdiSW15Ri1xVk5NbWpTd2I1MlN0SjB3T0czeE9HZkJRRHhQWHJtSXhoMERSOEdzSzBkeS0xSElJZWo1LW9STWRfSjlhVkt6MFk0d3g2VjIzaC1qUDNxMjRKYmF3dndsQTZyVjVpVUZkaDZKUXJpTU5DLV9hRF91X181VTd0OENIN1pWQ3VQM25JaTV4N2dtcWFsSzNlZ0htM3BkYl9sb3dYRTRaRUJETHZ0a2lobC13LVBGc3VZb1VKSUZWcUZ2VnM1RW5TU01XMFBJWE9TZlZNWW1KWmVrYmlHX1FqeGtCMjNCaHpZclNqQ3oxcW5TTXg5a3ZicDlRaDFuZFJYSkpJUFUyamVIdUxCNE9nVzNoenluQ2FxQXZQRXVHMlhuS3B4WGZ4QUtOeldpTElOLTBsUTRfUXQ0dHctZmphWVJVVjVLVWpyYlZnazI1MDZIUG1ZVEdWUVdRX203Z1NBU1BaajZEYklua3U3SzhFWnI2b3d1SDI1M1hxazlrSWwyTE1CcHZqT2tOTWFRTXhLcjItMllkUEV5LS1mTUFQTHBfVU15MnhqbEtMS2s3blhJdV9IMXZSbmdfVlVyVkhuZUdqRmFuODdRRU9SU1Y3clRBcHJPMmZUMmpfOWhoNkptdFlrUXFnRzg2WXlKa3NValdzM3hwZGk2TlBGRUxqQWd5T0ZDLTRrTWdLbGdJM2lUSElCV1Ezamp0U2UwR2N0MUs3QnBCSlJySUFGLTFVQjZKVDZjSjI4Z01zd0k5OGt1ZDVob1hZbVQ1bEEtWmFELUk4ZE0wcUZ0SEg4a1lXX256em85bTY5LWlZZlZfd3N5Mm1CdnVlb05RZGRRS0JrbWlVTW54VjkwdEF5RWc4WXJaWUwxck9jWHFjb2VJNl84UmV0bXZZeFZNMWJwdXFfajlmTXYtelRBOUpDZXlKMXFBTjVWQWFpY0lnZzFKWElDTEI5amVTT09zUXcxYXZxdk03TjFBcndDcjZvTUhycTVaQ0VLODV5VmI1RzhjY3Rld29pSFlzdVlPT0hnSDNMbmNoV3pmSjNNaUVjTTZfVjdSZHZCUWQwM2tQekdFVjh1STJ1aDl0bUxrNkY3VUt6WU02RXhJNW1LUEM5LVFOMk14ZTB6NDZrZTJteEdHR3cteXFMNjFHR0FpS0FjcENsSzVHeHlRbVBuREo4RHFKTk9WWDNoX283YTExVW8zMmtkdEcyaHVYcERVc2F5NkU4VGJ5R1dFZ3dmWDdaVnZrN1VNM2VqdDNqWXBxYmRZSlBNTUJCMGdNOU9mSVFjS0lUcm9IMHJEbFE2Wmt4UGM0ZHBlQ21NMzg3NXBXTlFrZzFKSnVRZzN4cE9WZ0VGallabEVENTBFaVZKNzg3cUM1YUdtakxRWl9yLVA3X2hJN09lcExWZ1BHSEFTUkxsd0dOLUZwTDc4UW9VempfWHUwNlBkNkF1VExtYmpoVmlERC11ZG5xdTVVR3dKNGxZamJqSkNBN3VQT2VfdWpzUWhZd1VHQV9YQnlsbkVySWxMN09YSE9UeGFEbEpHSDQtNHdNcm9hbmhPWTVoZ2NWZHZVQlpVZ1JEVWg0MGwzejhGVWJhUmxpaEUxeXQwdU5vR3F3TWRyWnZoTkl3YVFjUFlQeVV3UTdBdWh1dl9qSXRVcWlGQm9ncnlSb3Njd3oycXR0am12OEFRWUh5QWx5OXVqdmJ1cnk1TGNJaF9FUWZUekJuSnlfcDVZdzBDWG5CSzg3ZkVIOHJhWkh4V0VUcHFseHlmWWRWZjlQakRYTGJMYWJWQ2J6TXNSMnNYZkFvNm00VmhnaEYtQ0dOV3lta25EMDBUbWU0TGE0Vy1BLU9lR2o3Mi1uOFZjNmI5Zzc4d25tYkF0dGRyUThQWVdLUXZjdXlEbHZ5RUdHSF81VW10bFN5ajJKbHRLZXN3N1dzai1hazhDWDFidGRzU2xoQldjYUJ0dGozUmp3bEN4aEQyTXlWdHR6dDIwN3JPQjdxdEFJeVg1enJZMUxaSHB3RW1NeDhkWnM3NDdlY2ZhZVM0ZFFCWmN6U3lCNFZFWVRRWGdIeWdFX3EtYndfZXhqNWs5c0RHeHNTRnF5elFCVm9VOUtlbmFtZTRESnNMWFdaaW51UEhZUVNtWDJUZFBabXNkSHhCa3BBcHJiLUg0SGdFSnBPYWxCa0d3aFhza0hwYjZUTkhQeHktb09tLWhBaXptTVZPZzlnTDJOSHpSdUFtb0kzVTRFd2FfR0Vub3d0ZUFRU0xlY016WjZxZ3l1ZGswcG51UnlONlAxbTNCU1ExODRXUzNqeDFDNDYwTEFKM2FySS00QWV1aW5fMFZYM3FHdmEzNDR2ZXQ4N0RSN0liTUUzS01rWWtUdXotaHpqbnhHVVQ1cXZhWnYwNzdQVHExbTVDUVBUZGVlNlNnMzRmLXlseGg3MGoxSS1OWnZ3aFAyTFZ2OTJkdVZ4SlJSN3hzbEp6UzU3NXE3aWZ1UEcwUnp0NE55M1lESno0TWVDTk5wWklwTUJKeGR2bkc3azhsbXlvQlVRYmR6OHhCdW5YT3FsRDFHU205M05LYy13bzdxZnpJanYwWjF6WVpwLW5LN0o2NEUtSnp4MkQxZ2xJRG5vZGw5R215UzlwbzMzOUlZYU9QZlJnSTNad1FTVkdwcEJQN0dNRUdsRkVxbG83bTUtNFNZWEc2SmRYYU5yM2lRVmdoUEtkQWVpLWJDTEFQbGJGSkNFQVU1NXJfSEVmS2xUNS0zNlN5ZHRlcWFTZEdvMVhGRXpadWFILV96OEJsd1hXME4wdFJpdHo3SXh1OU5BTkM4R3V0Z2t2WHVFUl9Obnc1VUlsYXJlcE02VERfWl9lOHJGRDdoYXhWMVd0b1pkOUJTd05iUm1JeXU2Y2ZaelgyeFNPVlJVSndWSEctWTNaRGRpcWtzb19XR0J2TFJKQlRWT3NvZVZucWUxWktqb0NRSzFEYUZPb3B4UDdTTWhwOVlpY29XRk9VUU5ONS1EQjMtNjhDbURzdjE1LXMzRFRxUUM1OHhpd2JZLTRuWWt0eVNRV2F5elRvYlZOWG1idmI5SzktdWowYVRWRkx6SDFHMFl2TG1oU1NTd2tfM08tY3RSUExFblhQU1FWNkdVT2p5d0xIT1hTRDZfY1lTN1JrVXR4Mmc4bV8xbmhJUW0wOFd1aTVNSkdQR0JEb0RmN0szd3oyMnRnUVFXTDEwY2J0SlVvQkYyNjJVaUg3TE5pMjJWQ2tsMElYMVVRNy13cEkwcDhkV1NvV282U25PYTdkUTVpQkliZjlQX3JRd1dhYVl1NV9aQlpwQ000VXFWY2dhR1NZVnNxRHpXRVY4LXRjazBYOE51STJyZ3JSOTRDSnhjSms5MWwtb3owbldhTUFocHJubjJfd3hSWEdOYXkzNmJqU3EzWXhNMXN0dDFNN1JjenU3UTJQei1mZGpHWUFOSHZxQUtYUTZpbUphQXNwbE50Skh1SUp1andyTlRQd0ZzNGE5bDRkWHdNMDRRSWZoYzR5em1icDlYRjdVWVU0MjNXTWhRU2RMNUpaTld5QXVxOEFuRzdtd2dTUDNUMjROVGh1U0Z6Zjd1Tk5ySmdfUFk5VUNWcmlPS3FEN1lVS0FSZ1FFQ0EtTmthbG5YU0V1VEN2azJpZkVYOEh6cTJJbDV3TEZyOVFKVjBmT19EUkNyUzVzRHVaVmJ3RDI0Y2VqT3libWd1VWFuTDhiMklqS3h6TFVPT2tlMkVPNVRRTXRQUWZjeTYydkV5c2NwQzJFYXd6YUN2V3ViMVNXS2RZVnUtcVBzdFV4eWlPUHNpcFR3V1kzTXVNRkpwclNscWFVUDFJa3N6M0Q0VGpqSElzb0c2TUFsbFRZcUItSWpuSEhmYzI2blM3cmExeVVjbHRIRWtEd3Q4R1I2bmctNk9XNWJtT0J2VFFDamRUUDhSbXZ3b2tIRXZGQTlXbGs2OVZIVFpFSlNaNGdRZXFzcW83SEJJQ0h3dlViOW16YkhnaU50bGQ1WUFHT3V1U3BOTE1UcTM5LTMzVVZoTjBLa0hLUXZCenI1OXFmaFBIU3lVRnVMZzI4b2pYMGRvb3gySlFEZ1BobHZVYkR3cGluREJqVHBiMDdsY09EYVI3ZWN2M0tDOUhJQVdreDlhV0lza21Yb0FWYVNWTDBsZ05NQzNHVkxSMURfcGVoQTZySWs2Rl9qbDY0N0w4SERqRFJEbjZRRnRIa21BYW10TU9WSzdPMS1UXy1UTldwaDZ3YVFOdTBrV1ktZXAyRERndDk2enRYUkZTVWdNOXJMMnk3OENOMkVFWW1mQUktM1VjamdUblUxRnJXaEZ3dC1JNlVmNFZwNlY4XzZxTjJzVDJyeWFLWHo0Y0JJY0NoNm8tS0RpOW95SDV3MFF5eDhWb0xTNlN0YVEyYU5FejlKamctZ0N4aVp0Q1JYeWlnaWx3NTQ5VWFWMldreHR2bDZkeWRmZmFTM2ptYUxqaDRmOXhHa1JQRUdqZmZvMVY0dUN5QkI5QkNoaVVCZG1qVGxlVlJROG5Ccm5WQW5qYXVIYTRsV3VkNkhjSzU5VjJNTlpNTVdtS0tvb0E4cWtuMzVUY25EdXluSjJITUNnZElCSnVQVU9TeTI1QnhuZnA4RU5NSlZrV19UeU9uTXk5b3JtNTVobHhmSjRENThad2FRREs0QWlFZk1IVHdJc09uZ2pnU0o0S1JDdjFRa1NVeDdYRVhNU0lNUWtUYTBqS19aNS1PQ1ZNc3NBbzEzVzg1VlFKbVpDQ0tZRzZWbS1ybnVYSUdZZlZWLTg1OG93OEJZUGhDYVRhVzRkVnBLWERDRDVfc1FsamdJSnd0Vmc0T0RKY1dxelJpWWpUaXMyVzVjdlBvT1haNUIyZnFaVTlCWGVPQWM4S3Y2a2ZDVWp0OFV5UDFTaGswN2xtZ1A5b25PMWJ0eVc5VnhQSE5uUHcxNjZDeXJmVVcxaEFHQjB1YTFNYmtEVTdfdk40SlowY3VWNV9iLW9sUm80eV9yeGQ3UGRWREJsZHBWTUxsV3haLVhiV1VqdFpTVndaT01rOEtvV2F0bld6NVI0S1ZLNkFnbWJFTHhpa1MxSjYxZ1lJNlhTcm8wRnF1N0dNM2JXdlZQYm1xR3Q4SV9UcjNHamlKeDZ3OUhvZGlLbEZQc2JMakE3OWJuSG5DcHdwSEZBWGI5d3E3dmMtSF8wTU1WVGw3eE56bzhIZ1FfR2tPWEl1OV9uMVJiZS1SRDRXUmlId1RuYm5ZbXpHNjN4b3dHTlBJN2c4R203ZkxfTnpDWGhveDdUSUhXMjh0WFFCeVk4ZmR3X3YtMUtvU2lhSjNwNHBJUnlRQm1rQnpmOTlGRlpPS2g1bUxLMnBrSE9INWFlblFFNng2cHFDakNkcW53Uzk3eGJ0Skp1TkF4M1V6UDdHM2l5WlN5ZWw4SEd0YU1UZVdITzFuaE9lZFNlcTVhaGk4dEFFeVp2MFFScUxsQTRaQUxrVGh5ZUNZckpBd1cyaUJaOW5DRUVnemxqT01wdTJndHpDRnk5WktZWUloaWZKdVQ3dlBHdVhGTUtLVlg0WFU5ZmVoOFhIMUVWbnZ4cENuRjl5eEZneThuVW5CdUdsRkVWOFVCVU5oOE5BcElZY3BlTDd5Q1F5bDZQN3Fock43SEhINEloNmhLS2lVaUItWjRNMHJUSk9mZkd6MFhGWmlaSDdYT21KazBNc3pCbEVhaEFFbjJTU1JaaVFXTThsRFRRcEdrX0p3QkpRX1FVTmtMZnhCcHpsSzBUMGFxS1d3M2doWFktT3FqelM4cTFXOHVBYzNabFRUMFZHRWdWdU8yNl9vRXpXTnZYYnpKMUVfVEFxUkVWS0xfOWFlem1zM3JqYy1GdldSR2pMV09OTXhUdGw5ZzE5RFdhbFA2alJlUlJFeEg3djBLTEdvSHV1RW5IVHNQX2hsMnZuM05WWWl3dFFualFCOXpiMjZKRmxwZzZFaEF1STN4bFZMM3hwRE9qZUlPNXM3MllKY1MzcjAzYkIzbTVHMUljRVU4SkR2WTF5MjJQaG5iOGVmNno1cmk4RDY5clVLWThFOXFraExXYVhOMjRTLTZBYjNRZUtKcmxIR09yaEc2ZkpCdElqTF93Rk9kWjJqOFo0bVBZdmJaNUNEUTdnM01yYVh1aVJ6cWdvdXk3TkliempzOEZETkQ4ZHNMR1Z0OUNLanRVMnR5a0JrSUpQZlhrZ3U0LUpSVFRETjNINGdwek9md1B5V18xOXRMdlBKNEpRbHlzbnhKaEptSW5TUEtUUTljclJHVFFlS0F3THZZemdCMG5QWkIxd2dQVWJHaXRsaHlTV1pqbWplVU5oSnNnb0Z3ZHRFdTloTjRDejROWUVLZ1ozWnBKTC1sZmVJbmp0VEIwN1A4dWtpV3FHeGNBaVI5TDRPdl94VmxNYm9hblduNENNLThVSnZjRGhVRGtpTGt0eHRJOE03Zk01bngtMkFSX3MwcnlDV0F1YmVmQUxRdHVEUnQ1MVZrZnlJZkJ2UWFyb3dINnpIX1ZfZ1lJWFdOdDlvTElMT3FrNHlqcmR5Z0ZXWTl2QXZQN1Y4Q1lraUZuSVVrWGNaeUNsT2dmcTM5bXRKeHBMM2Nzb3VaWFRIcDExZ0xibWRUNUVTbjIwRThiblpEcTVvSEVEWGxPbGZHSE9ldmx6RnRCX1V4R1h0S1lYOUoxQWlLekJyZGI3QmJvemRFcDAteHVpeTZYRFp1Yjc5LW1LcnVQTDJaWWIxaTVoVmpRQUN2RnAyUHBaT2k3eFVmSlJoT0Z3Zi00OUphVE9XTjMtYVhVb0N1a0NpMWdqODhkQ29QWWNVdWs5WmxNelpkV1hJcDlnQ1gyN196U0U1WURCYWlWQ1dPc3c0Q0pGYmMta1FUOUNaMzRkU1hiczZ4S1N0OS1haHI5b3NpY2JHY2laMUlDV182WWRLM0l6ckh1UUV6TnNDQ0tEdW9iVVFRZFpBUlFMeWFlR2w0NWczN21Gb0tQN2J4b01aY1AzRjB3MzdBR0xMVzFjVi02dU5uaWhZQ1p0dThZckZQdWF4aF9VVUxPTk1SZXN5TFVsRHVydmxuQVV5ajFVMU1TbEMxTGtPbV9VV29NdVBzX1VqU2M3SDc3RTgwcmd2QmZCQTdaMkRQMmpWOFFRUmI2Q1RieEtpRkk5TFhmRlI3MjlFcURZVXVRRUk1ZDN0Y3liN3U4TzJlQnZfVGo5TzRPREx5Wjk3Z3BMdVZ3dUpVb3FqQVJnRU91U2lHdWwxaFJxYTl5NlZ0ZmpMNE5qajJJYjFsY2JyQS5OcXpkcGU4Yjdxc2MzQmpYRlhaWVpR + /keys/{key-name}/create: + post: + tags: + - Keys + summary: Creates a new key, stores it, then returns key parameters and attributes + to the client. + description: The create key operation can be used to create any key type in + Azure Key Vault. If the named key already exists, Azure Key Vault creates + a new version of the key. It requires the keys/create permission. + operationId: CreateKey + parameters: + - name: key-name + in: path + description: The name for the new key. The system will generate the version + name for the new key. + required: true + schema: + pattern: ^[0-9a-zA-Z-]+$ + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The parameters to create a key. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyCreateParameters' + required: true + responses: + 200: + description: A key bundle containing the result of the create key request. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Create key: + parameters: + api-version: "7.0" + key-name: CreateSoftKeyTest + parameters: + attributes: {} + key_ops: + - encrypt + - decrypt + - sign + - verify + - wrapKey + - unwrapKey + key_size: 2048 + kty: RSA + tags: + purpose: unit test + 'test name ': CreateGetDeleteKeyTest + responses: + 200: + body: + attributes: + created: 1493942451 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1493942451 + key: + e: AQAB + key_ops: + - encrypt + - decrypt + - sign + - verify + - wrapKey + - unwrapKey + kid: https://kv-sdk-test.vault-int.azure-int.net/keys/CreateSoftKeyTest/78deebed173b48e48f55abf87ed4cf71 + kty: RSA + n: 2HJAE5fU3Cw2Rt9hEuq-F6XjINKGa-zskfISVqopqUy60GOs2eyhxbWbJBeUXNor_gf-tXtNeuqeBgitLeVa640UDvnEjYTKWjCniTxZRaU7ewY8BfTSk-7KxoDdLsPSpX_MX4rwlAx-_1UGk5t4sQgTbm9T6Fm2oqFd37dsz5-Gj27UP2GTAShfJPFD7MqU_zIgOI0pfqsbNL5xTQVM29K6rX4jSPtylZV3uWJtkoQIQnrIHhk1d0SC0KwlBV3V7R_LVYjiXLyIXsFzSNYgQ68ZjAwt8iL7I8Osa-ehQLM13DVvLASaf7Jnu3sC3CWl3Gyirgded6cfMmswJzY87w + tags: + purpose: unit test + 'test name ': CreateGetDeleteKeyTest + x-codegen-request-body-name: parameters + /keys/{key-name}/versions: + get: + tags: + - Keys + summary: Retrieves a list of individual key versions with the same key name. + description: The full key identifier, attributes, and tags are provided in the + response. This operation requires the keys/list permission. + operationId: GetKeyVersions + parameters: + - name: key-name + in: path + description: The name of the key. + required: true + schema: + type: string + - 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. + schema: + maximum: 25 + minimum: 1 + type: integer + format: int32 + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: A response message containing a list of keys along with a link + to the next page of keys. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyListResult' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + GetKeyVersions: + parameters: + $skiptoken: eyJOZXh0TWFya2VyIjoiMiExMzYhTURBd01EVTJJV3RsZVM5TVNWTlVTMFZaVmtWU1UwbFBUbE5VUlZOVUx6ZERPVVJETmpjM05VUXdSVFF4TnpjNE1qZERORVk1T0VZME9ESkdRekV5SVRBd01EQXlPQ0U1T1RrNUxURXlMVE14VkRJek9qVTVPalU1TGprNU9UazVPVGxhSVEtLSIsIlRhcmdldExvY2F0aW9uIjowfQ + api-version: "7.0" + key-name: listkeyversionstest + maxresults: "1" + responses: + 200: + body: + nextLink: https://kv-sdk-test.vault-int.azure-int.net:443/keys/listkeyversionstest/versions?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExMzYhTURBd01EVTJJV3RsZVM5TVNWTlVTMFZaVmtWU1UwbFBUbE5VUlZOVUwwRXdPRUZDUVVVNE1UZ3pNalF5TVRsQ05EUXpPREZFTWpoRVJURkdSVEJESVRBd01EQXlPQ0U1T1RrNUxURXlMVE14VkRJek9qVTVPalU1TGprNU9UazVPVGxhSVEtLSIsIlRhcmdldExvY2F0aW9uIjowfQ&maxresults=1 + value: + - attributes: + created: 1493937851 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1493937851 + kid: https://kv-sdk-test.vault-int.azure-int.net/keys/listkeyversionstest/7c9dc6775d0e4177827c4f98f482fc12 + x-ms-pageable: + nextLinkName: nextLink + /keys/{key-name}/{key-version}: + get: + tags: + - Keys + summary: Gets the public part of a stored key. + description: The get key operation is applicable to all key types. If the requested + key is symmetric, then no key material is released in the response. This operation + requires the keys/get permission. + operationId: GetKey + parameters: + - name: key-name + in: path + description: The name of the key to get. + required: true + schema: + type: string + - name: key-version + in: path + description: Adding the version parameter retrieves a specific version of + a key. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: A key bundle containing the key and its attributes. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Get key: + parameters: + api-version: "7.0" + key-name: CreateSoftKeyTest + key-version: 78deebed173b48e48f55abf87ed4cf71 + responses: + 200: + body: + attributes: + created: 1493942451 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1493942451 + key: + e: AQAB + key_ops: + - encrypt + - decrypt + - sign + - verify + - wrapKey + - unwrapKey + kid: https://kv-sdk-test.vault-int.azure-int.net/keys/CreateSoftKeyTest/78deebed173b48e48f55abf87ed4cf71 + kty: RSA + n: 2HJAE5fU3Cw2Rt9hEuq-F6XjINKGa-zskfISVqopqUy60GOs2eyhxbWbJBeUXNor_gf-tXtNeuqeBgitLeVa640UDvnEjYTKWjCniTxZRaU7ewY8BfTSk-7KxoDdLsPSpX_MX4rwlAx-_1UGk5t4sQgTbm9T6Fm2oqFd37dsz5-Gj27UP2GTAShfJPFD7MqU_zIgOI0pfqsbNL5xTQVM29K6rX4jSPtylZV3uWJtkoQIQnrIHhk1d0SC0KwlBV3V7R_LVYjiXLyIXsFzSNYgQ68ZjAwt8iL7I8Osa-ehQLM13DVvLASaf7Jnu3sC3CWl3Gyirgded6cfMmswJzY87w + tags: + purpose: unit test + 'test name ': CreateGetDeleteKeyTest + patch: + tags: + - Keys + summary: The update key operation changes specified attributes of a stored key + and can be applied to any key type and key version stored in Azure Key Vault. + description: 'In order to perform this operation, the key must already exist + in the Key Vault. Note: The cryptographic material of a key itself cannot + be changed. This operation requires the keys/update permission.' + operationId: UpdateKey + parameters: + - name: key-name + in: path + description: The name of key to update. + required: true + schema: + type: string + - name: key-version + in: path + description: The version of the key to update. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The parameters of the key to update. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyUpdateParameters' + required: true + responses: + 200: + description: The updated key. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Update key: + parameters: + api-version: "7.0" + key-name: UpdateKeyAttributesTest + key-version: 3d31e6e5c4c14eaf9be8d42c00225088 + parameters: + attributes: + enabled: false + exp: 662716800 + nbf: 631180800 + key_ops: + - decrypt + - encrypt + responses: + 200: + body: + attributes: + created: 1493860275 + enabled: false + exp: 662716800 + nbf: 631180800 + recoveryLevel: Recoverable+Purgeable + updated: 1493860277 + key: + e: AQAB + key_ops: + - decrypt + - encrypt + kid: https://kv-sdk-test.vault-int.azure-int.net/keys/UpdateKeyAttributesTest/3d31e6e5c4c14eaf9be8d42c00225088 + kty: RSA + n: tHCSyq1FqGHXIFHs1m4riKYgPFNSTlJGPzxwfUyZJUxxZsFWMxmZRzbM3kcXC5N40AJfeqDOMs0gY0LZEfhw8kJHBf2GEH2Sz923E4OQjLk_ECdAiKPW_8t22cqD_pGIuB7uibjLZgFFRv7oe0t8cTXKn7IwAH5gQBLs8NNV7hx1Ozy82ekCgOovFldmD3c3P1oZQ_v_-jOP6O202aEfDcZut42J6zI8eYwvGiDKmo2fCPPeth1LYBOeUMnrEZGT_f_w3yAgqvuSkHCL0x4MjZzc2EoNI_3ooAHZohDaPHLRfz8neDPADZzbHA6SDn3GgvC1K_Je5GBmqjTH3aIMlw + x-codegen-request-body-name: parameters + /keys/{key-name}/{key-version}/decrypt: + post: + tags: + - Keys + summary: Decrypts a single block of encrypted data. + description: The DECRYPT operation decrypts a well-formed block of ciphertext + using the target encryption key and specified algorithm. This operation is + the reverse of the ENCRYPT operation; only a single block of data may be decrypted, + the size of this block is dependent on the target key and the algorithm to + be used. The DECRYPT operation applies to asymmetric and symmetric keys stored + in Azure Key Vault since it uses the private portion of the key. This operation + requires the keys/decrypt permission. + operationId: decrypt + parameters: + - name: key-name + in: path + description: The name of the key. + required: true + schema: + type: string + - name: key-version + in: path + description: The version of the key. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The parameters for the decryption operation. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyOperationsParameters' + required: true + responses: + 200: + description: The decryption result. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyOperationResult' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Decrypt example: + parameters: + api-version: "7.0" + key-name: sdktestkey + key-version: 4eb68492b5f6421e835d961ad2be3155 + parameters: + alg: RSA-OAEP + value: sid-4nG3FzRIFWXLXlG-FZo6H1-kzbNX5Exe0_VRqcGLuJWjI9oSofsn-2IagDsQzkpNAXv9V8aoIizelrK_14darhxaAV8OejO7Oh7spjxa7IxMVS3e-cwcLdEHzMbMfM1uFpDyRFqEUASHI0H8F1M2m1e9TUSXOVW3KMqm7cK94ZQMFvd4AYdLfmfnStMp_MqIQh4kpIkB6h2b1M3possVrLKH_l2L3uT-qFiwQlH9-dt0Cje5mrkpsYCy4hAXNFUPhIyBWAZwOQylIE2sPuopFs55lRIHpWP2CqNe-IK8tX87BRuJ_Vy3GIFxDjD5uu74scIyQCKMImB6xQ_-mQ + responses: + 200: + body: + kid: https://testvault1021.vault.azure.net/keys/sdktestkey/4eb68492b5f6421e835d961ad2be3155 + value: dvDmrSBpjRjtYg + x-codegen-request-body-name: parameters + /keys/{key-name}/{key-version}/encrypt: + post: + tags: + - Keys + summary: Encrypts an arbitrary sequence of bytes using an encryption key that + is stored in a key vault. + description: The ENCRYPT operation encrypts an arbitrary sequence of bytes using + an encryption key that is stored in Azure Key Vault. Note that the ENCRYPT + operation only supports a single block of data, the size of which is dependent + on the target key and the encryption algorithm to be used. The ENCRYPT operation + is only strictly necessary for symmetric keys stored in Azure Key Vault since + protection with an asymmetric key can be performed using public portion of + the key. This operation is supported for asymmetric keys as a convenience + for callers that have a key-reference but do not have access to the public + key material. This operation requires the keys/encrypt permission. + operationId: encrypt + parameters: + - name: key-name + in: path + description: The name of the key. + required: true + schema: + type: string + - name: key-version + in: path + description: The version of the key. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The parameters for the encryption operation. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyOperationsParameters' + required: true + responses: + 200: + description: The encryption result. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyOperationResult' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Encrypt example: + parameters: + api-version: "7.0" + key-name: sdktestkey + key-version: f6bc1f3d37c14b2bb1a2ebb4b24e9535 + parameters: + alg: RSA1_5 + value: 5ka5IVsnGrzufA + responses: + 200: + body: + kid: https://karlaugsoftdeletesdk.vault-int.azure-int.net/keys/sdktestkey/f6bc1f3d37c14b2bb1a2ebb4b24e9535 + value: CR0Hk0z72oOit5TxObqRpo-WFGZkb5BeN1C0xJFKHxzdDCESYPCNB-OkiWVAnMcSyu6g2aC8riVRRxY5MC2CWKj-CJ_SMke5X2kTi5yi4hJ5vuOLzmg_M6Bmqib7LsI-TeJHr9rs3-tZaSCdZ2zICeFWYduWV5rPjTnAD98epTorT8AA1zMaYHMIhKpmttcj18-dHr0E0T55dgRtsjK04uC3FlRd3odl4RhO1UHAmYpDd5FUqN-20R0dK0Zk8F8sOtThLhEmuLvqPHOCUBiGUhHA4nRDq1La4SUbThu2KMQJL6BbxxEymuliaYcNNtW7MxgVOf6V3mFxVNRY622i9g + x-codegen-request-body-name: parameters + /keys/{key-name}/{key-version}/sign: + post: + tags: + - Keys + summary: Creates a signature from a digest using the specified key. + description: The SIGN operation is applicable to asymmetric and symmetric keys + stored in Azure Key Vault since this operation uses the private portion of + the key. This operation requires the keys/sign permission. + operationId: sign + parameters: + - name: key-name + in: path + description: The name of the key. + required: true + schema: + type: string + - name: key-version + in: path + description: The version of the key. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The parameters for the signing operation. + content: + application/json: + schema: + $ref: '#/components/schemas/KeySignParameters' + required: true + responses: + 200: + description: The signature value. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyOperationResult' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Sign: + parameters: + api-version: "7.0" + key-name: testkey + key-version: 9885aa558e8d448789683188f8c194b0 + parameters: + alg: RS512 + value: RUE3Nzg4NTQ4QjQ5RjFFN0U2NzAyQzhDNEMwMkJDOTA1MTYyOTUzNjI5NDhBNzZDQTlFOTM1NDA2M0ZGMjk2Mg + responses: + 200: + body: + kid: https://demo-test-vault.vault.azure.net/keys/testkey/9885aa558e8d448789683188f8c194b0 + value: aKFG8NXcfTzqyR44rW42484K_zZI_T7zZuebvWuNgAoEI1gXYmxrshp42CunSmmu4oqo4-IrCikPkNIBkHXnAW2cv03Ad0UpwXhVfepK8zzDBaJPMKVGS-ZRz8CshEyGDKaLlb3J3zEkXpM3RrSEr0mdV6hndHD_mznLB5RmFui5DsKAhez4vUqajgtkgcPfCekMqeSwp6r9ItVL-gEoAohx8XMDsPedqu-7BuZcBcdayaPuBRL4wWoTDULA11P-UN_sJ5qMj3BbiRYhIlBWGR04wIGfZ3pkJjHJUpOvgH2QajdYPzUBauOCewMYbq9XkLRSzI_A7HkkDVycugSeAA + x-codegen-request-body-name: parameters + /keys/{key-name}/{key-version}/unwrapkey: + post: + tags: + - Keys + summary: Unwraps a symmetric key using the specified key that was initially + used for wrapping that key. + description: The UNWRAP operation supports decryption of a symmetric key using + the target key encryption key. This operation is the reverse of the WRAP operation. + The UNWRAP operation applies to asymmetric and symmetric keys stored in Azure + Key Vault since it uses the private portion of the key. This operation requires + the keys/unwrapKey permission. + operationId: unwrapKey + parameters: + - name: key-name + in: path + description: The name of the key. + required: true + schema: + type: string + - name: key-version + in: path + description: The version of the key. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The parameters for the key operation. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyOperationsParameters' + required: true + responses: + 200: + description: The unwrapped symmetric key. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyOperationResult' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Unwrapkey: + parameters: + api-version: "7.0" + key-name: sdktestkey + key-version: 0698c2156c1a4e1da5b6bab6f6422fd6 + parameters: + alg: RSA1_5 + value: khwIe26NuAZazS7upywDBpGRmRNMW5-4h_JQKxOdB78nYVxZWnBXwCxOv7a3Sr_mCjiVzKsoQQZwL-CJzhYa0512tfYem56zls5a44y5QsdcfvuSzOvpthVhA9XkEfCJSqSY_sip5d8BelT_w_ikvd_8KqiQ_0H54RqYUN8svCpu28paHgBocHFNXTQ9NtU9ec2qgESXk7Jp4OTy9HJtQJavKDUqTJ3YmtLxUgsgBCe0FNMHUSEYC0Ys6PavYzdTwIzYCq84idmAxJOj-O_6eALJFH2sDTOQYHjzOae2t8eFmw6C-t55qjrCI91a9mUJEGPhYixiG4gR4PaEJ7wGvw + responses: + 200: + body: + kid: https://karlaugsoftdeletesdk.vault-int.azure-int.net/keys/sdktestkey/0698c2156c1a4e1da5b6bab6f6422fd6 + value: ovQIlbB0DgWhZA7sgkPxbg9H-Ly-VlNGPSgGrrZvlIo + x-codegen-request-body-name: parameters + /keys/{key-name}/{key-version}/verify: + post: + tags: + - Keys + summary: Verifies a signature using a specified key. + description: The VERIFY operation is applicable to symmetric keys stored in + Azure Key Vault. VERIFY is not strictly necessary for asymmetric keys stored + in Azure Key Vault since signature verification can be performed using the + public portion of the key but this operation is supported as a convenience + for callers that only have a key-reference and not the public portion of the + key. This operation requires the keys/verify permission. + operationId: verify + parameters: + - name: key-name + in: path + description: The name of the key. + required: true + schema: + type: string + - name: key-version + in: path + description: The version of the key. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The parameters for verify operations. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVerifyParameters' + required: true + responses: + 200: + description: The verification result. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVerifyResult' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Verify: + parameters: + api-version: "7.0" + key-name: testkey + key-version: 9885aa558e8d448789683188f8c194b0 + parameters: + alg: RS512 + value: RUE3Nzg4NTQ4QjQ5RjFFN0U2NzAyQzhDNEMwMkJDOTA1MTYyOTUzNjI5NDhBNzZDQTlFOTM1NDA2M0ZGMjk2Mg + responses: + 200: + body: + value: true + x-codegen-request-body-name: parameters + /keys/{key-name}/{key-version}/wrapkey: + post: + tags: + - Keys + summary: Wraps a symmetric key using a specified key. + description: The WRAP operation supports encryption of a symmetric key using + a key encryption key that has previously been stored in an Azure Key Vault. + The WRAP operation is only strictly necessary for symmetric keys stored in + Azure Key Vault since protection with an asymmetric key can be performed using + the public portion of the key. This operation is supported for asymmetric + keys as a convenience for callers that have a key-reference but do not have + access to the public key material. This operation requires the keys/wrapKey + permission. + operationId: wrapKey + parameters: + - name: key-name + in: path + description: The name of the key. + required: true + schema: + type: string + - name: key-version + in: path + description: The version of the key. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The parameters for wrap operation. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyOperationsParameters' + required: true + responses: + 200: + description: The wrapped symmetric key. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyOperationResult' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Wrapkey: + parameters: + api-version: "7.0" + key-name: sdktestkey + key-version: 0698c2156c1a4e1da5b6bab6f6422fd6 + parameters: + alg: RSA1_5 + value: ovQIlbB0DgWhZA7sgkPxbg9H-Ly-VlNGPSgGrrZvlIo + responses: + 200: + body: + kid: https://karlaugsoftdeletesdk.vault-int.azure-int.net/keys/sdktestkey/0698c2156c1a4e1da5b6bab6f6422fd6 + value: khwIe26NuAZazS7upywDBpGRmRNMW5-4h_JQKxOdB78nYVxZWnBXwCxOv7a3Sr_mCjiVzKsoQQZwL-CJzhYa0512tfYem56zls5a44y5QsdcfvuSzOvpthVhA9XkEfCJSqSY_sip5d8BelT_w_ikvd_8KqiQ_0H54RqYUN8svCpu28paHgBocHFNXTQ9NtU9ec2qgESXk7Jp4OTy9HJtQJavKDUqTJ3YmtLxUgsgBCe0FNMHUSEYC0Ys6PavYzdTwIzYCq84idmAxJOj-O_6eALJFH2sDTOQYHjzOae2t8eFmw6C-t55qjrCI91a9mUJEGPhYixiG4gR4PaEJ7wGvw + x-codegen-request-body-name: parameters + /secrets: + get: + tags: + - Secrets + 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. + operationId: GetSecrets + parameters: + - 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. + schema: + maximum: 25 + minimum: 1 + type: integer + format: int32 + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: A response message containing a list of secrets in the vault + along with a link to the next page of secrets. + content: + application/json: + schema: + $ref: '#/components/schemas/SecretListResult' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + GetSecrets: + parameters: + api-version: "7.0" + maxresults: "1" + responses: + 200: + body: + nextLink: https://testvault1021.vault.azure.net:443/secrets?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiE4OCFNREF3TURJeUlYTmxZM0psZEM5TVNWTlVVMFZEVWtWVVZFVlRWREVoTURBd01ESTRJVEl3TVRZdE1USXRNVGxVTWpNNk1UQTZORFV1T0RneE9ERXhNRm9oIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=1 + value: + - attributes: + created: 1482189047 + enabled: true + updated: 1482189047 + contentType: plainText + id: https://testvault1021.vault.azure.net/secrets/listsecrettest0 + x-ms-pageable: + nextLinkName: nextLink + /secrets/restore: + post: + tags: + - Secrets + 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. + operationId: RestoreSecret + parameters: + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The parameters to restore the secret. + content: + application/json: + schema: + $ref: '#/components/schemas/SecretRestoreParameters' + required: true + responses: + 200: + description: Restored secret bundle in the vault. + content: + application/json: + schema: + $ref: '#/components/schemas/SecretBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + RestoreSecret: + parameters: + api-version: "7.0" + parameters: + value: KUF6dXJlS2V5VmF1bHRTZWNyZXRCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUppTlRjMk5ESTVaaTB5TlRZNExUUTFZbVV0WW1aaFlTMHpOMlZrTURkbVl6QmpPREVpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLmhERDdfVW9aU1ptR2JYN1dYUTU5WDkxZ0FQb05kdDcwZE1BbmgzbjQ3eWNjbkRNOU5vTm1hY0NHZmlNeUwxU0FlZDk0UjhBNDAtVE81TDNfQ05Qal9pdWIyaW03Z21nbHNPNnFFUVVIWU1tOEh2Wl9odFRrdEl4QzRPWEowYTB0S2hscnczZlBvVVFDZHVGcFg0ekEzYTR4VTZXTUNfYjZZVXZqUjZnSGM5TFRUR2tIazh1RTY0aVQ4cmt5RDRrU3RNcXhnU2lfRVZwUUdjWGdfNE9wQ1dBOUFha0N1NkpybGRaQW9BLUtXTWpQbGhaWHFYWGMyVkJlbUJjRTQ1YzY3QWhqYjJrSi1uQ1c5dHBjWS1JZ3JEUHFzWkswOS1WbHVtcl9SbzQzcG5FeW5jVFpTdzZlX1h6VnN0dUFOZHdiM0E2OVR1c1hfYkJKZ0J2SGQ4cDJSUS5WMTlhMVRacjZ2UjJHdEVaWGtOOXJRLmhwMU5IMmwtZklWbVgwWlNfTlRzekJfUEs1aktDUU5rSnJyRUhRQmZjQ2VjdHhmVU5uVlB6MVBqRWNDblZuV0pCUk4zTlFKZm01MjFLRHp1MzBIVUFEUGVmVHJyMFVFS2x5QTM2cThoWFY3VTdoQ0dHNk85NVpYclRsZlVENDI5RTNTNTQxdVBmWGpGR2cxbHlucFNTNnAtVkFzaXFlY1lpQWNuM1hhNzRhUm5xS3N3ZzhyU1ZOX09hSVU3ak1VVUhYZWY1ZmN0NlFrdWFfYkt6Z2dtR2ZiT2RTdVdNRmVQaF9mMkJMUFNGN3k1NThEMFZxSVlNY0JJR0dMU3BQUU93Q094OFF3Y3NVUEp4ZDFuWkVYYjRVNEJZYlhBcmFMX0NwekYxZlhYWVBsdmVUSGdKNVdrR28tWXNJVzAtT3ZqVGdLN2hIamxpR1psd29HOVUtbTJSVDZfbkhseHhVRFMyY3JseGNmay1OOTlXd0tEdUxFMTM5ZE1mN2RCSEl1aTdxd0RXdm1TN2JMTHYzM05Wd19XSl9DT1VGQjgycy1ELXk0UEdIRzVackhsSDgxa25mLVpRblU0SmZfY2lhMWhmWlY3ZFMxb21UZDQtNnJwZmpTMGxFT3VfZTQ5bUpYUGFpZ0hyLWFQYkFzTXJJQ2JvOUVIR2IzMXJ5SlR2QXF2ZmJDbU10bkdLUDV6aUNiZFh3SU5ONzBJTk5lZnJLWGZkZFBUd0RSV3d1ZkxCcGNlU0U0SG5EWVZVQmdkMDl4UUZidG12UDhhTXhhUlpGSTNpWG1fbmpCNmZfdlNhZUNUakdVYVVuRE1QQkdOQWQ5T2xVX3dvUnMtalNCVnVqd1FQSGlGcm5RWElkXzBRdXRYSm54cTU4aUtlTGJvNDJtOHgwaXBRcnB4aEZoUDdHNmZOWXAwVmxXR0RxZ1Q0VlpPQkZsZWRKUU0yaDQtb2xTbXdtUms0M0Y1cjdKd3h4aENqU1JReWx1MGEyQ0ZONWMyZjIxTElZaFliLWNReWFXMDNpV3hsb04zWld5cDJIb1FlUmZPR3lXUzBiU2NBT3JndGpBYnJaUFIwMGRRNnpSOHNBczFYUzh3dzBlaVczbFpsdjJwVWFxOVpTeVhnTS14b2NTOS1ueXRaWGtWWlUwX2dDVXJBV0ZKNG5XdW9oTGM1RkkyRWFQNWR0SXVWa3dnbXlsR1gtYk9ZeHp3dzVGYmI1V3VEbnJ5aDBMSnVic3Q4VXdLdnl3bk1jQ3duMjZSVTNxQVRudGJubVhJS0FyeGkwMldQVk9oTXdpUWZuX2h1TWk5emp3MEVuaXNWdktNWUNnR2xqNWlGZW5Tc0FKUXBiLUY4bng3OWFJQlJaTUc1a0huUDR5dGxmNm9FTkRsRXNJY21aeEtOdEIzcmJPdVROYUhLTXZBNmxSNzlMMDJZSTZrcEdrUUZnaHpIaTBjTWkwbFdCejRTM1AzUEMzZElZSVlQZ0Q2S05kT2FLWHkta0dWdUlsWFNmVlVrMnpzM0NBeTJhZEJjV0NMV094ZkRoQnlwNTl4MHpBRExvdnZySHRLOWF6TGN3N0lTbVl6eUhYMkpobVdReUYtTFd1VzhfcW41SkFVYlB5Z0RTRDYyMi1PTGZQVDZmc2VTWUVBUTFLVWRwZTFnSV9hZWxVT3FaRWN1aE5SckU1YUp0LTN5TEVLVWZIWXF6WTlGbHJrUE5MUC03Y2xRbmEySEhfZmMzZV9LTGtGUDFhQTJjM0RVaERseGhsTzB2bFVmV0c5eXpXaDNZN0NmRFlFMlBaUzZBcFBlYy0wa1NDcEVKMmtCcnFzWG4yeDJDX0FDdTdCTTVGZXNJQkN0M2NqSEdQSVVQRnEteGVmT0RCXzBQcXZDTXpBOHg5Zm10Ny1sNHhVQlJaa0dtZExhZFoxVzdFUXRNRVpsSWMtbDF1V1UzTU15cFZpVWR0OWxJUHVQVUEwc1NrbWxrTGhNSjgyNE5QN0hyVi01dC1ZNDcxaWVKMHdEUjFxMmU4MU8yazdNeTFlTDY3TlY4OVBHYU81SVR5WG1ueUVXMGtVbl9qa3l1UVRkV3dsS09HZVZIYkJWNFpxSXZHWjdQUS02TEE5eXc3a0dyZFRhVFZXOEdOOV9GY1c2VUhjbzA0U3dqTzY2S2x4VlFJWWpBdEZPZlBjWW5xNzF1RndyQS1UZHVDZG1sUFBHOVpjc2tiQmdrbF8wVk90dmhuc0pwYXZKZ2Zka0d3OF9qMkQzd0Jzemd0VndHNk9nNW16eVFwM2pFc0w3UmNtcXd6WFBOaDdKYXdHVDBJMlRvZHYyQ1Z3MDkzWjJlODFXR1NxRnlIejAxdjFBaGN2T2VWdmFjUGM2Y1JJaVduNW93ZF80d2FBdjlyNjVVdmtWa1FLRXpHUmo5eTZILXdZTTMyV1JyMzBlOU9MRTNKUU5POV9kNjRTRmIwSjZHa2VxUmtnNkVXc2xqN1JYLVU1VlhrS1BtMzNpS3c5dGU2NVBqQUNnZThRVDBYVWZEaUx5a1pGeUdpZ09ZMS1TVDFxUlE1eUhMTXhEc3BPRjFXd1lMQ2c2b3hocTlWMm55Z0U1cUJ2ZnYyWUtFaDdjM1dWNjJrYkw3UXJ2d0xkMHVRZ1FwYmUza3E3dGJzcC1lNWlud3cyY0YxQzByeHNScGZJRHlJMmg4b2xHMi1RQUZkWmtlMUlmaE1FZmNfdUdXX2pqSGJSWXVzYnZCRnpKMDdaOVJsVnFMR1A2WXBnTDFsRTFOY09xUVJyYVdxckdDTWZ6SzZMVENQSl93aHJRam9WTzdVRDJIUEVnUjZ2S3U3cWlmTmo3UjE5OUJuRi1EZmlnbk1TYTFKZkZadDNuVXVZOEhMUXRoUzN4MUMxOE50d3dsaDVuNGxYS3d5MERHenljbVNweE05QkdPNTFRckFmSXRfY0xHbUlzMlJ4MzMyeDRIdEZ3Z05nRzFBazNIUno4TlJ4V3lhNWhjb1NoYURXekhES2gyOVp3Vm4wYXVzeWJpal9uNlFGcnZZbjRSOHdPNlRQV3FrS09JcHkxc1lQNWxyNDc1anZSRVZGaFdCWDBiUXdJdnNlM0Q0a0dFQzgzU3FWYkhxY3phZTNwOFNxaG5tQW5ZYzBIbWp4clJfZUMzT0hYVFBGUFZmNDlVWHdrQjIwY1lvcjJ1dzBaTzJ2TUg3S1QwcjBSWDBQVy1qcGpORFpjSGRSNVVCMXFacGlWLWxaYkw0eF9IZW14aWUxY0RPOHNQSXhIOElUSWtOV0tTR1N2eWdraHBBbGl2RzVEZXJObElkeFE2c0tHQ3RtMDEyT2xjN2thaVFaNHh0TjR5ZVpPU2xyS0s0OTlIcWhObzhkNTNsbFFfMW5ncWlHbzhUSDlzWkFrclYwclc3dkJOSF92UlhBdTc2MnlpZGhZUURYYXJXSEFUMm9DU2hEN1lOdnotekoyZGtEajJMcW5CdFNCWFh5T2xsM3o0ZWFITDd2MDZ1QTgxMVBKQU5YZUdoenNaNFVQQUQ2Q0E4cGlxSHB4WGkxODRHNEJETVU4S2VHeHZLWnJiUlNOT2pTOFNrQUJKZERfSklIZ1RhNEFhNzdPUmNZcVY3OWZ5djFZVHNma2lLR2NUYzZIUjZzUVpsamt2U0NQNjdtTTRGUHRqTHlfX1pDQlNwdnRSVWd5UlpNM1dSOUViNHkxa29uRG4zUjMzN2lpSzdfbGtIa1UtZ21VbUpZUVdnUjYzT01pZUdRUHdNR3BSZXlRWE5yckJVTDN2Z2JYdjlac1ZDcDh1NHRwQjBleXJvUXgxZC1KSWJvOWVyR1VlX0ZzU1Fpd0tIaGFIUk02Nzh5dENkcHJFbDBWeG92TFVrX0xNcTFjN1R4MG5jbFl2WE4yUjhEMXNhU2FibkJSd19CU2tZMFNMSXdhb2RpY2o2ZzdLd0ZfMXB2eThhNF9LbnJNLUNkenBvdHA0aTd4QUJuY2JRVUEwWkpsYlp1elRpR0F4ZjFnclk1Z0dZOTVoWi1XZG1lOWlSazBHRTJGN3d4MlJyLUVvS3lZRjNjak0xMWt6MWFmME9fNFdyOXJoU3JrX1NHU3l2a3ZCTW9NZ0xOX0tSS1BlTjlqUnpwRlVST2VnN2NCbGlhdy1odnZhY2lCeDN2UWRqTE5jTldQdU1UbzVmME1QbmU4TUtXcFBoWjBySElMaEVuYW1pcG82X3pzNjczcE9ma09FS0JWWE9mUDEzR0UwS25SWTBab2JPLWRub254LVdBY1dodFZvX08xbkwwTWE5ZXFMMURhRGhJU0JNbVRIM1hkY2dDTnF0emIwcVMtS1l5Mk9zRzZOakRDVEM1aEI3MXIwU09WMUprNFV2QjdYemxTTW9YUXJnTzF2ZFVwSGtxaVhUM1RJZmlQMWRKcDEweDlSMlp5R0lzUzljQUtNMEZyMGRxQmJmQy16NTJpcWZweW4zUVVqb1Fld2hPYnJwUEZGOF9lUmVNRlIwSXZjUkxnMHpwek56UzU1N1pkQkZhemxNTThLcnkwN2QyUDAyTnZtclUtN1ZjOW8wZm1qem9WOHVVTG9PMkJHdmFRdnFJNmtBTmQ5VWo1X2JkY2NVUzBhcklzcGFZa1UtUXQtNnQxYU5YUUdGZEtUbFMwSVowek54bkNIZWRySEE4SkYtOFg3d1ZpRW1McXJQbU1Sd25sbWx3SnhxLVlReWMydmdUallSbUxCVU5TS3VrZkJsa2VnMmlCRWdySksxVlNyRWswX0ZvOXkzV1EwVlZuNXhEZXlGc1JuWDI4Tkl6alFQLVNXaHhYbzdPYm5YY1cxZHlWNE1fYjdzM096cEMwOTJWcGZYQkpaTDhBeHgxNGY2TmJzTEpXLW95VEdsaTJFb2FCZHJKQ2JkQlNOdWJlbGdRRmU2V2hqSjRGdlNrYVJISjFTT3ltbGFtQmYwaVNDOGM2X1g2SkZORjNmOXYuQjc5SDJvbVIyTU52SndydHVzclJ4UQ + responses: + 200: + body: + attributes: + created: 1493938113 + enabled: true + exp: 1893484800 + nbf: 1262332800 + recoveryLevel: Recoverable+Purgeable + updated: 1493938113 + contentType: text + id: https://kv-sdk-test.vault-int.azure-int.net/secrets/SecretBackupRestoreTest/01ddd6e3a0d34d35bb5bccecb1251837 + x-codegen-request-body-name: parameters + /secrets/{secret-name}: + put: + tags: + - Secrets + 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.' + operationId: SetSecret + parameters: + - name: secret-name + in: path + description: The name of the secret. + required: true + schema: + pattern: ^[0-9a-zA-Z-]+$ + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The parameters for setting the secret. + content: + application/json: + schema: + $ref: '#/components/schemas/SecretSetParameters' + required: true + responses: + 200: + description: A secret bundle containing the result of the set secret request. + content: + application/json: + schema: + $ref: '#/components/schemas/SecretBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + SetSecret: + parameters: + api-version: "7.0" + parameters: + value: mysecretvalue + secret-name: crpsecret + responses: + 200: + body: + attributes: + created: 1493938459 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1493938459 + id: https://kv-sdk-test.vault-int.azure-int.net/secrets/crpsecret/03bcccc7c8cf4546a0e3e21e52560441 + value: mysecretvalue + x-codegen-request-body-name: parameters + delete: + tags: + - Secrets + 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. + operationId: DeleteSecret + parameters: + - name: secret-name + in: path + description: The name of the secret. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: The deleted secret and information on when the secret will + be deleted, and how to recover the deleted secret. + content: + application/json: + schema: + $ref: '#/components/schemas/DeletedSecretBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + DeleteSecret: + parameters: + api-version: "7.0" + secret-name: GetDeletedSecretTest + responses: + 200: + body: + attributes: + created: 1493938433 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1493938433 + deletedDate: 1493938433 + id: https://kv-sdk-test.vault-int.azure-int.net/secrets/GetDeletedSecretTest/b595353d9c39413d80626575b3b5d865 + recoveryId: https://kv-sdk-test.vault-int.azure-int.net/deletedsecrets/GetDeletedSecretTest + scheduledPurgeDate: 1501714433 + /secrets/{secret-name}/backup: + post: + tags: + - Secrets + 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. + operationId: BackupSecret + parameters: + - name: secret-name + in: path + description: The name of the secret. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: The backup blob containing the backed up secret. + content: + application/json: + schema: + $ref: '#/components/schemas/BackupSecretResult' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + BackupSecret: + parameters: + api-version: "7.0" + secret-name: testsecret + responses: + 200: + body: + value: KUF6dXJlS2V5VmF1bHRTZWNyZXRCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUppTlRjMk5ESTVaaTB5TlRZNExUUTFZbVV0WW1aaFlTMHpOMlZrTURkbVl6QmpPREVpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLmhERDdfVW9aU1ptR2JYN1dYUTU5WDkxZ0FQb05kdDcwZE1BbmgzbjQ3eWNjbkRNOU5vTm1hY0NHZmlNeUwxU0FlZDk0UjhBNDAtVE81TDNfQ05Qal9pdWIyaW03Z21nbHNPNnFFUVVIWU1tOEh2Wl9odFRrdEl4QzRPWEowYTB0S2hscnczZlBvVVFDZHVGcFg0ekEzYTR4VTZXTUNfYjZZVXZqUjZnSGM5TFRUR2tIazh1RTY0aVQ4cmt5RDRrU3RNcXhnU2lfRVZwUUdjWGdfNE9wQ1dBOUFha0N1NkpybGRaQW9BLUtXTWpQbGhaWHFYWGMyVkJlbUJjRTQ1YzY3QWhqYjJrSi1uQ1c5dHBjWS1JZ3JEUHFzWkswOS1WbHVtcl9SbzQzcG5FeW5jVFpTdzZlX1h6VnN0dUFOZHdiM0E2OVR1c1hfYkJKZ0J2SGQ4cDJSUS5WMTlhMVRacjZ2UjJHdEVaWGtOOXJRLmhwMU5IMmwtZklWbVgwWlNfTlRzekJfUEs1aktDUU5rSnJyRUhRQmZjQ2VjdHhmVU5uVlB6MVBqRWNDblZuV0pCUk4zTlFKZm01MjFLRHp1MzBIVUFEUGVmVHJyMFVFS2x5QTM2cThoWFY3VTdoQ0dHNk85NVpYclRsZlVENDI5RTNTNTQxdVBmWGpGR2cxbHlucFNTNnAtVkFzaXFlY1lpQWNuM1hhNzRhUm5xS3N3ZzhyU1ZOX09hSVU3ak1VVUhYZWY1ZmN0NlFrdWFfYkt6Z2dtR2ZiT2RTdVdNRmVQaF9mMkJMUFNGN3k1NThEMFZxSVlNY0JJR0dMU3BQUU93Q094OFF3Y3NVUEp4ZDFuWkVYYjRVNEJZYlhBcmFMX0NwekYxZlhYWVBsdmVUSGdKNVdrR28tWXNJVzAtT3ZqVGdLN2hIamxpR1psd29HOVUtbTJSVDZfbkhseHhVRFMyY3JseGNmay1OOTlXd0tEdUxFMTM5ZE1mN2RCSEl1aTdxd0RXdm1TN2JMTHYzM05Wd19XSl9DT1VGQjgycy1ELXk0UEdIRzVackhsSDgxa25mLVpRblU0SmZfY2lhMWhmWlY3ZFMxb21UZDQtNnJwZmpTMGxFT3VfZTQ5bUpYUGFpZ0hyLWFQYkFzTXJJQ2JvOUVIR2IzMXJ5SlR2QXF2ZmJDbU10bkdLUDV6aUNiZFh3SU5ONzBJTk5lZnJLWGZkZFBUd0RSV3d1ZkxCcGNlU0U0SG5EWVZVQmdkMDl4UUZidG12UDhhTXhhUlpGSTNpWG1fbmpCNmZfdlNhZUNUakdVYVVuRE1QQkdOQWQ5T2xVX3dvUnMtalNCVnVqd1FQSGlGcm5RWElkXzBRdXRYSm54cTU4aUtlTGJvNDJtOHgwaXBRcnB4aEZoUDdHNmZOWXAwVmxXR0RxZ1Q0VlpPQkZsZWRKUU0yaDQtb2xTbXdtUms0M0Y1cjdKd3h4aENqU1JReWx1MGEyQ0ZONWMyZjIxTElZaFliLWNReWFXMDNpV3hsb04zWld5cDJIb1FlUmZPR3lXUzBiU2NBT3JndGpBYnJaUFIwMGRRNnpSOHNBczFYUzh3dzBlaVczbFpsdjJwVWFxOVpTeVhnTS14b2NTOS1ueXRaWGtWWlUwX2dDVXJBV0ZKNG5XdW9oTGM1RkkyRWFQNWR0SXVWa3dnbXlsR1gtYk9ZeHp3dzVGYmI1V3VEbnJ5aDBMSnVic3Q4VXdLdnl3bk1jQ3duMjZSVTNxQVRudGJubVhJS0FyeGkwMldQVk9oTXdpUWZuX2h1TWk5emp3MEVuaXNWdktNWUNnR2xqNWlGZW5Tc0FKUXBiLUY4bng3OWFJQlJaTUc1a0huUDR5dGxmNm9FTkRsRXNJY21aeEtOdEIzcmJPdVROYUhLTXZBNmxSNzlMMDJZSTZrcEdrUUZnaHpIaTBjTWkwbFdCejRTM1AzUEMzZElZSVlQZ0Q2S05kT2FLWHkta0dWdUlsWFNmVlVrMnpzM0NBeTJhZEJjV0NMV094ZkRoQnlwNTl4MHpBRExvdnZySHRLOWF6TGN3N0lTbVl6eUhYMkpobVdReUYtTFd1VzhfcW41SkFVYlB5Z0RTRDYyMi1PTGZQVDZmc2VTWUVBUTFLVWRwZTFnSV9hZWxVT3FaRWN1aE5SckU1YUp0LTN5TEVLVWZIWXF6WTlGbHJrUE5MUC03Y2xRbmEySEhfZmMzZV9LTGtGUDFhQTJjM0RVaERseGhsTzB2bFVmV0c5eXpXaDNZN0NmRFlFMlBaUzZBcFBlYy0wa1NDcEVKMmtCcnFzWG4yeDJDX0FDdTdCTTVGZXNJQkN0M2NqSEdQSVVQRnEteGVmT0RCXzBQcXZDTXpBOHg5Zm10Ny1sNHhVQlJaa0dtZExhZFoxVzdFUXRNRVpsSWMtbDF1V1UzTU15cFZpVWR0OWxJUHVQVUEwc1NrbWxrTGhNSjgyNE5QN0hyVi01dC1ZNDcxaWVKMHdEUjFxMmU4MU8yazdNeTFlTDY3TlY4OVBHYU81SVR5WG1ueUVXMGtVbl9qa3l1UVRkV3dsS09HZVZIYkJWNFpxSXZHWjdQUS02TEE5eXc3a0dyZFRhVFZXOEdOOV9GY1c2VUhjbzA0U3dqTzY2S2x4VlFJWWpBdEZPZlBjWW5xNzF1RndyQS1UZHVDZG1sUFBHOVpjc2tiQmdrbF8wVk90dmhuc0pwYXZKZ2Zka0d3OF9qMkQzd0Jzemd0VndHNk9nNW16eVFwM2pFc0w3UmNtcXd6WFBOaDdKYXdHVDBJMlRvZHYyQ1Z3MDkzWjJlODFXR1NxRnlIejAxdjFBaGN2T2VWdmFjUGM2Y1JJaVduNW93ZF80d2FBdjlyNjVVdmtWa1FLRXpHUmo5eTZILXdZTTMyV1JyMzBlOU9MRTNKUU5POV9kNjRTRmIwSjZHa2VxUmtnNkVXc2xqN1JYLVU1VlhrS1BtMzNpS3c5dGU2NVBqQUNnZThRVDBYVWZEaUx5a1pGeUdpZ09ZMS1TVDFxUlE1eUhMTXhEc3BPRjFXd1lMQ2c2b3hocTlWMm55Z0U1cUJ2ZnYyWUtFaDdjM1dWNjJrYkw3UXJ2d0xkMHVRZ1FwYmUza3E3dGJzcC1lNWlud3cyY0YxQzByeHNScGZJRHlJMmg4b2xHMi1RQUZkWmtlMUlmaE1FZmNfdUdXX2pqSGJSWXVzYnZCRnpKMDdaOVJsVnFMR1A2WXBnTDFsRTFOY09xUVJyYVdxckdDTWZ6SzZMVENQSl93aHJRam9WTzdVRDJIUEVnUjZ2S3U3cWlmTmo3UjE5OUJuRi1EZmlnbk1TYTFKZkZadDNuVXVZOEhMUXRoUzN4MUMxOE50d3dsaDVuNGxYS3d5MERHenljbVNweE05QkdPNTFRckFmSXRfY0xHbUlzMlJ4MzMyeDRIdEZ3Z05nRzFBazNIUno4TlJ4V3lhNWhjb1NoYURXekhES2gyOVp3Vm4wYXVzeWJpal9uNlFGcnZZbjRSOHdPNlRQV3FrS09JcHkxc1lQNWxyNDc1anZSRVZGaFdCWDBiUXdJdnNlM0Q0a0dFQzgzU3FWYkhxY3phZTNwOFNxaG5tQW5ZYzBIbWp4clJfZUMzT0hYVFBGUFZmNDlVWHdrQjIwY1lvcjJ1dzBaTzJ2TUg3S1QwcjBSWDBQVy1qcGpORFpjSGRSNVVCMXFacGlWLWxaYkw0eF9IZW14aWUxY0RPOHNQSXhIOElUSWtOV0tTR1N2eWdraHBBbGl2RzVEZXJObElkeFE2c0tHQ3RtMDEyT2xjN2thaVFaNHh0TjR5ZVpPU2xyS0s0OTlIcWhObzhkNTNsbFFfMW5ncWlHbzhUSDlzWkFrclYwclc3dkJOSF92UlhBdTc2MnlpZGhZUURYYXJXSEFUMm9DU2hEN1lOdnotekoyZGtEajJMcW5CdFNCWFh5T2xsM3o0ZWFITDd2MDZ1QTgxMVBKQU5YZUdoenNaNFVQQUQ2Q0E4cGlxSHB4WGkxODRHNEJETVU4S2VHeHZLWnJiUlNOT2pTOFNrQUJKZERfSklIZ1RhNEFhNzdPUmNZcVY3OWZ5djFZVHNma2lLR2NUYzZIUjZzUVpsamt2U0NQNjdtTTRGUHRqTHlfX1pDQlNwdnRSVWd5UlpNM1dSOUViNHkxa29uRG4zUjMzN2lpSzdfbGtIa1UtZ21VbUpZUVdnUjYzT01pZUdRUHdNR3BSZXlRWE5yckJVTDN2Z2JYdjlac1ZDcDh1NHRwQjBleXJvUXgxZC1KSWJvOWVyR1VlX0ZzU1Fpd0tIaGFIUk02Nzh5dENkcHJFbDBWeG92TFVrX0xNcTFjN1R4MG5jbFl2WE4yUjhEMXNhU2FibkJSd19CU2tZMFNMSXdhb2RpY2o2ZzdLd0ZfMXB2eThhNF9LbnJNLUNkenBvdHA0aTd4QUJuY2JRVUEwWkpsYlp1elRpR0F4ZjFnclk1Z0dZOTVoWi1XZG1lOWlSazBHRTJGN3d4MlJyLUVvS3lZRjNjak0xMWt6MWFmME9fNFdyOXJoU3JrX1NHU3l2a3ZCTW9NZ0xOX0tSS1BlTjlqUnpwRlVST2VnN2NCbGlhdy1odnZhY2lCeDN2UWRqTE5jTldQdU1UbzVmME1QbmU4TUtXcFBoWjBySElMaEVuYW1pcG82X3pzNjczcE9ma09FS0JWWE9mUDEzR0UwS25SWTBab2JPLWRub254LVdBY1dodFZvX08xbkwwTWE5ZXFMMURhRGhJU0JNbVRIM1hkY2dDTnF0emIwcVMtS1l5Mk9zRzZOakRDVEM1aEI3MXIwU09WMUprNFV2QjdYemxTTW9YUXJnTzF2ZFVwSGtxaVhUM1RJZmlQMWRKcDEweDlSMlp5R0lzUzljQUtNMEZyMGRxQmJmQy16NTJpcWZweW4zUVVqb1Fld2hPYnJwUEZGOF9lUmVNRlIwSXZjUkxnMHpwek56UzU1N1pkQkZhemxNTThLcnkwN2QyUDAyTnZtclUtN1ZjOW8wZm1qem9WOHVVTG9PMkJHdmFRdnFJNmtBTmQ5VWo1X2JkY2NVUzBhcklzcGFZa1UtUXQtNnQxYU5YUUdGZEtUbFMwSVowek54bkNIZWRySEE4SkYtOFg3d1ZpRW1McXJQbU1Sd25sbWx3SnhxLVlReWMydmdUallSbUxCVU5TS3VrZkJsa2VnMmlCRWdySksxVlNyRWswX0ZvOXkzV1EwVlZuNXhEZXlGc1JuWDI4Tkl6alFQLVNXaHhYbzdPYm5YY1cxZHlWNE1fYjdzM096cEMwOTJWcGZYQkpaTDhBeHgxNGY2TmJzTEpXLW95VEdsaTJFb2FCZHJKQ2JkQlNOdWJlbGdRRmU2V2hqSjRGdlNrYVJISjFTT3ltbGFtQmYwaVNDOGM2X1g2SkZORjNmOXYuQjc5SDJvbVIyTU52SndydHVzclJ4UQ + /secrets/{secret-name}/versions: + get: + tags: + - Secrets + 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. + operationId: GetSecretVersions + parameters: + - name: secret-name + in: path + description: The name of the secret. + required: true + schema: + type: string + - 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. + schema: + maximum: 25 + minimum: 1 + type: integer + format: int32 + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: A response message containing a list of secrets along with + a link to the next page of secrets. + content: + application/json: + schema: + $ref: '#/components/schemas/SecretListResult' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + GetSecretVersions: + parameters: + api-version: "7.0" + maxresults: "1" + secret-name: listsecretversionstest + responses: + 200: + body: + nextLink: https://testvault1021.vault.azure.net:443/secrets/listsecretversionstest/versions?api-version=7.0&$skiptoken=eyJOZXh0TWFya2VyIjoiMiExNDQhTURBd01EWXlJWE5sWTNKbGRDOU1TVk5VVTBWRFVrVlVWa1ZTVTBsUFRsTlVSVk5VTHpGRU5EazJNa0l4UlVRM09EUkVRa1k0T1RsR016TXpNa1UwTnpZNFFqY3dJVEF3TURBeU9DRTVPVGs1TFRFeUxUTXhWREl6T2pVNU9qVTVMams1T1RrNU9UbGFJUS0tIiwiVGFyZ2V0TG9jYXRpb24iOjB9&maxresults=1 + value: + - attributes: + created: 1481851699 + enabled: true + updated: 1481851699 + id: https://testvault1021.vault.azure.net/secrets/listsecretversionstest/11a536561da34d6b8b452d880df58f3a + x-ms-pageable: + nextLinkName: nextLink + /secrets/{secret-name}/{secret-version}: + get: + tags: + - Secrets + 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. + operationId: GetSecret + parameters: + - name: secret-name + in: path + description: The name of the secret. + required: true + schema: + type: string + - name: secret-version + in: path + description: The version of the secret. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: The retrieved secret. + content: + application/json: + schema: + $ref: '#/components/schemas/SecretBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + GetSecret: + parameters: + api-version: "7.0" + secret-name: mysecretname + secret-version: 4387e9f3d6e14c459867679a90fd0f79 + responses: + 200: + body: + attributes: + created: 1493938410 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1493938410 + id: https://kv-sdk-test.vault-int.azure-int.net/secrets/mysecretname/4387e9f3d6e14c459867679a90fd0f79 + value: mysecretvalue + patch: + tags: + - Secrets + 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. + operationId: UpdateSecret + parameters: + - name: secret-name + in: path + description: The name of the secret. + required: true + schema: + type: string + - name: secret-version + in: path + description: The version of the secret. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The parameters for update secret operation. + content: + application/json: + schema: + $ref: '#/components/schemas/SecretUpdateParameters' + required: true + responses: + 200: + description: The updated secret. + content: + application/json: + schema: + $ref: '#/components/schemas/SecretBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + UpdateSecret: + parameters: + api-version: "7.0" + parameters: + attributes: + enabled: true + contentType: myContentType + tags: + mytag: myvalue + secret-name: crpsecret + secret-version: 03bcccc7c8cf4546a0e3e21e52560441 + responses: + 200: + body: + attributes: + created: 1493938459 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1493938459 + contentType: myContentType + id: https://kv-sdk-test.vault-int.azure-int.net/secrets/crpsecret/03bcccc7c8cf4546a0e3e21e52560441 + tags: + mytag: myvalue + x-codegen-request-body-name: parameters + /storage: + get: + tags: + - Storage + description: List storage accounts managed by the specified key vault. This + operation requires the storage/list permission. + operationId: GetStorageAccounts + parameters: + - 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. + schema: + maximum: 25 + minimum: 1 + type: integer + format: int32 + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: A response message containing a list of storage accounts along + with a link to the next page of storage accounts. + content: + application/json: + schema: + $ref: '#/components/schemas/StorageListResult' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + List Storage account: + parameters: + api-version: "7.0" + vaultBaseUrl: https://storage-sdk-test.vault-int.azure-int.net/ + responses: + 200: + body: + nextLink: https://{BaseUri}/storage?api-version=7.0&%24skiptoken= + value: + - attributes: + created: 1490738386 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1490738386 + id: https://storage-sdk-test.vault-int.azure-int.net/storage/listStorage01 + resourceId: /subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc1 + tags: + tag1: val1 + tag2: val2 + - attributes: + created: 1490738386 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1490738386 + id: https://storage-sdk-test.vault-int.azure-int.net/storage/listStorage02 + resourceId: /subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc2 + tags: + tag3: val3 + tag4: val4 + headers: {} + x-ms-pageable: + nextLinkName: nextLink + /storage/restore: + post: + tags: + - Storage + summary: Restores a backed up storage account to a vault. + description: Restores a backed up storage account to a vault. This operation + requires the storage/restore permission. + operationId: RestoreStorageAccount + parameters: + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The parameters to restore the storage account. + content: + application/json: + schema: + $ref: '#/components/schemas/StorageRestoreParameters' + required: true + responses: + 200: + description: Restored storage account bundle in the vault. + content: + application/json: + schema: + $ref: '#/components/schemas/StorageBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Restore Storage Account: + parameters: + api-version: "7.0" + parameters: + value: KUF6dXJlS2V5VmF1bHRTZWNyZXRCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUkwTXpnMVlqQTNZaTFrTlRRM0xUUXlaVFV0WVdVNVpTMDJNVEJrWXpNNVpHWmhaamdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLk1JeFMyLXh0eHAxekpaZ3ZrTUY3d2pGMWxiLVJyNWFrbHFMLXpBaVVOODJKZFJNUDFwak5iS0phRktIOXBRcDg4ODBKeERDSmdESUZHc19OOGlnYmdIZ0Q1c0xVMi1pRzdKM29Hc00taFRMb05oaUd6aGY1YVREakYzWjZpZVhxcFMzVFVOVUFkeFhpTkpIYk94YjBmWHNtcWFtNnA0dXJ3Yzl3Qnk1c2pwRnJheHNRM3NRcHBDLXZybXlVZExaelJIWS0xYnhwaFQxVUdiS0Zsd1dSODU5TmFSQ1BZOFhDWUVrX0hxNnc5S0lWSXRTTlRYYWYxUWFzUDJob0NHT19PMzkzVUNzWGp0NzRtOURqdi1vTHRoMUl6TU5sSWp0STg2MTRhTGs0RTFMUXd6ZUx2X2Y1cndKeXJOWkF1c3VWRlRieFp1Zzh6T3BfYTdCOGhGSEJyQS5rc3pPdTN3blllb1ZUUjRLc2dqMUxBLmYyY3huVE1BbU13Ty1RcmdHSUFYUFN2bEdZUDRYWmJvMFVFOGxtY2xZa3ZhRE5ab3E0Wm41MVNKTDNuUFZsVnBaRFlrUmlpd05BSUxvRS12QWtVbmZoLUczOWo3RHhqWm1zZW02bXBmOWxoZjBnZFFNTDdmejBqRDZ0dW1xSVFaWUhFalV3VG5xdDloeEw5N0lnUUV0WmtFV0VnUEJETnJJNFpYWXdNU2ZyR0FfdkgzYXU1MWpabDFTWjlGajJsTHpEblNqbFd0U05QSzc3X2RwbUxrTXNCSmMtamRteUpxYmVxdmdRcGFTSUNsOXpUUXFQM2RxN1VQV2c1R1ZDNmlNZjlTcnBoUVRKX1V2bnp4LWk4ZWR6ZUppd2hYNW9HQ043RDNDWjkxTzNLQkhmYklOX1VvQWlQVWxzazFveU9KOEVjMk5mbHhOaFlrNFRKUTFBN2xnbXlLRlNQeVMyaFlwUDA2VEpTb0JUenVTQk5OTVdmT0RaTDFfV3V5eThJcDktdlVHMW5JOENDQ1hIeEVVN2FVLW5nRVR5aFBfbWt3Q2FGLWx2WTNqZlV1Z29wSllLR3VscXZadk1VZHhLYU1oemR2a05ubFdGeXlJNXdiRUdZcWgzWEJ0MS11TThrOFZVTDdQallzVUt4S1dYbzBMblJPZmFTbTZpTm9ZTmFOTm5YbF9fVW9rd05fSWM0eVVYR3RuMFhUcTZ4anQwZUpEajlET3FyYmdiLTZoclltRmxLTUNqalVxSGtLU1VPaHVYSE9jOFdFa0JEM1hiR29idi03b3c0c0gyN0YxbHh2UVh0OVgtOUl1akN5dHBMYmt6YnJVdHZJT2puY19xTUNjMXFFTG1wZHJCTGFoMzVmWHZQZXotVk9zSXBNOGdsekhWUUgyWWZHU0UwaTJqVkxpVllkZlFHeDNwdTZPamdUc1hPUm5acldlbFExMVlNbUJkWlVqWFNlZkVlQkxuT1lBbUNtYWM0dHNTa2JHTXZzQm92OWNEc1NRLWlsQUhsT1Fsanp3Umt1bnIxdk1ITlFhRDJLUEE5eGxxZ2NKU3FGT3d3RzROSzBxamhyb0NoZDFxM2RHR2V3U2tTd2xZbW44ZlM0VEJ5VjFMYmtWb2NZZHpiWDhiZG54dHRhVDhKS0pUbjJETWxjVFpvR1hFbWQzN2ZZVnlaNm5uMXdxZExtVW9XLW5OQXc3T3RLV3hyMXJUNV9qOHZjRGhTWk1HdTF6aV81NDEyVTRLcG01dlQ3c3BpWXA4aDl3Rk5scmFjYnVjZGVlaS1zMWR6cDlqWGo2NjRuWWxoYzNjOHJubjJ4ZWlna09YLTNUSWxnbmdxeXpJWG5ROHU0dTc5TC1ObXk1VFNjLU4wTnJVTUxQVE51MnhsUlE4Y0VLT0h4QkJGQV80Nk1yVXlhbjUwODFMSlYtTVVyaXAycl9tS3FJRjJET2wxS2V1aGg5am9PeFVybUk0T19MYkduVjJTbUdoZEZSd3FxUS15U2pxcFE2OFBza3hlQmxTdDZnX28tLVl6Qkg3dDI4V3ZYYzdIT3paNFBwa0psTjVmWFRwOXgtOGNuTGptcG5Pc2hUZWxTUXRYaDMwcTU3LXJZbVJzc2t2cFZfaTZFX2JUMTk2VWtTOHo2WUp1QXh3LXdlZ2tPY1ZITUxkeW5vaDU2UUtuWDhMVFdHdjhqWWNQazlaSlNSbXljTExOcWNtRnpUU1JEbzBXMXBkQVJXY2tqRFM2VFZIdTlHSElsTG9oRnpONEU1T3FqdUMxRjEwSFZjUGxoNTc5UmczWk1SNWJoVjltSEZNOFhJZU9HTHAxZFkxbnNLY2dqRVVlUW5qcF9za0RzanJZMVVncXRkTTVNVWhNSHlEZlhaZ3libk1jSDVRaml0YjdWZktrQk1YcGRwU3pLQWx0WDNjelIwODRPVm5nVGtiV2JZQURDTUQ2N1dlLWM1ZDFONHI2WFdFb2RXelNyWlhyZmc0RVRNNG1UZnV3ZjB0d3NORkRJdW5BWDkwbnZJWm1Ualo2RktpTjBiRnVNWmRpR1NKNTZNUEZMcFd3N3p0dmVmN0xENmhjNHJESXBQbEkwTVlVWTJSLWZGakdaZ29JTmdKMkVuMGFFM0c1V1RySjRxcHhhdHB4MVk3ZUgzOUk3WTYzcEJFWEtkRWIwTmstM0tnM0ljbDJPSkp6SU1fM1VHSlJTTmRQWGlfV3ViNGRTMDV4eURzZTR0d1FXdm9rb1QybHlZNGphNlVOc3lvYWN1eGFsTUZvUFR5dHF4YlVTaXFIMEZab0pWcm84amZja2wyYklmSzRqRzN6TnJIOWU1c3VUVWJDV09wYjczeFNMMG9TLVQ0T1JSNnBRbTZHQk05bFJ0eUhtMHJUMy1sNXc0c2ItNnRDcTM4S3FRdURRTGVTcDI1Rk8zMU1uVE5nTFlUeEUwUEZDT3hmRG1RY3BOOFRoWHBGbzZLNHNrd0dmQkpKTU9BTWtIUWZnMUM0c0V5cS1PLS1FWFhjbVV6QjJGRnR4c1gwR3o0aGJSdTFiUlhXcWMxU0IyUk82d0JsWGdPUmJqZjJlLWJQUFFMdmtGcWR3bFpUTE1kaWVUdjQyQmd1SFd3dzI5OEVqcnNNUXg1WG9aRG11MDFRTzlZSjFmTEYtWjkwWEVOU2p5OTM0M3UyUHhrNjhheG10bnp2ZTdwd3Q3Z0ZMMUoxZlZEd3BqMUtBZDdwdGZoWG4yUzJmT1Bfc3JOM3QxNk1qX29qOUVLQm5VNC1jQ3RLWGRkZS1EWk5zQkNhSGZ1bEtHSkFHYmx1UWs2Yi1kQk5oUS05Z19kajdfcjZub2Z2aDRielEybGlQd1E3M1RTazNiQTdzd2EzclZ5ZTVDTVNlOVotNkVKV1phek1sN0w4VUJ3cFllN0J0eHhUNEVBVGo2SXBvYWhGNTgtRHpiMmRsc1c1ZDZIWmpYZUNMTGtVRmQ5Mll3eDBibFlCanc4eTVzM040OEJMME84WG51ak42c0F0eG04Sm9hWXFVUUd3LXNBS1pTZHAzNk1GNlZXYkpUcHBoZHQ2aEhWQjFoRzdpSGN1STBTRzY0WjczNXEzZ0tSYXFHdzhIUXItSWNyeks0VEQwenk5b01NMHpRLVFBSE1PdzAyX0ozU3pVQWZ1bzFWNU42ajB0VGsyeEt0TFp3cmlHOHJNRl9NWTJrN09mdkxqNFlCb3VNN2lBNVM4LnNfM0VabFhIb1lrV283ZzdpRUp1bHc + storage-account-name: readStrg01 + vaultBaseUrl: https://storage-sdk-test.vault-int.azure-int.net/ + responses: + 200: + body: + activeKeyName: key1 + attributes: + created: 1490738386 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1490738386 + autoRegenerateKey: true + id: https://storage-sdk-test.vault-int.azure-int.net/storage/restoreStrg01 + regenerationPeriod: P30D + resourceId: /subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc + tags: + tag1: val1 + tag2: val2 + headers: {} + x-codegen-request-body-name: parameters + /storage/{storage-account-name}: + get: + tags: + - Storage + description: Gets information about a specified storage account. This operation + requires the storage/get permission. + operationId: GetStorageAccount + parameters: + - name: storage-account-name + in: path + description: The name of the storage account. + required: true + schema: + pattern: ^[0-9a-zA-Z]+$ + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: The retrieved storage account. + content: + application/json: + schema: + $ref: '#/components/schemas/StorageBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Get Storage account: + parameters: + api-version: "7.0" + storage-account-name: readStrg01 + vaultBaseUrl: https://storage-sdk-test.vault-int.azure-int.net/ + responses: + 200: + body: + activeKeyName: key1 + attributes: + created: 1490738386 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1490738386 + autoRegenerateKey: true + id: https://storage-sdk-test.vault-int.azure-int.net/storage/readStrg01 + regenerationPeriod: P30D + resourceId: /subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc + tags: + tag1: val1 + tag2: val2 + headers: {} + put: + tags: + - Storage + description: Creates or updates a new storage account. This operation requires + the storage/set permission. + operationId: SetStorageAccount + parameters: + - name: storage-account-name + in: path + description: The name of the storage account. + required: true + schema: + pattern: ^[0-9a-zA-Z]+$ + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The parameters to create a storage account. + content: + application/json: + schema: + $ref: '#/components/schemas/StorageAccountCreateParameters' + required: true + responses: + 200: + description: The created storage account. + content: + application/json: + schema: + $ref: '#/components/schemas/StorageBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Set Storage account: + parameters: + api-version: "7.0" + parameters: + activeKeyName: key2 + attributes: + enabled: true + autoRegenerateKey: true + regenerationPeriod: P15D + resourceId: /subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc + tags: + tag1: val1 + tag2: val2 + storage-account-name: setStrg01 + vaultBaseUrl: https://storage-sdk-test.vault-int.azure-int.net/ + responses: + 200: + body: + activeKeyName: key2 + attributes: + created: 1490738386 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1490738386 + autoRegenerateKey: true + id: https://storage-sdk-test.vault-int.azure-int.net/storage/setStrg01 + regenerationPeriod: P15D + resourceId: /subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc + tags: + tag1: val1 + tag2: val2 + headers: {} + x-codegen-request-body-name: parameters + delete: + tags: + - Storage + description: Deletes a storage account. This operation requires the storage/delete + permission. + operationId: DeleteStorageAccount + parameters: + - name: storage-account-name + in: path + description: The name of the storage account. + required: true + schema: + pattern: ^[0-9a-zA-Z]+$ + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: The deleted storage account and information on when the storage + account will be deleted, and how to recover the deleted storage account. + content: + application/json: + schema: + $ref: '#/components/schemas/DeletedStorageBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Delete Storage account: + parameters: + api-version: "7.0" + storage-account-name: deleteStrg01 + vaultBaseUrl: https://storage-sdk-test.vault-int.azure-int.net/ + responses: + 200: + body: + activeKeyName: key1 + attributes: + created: 1490738386 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1490738386 + autoRegenerateKey: true + deletedDate: 1490760000 + id: https://storage-sdk-test.vault-int.azure-int.net/storage/deleteStrg01 + recoveryId: https://storage-sdk-test.vault-int.azure-int.net/deletedstorage/deleteStrg01 + regenerationPeriod: P30D + resourceId: /subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc + scheduledPurgeDate: 1490790000 + tags: + tag1: val1 + tag2: val2 + headers: {} + patch: + tags: + - Storage + description: Updates the specified attributes associated with the given storage + account. This operation requires the storage/set/update permission. + operationId: UpdateStorageAccount + parameters: + - name: storage-account-name + in: path + description: The name of the storage account. + required: true + schema: + pattern: ^[0-9a-zA-Z]+$ + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The parameters to update a storage account. + content: + application/json: + schema: + $ref: '#/components/schemas/StorageAccountUpdateParameters' + required: true + responses: + 200: + description: The updated storage account. + content: + application/json: + schema: + $ref: '#/components/schemas/StorageBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Update Storage account: + parameters: + api-version: "7.0" + parameters: + activeKeyName: key1 + regenerationPeriod: P10D + storage-account-name: patchStrg01 + vaultBaseUrl: https://storage-sdk-test.vault-int.azure-int.net/ + responses: + 200: + body: + activeKeyName: key1 + attributes: + created: 1490738386 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1490738386 + autoRegenerateKey: true + id: https://storage-sdk-test.vault-int.azure-int.net/storage/patchStrg01 + regenerationPeriod: P10D + resourceId: /subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc + tags: + tag1: val1 + tag2: val2 + headers: {} + x-codegen-request-body-name: parameters + /storage/{storage-account-name}/backup: + post: + tags: + - Storage + summary: Backs up the specified storage account. + description: Requests that a backup of the specified storage account be downloaded + to the client. This operation requires the storage/backup permission. + operationId: BackupStorageAccount + parameters: + - name: storage-account-name + in: path + description: The name of the storage account. + required: true + schema: + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: The backup blob containing the backed up storage account. + content: + application/json: + schema: + $ref: '#/components/schemas/BackupStorageResult' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Backup Storage Account: + parameters: + api-version: "7.0" + storage-account-name: backupStrg01 + vaultBaseUrl: https://storage-sdk-test.vault-int.azure-int.net/ + responses: + 200: + body: + value: KUF6dXJlS2V5VmF1bHRTZWNyZXRCYWNrdXBWMS5taWNyb3NvZnQuY29tZXlKcmFXUWlPaUkwTXpnMVlqQTNZaTFrTlRRM0xUUXlaVFV0WVdVNVpTMDJNVEJrWXpNNVpHWmhaamdpTENKaGJHY2lPaUpTVTBFdFQwRkZVQ0lzSW1WdVl5STZJa0V4TWpoRFFrTXRTRk15TlRZaWZRLk1JeFMyLXh0eHAxekpaZ3ZrTUY3d2pGMWxiLVJyNWFrbHFMLXpBaVVOODJKZFJNUDFwak5iS0phRktIOXBRcDg4ODBKeERDSmdESUZHc19OOGlnYmdIZ0Q1c0xVMi1pRzdKM29Hc00taFRMb05oaUd6aGY1YVREakYzWjZpZVhxcFMzVFVOVUFkeFhpTkpIYk94YjBmWHNtcWFtNnA0dXJ3Yzl3Qnk1c2pwRnJheHNRM3NRcHBDLXZybXlVZExaelJIWS0xYnhwaFQxVUdiS0Zsd1dSODU5TmFSQ1BZOFhDWUVrX0hxNnc5S0lWSXRTTlRYYWYxUWFzUDJob0NHT19PMzkzVUNzWGp0NzRtOURqdi1vTHRoMUl6TU5sSWp0STg2MTRhTGs0RTFMUXd6ZUx2X2Y1cndKeXJOWkF1c3VWRlRieFp1Zzh6T3BfYTdCOGhGSEJyQS5rc3pPdTN3blllb1ZUUjRLc2dqMUxBLmYyY3huVE1BbU13Ty1RcmdHSUFYUFN2bEdZUDRYWmJvMFVFOGxtY2xZa3ZhRE5ab3E0Wm41MVNKTDNuUFZsVnBaRFlrUmlpd05BSUxvRS12QWtVbmZoLUczOWo3RHhqWm1zZW02bXBmOWxoZjBnZFFNTDdmejBqRDZ0dW1xSVFaWUhFalV3VG5xdDloeEw5N0lnUUV0WmtFV0VnUEJETnJJNFpYWXdNU2ZyR0FfdkgzYXU1MWpabDFTWjlGajJsTHpEblNqbFd0U05QSzc3X2RwbUxrTXNCSmMtamRteUpxYmVxdmdRcGFTSUNsOXpUUXFQM2RxN1VQV2c1R1ZDNmlNZjlTcnBoUVRKX1V2bnp4LWk4ZWR6ZUppd2hYNW9HQ043RDNDWjkxTzNLQkhmYklOX1VvQWlQVWxzazFveU9KOEVjMk5mbHhOaFlrNFRKUTFBN2xnbXlLRlNQeVMyaFlwUDA2VEpTb0JUenVTQk5OTVdmT0RaTDFfV3V5eThJcDktdlVHMW5JOENDQ1hIeEVVN2FVLW5nRVR5aFBfbWt3Q2FGLWx2WTNqZlV1Z29wSllLR3VscXZadk1VZHhLYU1oemR2a05ubFdGeXlJNXdiRUdZcWgzWEJ0MS11TThrOFZVTDdQallzVUt4S1dYbzBMblJPZmFTbTZpTm9ZTmFOTm5YbF9fVW9rd05fSWM0eVVYR3RuMFhUcTZ4anQwZUpEajlET3FyYmdiLTZoclltRmxLTUNqalVxSGtLU1VPaHVYSE9jOFdFa0JEM1hiR29idi03b3c0c0gyN0YxbHh2UVh0OVgtOUl1akN5dHBMYmt6YnJVdHZJT2puY19xTUNjMXFFTG1wZHJCTGFoMzVmWHZQZXotVk9zSXBNOGdsekhWUUgyWWZHU0UwaTJqVkxpVllkZlFHeDNwdTZPamdUc1hPUm5acldlbFExMVlNbUJkWlVqWFNlZkVlQkxuT1lBbUNtYWM0dHNTa2JHTXZzQm92OWNEc1NRLWlsQUhsT1Fsanp3Umt1bnIxdk1ITlFhRDJLUEE5eGxxZ2NKU3FGT3d3RzROSzBxamhyb0NoZDFxM2RHR2V3U2tTd2xZbW44ZlM0VEJ5VjFMYmtWb2NZZHpiWDhiZG54dHRhVDhKS0pUbjJETWxjVFpvR1hFbWQzN2ZZVnlaNm5uMXdxZExtVW9XLW5OQXc3T3RLV3hyMXJUNV9qOHZjRGhTWk1HdTF6aV81NDEyVTRLcG01dlQ3c3BpWXA4aDl3Rk5scmFjYnVjZGVlaS1zMWR6cDlqWGo2NjRuWWxoYzNjOHJubjJ4ZWlna09YLTNUSWxnbmdxeXpJWG5ROHU0dTc5TC1ObXk1VFNjLU4wTnJVTUxQVE51MnhsUlE4Y0VLT0h4QkJGQV80Nk1yVXlhbjUwODFMSlYtTVVyaXAycl9tS3FJRjJET2wxS2V1aGg5am9PeFVybUk0T19MYkduVjJTbUdoZEZSd3FxUS15U2pxcFE2OFBza3hlQmxTdDZnX28tLVl6Qkg3dDI4V3ZYYzdIT3paNFBwa0psTjVmWFRwOXgtOGNuTGptcG5Pc2hUZWxTUXRYaDMwcTU3LXJZbVJzc2t2cFZfaTZFX2JUMTk2VWtTOHo2WUp1QXh3LXdlZ2tPY1ZITUxkeW5vaDU2UUtuWDhMVFdHdjhqWWNQazlaSlNSbXljTExOcWNtRnpUU1JEbzBXMXBkQVJXY2tqRFM2VFZIdTlHSElsTG9oRnpONEU1T3FqdUMxRjEwSFZjUGxoNTc5UmczWk1SNWJoVjltSEZNOFhJZU9HTHAxZFkxbnNLY2dqRVVlUW5qcF9za0RzanJZMVVncXRkTTVNVWhNSHlEZlhaZ3libk1jSDVRaml0YjdWZktrQk1YcGRwU3pLQWx0WDNjelIwODRPVm5nVGtiV2JZQURDTUQ2N1dlLWM1ZDFONHI2WFdFb2RXelNyWlhyZmc0RVRNNG1UZnV3ZjB0d3NORkRJdW5BWDkwbnZJWm1Ualo2RktpTjBiRnVNWmRpR1NKNTZNUEZMcFd3N3p0dmVmN0xENmhjNHJESXBQbEkwTVlVWTJSLWZGakdaZ29JTmdKMkVuMGFFM0c1V1RySjRxcHhhdHB4MVk3ZUgzOUk3WTYzcEJFWEtkRWIwTmstM0tnM0ljbDJPSkp6SU1fM1VHSlJTTmRQWGlfV3ViNGRTMDV4eURzZTR0d1FXdm9rb1QybHlZNGphNlVOc3lvYWN1eGFsTUZvUFR5dHF4YlVTaXFIMEZab0pWcm84amZja2wyYklmSzRqRzN6TnJIOWU1c3VUVWJDV09wYjczeFNMMG9TLVQ0T1JSNnBRbTZHQk05bFJ0eUhtMHJUMy1sNXc0c2ItNnRDcTM4S3FRdURRTGVTcDI1Rk8zMU1uVE5nTFlUeEUwUEZDT3hmRG1RY3BOOFRoWHBGbzZLNHNrd0dmQkpKTU9BTWtIUWZnMUM0c0V5cS1PLS1FWFhjbVV6QjJGRnR4c1gwR3o0aGJSdTFiUlhXcWMxU0IyUk82d0JsWGdPUmJqZjJlLWJQUFFMdmtGcWR3bFpUTE1kaWVUdjQyQmd1SFd3dzI5OEVqcnNNUXg1WG9aRG11MDFRTzlZSjFmTEYtWjkwWEVOU2p5OTM0M3UyUHhrNjhheG10bnp2ZTdwd3Q3Z0ZMMUoxZlZEd3BqMUtBZDdwdGZoWG4yUzJmT1Bfc3JOM3QxNk1qX29qOUVLQm5VNC1jQ3RLWGRkZS1EWk5zQkNhSGZ1bEtHSkFHYmx1UWs2Yi1kQk5oUS05Z19kajdfcjZub2Z2aDRielEybGlQd1E3M1RTazNiQTdzd2EzclZ5ZTVDTVNlOVotNkVKV1phek1sN0w4VUJ3cFllN0J0eHhUNEVBVGo2SXBvYWhGNTgtRHpiMmRsc1c1ZDZIWmpYZUNMTGtVRmQ5Mll3eDBibFlCanc4eTVzM040OEJMME84WG51ak42c0F0eG04Sm9hWXFVUUd3LXNBS1pTZHAzNk1GNlZXYkpUcHBoZHQ2aEhWQjFoRzdpSGN1STBTRzY0WjczNXEzZ0tSYXFHdzhIUXItSWNyeks0VEQwenk5b01NMHpRLVFBSE1PdzAyX0ozU3pVQWZ1bzFWNU42ajB0VGsyeEt0TFp3cmlHOHJNRl9NWTJrN09mdkxqNFlCb3VNN2lBNVM4LnNfM0VabFhIb1lrV283ZzdpRUp1bHc + headers: {} + /storage/{storage-account-name}/regeneratekey: + post: + tags: + - Storage + description: Regenerates the specified key value for the given storage account. + This operation requires the storage/regeneratekey permission. + operationId: RegenerateStorageAccountKey + parameters: + - name: storage-account-name + in: path + description: The name of the storage account. + required: true + schema: + pattern: ^[0-9a-zA-Z]+$ + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The parameters to regenerate storage account key. + content: + application/json: + schema: + $ref: '#/components/schemas/StorageAccountRegenerteKeyParameters' + required: true + responses: + 200: + description: The updated storage account. + content: + application/json: + schema: + $ref: '#/components/schemas/StorageBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Regenerate Storage account key: + parameters: + api-version: "7.0" + parameters: + keyName: key2 + storage-account-name: regenerateKey01 + vaultBaseUrl: https://storage-sdk-test.vault-int.azure-int.net/ + responses: + 200: + body: + activeKeyName: key2 + attributes: + created: 1490738386 + enabled: true + recoveryLevel: Recoverable+Purgeable + updated: 1490738386 + autoRegenerateKey: true + id: https://storage-sdk-test.vault-int.azure-int.net/storage/regenerateKey01 + regenerationPeriod: P10D + resourceId: /subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Storage/storageAccounts/kvstorageacc + tags: + tag1: val1 + tag2: val2 + headers: {} + x-codegen-request-body-name: parameters + /storage/{storage-account-name}/sas: + get: + tags: + - Storage + description: List storage SAS definitions for the given storage account. This + operation requires the storage/listsas permission. + operationId: GetSasDefinitions + parameters: + - name: storage-account-name + in: path + description: The name of the storage account. + required: true + schema: + pattern: ^[0-9a-zA-Z]+$ + type: string + - 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. + schema: + maximum: 25 + minimum: 1 + type: integer + format: int32 + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: A response message containing a list of SAS definitions along + with a link to the next page of SAS definitions. + content: + application/json: + schema: + $ref: '#/components/schemas/SasDefinitionListResult' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + List Storage Sas Definition: + parameters: + api-version: "7.0" + storage-account-name: listsas01 + vaultBaseUrl: https://storage-sdk-test.vault-int.azure-int.net/ + responses: + 200: + body: + nextLink: https://{BaseUri}/storage/listsas01/sas?api-version=7.0&%24skiptoken= + value: + - attributes: + created: 1490738438 + enabled: true + recoveryLevel: Recoverable + updated: 1490738438 + id: https://storage-sdk-test.vault-int.azure-int.net/storage/listsas01/sas/listStrgSasDef01 + sid: https://storage-sdk-test.vault-int.azure-int.net/secrets/listsas01-listStrgSasDef01 + - attributes: + created: 1490738438 + enabled: true + recoveryLevel: Recoverable + updated: 1490738438 + id: https://storage-sdk-test.vault-int.azure-int.net/storage/listsas01/sas/listStrgSasDef02 + sid: https://storage-sdk-test.vault-int.azure-int.net/secrets/listsas01-listStrgSasDef02 + headers: {} + x-ms-pageable: + nextLinkName: nextLink + /storage/{storage-account-name}/sas/{sas-definition-name}: + get: + tags: + - Storage + description: Gets information about a SAS definition for the specified storage + account. This operation requires the storage/getsas permission. + operationId: GetSasDefinition + parameters: + - name: storage-account-name + in: path + description: The name of the storage account. + required: true + schema: + pattern: ^[0-9a-zA-Z]+$ + type: string + - name: sas-definition-name + in: path + description: The name of the SAS definition. + required: true + schema: + pattern: ^[0-9a-zA-Z]+$ + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: The retrieved SAS definition. + content: + application/json: + schema: + $ref: '#/components/schemas/SasDefinitionBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Get Storage Sas Definition: + parameters: + api-version: "7.0" + sas-definition-name: getStrgSasDef01 + storage-account-name: getsas01 + vaultBaseUrl: https://storage-sdk-test.vault-int.azure-int.net/ + responses: + 200: + body: + attributes: + created: 1490738438 + enabled: true + recoveryLevel: Recoverable + updated: 1490738438 + id: https://storage-sdk-test.vault-int.azure-int.net/storage/getsas01/sas/getStrgSasDef01 + sasType: service + sid: https://storage-sdk-test.vault-int.azure-int.net/secrets/getsas01-getStrgSasDef01 + templateUri: se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=XXFNfuMCHYrBx0bhemJ7PWn0xGfImMXT6LfbXWvtRUk%3D + validityPeriod: P15D + headers: {} + put: + tags: + - Storage + description: Creates or updates a new SAS definition for the specified storage + account. This operation requires the storage/setsas permission. + operationId: SetSasDefinition + parameters: + - name: storage-account-name + in: path + description: The name of the storage account. + required: true + schema: + pattern: ^[0-9a-zA-Z]+$ + type: string + - name: sas-definition-name + in: path + description: The name of the SAS definition. + required: true + schema: + pattern: ^[0-9a-zA-Z]+$ + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The parameters to create a SAS definition. + content: + application/json: + schema: + $ref: '#/components/schemas/SasDefinitionCreateParameters' + required: true + responses: + 200: + description: The created SAS definition. + content: + application/json: + schema: + $ref: '#/components/schemas/SasDefinitionBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Set Storage Sas definition: + parameters: + api-version: "7.0" + parameters: + attributes: + enabled: true + sasType: service + templateUri: se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=XXFNfuMCHYrBx0bhemJ7PWn0xGfImMXT6LfbXWvtRUk%3D + validityPeriod: P15D + sas-definition-name: setStrgSasDef01 + storage-account-name: setsas01 + vaultBaseUrl: https://storage-sdk-test.vault-int.azure-int.net/ + responses: + 200: + body: + attributes: + created: 1490738438 + enabled: true + recoveryLevel: Recoverable + updated: 1490738438 + id: https://storage-sdk-test.vault-int.azure-int.net/storage/setsas01/sas/setStrgSasDef01 + sasType: service + sid: https://storage-sdk-test.vault-int.azure-int.net/secrets/setsas01-setStrgSasDef01 + templateUri: se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=XXFNfuMCHYrBx0bhemJ7PWn0xGfImMXT6LfbXWvtRUk%3D + validityPeriod: P15D + headers: {} + x-codegen-request-body-name: parameters + delete: + tags: + - Storage + description: Deletes a SAS definition from a specified storage account. This + operation requires the storage/deletesas permission. + operationId: DeleteSasDefinition + parameters: + - name: storage-account-name + in: path + description: The name of the storage account. + required: true + schema: + pattern: ^[0-9a-zA-Z]+$ + type: string + - name: sas-definition-name + in: path + description: The name of the SAS definition. + required: true + schema: + pattern: ^[0-9a-zA-Z]+$ + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + responses: + 200: + description: The deleted SAS definition and information on when the SAS + definition will be deleted, and how to recover the deleted SAS definition. + content: + application/json: + schema: + $ref: '#/components/schemas/DeletedSasDefinitionBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Delete Storage Sas Definition: + parameters: + api-version: "7.0" + sas-definition-name: deleteStrgSasDef01 + storage-account-name: deletesas01 + vaultBaseUrl: https://storage-sdk-test.vault-int.azure-int.net/ + responses: + 200: + body: + attributes: + created: 1490738438 + enabled: true + recoveryLevel: Recoverable + updated: 1490738438 + deletedDate: 1490760000 + id: https://storage-sdk-test.vault-int.azure-int.net/storage/deletesas01/sas/deleteStrgSasDef01 + recoveryId: https://storage-sdk-test.vault-int.azure-int.net/deletedstorage/deletesas01/sas/deleteStrgSasDef01 + sasType: service + scheduledPurgeDate: 1490790000 + sid: https://storage-sdk-test.vault-int.azure-int.net/secrets/deletesas01-deleteStrgSasDef01 + templateUri: se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=XXFNfuMCHYrBx0bhemJ7PWn0xGfImMXT6LfbXWvtRUk%3D + validityPeriod: P15D + headers: {} + patch: + tags: + - Storage + description: Updates the specified attributes associated with the given SAS + definition. This operation requires the storage/setsas permission. + operationId: UpdateSasDefinition + parameters: + - name: storage-account-name + in: path + description: The name of the storage account. + required: true + schema: + pattern: ^[0-9a-zA-Z]+$ + type: string + - name: sas-definition-name + in: path + description: The name of the SAS definition. + required: true + schema: + pattern: ^[0-9a-zA-Z]+$ + type: string + - name: api-version + in: query + description: Client API version. + required: true + schema: + type: string + requestBody: + description: The parameters to update a SAS definition. + content: + application/json: + schema: + $ref: '#/components/schemas/SasDefinitionUpdateParameters' + required: true + responses: + 200: + description: The updated SAS definition. + content: + application/json: + schema: + $ref: '#/components/schemas/SasDefinitionBundle' + default: + description: Key Vault error response describing why the operation failed. + content: + application/json: + schema: + $ref: '#/components/schemas/KeyVaultError' + x-ms-examples: + Update Storage Sas definition: + parameters: + api-version: "7.0" + parameters: + attributes: + enabled: true + sasType: service + templateUri: se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=XXFNfuMCHYrBx0bhemJ7PWn0xGfImMXT6LfbXWvtRUk%3D + validityPeriod: P15D + sas-definition-name: patchStrgSasDef01 + storage-account-name: patchsas01 + vaultBaseUrl: https://storage-sdk-test.vault-int.azure-int.net/ + responses: + 200: + body: + attributes: + created: 1490738438 + enabled: true + recoveryLevel: Recoverable + updated: 1490738438 + id: https://storage-sdk-test.vault-int.azure-int.net/storage/patchsas01/sas/patchStrgSasDef01 + sasType: service + sid: https://storage-sdk-test.vault-int.azure-int.net/secrets/patchsas01-patchStrgSasDef01 + templateUri: se=2018-02-01T00%3A00Z&spr=https&sv=2017-04-17&sr=b&sig=XXFNfuMCHYrBx0bhemJ7PWn0xGfImMXT6LfbXWvtRUk%3D + validityPeriod: P15D + headers: {} + x-codegen-request-body-name: parameters +components: + schemas: + Action: + type: object + properties: + action_type: + type: string + description: The type of the action. + enum: + - EmailContacts + - AutoRenew + x-ms-enum: + modelAsString: false + name: ActionType + description: The action that will be executed. + AdministratorDetails: + type: object + properties: + email: + type: string + description: Email address. + x-ms-client-name: EmailAddress + first_name: + type: string + description: First name. + last_name: + type: string + description: Last name. + phone: + type: string + description: Phone number. + description: Details of the organization administrator of the certificate issuer. + Attributes: + type: object + properties: + created: + type: integer + description: Creation time in UTC. + format: unixtime + readOnly: true + enabled: + type: boolean + description: Determines whether the object is enabled. + exp: + type: integer + description: Expiry date in UTC. + format: unixtime + x-ms-client-name: Expires + nbf: + type: integer + description: Not before date in UTC. + format: unixtime + x-ms-client-name: NotBefore + updated: + type: integer + description: Last updated time in UTC. + format: unixtime + readOnly: true + description: The object attributes managed by the KeyVault service. + BackupCertificateResult: + type: object + properties: + value: + type: string + description: The backup blob containing the backed up certificate. + format: base64url + readOnly: true + description: The backup certificate result, containing the backup blob. + BackupKeyResult: + type: object + properties: + value: + type: string + description: The backup blob containing the backed up key. + format: base64url + readOnly: true + description: The backup key result, containing the backup blob. + BackupSecretResult: + type: object + properties: + value: + type: string + description: The backup blob containing the backed up secret. + format: base64url + readOnly: true + description: The backup secret result, containing the backup blob. + BackupStorageResult: + type: object + properties: + value: + type: string + description: The backup blob containing the backed up storage account. + format: base64url + readOnly: true + description: The backup storage result, containing the backup blob. + CertificateAttributes: + description: The certificate management attributes. + allOf: + - $ref: '#/components/schemas/Attributes' + CertificateBundle: + type: object + properties: + attributes: + $ref: '#/components/schemas/CertificateAttributes' + cer: + pattern: ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$ + type: string + description: CER contents of x509 certificate. + format: byte + contentType: + type: string + description: The content type of the secret. + id: + type: string + description: The certificate id. + readOnly: true + kid: + type: string + description: The key id. + readOnly: true + policy: + $ref: '#/components/schemas/CertificatePolicy' + sid: + type: string + description: The secret id. + readOnly: true + tags: + type: object + additionalProperties: + type: string + description: Application specific metadata in the form of key-value pairs + x5t: + type: string + description: Thumbprint of the certificate. + format: base64url + readOnly: true + x-ms-client-name: X509Thumbprint + description: A certificate bundle consists of a certificate (X509) plus its + attributes. + CertificateCreateParameters: + type: object + properties: + attributes: + $ref: '#/components/schemas/CertificateAttributes' + policy: + $ref: '#/components/schemas/CertificatePolicy' + tags: + type: object + additionalProperties: + type: string + description: Application specific metadata in the form of key-value pairs. + description: The certificate create parameters. + CertificateImportParameters: + required: + - value + type: object + properties: + attributes: + $ref: '#/components/schemas/CertificateAttributes' + policy: + $ref: '#/components/schemas/CertificatePolicy' + pwd: + type: string + description: If the private key in base64EncodedCertificate is encrypted, + the password used for encryption. + x-ms-client-name: password + tags: + type: object + additionalProperties: + type: string + description: Application specific metadata in the form of key-value pairs. + value: + type: string + description: Base64 encoded representation of the certificate object to + import. This certificate needs to contain the private key. + x-ms-client-name: base64EncodedCertificate + description: The certificate import parameters. + CertificateIssuerItem: + type: object + properties: + id: + type: string + description: Certificate Identifier. + provider: + type: string + description: The issuer provider. + description: The certificate issuer item containing certificate issuer metadata. + CertificateIssuerListResult: + type: object + properties: + nextLink: + type: string + description: The URL to get the next set of certificate issuers. + readOnly: true + value: + type: array + description: A response message containing a list of certificate issuers + in the key vault along with a link to the next page of certificate issuers. + readOnly: true + items: + $ref: '#/components/schemas/CertificateIssuerItem' + description: The certificate issuer list result. + CertificateIssuerSetParameters: + required: + - provider + type: object + properties: + attributes: + $ref: '#/components/schemas/IssuerAttributes' + credentials: + $ref: '#/components/schemas/IssuerCredentials' + org_details: + $ref: '#/components/schemas/OrganizationDetails' + provider: + type: string + description: The issuer provider. + description: The certificate issuer set parameters. + CertificateIssuerUpdateParameters: + type: object + properties: + attributes: + $ref: '#/components/schemas/IssuerAttributes' + credentials: + $ref: '#/components/schemas/IssuerCredentials' + org_details: + $ref: '#/components/schemas/OrganizationDetails' + provider: + type: string + description: The issuer provider. + description: The certificate issuer update parameters. + CertificateItem: + type: object + properties: + attributes: + $ref: '#/components/schemas/CertificateAttributes' + id: + type: string + description: Certificate identifier. + tags: + type: object + additionalProperties: + type: string + description: Application specific metadata in the form of key-value pairs. + x5t: + type: string + description: Thumbprint of the certificate. + format: base64url + x-ms-client-name: X509Thumbprint + description: The certificate item containing certificate metadata. + CertificateListResult: + type: object + properties: + nextLink: + type: string + description: The URL to get the next set of certificates. + readOnly: true + value: + type: array + description: A response message containing a list of certificates in the + key vault along with a link to the next page of certificates. + readOnly: true + items: + $ref: '#/components/schemas/CertificateItem' + description: The certificate list result. + CertificateMergeParameters: + required: + - x5c + type: object + properties: + attributes: + $ref: '#/components/schemas/CertificateAttributes' + tags: + type: object + additionalProperties: + type: string + description: Application specific metadata in the form of key-value pairs. + x5c: + type: array + description: The certificate or the certificate chain to merge. + items: + pattern: ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$ + type: string + format: byte + x-ms-client-name: x509Certificates + description: The certificate merge parameters + CertificateOperation: + type: object + properties: + cancellation_requested: + type: boolean + description: Indicates if cancellation was requested on the certificate + operation. + csr: + pattern: ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$ + type: string + description: The certificate signing request (CSR) that is being used in + the certificate operation. + format: byte + error: + $ref: '#/components/schemas/Error' + id: + type: string + description: The certificate id. + readOnly: true + issuer: + $ref: '#/components/schemas/IssuerParameters' + request_id: + type: string + description: Identifier for the certificate operation. + status: + type: string + description: Status of the certificate operation. + status_details: + type: string + description: The status details of the certificate operation. + target: + type: string + description: Location which contains the result of the certificate operation. + description: A certificate operation is returned in case of asynchronous requests. + CertificateOperationUpdateParameter: + required: + - cancellation_requested + type: object + properties: + cancellation_requested: + type: boolean + description: Indicates if cancellation was requested on the certificate + operation. + description: The certificate operation update parameters. + CertificatePolicy: + type: object + properties: + attributes: + $ref: '#/components/schemas/CertificateAttributes' + id: + type: string + description: The certificate id. + readOnly: true + issuer: + $ref: '#/components/schemas/IssuerParameters' + key_props: + $ref: '#/components/schemas/KeyProperties' + lifetime_actions: + type: array + description: Actions that will be performed by Key Vault over the lifetime + of a certificate. + items: + $ref: '#/components/schemas/LifetimeAction' + secret_props: + $ref: '#/components/schemas/SecretProperties' + x509_props: + $ref: '#/components/schemas/X509CertificateProperties' + description: Management policy for a certificate. + CertificateRestoreParameters: + required: + - value + type: object + properties: + value: + type: string + description: The backup blob associated with a certificate bundle. + format: base64url + x-ms-client-name: certificateBundleBackup + description: The certificate restore parameters. + CertificateUpdateParameters: + type: object + properties: + attributes: + $ref: '#/components/schemas/CertificateAttributes' + policy: + $ref: '#/components/schemas/CertificatePolicy' + tags: + type: object + additionalProperties: + type: string + description: Application specific metadata in the form of key-value pairs. + description: The certificate update parameters. + Contact: + type: object + properties: + email: + type: string + description: Email address. + x-ms-client-name: EmailAddress + name: + type: string + description: Name. + phone: + type: string + description: Phone number. + description: The contact information for the vault certificates. + Contacts: + type: object + properties: + contacts: + type: array + description: The contact list for the vault certificates. + items: + $ref: '#/components/schemas/Contact' + x-ms-client-name: ContactList + id: + type: string + description: Identifier for the contacts collection. + readOnly: true + description: The contacts for the vault certificates. + DeletedCertificateBundle: + description: A Deleted Certificate consisting of its previous id, attributes + and its tags, as well as information on when it will be purged. + allOf: + - $ref: '#/components/schemas/CertificateBundle' + DeletedCertificateItem: + description: The deleted certificate item containing metadata about the deleted + certificate. + allOf: + - $ref: '#/components/schemas/CertificateItem' + DeletedCertificateListResult: + type: object + properties: + nextLink: + type: string + description: The URL to get the next set of deleted certificates. + readOnly: true + value: + type: array + description: A response message containing a list of deleted certificates + in the vault along with a link to the next page of deleted certificates + readOnly: true + items: + $ref: '#/components/schemas/DeletedCertificateItem' + description: A list of certificates that have been deleted in this vault. + DeletedKeyBundle: + description: A DeletedKeyBundle consisting of a WebKey plus its Attributes and + deletion info + allOf: + - $ref: '#/components/schemas/KeyBundle' + DeletedKeyItem: + description: The deleted key item containing the deleted key metadata and information + about deletion. + allOf: + - $ref: '#/components/schemas/KeyItem' + DeletedKeyListResult: + type: object + properties: + nextLink: + type: string + description: The URL to get the next set of deleted keys. + readOnly: true + value: + type: array + description: A response message containing a list of deleted keys in the + vault along with a link to the next page of deleted keys + readOnly: true + items: + $ref: '#/components/schemas/DeletedKeyItem' + description: A list of keys that have been deleted in this vault. + DeletedSasDefinitionBundle: + description: A deleted SAS definition bundle consisting of its previous id, + attributes and its tags, as well as information on when it will be purged. + allOf: + - $ref: '#/components/schemas/SasDefinitionBundle' + DeletedSasDefinitionItem: + description: The deleted SAS definition item containing metadata about the deleted + SAS definition. + allOf: + - $ref: '#/components/schemas/SasDefinitionItem' + DeletedSasDefinitionListResult: + type: object + properties: + nextLink: + type: string + description: The URL to get the next set of deleted SAS definitions. + readOnly: true + value: + type: array + description: A response message containing a list of the deleted SAS definitions + in the vault along with a link to the next page of deleted sas definitions + readOnly: true + items: + $ref: '#/components/schemas/DeletedSasDefinitionItem' + description: The deleted SAS definition list result + DeletedSecretBundle: + description: A Deleted Secret consisting of its previous id, attributes and + its tags, as well as information on when it will be purged. + allOf: + - $ref: '#/components/schemas/SecretBundle' + DeletedSecretItem: + description: The deleted secret item containing metadata about the deleted secret. + allOf: + - $ref: '#/components/schemas/SecretItem' + DeletedSecretListResult: + type: object + properties: + nextLink: + type: string + description: The URL to get the next set of deleted secrets. + readOnly: true + value: + type: array + 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 + readOnly: true + items: + $ref: '#/components/schemas/DeletedSecretItem' + description: The deleted secret list result + DeletedStorageAccountItem: + description: The deleted storage account item containing metadata about the + deleted storage account. + allOf: + - $ref: '#/components/schemas/StorageAccountItem' + DeletedStorageBundle: + description: A deleted storage account bundle consisting of its previous id, + attributes and its tags, as well as information on when it will be purged. + allOf: + - $ref: '#/components/schemas/StorageBundle' + DeletedStorageListResult: + type: object + properties: + nextLink: + type: string + description: The URL to get the next set of deleted storage accounts. + readOnly: true + value: + type: array + description: A response message containing a list of the deleted storage + accounts in the vault along with a link to the next page of deleted storage + accounts + readOnly: true + items: + $ref: '#/components/schemas/DeletedStorageAccountItem' + description: The deleted storage account list result + Error: + type: object + properties: + code: + type: string + description: The error code. + readOnly: true + innererror: + $ref: '#/components/schemas/Error' + message: + type: string + description: The error message. + readOnly: true + description: The key vault server error. + IssuerAttributes: + type: object + properties: + created: + type: integer + description: Creation time in UTC. + format: unixtime + readOnly: true + enabled: + type: boolean + description: Determines whether the issuer is enabled. + updated: + type: integer + description: Last updated time in UTC. + format: unixtime + readOnly: true + description: The attributes of an issuer managed by the Key Vault service. + IssuerBundle: + type: object + properties: + attributes: + $ref: '#/components/schemas/IssuerAttributes' + credentials: + $ref: '#/components/schemas/IssuerCredentials' + id: + type: string + description: Identifier for the issuer object. + readOnly: true + org_details: + $ref: '#/components/schemas/OrganizationDetails' + provider: + type: string + description: The issuer provider. + description: The issuer for Key Vault certificate. + IssuerCredentials: + type: object + properties: + account_id: + type: string + description: The user name/account name/account id. + pwd: + type: string + description: The password/secret/account key. + x-ms-client-name: Password + description: The credentials to be used for the certificate issuer. + IssuerParameters: + type: object + properties: + cert_transparency: + type: boolean + description: Indicates if the certificates generated under this policy should + be published to certificate transparency logs. + x-ms-client-name: CertificateTransparency + cty: + type: string + description: Certificate type as supported by the provider (optional); for + example 'OV-SSL', 'EV-SSL' + x-ms-client-name: CertificateType + name: + type: string + description: Name of the referenced issuer object or reserved names; for + example, 'Self' or 'Unknown'. + description: Parameters for the issuer of the X509 component of a certificate. + JsonWebKey: + type: object + properties: + crv: + type: string + description: Elliptic curve name. For valid values, see JsonWebKeyCurveName. + enum: + - P-256 + - P-384 + - P-521 + - P-256K + x-ms-enum: + modelAsString: true + name: JsonWebKeyCurveName + values: + - description: The NIST P-256 elliptic curve, AKA SECG curve SECP256R1. + value: P-256 + - description: The NIST P-384 elliptic curve, AKA SECG curve SECP384R1. + value: P-384 + - description: The NIST P-521 elliptic curve, AKA SECG curve SECP521R1. + value: P-521 + - description: The SECG SECP256K1 elliptic curve. + value: P-256K + d: + type: string + description: RSA private exponent, or the D component of an EC private key. + format: base64url + dp: + type: string + description: RSA private key parameter. + format: base64url + x-ms-client-name: DP + dq: + type: string + description: RSA private key parameter. + format: base64url + x-ms-client-name: DQ + e: + type: string + description: RSA public exponent. + format: base64url + k: + type: string + description: Symmetric key. + format: base64url + key_hsm: + type: string + description: HSM Token, used with 'Bring Your Own Key'. + format: base64url + x-ms-client-name: t + key_ops: + type: array + description: Supported key operations. + items: + type: string + kid: + type: string + description: Key identifier. + kty: + type: string + description: JsonWebKey Key Type (kty), as defined in https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40. + enum: + - EC + - EC-HSM + - RSA + - RSA-HSM + - oct + x-ms-enum: + modelAsString: true + name: JsonWebKeyType + values: + - description: Elliptic Curve. + value: EC + - description: Elliptic Curve with a private key which is not exportable + from the HSM. + value: EC-HSM + - description: RSA (https://tools.ietf.org/html/rfc3447) + value: RSA + - description: RSA with a private key which is not exportable from the + HSM. + value: RSA-HSM + - description: Octet sequence (used to represent symmetric keys) + value: oct + n: + type: string + description: RSA modulus. + format: base64url + p: + type: string + description: RSA secret prime. + format: base64url + q: + type: string + description: RSA secret prime, with p < q. + format: base64url + qi: + type: string + description: RSA private key parameter. + format: base64url + x-ms-client-name: QI + x: + type: string + description: X component of an EC public key. + format: base64url + y: + type: string + description: Y component of an EC public key. + format: base64url + description: As of http://tools.ietf.org/html/draft-ietf-jose-json-web-key-18 + KeyAttributes: + description: The attributes of a key managed by the key vault service. + allOf: + - $ref: '#/components/schemas/Attributes' + KeyBundle: + type: object + properties: + attributes: + $ref: '#/components/schemas/KeyAttributes' + key: + $ref: '#/components/schemas/JsonWebKey' + managed: + type: boolean + description: True if the key's lifetime is managed by key vault. If this + is a key backing a certificate, then managed will be true. + readOnly: true + tags: + type: object + additionalProperties: + type: string + description: Application specific metadata in the form of key-value pairs. + description: A KeyBundle consisting of a WebKey plus its attributes. + KeyCreateParameters: + required: + - kty + type: object + properties: + attributes: + $ref: '#/components/schemas/KeyAttributes' + crv: + type: string + description: Elliptic curve name. For valid values, see JsonWebKeyCurveName. + enum: + - P-256 + - P-384 + - P-521 + - P-256K + x-ms-client-name: curve + x-ms-enum: + modelAsString: true + name: JsonWebKeyCurveName + key_ops: + type: array + description: JSON web key operations. For more information, see JsonWebKeyOperation. + items: + type: string + enum: + - encrypt + - decrypt + - sign + - verify + - wrapKey + - unwrapKey + x-ms-enum: + modelAsString: true + name: JsonWebKeyOperation + key_size: + type: integer + description: 'The key size in bits. For example: 2048, 3072, or 4096 for + RSA.' + format: int32 + kty: + minLength: 1 + type: string + description: The type of key to create. For valid values, see JsonWebKeyType. + enum: + - EC + - EC-HSM + - RSA + - RSA-HSM + - oct + x-ms-enum: + modelAsString: true + name: JsonWebKeyType + tags: + type: object + additionalProperties: + type: string + description: Application specific metadata in the form of key-value pairs. + description: The key create parameters. + KeyImportParameters: + required: + - key + type: object + properties: + Hsm: + type: boolean + description: Whether to import as a hardware key (HSM) or software key. + attributes: + $ref: '#/components/schemas/KeyAttributes' + key: + $ref: '#/components/schemas/JsonWebKey' + tags: + type: object + additionalProperties: + type: string + description: Application specific metadata in the form of key-value pairs. + description: The key import parameters. + KeyItem: + type: object + properties: + attributes: + $ref: '#/components/schemas/KeyAttributes' + kid: + type: string + description: Key identifier. + managed: + type: boolean + description: True if the key's lifetime is managed by key vault. If this + is a key backing a certificate, then managed will be true. + readOnly: true + tags: + type: object + additionalProperties: + type: string + description: Application specific metadata in the form of key-value pairs. + description: The key item containing key metadata. + KeyListResult: + type: object + properties: + nextLink: + type: string + description: The URL to get the next set of keys. + readOnly: true + value: + type: array + description: A response message containing a list of keys in the key vault + along with a link to the next page of keys. + readOnly: true + items: + $ref: '#/components/schemas/KeyItem' + description: The key list result. + KeyOperationResult: + type: object + properties: + kid: + type: string + description: Key identifier + readOnly: true + value: + type: string + description: The Base64 representation of the operation result. + format: base64url + readOnly: true + x-ms-client-name: result + description: The key operation result. + KeyOperationsParameters: + required: + - alg + - value + type: object + properties: + alg: + minLength: 1 + type: string + description: Algorithm identifier + enum: + - RSA-OAEP + - RSA-OAEP-256 + - RSA1_5 + x-ms-client-name: algorithm + x-ms-enum: + modelAsString: true + name: JsonWebKeyEncryptionAlgorithm + value: + type: string + description: The Base64 value of encrypted data. + format: base64url + description: The key operations parameters. + KeyProperties: + type: object + properties: + crv: + type: string + description: Elliptic curve name. For valid values, see JsonWebKeyCurveName. + enum: + - P-256 + - P-384 + - P-521 + - P-256K + x-ms-client-name: curve + x-ms-enum: + modelAsString: true + name: JsonWebKeyCurveName + exportable: + type: boolean + description: Indicates if the private key can be exported. + key_size: + type: integer + description: 'The key size in bits. For example: 2048, 3072, or 4096 for + RSA.' + format: int32 + kty: + type: string + description: The type of key pair to be used for the certificate. + enum: + - EC + - EC-HSM + - RSA + - RSA-HSM + - oct + x-ms-client-name: keyType + x-ms-enum: + modelAsString: true + name: JsonWebKeyType + reuse_key: + type: boolean + description: Indicates if the same key pair will be used on certificate + renewal. + description: Properties of the key pair backing a certificate. + KeyRestoreParameters: + required: + - value + type: object + properties: + value: + type: string + description: The backup blob associated with a key bundle. + format: base64url + x-ms-client-name: keyBundleBackup + description: The key restore parameters. + KeySignParameters: + required: + - alg + - value + type: object + properties: + alg: + minLength: 1 + type: string + description: The signing/verification algorithm identifier. For more information + on possible algorithm types, see JsonWebKeySignatureAlgorithm. + enum: + - PS256 + - PS384 + - PS512 + - RS256 + - RS384 + - RS512 + - RSNULL + - ES256 + - ES384 + - ES512 + - ES256K + x-ms-client-name: algorithm + x-ms-enum: + modelAsString: true + name: JsonWebKeySignatureAlgorithm + values: + - description: RSASSA-PSS using SHA-256 and MGF1 with SHA-256, as described + in https://tools.ietf.org/html/rfc7518 + value: PS256 + - description: RSASSA-PSS using SHA-384 and MGF1 with SHA-384, as described + in https://tools.ietf.org/html/rfc7518 + value: PS384 + - description: RSASSA-PSS using SHA-512 and MGF1 with SHA-512, as described + in https://tools.ietf.org/html/rfc7518 + value: PS512 + - description: RSASSA-PKCS1-v1_5 using SHA-256, as described in https://tools.ietf.org/html/rfc7518 + value: RS256 + - description: RSASSA-PKCS1-v1_5 using SHA-384, as described in https://tools.ietf.org/html/rfc7518 + value: RS384 + - description: RSASSA-PKCS1-v1_5 using SHA-512, as described in https://tools.ietf.org/html/rfc7518 + value: RS512 + - description: Reserved + value: RSNULL + - description: ECDSA using P-256 and SHA-256, as described in https://tools.ietf.org/html/rfc7518. + value: ES256 + - description: ECDSA using P-384 and SHA-384, as described in https://tools.ietf.org/html/rfc7518 + value: ES384 + - description: ECDSA using P-521 and SHA-512, as described in https://tools.ietf.org/html/rfc7518 + value: ES512 + - description: ECDSA using P-256K and SHA-256, as described in https://tools.ietf.org/html/rfc7518 + value: ES256K + value: + type: string + description: The Base64 representation of the digest. + format: base64url + description: The key operations parameters. + KeyUpdateParameters: + type: object + properties: + attributes: + $ref: '#/components/schemas/KeyAttributes' + key_ops: + type: array + description: Json web key operations. For more information on possible key + operations, see JsonWebKeyOperation. + items: + type: string + enum: + - encrypt + - decrypt + - sign + - verify + - wrapKey + - unwrapKey + x-ms-enum: + modelAsString: true + name: JsonWebKeyOperation + tags: + type: object + additionalProperties: + type: string + description: Application specific metadata in the form of key-value pairs. + description: The key update parameters. + KeyVaultError: + type: object + properties: + error: + $ref: '#/components/schemas/Error' + description: The key vault error exception. + KeyVerifyParameters: + required: + - alg + - digest + - value + type: object + properties: + alg: + minLength: 1 + type: string + description: The signing/verification algorithm. For more information on + possible algorithm types, see JsonWebKeySignatureAlgorithm. + enum: + - PS256 + - PS384 + - PS512 + - RS256 + - RS384 + - RS512 + - RSNULL + - ES256 + - ES384 + - ES512 + - ES256K + x-ms-client-name: algorithm + x-ms-enum: + modelAsString: true + name: JsonWebKeySignatureAlgorithm + digest: + type: string + description: The digest used for signing. + format: base64url + value: + type: string + description: The signature to be verified. + format: base64url + x-ms-client-name: signature + description: The key verify parameters. + KeyVerifyResult: + type: object + properties: + value: + type: boolean + description: True if the signature is verified, otherwise false. + readOnly: true + description: The key verify result. + LifetimeAction: + type: object + properties: + action: + $ref: '#/components/schemas/Action' + trigger: + $ref: '#/components/schemas/Trigger' + description: Action and its trigger that will be performed by Key Vault over + the lifetime of a certificate. + OrganizationDetails: + type: object + properties: + admin_details: + type: array + description: Details of the organization administrator. + items: + $ref: '#/components/schemas/AdministratorDetails' + id: + type: string + description: Id of the organization. + description: Details of the organization of the certificate issuer. + PendingCertificateSigningRequestResult: + type: object + properties: + value: + type: string + description: The pending certificate signing request as Base64 encoded string. + readOnly: true + description: The pending certificate signing request result. + SasDefinitionAttributes: + type: object + properties: + created: + type: integer + description: Creation time in UTC. + format: unixtime + readOnly: true + enabled: + type: boolean + description: the enabled state of the object. + recoveryLevel: + type: string + description: Reflects the deletion recovery level currently in effect for + SAS definitions in the current vault. If it contains 'Purgeable' the SAS + definition can be permanently deleted by a privileged user; otherwise, + only the system can purge the SAS definition, at the end of the retention + interval. + nullable: false + readOnly: true + enum: + - Purgeable + - Recoverable+Purgeable + - Recoverable + - Recoverable+ProtectedSubscription + x-ms-enum: + modelAsString: true + name: DeletionRecoveryLevel + updated: + type: integer + description: Last updated time in UTC. + format: unixtime + readOnly: true + description: The SAS definition management attributes. + SasDefinitionBundle: + type: object + properties: + attributes: + $ref: '#/components/schemas/SasDefinitionAttributes' + id: + type: string + description: The SAS definition id. + readOnly: true + sasType: + type: string + description: The type of SAS token the SAS definition will create. + readOnly: true + enum: + - account + - service + x-ms-enum: + modelAsString: true + name: SasTokenType + sid: + type: string + description: Storage account SAS definition secret id. + readOnly: true + x-ms-client-name: SecretId + tags: + type: object + additionalProperties: + type: string + description: Application specific metadata in the form of key-value pairs + readOnly: true + templateUri: + type: string + description: The SAS definition token template signed with an arbitrary + key. Tokens created according to the SAS definition will have the same + properties as the template. + readOnly: true + validityPeriod: + type: string + description: The validity period of SAS tokens created according to the + SAS definition. + readOnly: true + description: A SAS definition bundle consists of key vault SAS definition details + plus its attributes. + SasDefinitionCreateParameters: + required: + - sasType + - templateUri + - validityPeriod + type: object + properties: + attributes: + $ref: '#/components/schemas/SasDefinitionAttributes' + sasType: + type: string + description: The type of SAS token the SAS definition will create. + enum: + - account + - service + x-ms-enum: + modelAsString: true + name: SasTokenType + tags: + type: object + additionalProperties: + type: string + description: Application specific metadata in the form of key-value pairs. + templateUri: + type: string + description: The SAS definition token template signed with an arbitrary + key. Tokens created according to the SAS definition will have the same + properties as the template. + validityPeriod: + type: string + description: The validity period of SAS tokens created according to the + SAS definition. + description: The SAS definition create parameters. + SasDefinitionItem: + type: object + properties: + attributes: + $ref: '#/components/schemas/SasDefinitionAttributes' + id: + type: string + description: The storage SAS identifier. + readOnly: true + sid: + type: string + description: The storage account SAS definition secret id. + readOnly: true + x-ms-client-name: SecretId + tags: + type: object + additionalProperties: + type: string + description: Application specific metadata in the form of key-value pairs. + readOnly: true + description: The SAS definition item containing storage SAS definition metadata. + SasDefinitionListResult: + type: object + properties: + nextLink: + type: string + description: The URL to get the next set of SAS definitions. + readOnly: true + value: + type: array + description: A response message containing a list of SAS definitions along + with a link to the next page of SAS definitions. + readOnly: true + items: + $ref: '#/components/schemas/SasDefinitionItem' + description: The storage account SAS definition list result. + SasDefinitionUpdateParameters: + type: object + properties: + attributes: + $ref: '#/components/schemas/SasDefinitionAttributes' + sasType: + type: string + description: The type of SAS token the SAS definition will create. + enum: + - account + - service + x-ms-enum: + modelAsString: true + name: SasTokenType + tags: + type: object + additionalProperties: + type: string + description: Application specific metadata in the form of key-value pairs. + templateUri: + type: string + description: The SAS definition token template signed with an arbitrary + key. Tokens created according to the SAS definition will have the same + properties as the template. + validityPeriod: + type: string + description: The validity period of SAS tokens created according to the + SAS definition. + description: The SAS definition update parameters. + SecretAttributes: + description: The secret management attributes. + allOf: + - $ref: '#/components/schemas/Attributes' + SecretBundle: + type: object + properties: + attributes: + $ref: '#/components/schemas/SecretAttributes' + contentType: + type: string + description: The content type of the secret. + id: + type: string + description: The secret id. + kid: + type: string + 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 + 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 + tags: + type: object + additionalProperties: + type: string + description: Application specific metadata in the form of key-value pairs. + value: + type: string + description: The secret value. + description: A secret consisting of a value, id and its attributes. + SecretItem: + type: object + properties: + attributes: + $ref: '#/components/schemas/SecretAttributes' + contentType: + type: string + description: Type of the secret value such as a password. + id: + type: string + description: Secret identifier. + 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 + tags: + type: object + additionalProperties: + type: string + description: Application specific metadata in the form of key-value pairs. + description: The secret item containing secret metadata. + SecretListResult: + type: object + properties: + nextLink: + type: string + description: The URL to get the next set of secrets. + readOnly: true + 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. + readOnly: true + items: + $ref: '#/components/schemas/SecretItem' + description: The secret list result. + SecretProperties: + type: object + properties: + contentType: + type: string + description: The media type (MIME type). + description: Properties of the key backing a certificate. + SecretRestoreParameters: + required: + - value + type: object + properties: + value: + type: string + description: The backup blob associated with a secret bundle. + format: base64url + x-ms-client-name: secretBundleBackup + description: The secret restore parameters. + SecretSetParameters: + required: + - value + type: object + properties: + attributes: + $ref: '#/components/schemas/SecretAttributes' + contentType: + type: string + description: Type of the secret value such as a password. + tags: + type: object + additionalProperties: + type: string + description: Application specific metadata in the form of key-value pairs. + value: + type: string + description: The value of the secret. + description: The secret set parameters. + SecretUpdateParameters: + type: object + properties: + attributes: + $ref: '#/components/schemas/SecretAttributes' + contentType: + type: string + description: Type of the secret value such as a password. + tags: + type: object + additionalProperties: + type: string + description: Application specific metadata in the form of key-value pairs. + description: The secret update parameters. + StorageAccountAttributes: + type: object + properties: + created: + type: integer + description: Creation time in UTC. + format: unixtime + readOnly: true + enabled: + type: boolean + description: the enabled state of the object. + recoveryLevel: + type: string + description: Reflects the deletion recovery level currently in effect for + storage accounts in the current vault. If it contains 'Purgeable' the + storage account can be permanently deleted by a privileged user; otherwise, + only the system can purge the storage account, at the end of the retention + interval. + nullable: false + readOnly: true + enum: + - Purgeable + - Recoverable+Purgeable + - Recoverable + - Recoverable+ProtectedSubscription + x-ms-enum: + modelAsString: true + name: DeletionRecoveryLevel + updated: + type: integer + description: Last updated time in UTC. + format: unixtime + readOnly: true + description: The storage account management attributes. + StorageAccountCreateParameters: + required: + - activeKeyName + - autoRegenerateKey + - resourceId + type: object + properties: + activeKeyName: + type: string + description: Current active storage account key name. + attributes: + $ref: '#/components/schemas/StorageAccountAttributes' + autoRegenerateKey: + type: boolean + description: whether keyvault should manage the storage account for the + user. + regenerationPeriod: + type: string + description: The key regeneration time duration specified in ISO-8601 format. + resourceId: + type: string + description: Storage account resource id. + tags: + type: object + additionalProperties: + type: string + description: Application specific metadata in the form of key-value pairs. + description: The storage account create parameters. + StorageAccountItem: + type: object + properties: + attributes: + $ref: '#/components/schemas/StorageAccountAttributes' + id: + type: string + description: Storage identifier. + readOnly: true + resourceId: + type: string + description: Storage account resource Id. + readOnly: true + tags: + type: object + additionalProperties: + type: string + description: Application specific metadata in the form of key-value pairs. + readOnly: true + description: The storage account item containing storage account metadata. + StorageAccountRegenerteKeyParameters: + required: + - keyName + type: object + properties: + keyName: + type: string + description: The storage account key name. + description: The storage account key regenerate parameters. + StorageAccountUpdateParameters: + type: object + properties: + activeKeyName: + type: string + description: The current active storage account key name. + attributes: + $ref: '#/components/schemas/StorageAccountAttributes' + autoRegenerateKey: + type: boolean + description: whether keyvault should manage the storage account for the + user. + regenerationPeriod: + type: string + description: The key regeneration time duration specified in ISO-8601 format. + tags: + type: object + additionalProperties: + type: string + description: Application specific metadata in the form of key-value pairs. + description: The storage account update parameters. + StorageBundle: + type: object + properties: + activeKeyName: + type: string + description: The current active storage account key name. + readOnly: true + attributes: + $ref: '#/components/schemas/StorageAccountAttributes' + autoRegenerateKey: + type: boolean + description: whether keyvault should manage the storage account for the + user. + readOnly: true + id: + type: string + description: The storage account id. + readOnly: true + regenerationPeriod: + type: string + description: The key regeneration time duration specified in ISO-8601 format. + readOnly: true + resourceId: + type: string + description: The storage account resource id. + readOnly: true + tags: + type: object + additionalProperties: + type: string + description: Application specific metadata in the form of key-value pairs + readOnly: true + description: A Storage account bundle consists of key vault storage account + details plus its attributes. + StorageListResult: + type: object + properties: + nextLink: + type: string + description: The URL to get the next set of storage accounts. + readOnly: true + value: + type: array + description: A response message containing a list of storage accounts in + the key vault along with a link to the next page of storage accounts. + readOnly: true + items: + $ref: '#/components/schemas/StorageAccountItem' + description: The storage accounts list result. + StorageRestoreParameters: + required: + - value + type: object + properties: + value: + type: string + description: The backup blob associated with a storage account. + format: base64url + x-ms-client-name: storageBundleBackup + description: The secret restore parameters. + SubjectAlternativeNames: + type: object + properties: + dns_names: + type: array + description: Domain names. + items: + type: string + emails: + type: array + description: Email addresses. + items: + type: string + upns: + type: array + description: User principal names. + items: + type: string + description: The subject alternate names of a X509 object. + Trigger: + type: object + properties: + days_before_expiry: + type: integer + description: Days before expiry to attempt renewal. Value should be between + 1 and validity_in_months multiplied by 27. If validity_in_months is 36, + then value should be between 1 and 972 (36 * 27). + format: int32 + lifetime_percentage: + maximum: 99 + minimum: 1 + type: integer + description: Percentage of lifetime at which to trigger. Value should be + between 1 and 99. + format: int32 + description: A condition to be satisfied for an action to be executed. + X509CertificateProperties: + type: object + properties: + ekus: + type: array + description: The enhanced key usage. + items: + type: string + key_usage: + type: array + description: List of key usages. + items: + type: string + enum: + - digitalSignature + - nonRepudiation + - keyEncipherment + - dataEncipherment + - keyAgreement + - keyCertSign + - cRLSign + - encipherOnly + - decipherOnly + x-ms-enum: + modelAsString: true + name: KeyUsageType + sans: + $ref: '#/components/schemas/SubjectAlternativeNames' + subject: + type: string + description: The subject name. Should be a valid X509 distinguished Name. + validity_months: + minimum: 0 + type: integer + description: The duration that the certificate is valid in months. + format: int32 + x-ms-client-name: ValidityInMonths + description: Properties of the X509 component of a certificate. + securitySchemes: + azure_auth: + type: oauth2 + description: Azure Active Directory OAuth2 Flow + flows: + implicit: + authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize + scopes: + user_impersonation: impersonate your user account + parameters: + ApiVersionParameter: + name: api-version + in: query + description: Client API version. + required: true + schema: + type: string +x-ms-parameterized-host: + hostTemplate: '{vaultBaseUrl}' + parameters: + - description: The vault name, for example https://myvault.vault.azure.net. + in: path + name: vaultBaseUrl + required: true + type: string + x-ms-skip-url-encoding: true + positionInOperation: first + useSchemePrefix: false diff --git a/openapi/azure.keyvault/types.bal b/openapi/azure.keyvault/types.bal index c3008fc82..bf354e951 100644 --- a/openapi/azure.keyvault/types.bal +++ b/openapi/azure.keyvault/types.bal @@ -23,7 +23,7 @@ public type ConnectionConfig record {| # Configurations related to client authentication http:BearerTokenConfig auth; # The HTTP version understood by the client - http:HttpVersion httpVersion = http:HTTP_2_0; + http:HttpVersion httpVersion = http:HTTP_1_1; # Configurations related to HTTP/1.x protocol ClientHttp1Settings http1Settings?; # Configurations related to HTTP/2 protocol @@ -142,7 +142,7 @@ public type IssuerAttributes record { # A list of keys that have been deleted in this vault. public type DeletedKeyListResult record { # The URL to get the next set of deleted keys. - string nextLink?; + string? nextLink?; # A response message containing a list of deleted keys in the vault along with a link to the next page of deleted keys DeletedKeyItem[] value?; }; @@ -397,7 +397,7 @@ public type PendingCertificateSigningRequestResult record { # The deleted SAS definition list result public type DeletedSasDefinitionListResult record { # The URL to get the next set of deleted SAS definitions. - string nextLink?; + string? nextLink?; # A response message containing a list of the deleted SAS definitions in the vault along with a link to the next page of deleted sas definitions DeletedSasDefinitionItem[] value?; }; @@ -581,7 +581,7 @@ public type KeyImportParameters record { # The storage account SAS definition list result. public type SasDefinitionListResult record { # The URL to get the next set of SAS definitions. - string nextLink?; + string? nextLink?; # A response message containing a list of SAS definitions along with a link to the next page of SAS definitions. SasDefinitionItem[] value?; }; @@ -613,7 +613,7 @@ public type CertificateUpdateParameters record { # A list of certificates that have been deleted in this vault. public type DeletedCertificateListResult record { # The URL to get the next set of deleted certificates. - string nextLink?; + string? nextLink?; # A response message containing a list of deleted certificates in the vault along with a link to the next page of deleted certificates DeletedCertificateItem[] value?; }; @@ -674,7 +674,7 @@ public type SasDefinitionItem record { # The storage accounts list result. public type StorageListResult record { # The URL to get the next set of storage accounts. - string nextLink?; + string? nextLink?; # A response message containing a list of storage accounts in the key vault along with a link to the next page of storage accounts. StorageAccountItem[] value?; }; @@ -699,7 +699,7 @@ public type CertificateAttributes Attributes; # The certificate list result. public type CertificateListResult record { # The URL to get the next set of certificates. - string nextLink?; + string? nextLink?; # A response message containing a list of certificates in the key vault along with a link to the next page of certificates. CertificateItem[] value?; }; @@ -730,7 +730,7 @@ public type KeyAttributes Attributes; # The key list result. public type KeyListResult record { # The URL to get the next set of keys. - string nextLink?; + string? nextLink?; # A response message containing a list of keys in the key vault along with a link to the next page of keys. KeyItem[] value?; }; @@ -813,7 +813,7 @@ public type DeletedSecretItem SecretItem; # The deleted secret list result public type DeletedSecretListResult record { # The URL to get the next set of deleted secrets. - string nextLink?; + string? nextLink?; # A response message containing a list of the deleted secrets in the vault along with a link to the next page of deleted secrets DeletedSecretItem[] value?; }; @@ -889,7 +889,7 @@ public type SecretAttributes Attributes; # The secret list result. public type SecretListResult record { # The URL to get the next set of secrets. - string nextLink?; + string? nextLink?; # A response message containing a list of secrets in the key vault along with a link to the next page of secrets. SecretItem[] value?; }; @@ -897,7 +897,7 @@ public type SecretListResult record { # The certificate issuer list result. public type CertificateIssuerListResult record { # The URL to get the next set of certificate issuers. - string nextLink?; + string? nextLink?; # A response message containing a list of certificate issuers in the key vault along with a link to the next page of certificate issuers. CertificateIssuerItem[] value?; }; @@ -917,7 +917,7 @@ public type AdministratorDetails record { # The deleted storage account list result public type DeletedStorageListResult record { # The URL to get the next set of deleted storage accounts. - string nextLink?; + string? nextLink?; # A response message containing a list of the deleted storage accounts in the vault along with a link to the next page of deleted storage accounts DeletedStorageAccountItem[] value?; };