@azure/keyvault-admin 4.7.1-alpha.20250702.2 → 4.7.1-alpha.20250722.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/commonjs/accessControlClient.js +8 -0
  2. package/dist/commonjs/accessControlClient.js.map +1 -1
  3. package/dist/commonjs/backupClient.js +8 -0
  4. package/dist/commonjs/backupClient.js.map +1 -1
  5. package/dist/commonjs/createKeyVaultClient.js +9 -7
  6. package/dist/commonjs/createKeyVaultClient.js.map +1 -1
  7. package/dist/commonjs/generated/src/api/keyVaultContext.js +12 -9
  8. package/dist/commonjs/generated/src/api/keyVaultContext.js.map +1 -1
  9. package/dist/commonjs/generated/src/api/operations.js +110 -43
  10. package/dist/commonjs/generated/src/api/operations.js.map +1 -1
  11. package/dist/commonjs/generated/src/api/roleAssignments/operations.js +35 -13
  12. package/dist/commonjs/generated/src/api/roleAssignments/operations.js.map +1 -1
  13. package/dist/commonjs/generated/src/api/roleDefinitions/operations.js +35 -13
  14. package/dist/commonjs/generated/src/api/roleDefinitions/operations.js.map +1 -1
  15. package/dist/commonjs/generated/src/classic/roleAssignments/index.js +3 -1
  16. package/dist/commonjs/generated/src/classic/roleAssignments/index.js.map +1 -1
  17. package/dist/commonjs/generated/src/classic/roleDefinitions/index.js +3 -1
  18. package/dist/commonjs/generated/src/classic/roleDefinitions/index.js.map +1 -1
  19. package/dist/commonjs/generated/src/keyVaultClient.js +12 -3
  20. package/dist/commonjs/generated/src/keyVaultClient.js.map +1 -1
  21. package/dist/commonjs/generated/src/restorePollerHelpers.js +12 -14
  22. package/dist/commonjs/generated/src/restorePollerHelpers.js.map +1 -1
  23. package/dist/commonjs/generated/src/static-helpers/pagingHelpers.js +31 -50
  24. package/dist/commonjs/generated/src/static-helpers/pagingHelpers.js.map +1 -1
  25. package/dist/commonjs/generated/src/static-helpers/pollingHelpers.js +14 -11
  26. package/dist/commonjs/generated/src/static-helpers/pollingHelpers.js.map +1 -1
  27. package/dist/commonjs/generated/src/static-helpers/urlTemplate.js +2 -2
  28. package/dist/commonjs/generated/src/static-helpers/urlTemplate.js.map +1 -1
  29. package/dist/commonjs/lro/shim.js +19 -11
  30. package/dist/commonjs/lro/shim.js.map +1 -1
  31. package/dist/commonjs/mappings.js +11 -24
  32. package/dist/commonjs/mappings.js.map +1 -1
  33. package/dist/commonjs/settingsClient.js +9 -2
  34. package/dist/commonjs/settingsClient.js.map +1 -1
  35. package/dist/commonjs/tsdoc-metadata.json +11 -11
  36. package/dist/esm/accessControlClient.js +8 -0
  37. package/dist/esm/accessControlClient.js.map +1 -1
  38. package/dist/esm/backupClient.js +8 -0
  39. package/dist/esm/backupClient.js.map +1 -1
  40. package/dist/esm/createKeyVaultClient.js +9 -7
  41. package/dist/esm/createKeyVaultClient.js.map +1 -1
  42. package/dist/esm/generated/src/api/keyVaultContext.js +12 -9
  43. package/dist/esm/generated/src/api/keyVaultContext.js.map +1 -1
  44. package/dist/esm/generated/src/api/operations.js +110 -43
  45. package/dist/esm/generated/src/api/operations.js.map +1 -1
  46. package/dist/esm/generated/src/api/roleAssignments/operations.js +35 -13
  47. package/dist/esm/generated/src/api/roleAssignments/operations.js.map +1 -1
  48. package/dist/esm/generated/src/api/roleDefinitions/operations.js +35 -13
  49. package/dist/esm/generated/src/api/roleDefinitions/operations.js.map +1 -1
  50. package/dist/esm/generated/src/classic/roleAssignments/index.js +3 -1
  51. package/dist/esm/generated/src/classic/roleAssignments/index.js.map +1 -1
  52. package/dist/esm/generated/src/classic/roleDefinitions/index.js +3 -1
  53. package/dist/esm/generated/src/classic/roleDefinitions/index.js.map +1 -1
  54. package/dist/esm/generated/src/keyVaultClient.js +12 -3
  55. package/dist/esm/generated/src/keyVaultClient.js.map +1 -1
  56. package/dist/esm/generated/src/restorePollerHelpers.js +12 -14
  57. package/dist/esm/generated/src/restorePollerHelpers.js.map +1 -1
  58. package/dist/esm/generated/src/static-helpers/pagingHelpers.js +31 -50
  59. package/dist/esm/generated/src/static-helpers/pagingHelpers.js.map +1 -1
  60. package/dist/esm/generated/src/static-helpers/pollingHelpers.js +14 -11
  61. package/dist/esm/generated/src/static-helpers/pollingHelpers.js.map +1 -1
  62. package/dist/esm/generated/src/static-helpers/urlTemplate.js +2 -2
  63. package/dist/esm/generated/src/static-helpers/urlTemplate.js.map +1 -1
  64. package/dist/esm/lro/shim.js +19 -11
  65. package/dist/esm/lro/shim.js.map +1 -1
  66. package/dist/esm/mappings.js +11 -24
  67. package/dist/esm/mappings.js.map +1 -1
  68. package/dist/esm/settingsClient.js +9 -2
  69. package/dist/esm/settingsClient.js.map +1 -1
  70. package/package.json +2 -2
@@ -14,6 +14,14 @@ const createKeyVaultClient_js_1 = require("./createKeyVaultClient.js");
14
14
  * The client supports creating, retrieving and deleting roles.
15
15
  */
16
16
  class KeyVaultAccessControlClient {
17
+ /**
18
+ * The base URL to the vault
19
+ */
20
+ vaultUrl;
21
+ /**
22
+ * A reference to the auto-generated Key Vault HTTP client.
23
+ */
24
+ client;
17
25
  /**
18
26
  * Creates an instance of the KeyVaultAccessControlClient.
19
27
  *
@@ -1 +1 @@
1
- {"version":3,"file":"accessControlClient.js","sourceRoot":"","sources":["../../src/accessControlClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/// <reference lib=\"esnext.asynciterable\" />\n\nimport type {\n AccessControlClientOptions,\n CreateRoleAssignmentOptions,\n DeleteRoleAssignmentOptions,\n DeleteRoleDefinitionOptions,\n GetRoleAssignmentOptions,\n GetRoleDefinitionOptions,\n KeyVaultRoleAssignment,\n KeyVaultRoleDefinition,\n KeyVaultRoleScope,\n ListRoleAssignmentsOptions,\n ListRoleDefinitionsOptions,\n SetRoleDefinitionOptions,\n} from \"./accessControlModels.js\";\nimport type { KeyVaultClient } from \"./generated/src/keyVaultClient.js\";\nimport type { PagedAsyncIterableIterator } from \"@azure/core-paging\";\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport { mapPagedAsyncIterable, mappings } from \"./mappings.js\";\nimport { tracingClient } from \"./tracing.js\";\nimport { randomUUID } from \"@azure/core-util\";\nimport { createKeyVaultClient } from \"./createKeyVaultClient.js\";\n\n/**\n * The KeyVaultAccessControlClient provides methods to manage\n * access control and role assignments in any given Azure Key Vault instance.\n * The client supports creating, retrieving and deleting roles.\n */\nexport class KeyVaultAccessControlClient {\n /**\n * The base URL to the vault\n */\n public readonly vaultUrl: string;\n\n /**\n * A reference to the auto-generated Key Vault HTTP client.\n */\n private readonly client: KeyVaultClient;\n\n /**\n * Creates an instance of the KeyVaultAccessControlClient.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleCreateAccessControlClient\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultAccessControlClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultAccessControlClient(vaultUrl, credentials);\n * ```\n * @param vaultUrl - the URL of the Key Vault. It should have this shape: `https://${your-key-vault-name}.vault.azure.net`. You should validate that this URL references a valid Key Vault or Managed HSM resource. See https://aka.ms/azsdk/blog/vault-uri for details.\n * @param credential - An object that implements the `TokenCredential` interface used to authenticate requests to the service. Use the \\@azure/identity package to create a credential that suits your needs.\n * @param options - Options used to configure Key Vault API requests. Omit this parameter to use the default configuration.\n */\n constructor(\n vaultUrl: string,\n credential: TokenCredential,\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: AccessControlClientOptions = {},\n ) {\n this.vaultUrl = vaultUrl;\n\n this.client = createKeyVaultClient(vaultUrl, credential, options);\n }\n\n /**\n * Creates a role assignment in an Azure Key Vault.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleCreateRoleAssignment\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultAccessControlClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultAccessControlClient(vaultUrl, credentials);\n *\n * const { value: roleDefinition } = await client.listRoleDefinitions(\"/\").next();\n *\n * const principalId = \"4871f6a6-374f-4b6b-8b0c-f5d84db823f6\";\n * const result = await client.createRoleAssignment(\n * \"/\",\n * \"295c179b-9ad3-4117-99cd-b1aa66cf4517\",\n * roleDefinition.id,\n * principalId,\n * );\n * ```\n * Creates a new role assignment.\n * @param roleScope - The scope of the role assignment.\n * @param name - The name of the role assignment. Must be a UUID.\n * @param roleDefinitionId - The role definition ID used in the role assignment.\n * @param principalId - The principal ID assigned to the role. This maps to the ID inside the Active Directory. It can point to a user, service principal, or security group.\n * @param options - The optional parameters.\n */\n public createRoleAssignment(\n roleScope: KeyVaultRoleScope,\n name: string,\n roleDefinitionId: string,\n principalId: string,\n options: CreateRoleAssignmentOptions = {},\n ): Promise<KeyVaultRoleAssignment> {\n return tracingClient.withSpan(\n \"KeyVaultAccessControlClient.createRoleAssignment\",\n options,\n async (updatedOptions) => {\n const response = await this.client.roleAssignments.create(\n roleScope,\n name,\n {\n properties: {\n roleDefinitionId,\n principalId,\n },\n },\n updatedOptions,\n );\n return mappings.roleAssignment.generatedToPublic(response);\n },\n );\n }\n\n /**\n * Deletes role assignments previously created in an Azure Key Vault.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleDeleteRoleAssignment\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultAccessControlClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultAccessControlClient(vaultUrl, credentials);\n *\n * const { value: roleDefinition } = await client.listRoleDefinitions(\"/\").next();\n * const principalId = \"4871f6a6-374f-4b6b-8b0c-f5d84db823f6\";\n *\n * const roleAssignment = await client.createRoleAssignment(\n * \"/\",\n * \"295c179b-9ad3-4117-99cd-b1aa66cf4517\",\n * roleDefinition.id,\n * principalId,\n * );\n *\n * await client.deleteRoleAssignment(roleAssignment.properties.scope, roleAssignment.name);\n * ```\n * Deletes an existing role assignment.\n * @param roleScope - The scope of the role assignment.\n * @param name - The name of the role assignment.\n * @param options - The optional parameters.\n */\n public deleteRoleAssignment(\n roleScope: KeyVaultRoleScope,\n name: string,\n options: DeleteRoleAssignmentOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"KeyVaultAccessControlClient.deleteRoleAssignment\",\n options,\n async (updatedOptions) => {\n try {\n await this.client.roleAssignments.delete(roleScope, name, updatedOptions);\n } catch (err: any) {\n // If the role assignment doesn't exist, we can consider it deleted.\n if (err.statusCode !== 404) {\n throw err;\n }\n }\n },\n );\n }\n\n /**\n * Gets a role assignments previously created in an Azure Key Vault.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleGetRoleAssignment\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultAccessControlClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultAccessControlClient(vaultUrl, credentials);\n *\n * const { value: roleDefinition } = await client.listRoleDefinitions(\"/\").next();\n * const principalId = \"4871f6a6-374f-4b6b-8b0c-f5d84db823f6\";\n *\n * let roleAssignment = await client.createRoleAssignment(\n * \"/\",\n * \"295c179b-9ad3-4117-99cd-b1aa66cf4517\",\n * roleDefinition.id,\n * principalId,\n * );\n *\n * roleAssignment = await client.getRoleAssignment(\n * roleAssignment.properties.scope,\n * roleAssignment.name,\n * );\n * console.log(roleAssignment);\n * ```\n * Gets an existing role assignment.\n * @param roleScope - The scope of the role assignment.\n * @param name - The name of the role assignment.\n * @param options - The optional parameters.\n */\n public getRoleAssignment(\n roleScope: KeyVaultRoleScope,\n name: string,\n options: GetRoleAssignmentOptions = {},\n ): Promise<KeyVaultRoleAssignment> {\n return tracingClient.withSpan(\n \"KeyVaultAccessControlClient.getRoleAssignment\",\n options,\n async (updatedOptions) => {\n const response = await this.client.roleAssignments.get(roleScope, name, updatedOptions);\n return mappings.roleAssignment.generatedToPublic(response);\n },\n );\n }\n\n /**\n * Iterates over all of the available role assignments in an Azure Key Vault.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleListRoleAssignments\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultAccessControlClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultAccessControlClient(vaultUrl, credentials);\n *\n * for await (const roleAssignment of client.listRoleAssignments(\"/\")) {\n * console.log(\"Role assignment: \", roleAssignment);\n * }\n * ```\n * Lists all of the role assignments in a given scope.\n * @param roleScope - The scope of the role assignments.\n * @param options - The optional parameters.\n */\n public listRoleAssignments(\n roleScope: KeyVaultRoleScope,\n options: ListRoleAssignmentsOptions = {},\n ): PagedAsyncIterableIterator<KeyVaultRoleAssignment> {\n return mapPagedAsyncIterable(\n options,\n (mappedOptions) => this.client.roleAssignments.listForScope(roleScope, mappedOptions),\n mappings.roleAssignment.generatedToPublic,\n );\n }\n\n /**\n * Iterates over all of the available role definitions in an Azure Key Vault.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleListRoleDefinitions\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultAccessControlClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultAccessControlClient(vaultUrl, credentials);\n *\n * for await (const roleDefinitions of client.listRoleDefinitions(\"/\")) {\n * console.log(\"Role definition: \", roleDefinitions);\n * }\n * ```\n * Lists all of the role definition in a given scope.\n * @param roleScope - The scope of the role definition.\n * @param options - The optional parameters.\n */\n public listRoleDefinitions(\n roleScope: KeyVaultRoleScope,\n options: ListRoleDefinitionsOptions = {},\n ): PagedAsyncIterableIterator<KeyVaultRoleDefinition> {\n return mapPagedAsyncIterable(\n options,\n (mappedOptions) => this.client.roleDefinitions.list(roleScope, mappedOptions),\n mappings.roleDefinition.generatedToPublic,\n );\n }\n\n /**\n * Gets a role definition from Azure Key Vault.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleGetRoleDefinition\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultAccessControlClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultAccessControlClient(vaultUrl, credentials);\n *\n * const roleDefinition = await client.getRoleDefinition(\"/\", \"b86a8fe4-44ce-4948-aee5-eccb2c155cd7\");\n * console.log(roleDefinition);\n * ```\n * @param roleScope - The scope of the role definition.\n * @param name - The name of the role definition.\n * @param options - The optional parameters.\n */\n public getRoleDefinition(\n roleScope: KeyVaultRoleScope,\n name: string,\n options: GetRoleDefinitionOptions = {},\n ): Promise<KeyVaultRoleDefinition> {\n return tracingClient.withSpan(\n \"KeyVaultAccessControlClient.getRoleDefinition\",\n options,\n async (updatedOptions) => {\n const response = await this.client.roleDefinitions.get(roleScope, name, updatedOptions);\n return mappings.roleDefinition.generatedToPublic(response);\n },\n );\n }\n\n /**\n * Creates or updates a role definition in an Azure Key Vault.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleSetRoleDefinition\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import {\n * KeyVaultAccessControlClient,\n * KnownKeyVaultDataAction,\n * KnownKeyVaultRoleScope,\n * } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultAccessControlClient(vaultUrl, credentials);\n *\n * const permissions = [{ dataActions: [KnownKeyVaultDataAction.BackupHsmKeys] }];\n * const roleDefinitionName = \"23b8bb1a-39c0-4c89-a85b-dd3c99273a8a\";\n * const roleDefinition = await client.setRoleDefinition(KnownKeyVaultRoleScope.Global, {\n * permissions,\n * roleDefinitionName,\n * });\n * console.log(roleDefinition);\n * ```\n * @param roleScope - The scope of the role definition.\n * @param options - The optional parameters.\n */\n public setRoleDefinition(\n roleScope: KeyVaultRoleScope,\n options: SetRoleDefinitionOptions = {},\n ): Promise<KeyVaultRoleDefinition> {\n return tracingClient.withSpan(\n \"KeyVaultAccessControlClient.setRoleDefinition\",\n options,\n async (updatedOptions) => {\n const response = await this.client.roleDefinitions.createOrUpdate(\n roleScope,\n options.roleDefinitionName || randomUUID(),\n {\n properties: {\n description: options.description,\n permissions: options.permissions,\n assignableScopes: [roleScope],\n roleName: options.roleName,\n roleType: \"CustomRole\",\n },\n },\n updatedOptions,\n );\n return mappings.roleDefinition.generatedToPublic(response);\n },\n );\n }\n\n /**\n * Deletes a custom role definition previously created in an Azure Key Vault.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleDeleteRoleDefinition\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import {\n * KeyVaultAccessControlClient,\n * KnownKeyVaultDataAction,\n * KnownKeyVaultRoleScope,\n * } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultAccessControlClient(vaultUrl, credentials);\n *\n * const permissions = [{ dataActions: [KnownKeyVaultDataAction.BackupHsmKeys] }];\n * const roleDefinitionName = \"23b8bb1a-39c0-4c89-a85b-dd3c99273a8a\";\n * const roleDefinition = await client.setRoleDefinition(KnownKeyVaultRoleScope.Global, {\n * permissions,\n * roleDefinitionName,\n * });\n *\n * await client.deleteRoleDefinition(\"/\", roleDefinition.name);\n * ```\n * @param roleScope - The scope of the role definition.\n * @param name - The name of the role definition to delete.\n * @param options - The optional parameters.\n */\n public deleteRoleDefinition(\n roleScope: KeyVaultRoleScope,\n name: string,\n options: DeleteRoleDefinitionOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"KeyVaultAccessControlClient.deleteRoleDefinition\",\n options,\n async (updatedOptions) => {\n try {\n await this.client.roleDefinitions.delete(roleScope, name, updatedOptions);\n } catch (err: any) {\n // If the role definition doesn't exist, we can consider it deleted.\n if (err.statusCode !== 404) {\n throw err;\n }\n }\n },\n );\n }\n}\n"]}
1
+ {"version":3,"file":"accessControlClient.js","sourceRoot":"","sources":["../../src/accessControlClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/// <reference lib=\"esnext.asynciterable\" />\n\nimport type {\n AccessControlClientOptions,\n CreateRoleAssignmentOptions,\n DeleteRoleAssignmentOptions,\n DeleteRoleDefinitionOptions,\n GetRoleAssignmentOptions,\n GetRoleDefinitionOptions,\n KeyVaultRoleAssignment,\n KeyVaultRoleDefinition,\n KeyVaultRoleScope,\n ListRoleAssignmentsOptions,\n ListRoleDefinitionsOptions,\n SetRoleDefinitionOptions,\n} from \"./accessControlModels.js\";\nimport type { KeyVaultClient } from \"./generated/src/keyVaultClient.js\";\nimport type { PagedAsyncIterableIterator } from \"@azure/core-paging\";\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport { mapPagedAsyncIterable, mappings } from \"./mappings.js\";\nimport { tracingClient } from \"./tracing.js\";\nimport { randomUUID } from \"@azure/core-util\";\nimport { createKeyVaultClient } from \"./createKeyVaultClient.js\";\n\n/**\n * The KeyVaultAccessControlClient provides methods to manage\n * access control and role assignments in any given Azure Key Vault instance.\n * The client supports creating, retrieving and deleting roles.\n */\nexport class KeyVaultAccessControlClient {\n /**\n * The base URL to the vault\n */\n public readonly vaultUrl: string;\n\n /**\n * A reference to the auto-generated Key Vault HTTP client.\n */\n private readonly client: KeyVaultClient;\n\n /**\n * Creates an instance of the KeyVaultAccessControlClient.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleCreateAccessControlClient\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultAccessControlClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultAccessControlClient(vaultUrl, credentials);\n * ```\n * @param vaultUrl - the URL of the Key Vault. It should have this shape: `https://${your-key-vault-name}.vault.azure.net`. You should validate that this URL references a valid Key Vault or Managed HSM resource. See https://aka.ms/azsdk/blog/vault-uri for details.\n * @param credential - An object that implements the `TokenCredential` interface used to authenticate requests to the service. Use the \\@azure/identity package to create a credential that suits your needs.\n * @param options - Options used to configure Key Vault API requests. Omit this parameter to use the default configuration.\n */\n constructor(\n vaultUrl: string,\n credential: TokenCredential,\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: AccessControlClientOptions = {},\n ) {\n this.vaultUrl = vaultUrl;\n\n this.client = createKeyVaultClient(vaultUrl, credential, options);\n }\n\n /**\n * Creates a role assignment in an Azure Key Vault.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleCreateRoleAssignment\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultAccessControlClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultAccessControlClient(vaultUrl, credentials);\n *\n * const { value: roleDefinition } = await client.listRoleDefinitions(\"/\").next();\n *\n * const principalId = \"4871f6a6-374f-4b6b-8b0c-f5d84db823f6\";\n * const result = await client.createRoleAssignment(\n * \"/\",\n * \"295c179b-9ad3-4117-99cd-b1aa66cf4517\",\n * roleDefinition.id,\n * principalId,\n * );\n * ```\n * Creates a new role assignment.\n * @param roleScope - The scope of the role assignment.\n * @param name - The name of the role assignment. Must be a UUID.\n * @param roleDefinitionId - The role definition ID used in the role assignment.\n * @param principalId - The principal ID assigned to the role. This maps to the ID inside the Active Directory. It can point to a user, service principal, or security group.\n * @param options - The optional parameters.\n */\n public createRoleAssignment(\n roleScope: KeyVaultRoleScope,\n name: string,\n roleDefinitionId: string,\n principalId: string,\n options: CreateRoleAssignmentOptions = {},\n ): Promise<KeyVaultRoleAssignment> {\n return tracingClient.withSpan(\n \"KeyVaultAccessControlClient.createRoleAssignment\",\n options,\n async (updatedOptions) => {\n const response = await this.client.roleAssignments.create(\n roleScope,\n name,\n {\n properties: {\n roleDefinitionId,\n principalId,\n },\n },\n updatedOptions,\n );\n return mappings.roleAssignment.generatedToPublic(response);\n },\n );\n }\n\n /**\n * Deletes role assignments previously created in an Azure Key Vault.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleDeleteRoleAssignment\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultAccessControlClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultAccessControlClient(vaultUrl, credentials);\n *\n * const { value: roleDefinition } = await client.listRoleDefinitions(\"/\").next();\n * const principalId = \"4871f6a6-374f-4b6b-8b0c-f5d84db823f6\";\n *\n * const roleAssignment = await client.createRoleAssignment(\n * \"/\",\n * \"295c179b-9ad3-4117-99cd-b1aa66cf4517\",\n * roleDefinition.id,\n * principalId,\n * );\n *\n * await client.deleteRoleAssignment(roleAssignment.properties.scope, roleAssignment.name);\n * ```\n * Deletes an existing role assignment.\n * @param roleScope - The scope of the role assignment.\n * @param name - The name of the role assignment.\n * @param options - The optional parameters.\n */\n public deleteRoleAssignment(\n roleScope: KeyVaultRoleScope,\n name: string,\n options: DeleteRoleAssignmentOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"KeyVaultAccessControlClient.deleteRoleAssignment\",\n options,\n async (updatedOptions) => {\n try {\n await this.client.roleAssignments.delete(roleScope, name, updatedOptions);\n } catch (err: any) {\n // If the role assignment doesn't exist, we can consider it deleted.\n if (err.statusCode !== 404) {\n throw err;\n }\n }\n },\n );\n }\n\n /**\n * Gets a role assignments previously created in an Azure Key Vault.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleGetRoleAssignment\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultAccessControlClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultAccessControlClient(vaultUrl, credentials);\n *\n * const { value: roleDefinition } = await client.listRoleDefinitions(\"/\").next();\n * const principalId = \"4871f6a6-374f-4b6b-8b0c-f5d84db823f6\";\n *\n * let roleAssignment = await client.createRoleAssignment(\n * \"/\",\n * \"295c179b-9ad3-4117-99cd-b1aa66cf4517\",\n * roleDefinition.id,\n * principalId,\n * );\n *\n * roleAssignment = await client.getRoleAssignment(\n * roleAssignment.properties.scope,\n * roleAssignment.name,\n * );\n * console.log(roleAssignment);\n * ```\n * Gets an existing role assignment.\n * @param roleScope - The scope of the role assignment.\n * @param name - The name of the role assignment.\n * @param options - The optional parameters.\n */\n public getRoleAssignment(\n roleScope: KeyVaultRoleScope,\n name: string,\n options: GetRoleAssignmentOptions = {},\n ): Promise<KeyVaultRoleAssignment> {\n return tracingClient.withSpan(\n \"KeyVaultAccessControlClient.getRoleAssignment\",\n options,\n async (updatedOptions) => {\n const response = await this.client.roleAssignments.get(roleScope, name, updatedOptions);\n return mappings.roleAssignment.generatedToPublic(response);\n },\n );\n }\n\n /**\n * Iterates over all of the available role assignments in an Azure Key Vault.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleListRoleAssignments\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultAccessControlClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultAccessControlClient(vaultUrl, credentials);\n *\n * for await (const roleAssignment of client.listRoleAssignments(\"/\")) {\n * console.log(\"Role assignment: \", roleAssignment);\n * }\n * ```\n * Lists all of the role assignments in a given scope.\n * @param roleScope - The scope of the role assignments.\n * @param options - The optional parameters.\n */\n public listRoleAssignments(\n roleScope: KeyVaultRoleScope,\n options: ListRoleAssignmentsOptions = {},\n ): PagedAsyncIterableIterator<KeyVaultRoleAssignment> {\n return mapPagedAsyncIterable(\n options,\n (mappedOptions) => this.client.roleAssignments.listForScope(roleScope, mappedOptions),\n mappings.roleAssignment.generatedToPublic,\n );\n }\n\n /**\n * Iterates over all of the available role definitions in an Azure Key Vault.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleListRoleDefinitions\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultAccessControlClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultAccessControlClient(vaultUrl, credentials);\n *\n * for await (const roleDefinitions of client.listRoleDefinitions(\"/\")) {\n * console.log(\"Role definition: \", roleDefinitions);\n * }\n * ```\n * Lists all of the role definition in a given scope.\n * @param roleScope - The scope of the role definition.\n * @param options - The optional parameters.\n */\n public listRoleDefinitions(\n roleScope: KeyVaultRoleScope,\n options: ListRoleDefinitionsOptions = {},\n ): PagedAsyncIterableIterator<KeyVaultRoleDefinition> {\n return mapPagedAsyncIterable(\n options,\n (mappedOptions) => this.client.roleDefinitions.list(roleScope, mappedOptions),\n mappings.roleDefinition.generatedToPublic,\n );\n }\n\n /**\n * Gets a role definition from Azure Key Vault.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleGetRoleDefinition\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultAccessControlClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultAccessControlClient(vaultUrl, credentials);\n *\n * const roleDefinition = await client.getRoleDefinition(\"/\", \"b86a8fe4-44ce-4948-aee5-eccb2c155cd7\");\n * console.log(roleDefinition);\n * ```\n * @param roleScope - The scope of the role definition.\n * @param name - The name of the role definition.\n * @param options - The optional parameters.\n */\n public getRoleDefinition(\n roleScope: KeyVaultRoleScope,\n name: string,\n options: GetRoleDefinitionOptions = {},\n ): Promise<KeyVaultRoleDefinition> {\n return tracingClient.withSpan(\n \"KeyVaultAccessControlClient.getRoleDefinition\",\n options,\n async (updatedOptions) => {\n const response = await this.client.roleDefinitions.get(roleScope, name, updatedOptions);\n return mappings.roleDefinition.generatedToPublic(response);\n },\n );\n }\n\n /**\n * Creates or updates a role definition in an Azure Key Vault.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleSetRoleDefinition\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import {\n * KeyVaultAccessControlClient,\n * KnownKeyVaultDataAction,\n * KnownKeyVaultRoleScope,\n * } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultAccessControlClient(vaultUrl, credentials);\n *\n * const permissions = [{ dataActions: [KnownKeyVaultDataAction.BackupHsmKeys] }];\n * const roleDefinitionName = \"23b8bb1a-39c0-4c89-a85b-dd3c99273a8a\";\n * const roleDefinition = await client.setRoleDefinition(KnownKeyVaultRoleScope.Global, {\n * permissions,\n * roleDefinitionName,\n * });\n * console.log(roleDefinition);\n * ```\n * @param roleScope - The scope of the role definition.\n * @param options - The optional parameters.\n */\n public setRoleDefinition(\n roleScope: KeyVaultRoleScope,\n options: SetRoleDefinitionOptions = {},\n ): Promise<KeyVaultRoleDefinition> {\n return tracingClient.withSpan(\n \"KeyVaultAccessControlClient.setRoleDefinition\",\n options,\n async (updatedOptions) => {\n const response = await this.client.roleDefinitions.createOrUpdate(\n roleScope,\n options.roleDefinitionName || randomUUID(),\n {\n properties: {\n description: options.description,\n permissions: options.permissions,\n assignableScopes: [roleScope],\n roleName: options.roleName,\n roleType: \"CustomRole\",\n },\n },\n updatedOptions,\n );\n return mappings.roleDefinition.generatedToPublic(response);\n },\n );\n }\n\n /**\n * Deletes a custom role definition previously created in an Azure Key Vault.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleDeleteRoleDefinition\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import {\n * KeyVaultAccessControlClient,\n * KnownKeyVaultDataAction,\n * KnownKeyVaultRoleScope,\n * } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultAccessControlClient(vaultUrl, credentials);\n *\n * const permissions = [{ dataActions: [KnownKeyVaultDataAction.BackupHsmKeys] }];\n * const roleDefinitionName = \"23b8bb1a-39c0-4c89-a85b-dd3c99273a8a\";\n * const roleDefinition = await client.setRoleDefinition(KnownKeyVaultRoleScope.Global, {\n * permissions,\n * roleDefinitionName,\n * });\n *\n * await client.deleteRoleDefinition(\"/\", roleDefinition.name);\n * ```\n * @param roleScope - The scope of the role definition.\n * @param name - The name of the role definition to delete.\n * @param options - The optional parameters.\n */\n public deleteRoleDefinition(\n roleScope: KeyVaultRoleScope,\n name: string,\n options: DeleteRoleDefinitionOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"KeyVaultAccessControlClient.deleteRoleDefinition\",\n options,\n async (updatedOptions) => {\n try {\n await this.client.roleDefinitions.delete(roleScope, name, updatedOptions);\n } catch (err: any) {\n // If the role definition doesn't exist, we can consider it deleted.\n if (err.statusCode !== 404) {\n throw err;\n }\n }\n },\n );\n }\n}\n"]}
@@ -14,6 +14,14 @@ const restorePollerHelpers_js_1 = require("./generated/src/restorePollerHelpers.
14
14
  * and full restores of Key Vault instances.
15
15
  */
16
16
  class KeyVaultBackupClient {
17
+ /**
18
+ * The base URL to the vault
19
+ */
20
+ vaultUrl;
21
+ /**
22
+ * A reference to the auto-generated Key Vault HTTP client.
23
+ */
24
+ client;
17
25
  /**
18
26
  * Creates an instance of the KeyVaultBackupClient.
19
27
  *
@@ -1 +1 @@
1
- {"version":3,"file":"backupClient.js","sourceRoot":"","sources":["../../src/backupClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n KeyVaultBackupClientOptions,\n KeyVaultBackupResult,\n KeyVaultBeginBackupOptions,\n KeyVaultBeginPreBackupOptions,\n KeyVaultBeginPreRestoreOptions,\n KeyVaultBeginRestoreOptions,\n KeyVaultBeginSelectiveKeyRestoreOptions,\n KeyVaultRestoreResult,\n KeyVaultSelectiveKeyRestoreResult,\n} from \"./backupClientModels.js\";\nimport type { KeyVaultClient } from \"./generated/src/keyVaultClient.js\";\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport { mappings } from \"./mappings.js\";\nimport { createKeyVaultClient } from \"./createKeyVaultClient.js\";\nimport type { PollerLike } from \"./lro/shim.js\";\nimport { wrapPoller, updateState } from \"./lro/shim.js\";\nimport {\n KeyVaultAdminPollOperationState,\n KeyVaultBackupOperationState,\n KeyVaultRestoreOperationState,\n KeyVaultSelectiveKeyRestoreOperationState,\n} from \"./lro/models.js\";\nimport { restorePoller } from \"./generated/src/restorePollerHelpers.js\";\n\nexport {\n KeyVaultBackupOperationState,\n KeyVaultRestoreOperationState,\n KeyVaultSelectiveKeyRestoreOperationState,\n KeyVaultAdminPollOperationState,\n};\n\n/**\n * The KeyVaultBackupClient provides methods to generate backups\n * and restore backups of any given Azure Key Vault instance.\n * This client supports generating full backups, selective restores of specific keys\n * and full restores of Key Vault instances.\n */\nexport class KeyVaultBackupClient {\n /**\n * The base URL to the vault\n */\n public readonly vaultUrl: string;\n\n /**\n * A reference to the auto-generated Key Vault HTTP client.\n */\n private readonly client: KeyVaultClient;\n\n /**\n * Creates an instance of the KeyVaultBackupClient.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleCreateBackupClient\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultBackupClient(vaultUrl, credentials);\n * ```\n * @param vaultUrl - the URL of the Key Vault. It should have this shape: `https://${your-key-vault-name}.vault.azure.net`. You should validate that this URL references a valid Key Vault or Managed HSM resource. See https://aka.ms/azsdk/blog/vault-uri for details.\n * @param credential - An object that implements the `TokenCredential` interface used to authenticate requests to the service. Use the \\@azure/identity package to create a credential that suits your needs.\n * @param options - options used to configure Key Vault API requests.\n */\n constructor(\n vaultUrl: string,\n credential: TokenCredential,\n options: KeyVaultBackupClientOptions = {},\n ) {\n this.vaultUrl = vaultUrl;\n\n this.client = createKeyVaultClient(vaultUrl, credential, options);\n }\n\n /**\n * Starts a pre-backup operation which can be used to check whether the customer can perform a {@link beginBackup} operation using the provided SAS token.\n *\n * This function returns a Long Running Operation poller that allows you to wait indefinitely until the operation completes.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleBeginPreBackup_SAS\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultBackupClient(vaultUrl, credentials);\n *\n * const blobStorageUri = \"<blob-storage-uri>\"; // <Blob storage URL>/<folder name>\n * const sasToken = \"<sas-token>\";\n * const poller = await client.beginPreBackup(blobStorageUri, sasToken);\n *\n * // Serializing the poller\n * const serialized = poller.toString();\n *\n * // A new poller can be created with:\n * await client.beginPreBackup(blobStorageUri, sasToken, { resumeFrom: serialized });\n *\n * // Waiting until it's done\n * const result = await poller.pollUntilDone();\n * console.log(result);\n * ```\n * @param blobStorageUri - The URL of the blob storage resource, including the path to the container where the backup will end up being stored.\n * @param sasToken - The SAS token used to access the blob storage resource.\n * @param options - The optional parameters.\n */\n public async beginPreBackup(\n blobStorageUri: string,\n sasToken: string,\n options?: KeyVaultBeginPreBackupOptions,\n ): Promise<PollerLike<KeyVaultBackupOperationState, KeyVaultBackupResult>>;\n /**\n * Starts a pre-backup operation which can be used to check whether the customer can perform a {@link beginBackup} operation using the Managed HSM's configured user-assigned managed identity to authenticate with Azure Storage.\n *\n * This function returns a Long Running Operation poller that allows you to wait indefinitely until the operation completes.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleBeginPreBackup_NonSAS\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultBackupClient(vaultUrl, credentials);\n *\n * const blobStorageUri = \"<blob-storage-uri>\"; // <Blob storage URL>/<folder name>\n * const poller = await client.beginPreBackup(blobStorageUri);\n *\n * // Serializing the poller\n * const serialized = poller.toString();\n *\n * // A new poller can be created with:\n * await client.beginPreBackup(blobStorageUri, { resumeFrom: serialized });\n *\n * // Waiting until it's done\n * const result = await poller.pollUntilDone();\n * console.log(result);\n * ```\n * @param blobStorageUri - The URL of the blob storage resource, including the path to the container where the backup will end up being stored.\n * @param options - The optional parameters.\n */\n public async beginPreBackup(\n blobStorageUri: string,\n options?: KeyVaultBeginPreBackupOptions,\n ): Promise<PollerLike<KeyVaultBackupOperationState, KeyVaultBackupResult>>;\n public async beginPreBackup(\n blobStorageUri: string,\n sasTokenOrOptions: string | KeyVaultBeginPreBackupOptions = {},\n optionsWhenSasTokenSpecified: KeyVaultBeginPreBackupOptions = {},\n ): Promise<PollerLike<KeyVaultBackupOperationState, KeyVaultBackupResult>> {\n const sasToken = typeof sasTokenOrOptions === \"string\" ? sasTokenOrOptions : undefined;\n const options =\n typeof sasTokenOrOptions === \"string\" ? optionsWhenSasTokenSpecified : sasTokenOrOptions;\n\n let poller;\n if (options.resumeFrom) {\n poller = restorePoller(this.client, options.resumeFrom, this.client.preFullBackup, options);\n } else {\n poller = this.client.preFullBackup(\n {\n storageResourceUri: blobStorageUri,\n token: sasToken,\n useManagedIdentity: sasToken === undefined,\n },\n {\n abortSignal: options.abortSignal,\n requestOptions: options.requestOptions,\n onResponse: options.onResponse,\n tracingOptions: options.tracingOptions,\n updateIntervalInMs: options.intervalInMs,\n },\n );\n }\n\n poller.onProgress(updateState);\n\n return wrapPoller(poller) as ReturnType<typeof this.beginPreBackup>;\n }\n\n /**\n * Starts a pre-restore operation which can be used to check whether the customer can perform a {@link beginRestore} operation using the provided SAS token.\n *\n * This function returns a Long Running Operation poller that allows you to wait indefinitely until the operation completes.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleBeginPreRestore_SAS\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultBackupClient(vaultUrl, credentials);\n *\n * const blobStorageUri = \"<blob-storage-uri>\"; // <Blob storage URL>/<folder name>\n * const sasToken = \"<sas-token>\";\n * const poller = await client.beginPreRestore(blobStorageUri, sasToken);\n *\n * // The poller can be serialized with:\n * const serialized = poller.toString();\n *\n * // A new poller can be created with:\n * await client.beginPreRestore(blobStorageUri, sasToken, { resumeFrom: serialized });\n *\n * // Waiting until it's done\n * await poller.pollUntilDone();\n * ```\n * @param folderUri - The URL of the blob storage resource where the previous successful full backup was stored.\n * @param sasToken - The SAS token. If no SAS token is provided, user-assigned Managed Identity will be used to access the blob storage resource.\n * @param options - The optional parameters.\n */\n public async beginPreRestore(\n folderUri: string,\n sasToken: string,\n options?: KeyVaultBeginPreRestoreOptions,\n ): Promise<PollerLike<KeyVaultRestoreOperationState, KeyVaultRestoreResult>>;\n /**\n * Starts a pre-restore operation which can be used to check whether the customer can perform a {@link beginRestore} operation using the provided SAS token.\n *\n * This function returns a Long Running Operation poller that allows you to wait indefinitely until the operation completes.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleBeginPreRestore_SAS\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultBackupClient(vaultUrl, credentials);\n *\n * const blobStorageUri = \"<blob-storage-uri>\"; // <Blob storage URL>/<folder name>\n * const sasToken = \"<sas-token>\";\n * const poller = await client.beginPreRestore(blobStorageUri, sasToken);\n *\n * // The poller can be serialized with:\n * const serialized = poller.toString();\n *\n * // A new poller can be created with:\n * await client.beginPreRestore(blobStorageUri, sasToken, { resumeFrom: serialized });\n *\n * // Waiting until it's done\n * await poller.pollUntilDone();\n * ```\n * @param folderUri - The URL of the blob storage resource where the previous successful full backup was stored.\n * @param sasToken - The SAS token. If no SAS token is provided, user-assigned Managed Identity will be used to access the blob storage resource.\n * @param options - The optional parameters.\n */\n public async beginPreRestore(\n folderUri: string,\n options?: KeyVaultBeginPreRestoreOptions,\n ): Promise<PollerLike<KeyVaultRestoreOperationState, KeyVaultRestoreResult>>;\n /**\n * Starts a pre-restore operation which can be used to check whether the customer can perform a {@link beginRestore} operation using the Managed HSM's configured user-assigned managed identity to authenticate with Azure Storage.\n *\n * This function returns a Long Running Operation poller that allows you to wait indefinitely until the operation completes.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleBeginPreRestore_SAS\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultBackupClient(vaultUrl, credentials);\n *\n * const blobStorageUri = \"<blob-storage-uri>\"; // <Blob storage URL>/<folder name>\n * const sasToken = \"<sas-token>\";\n * const poller = await client.beginPreRestore(blobStorageUri, sasToken);\n *\n * // The poller can be serialized with:\n * const serialized = poller.toString();\n *\n * // A new poller can be created with:\n * await client.beginPreRestore(blobStorageUri, sasToken, { resumeFrom: serialized });\n *\n * // Waiting until it's done\n * await poller.pollUntilDone();\n * ```\n * @param folderUri - The URL of the blob storage resource where the previous successful full backup was stored.\n * @param sasToken - The SAS token. If no SAS token is provided, user-assigned Managed Identity will be used to access the blob storage resource.\n * @param options - The optional parameters.\n */\n public async beginPreRestore(\n folderUri: string,\n sasTokenOrOptions: string | KeyVaultBeginPreRestoreOptions = {},\n optionsWhenSasTokenSpecified: KeyVaultBeginPreRestoreOptions = {},\n ): Promise<PollerLike<KeyVaultRestoreOperationState, KeyVaultRestoreResult>> {\n const sasToken = typeof sasTokenOrOptions === \"string\" ? sasTokenOrOptions : undefined;\n const options =\n typeof sasTokenOrOptions === \"string\" ? optionsWhenSasTokenSpecified : sasTokenOrOptions;\n\n const folderUriParts = mappings.folderUriParts(folderUri);\n\n let poller;\n if (options.resumeFrom) {\n poller = restorePoller(\n this.client,\n options.resumeFrom,\n this.client.preFullRestoreOperation,\n options,\n );\n } else {\n poller = this.client.preFullRestoreOperation(\n {\n folderToRestore: folderUriParts.folderName,\n sasTokenParameters: {\n storageResourceUri: folderUriParts.folderUri,\n token: sasToken,\n useManagedIdentity: sasToken === undefined,\n },\n },\n {\n abortSignal: options.abortSignal,\n requestOptions: options.requestOptions,\n onResponse: options.onResponse,\n tracingOptions: options.tracingOptions,\n updateIntervalInMs: options.intervalInMs,\n },\n );\n }\n poller.onProgress(updateState);\n\n return wrapPoller(poller) as ReturnType<typeof this.beginPreRestore>;\n }\n\n /**\n * Starts generating a backup of an Azure Key Vault on the specified Storage Blob account.\n *\n * This function returns a Long Running Operation poller that allows you to wait indefinitely until the Key Vault backup is generated.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleBeginBackup_SAS\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultBackupClient(vaultUrl, credentials);\n *\n * const blobStorageUri = \"<blob-storage-uri>\"; // <Blob storage URL>/<folder name>\n * const sasToken = \"<sas-token>\";\n * const poller = await client.beginBackup(blobStorageUri, sasToken);\n *\n * // Serializing the poller\n * const serialized = poller.toString();\n *\n * // A new poller can be created with:\n * await client.beginBackup(blobStorageUri, sasToken, { resumeFrom: serialized });\n *\n * // Waiting until it's done\n * const backupUri = await poller.pollUntilDone();\n * console.log(backupUri);\n * ```\n * Starts a full backup operation.\n * @param blobStorageUri - The URL of the blob storage resource, including the path to the container where the backup will end up being stored.\n * @param sasToken - The SAS token used to access the blob storage resource.\n * @param options - The optional parameters.\n */\n public async beginBackup(\n blobStorageUri: string,\n sasToken: string,\n options?: KeyVaultBeginBackupOptions,\n ): Promise<PollerLike<KeyVaultBackupOperationState, KeyVaultBackupResult>>;\n\n /**\n * Starts generating a backup of an Azure Key Vault on the specified Storage Blob account, using a user-assigned Managed Identity\n * to access the Storage account.\n *\n * This function returns a Long Running Operation poller that allows you to wait indefinitely until the Key Vault backup is generated.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleBeginBackup_NonSAS\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultBackupClient(vaultUrl, credentials);\n *\n * const blobStorageUri = \"<blob-storage-uri>\"; // <Blob storage URL>/<folder name>\n * const poller = await client.beginBackup(blobStorageUri);\n *\n * // Serializing the poller\n * const serialized = poller.toString();\n *\n * // A new poller can be created with:\n * await client.beginBackup(blobStorageUri, { resumeFrom: serialized });\n *\n * // Waiting until it's done\n * const backupUri = await poller.pollUntilDone();\n * console.log(backupUri);\n * ```\n * Starts a full backup operation.\n * @param blobStorageUri - The URL of the blob storage resource, including the path to the container where the backup will end up being stored.\n * @param options - The optional parameters.\n */\n public async beginBackup(\n blobStorageUri: string,\n options?: KeyVaultBeginBackupOptions,\n ): Promise<PollerLike<KeyVaultBackupOperationState, KeyVaultBackupResult>>;\n\n public async beginBackup(\n blobStorageUri: string,\n sasTokenOrOptions: string | KeyVaultBeginBackupOptions = {},\n optionsWhenSasTokenSpecified: KeyVaultBeginBackupOptions = {},\n ): Promise<PollerLike<KeyVaultBackupOperationState, KeyVaultBackupResult>> {\n const sasToken = typeof sasTokenOrOptions === \"string\" ? sasTokenOrOptions : undefined;\n const options =\n typeof sasTokenOrOptions === \"string\" ? optionsWhenSasTokenSpecified : sasTokenOrOptions;\n\n let poller;\n if (options.resumeFrom) {\n poller = restorePoller(this.client, options.resumeFrom, this.client.fullBackup, options);\n } else {\n poller = this.client.fullBackup(\n {\n storageResourceUri: blobStorageUri,\n token: sasToken,\n useManagedIdentity: sasToken === undefined,\n },\n {\n abortSignal: options.abortSignal,\n requestOptions: options.requestOptions,\n onResponse: options.onResponse,\n tracingOptions: options.tracingOptions,\n updateIntervalInMs: options.intervalInMs,\n },\n );\n }\n\n poller.onProgress(updateState);\n\n return wrapPoller(poller) as ReturnType<typeof this.beginBackup>;\n }\n\n /**\n * Starts restoring all key materials using the SAS token pointing to a previously stored Azure Blob storage\n * backup folder.\n *\n * This function returns a Long Running Operation poller that allows you to wait indefinitely until the Key Vault restore operation is complete.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleBeginRestore_SAS\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultBackupClient(vaultUrl, credentials);\n *\n * const blobStorageUri = \"<blob-storage-uri>\"; // <Blob storage URL>/<folder name>\n * const sasToken = \"<sas-token>\";\n * const poller = await client.beginRestore(blobStorageUri, sasToken);\n *\n * // The poller can be serialized with:\n * const serialized = poller.toString();\n *\n * // A new poller can be created with:\n * await client.beginRestore(blobStorageUri, sasToken, { resumeFrom: serialized });\n *\n * // Waiting until it's done\n * const backupUri = await poller.pollUntilDone();\n * console.log(backupUri);\n * ```\n * Starts a full restore operation.\n * @param folderUri - The URL of the blob storage resource where the previous successful full backup was stored.\n * @param sasToken - The SAS token. If no SAS token is provided, user-assigned Managed Identity will be used to access the blob storage resource.\n * @param options - The optional parameters.\n */\n public async beginRestore(\n folderUri: string,\n sasToken: string,\n options?: KeyVaultBeginRestoreOptions,\n ): Promise<PollerLike<KeyVaultRestoreOperationState, KeyVaultRestoreResult>>;\n\n /**\n * Starts restoring all key materials using the SAS token pointing to a previously stored Azure Blob storage\n * backup folder, using a user-assigned Managed Identity to access the storage account.\n *\n * This function returns a Long Running Operation poller that allows you to wait indefinitely until the Key Vault restore operation is complete.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleBeginRestore_NonSAS\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultBackupClient(vaultUrl, credentials);\n *\n * const blobStorageUri = \"<blob-storage-uri>\"; // <Blob storage URL>/<folder name>\n * const poller = await client.beginRestore(blobStorageUri);\n *\n * // The poller can be serialized with:\n * const serialized = poller.toString();\n *\n * // A new poller can be created with:\n * await client.beginRestore(blobStorageUri, { resumeFrom: serialized });\n *\n * // Waiting until it's done\n * await poller.pollUntilDone();\n * ```\n * Starts a full restore operation.\n * @param folderUri - The URL of the blob storage resource where the previous successful full backup was stored.\n * @param sasToken - The SAS token. If no SAS token is provided, user-assigned Managed Identity will be used to access the blob storage resource.\n * @param options - The optional parameters.\n */\n public async beginRestore(\n folderUri: string,\n options?: KeyVaultBeginRestoreOptions,\n ): Promise<PollerLike<KeyVaultRestoreOperationState, KeyVaultRestoreResult>>;\n\n public async beginRestore(\n folderUri: string,\n sasTokenOrOptions: string | KeyVaultBeginRestoreOptions = {},\n optionsWhenSasTokenSpecified: KeyVaultBeginRestoreOptions = {},\n ): Promise<PollerLike<KeyVaultRestoreOperationState, KeyVaultRestoreResult>> {\n const sasToken = typeof sasTokenOrOptions === \"string\" ? sasTokenOrOptions : undefined;\n const options =\n typeof sasTokenOrOptions === \"string\" ? optionsWhenSasTokenSpecified : sasTokenOrOptions;\n\n const folderUriParts = mappings.folderUriParts(folderUri);\n\n let poller;\n if (options.resumeFrom) {\n poller = restorePoller(\n this.client,\n options.resumeFrom,\n this.client.fullRestoreOperation,\n options,\n );\n } else {\n poller = this.client.fullRestoreOperation(\n {\n folderToRestore: folderUriParts.folderName,\n sasTokenParameters: {\n storageResourceUri: folderUriParts.folderUri,\n token: sasToken,\n useManagedIdentity: sasToken === undefined,\n },\n },\n {\n abortSignal: options.abortSignal,\n requestOptions: options.requestOptions,\n onResponse: options.onResponse,\n tracingOptions: options.tracingOptions,\n updateIntervalInMs: options.intervalInMs,\n },\n );\n }\n poller.onProgress(updateState);\n\n return wrapPoller(poller) as ReturnType<typeof this.beginRestore>;\n }\n\n /**\n * Starts restoring all key versions of a given key using user supplied SAS token pointing to a previously\n * stored Azure Blob storage backup folder.\n *\n * This function returns a Long Running Operation poller that allows you to wait indefinitely until the Key Vault selective restore is complete.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleBeginSelectiveKeyRestore_SAS\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultBackupClient(vaultUrl, credentials);\n *\n * const blobStorageUri = \"<blob-storage-uri>\";\n * const sasToken = \"<sas-token>\";\n * const keyName = \"<key-name>\";\n * const poller = await client.beginSelectiveKeyRestore(keyName, blobStorageUri, sasToken);\n *\n * // Serializing the poller\n * const serialized = poller.toString();\n *\n * // A new poller can be created with:\n * await client.beginSelectiveKeyRestore(keyName, blobStorageUri, sasToken, {\n * resumeFrom: serialized,\n * });\n *\n * // Waiting until it's done\n * await poller.pollUntilDone();\n * ```\n * Creates a new role assignment.\n * @param keyName - The name of the key that wants to be restored.\n * @param folderUri - The URL of the blob storage resource, with the folder name of the blob where the previous successful full backup was stored.\n * @param sasToken - The SAS token. If no SAS token is provided, user-assigned Managed Identity will be used to access the blob storage resource.\n * @param options - The optional parameters.\n */\n public async beginSelectiveKeyRestore(\n keyName: string,\n folderUri: string,\n sasToken: string,\n options?: KeyVaultBeginSelectiveKeyRestoreOptions,\n ): Promise<\n PollerLike<KeyVaultSelectiveKeyRestoreOperationState, KeyVaultSelectiveKeyRestoreResult>\n >;\n\n /**\n * Starts restoring all key versions of a given key using to a previously\n * stored Azure Blob storage backup folder. The Blob storage backup folder will be accessed using user-assigned Managed Identity.\n *\n * This function returns a Long Running Operation poller that allows you to wait indefinitely until the Key Vault selective restore is complete.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleBeginSelectiveKeyRestore_NonSAS\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultBackupClient(vaultUrl, credentials);\n *\n * const blobStorageUri = \"<blob-storage-uri>\";\n * const keyName = \"<key-name>\";\n * const poller = await client.beginSelectiveKeyRestore(keyName, blobStorageUri);\n *\n * // Serializing the poller\n * const serialized = poller.toString();\n *\n * // A new poller can be created with:\n * await client.beginSelectiveKeyRestore(keyName, blobStorageUri, { resumeFrom: serialized });\n *\n * // Waiting until it's done\n * await poller.pollUntilDone();\n * ```\n * Creates a new role assignment.\n * @param keyName - The name of the key that wants to be restored.\n * @param folderUri - The URL of the blob storage resource, with the folder name of the blob where the previous successful full backup was stored.\n * @param sasToken - The SAS token. If no SAS token is provided, user-assigned Managed Identity will be used to access the blob storage resource.\n * @param options - The optional parameters.\n */\n public async beginSelectiveKeyRestore(\n keyName: string,\n folderUri: string,\n options?: KeyVaultBeginSelectiveKeyRestoreOptions,\n ): Promise<\n PollerLike<KeyVaultSelectiveKeyRestoreOperationState, KeyVaultSelectiveKeyRestoreResult>\n >;\n\n public async beginSelectiveKeyRestore(\n keyName: string,\n folderUri: string,\n sasTokenOrOptions: string | KeyVaultBeginSelectiveKeyRestoreOptions = {},\n optionsWhenSasTokenSpecified: KeyVaultBeginSelectiveKeyRestoreOptions = {},\n ): Promise<\n PollerLike<KeyVaultSelectiveKeyRestoreOperationState, KeyVaultSelectiveKeyRestoreResult>\n > {\n const sasToken = typeof sasTokenOrOptions === \"string\" ? sasTokenOrOptions : undefined;\n const options =\n typeof sasTokenOrOptions === \"string\" ? optionsWhenSasTokenSpecified : sasTokenOrOptions;\n\n const folderUriParts = mappings.folderUriParts(folderUri);\n\n let poller;\n if (options.resumeFrom) {\n poller = restorePoller(\n this.client,\n options.resumeFrom,\n this.client.selectiveKeyRestoreOperation,\n options,\n );\n } else {\n poller = this.client.selectiveKeyRestoreOperation(\n keyName,\n {\n folder: folderUriParts.folderName,\n sasTokenParameters: {\n storageResourceUri: folderUriParts.folderUri,\n token: sasToken,\n useManagedIdentity: sasToken === undefined,\n },\n },\n {\n abortSignal: options.abortSignal,\n requestOptions: options.requestOptions,\n onResponse: options.onResponse,\n tracingOptions: options.tracingOptions,\n updateIntervalInMs: options.intervalInMs,\n },\n );\n }\n poller.onProgress(updateState);\n\n return wrapPoller(poller) as ReturnType<typeof this.beginSelectiveKeyRestore>;\n }\n}\n"]}
1
+ {"version":3,"file":"backupClient.js","sourceRoot":"","sources":["../../src/backupClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n KeyVaultBackupClientOptions,\n KeyVaultBackupResult,\n KeyVaultBeginBackupOptions,\n KeyVaultBeginPreBackupOptions,\n KeyVaultBeginPreRestoreOptions,\n KeyVaultBeginRestoreOptions,\n KeyVaultBeginSelectiveKeyRestoreOptions,\n KeyVaultRestoreResult,\n KeyVaultSelectiveKeyRestoreResult,\n} from \"./backupClientModels.js\";\nimport type { KeyVaultClient } from \"./generated/src/keyVaultClient.js\";\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport { mappings } from \"./mappings.js\";\nimport { createKeyVaultClient } from \"./createKeyVaultClient.js\";\nimport type { PollerLike } from \"./lro/shim.js\";\nimport { wrapPoller, updateState } from \"./lro/shim.js\";\nimport {\n KeyVaultAdminPollOperationState,\n KeyVaultBackupOperationState,\n KeyVaultRestoreOperationState,\n KeyVaultSelectiveKeyRestoreOperationState,\n} from \"./lro/models.js\";\nimport { restorePoller } from \"./generated/src/restorePollerHelpers.js\";\n\nexport {\n KeyVaultBackupOperationState,\n KeyVaultRestoreOperationState,\n KeyVaultSelectiveKeyRestoreOperationState,\n KeyVaultAdminPollOperationState,\n};\n\n/**\n * The KeyVaultBackupClient provides methods to generate backups\n * and restore backups of any given Azure Key Vault instance.\n * This client supports generating full backups, selective restores of specific keys\n * and full restores of Key Vault instances.\n */\nexport class KeyVaultBackupClient {\n /**\n * The base URL to the vault\n */\n public readonly vaultUrl: string;\n\n /**\n * A reference to the auto-generated Key Vault HTTP client.\n */\n private readonly client: KeyVaultClient;\n\n /**\n * Creates an instance of the KeyVaultBackupClient.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleCreateBackupClient\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultBackupClient(vaultUrl, credentials);\n * ```\n * @param vaultUrl - the URL of the Key Vault. It should have this shape: `https://${your-key-vault-name}.vault.azure.net`. You should validate that this URL references a valid Key Vault or Managed HSM resource. See https://aka.ms/azsdk/blog/vault-uri for details.\n * @param credential - An object that implements the `TokenCredential` interface used to authenticate requests to the service. Use the \\@azure/identity package to create a credential that suits your needs.\n * @param options - options used to configure Key Vault API requests.\n */\n constructor(\n vaultUrl: string,\n credential: TokenCredential,\n options: KeyVaultBackupClientOptions = {},\n ) {\n this.vaultUrl = vaultUrl;\n\n this.client = createKeyVaultClient(vaultUrl, credential, options);\n }\n\n /**\n * Starts a pre-backup operation which can be used to check whether the customer can perform a {@link beginBackup} operation using the provided SAS token.\n *\n * This function returns a Long Running Operation poller that allows you to wait indefinitely until the operation completes.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleBeginPreBackup_SAS\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultBackupClient(vaultUrl, credentials);\n *\n * const blobStorageUri = \"<blob-storage-uri>\"; // <Blob storage URL>/<folder name>\n * const sasToken = \"<sas-token>\";\n * const poller = await client.beginPreBackup(blobStorageUri, sasToken);\n *\n * // Serializing the poller\n * const serialized = poller.toString();\n *\n * // A new poller can be created with:\n * await client.beginPreBackup(blobStorageUri, sasToken, { resumeFrom: serialized });\n *\n * // Waiting until it's done\n * const result = await poller.pollUntilDone();\n * console.log(result);\n * ```\n * @param blobStorageUri - The URL of the blob storage resource, including the path to the container where the backup will end up being stored.\n * @param sasToken - The SAS token used to access the blob storage resource.\n * @param options - The optional parameters.\n */\n public async beginPreBackup(\n blobStorageUri: string,\n sasToken: string,\n options?: KeyVaultBeginPreBackupOptions,\n ): Promise<PollerLike<KeyVaultBackupOperationState, KeyVaultBackupResult>>;\n /**\n * Starts a pre-backup operation which can be used to check whether the customer can perform a {@link beginBackup} operation using the Managed HSM's configured user-assigned managed identity to authenticate with Azure Storage.\n *\n * This function returns a Long Running Operation poller that allows you to wait indefinitely until the operation completes.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleBeginPreBackup_NonSAS\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultBackupClient(vaultUrl, credentials);\n *\n * const blobStorageUri = \"<blob-storage-uri>\"; // <Blob storage URL>/<folder name>\n * const poller = await client.beginPreBackup(blobStorageUri);\n *\n * // Serializing the poller\n * const serialized = poller.toString();\n *\n * // A new poller can be created with:\n * await client.beginPreBackup(blobStorageUri, { resumeFrom: serialized });\n *\n * // Waiting until it's done\n * const result = await poller.pollUntilDone();\n * console.log(result);\n * ```\n * @param blobStorageUri - The URL of the blob storage resource, including the path to the container where the backup will end up being stored.\n * @param options - The optional parameters.\n */\n public async beginPreBackup(\n blobStorageUri: string,\n options?: KeyVaultBeginPreBackupOptions,\n ): Promise<PollerLike<KeyVaultBackupOperationState, KeyVaultBackupResult>>;\n public async beginPreBackup(\n blobStorageUri: string,\n sasTokenOrOptions: string | KeyVaultBeginPreBackupOptions = {},\n optionsWhenSasTokenSpecified: KeyVaultBeginPreBackupOptions = {},\n ): Promise<PollerLike<KeyVaultBackupOperationState, KeyVaultBackupResult>> {\n const sasToken = typeof sasTokenOrOptions === \"string\" ? sasTokenOrOptions : undefined;\n const options =\n typeof sasTokenOrOptions === \"string\" ? optionsWhenSasTokenSpecified : sasTokenOrOptions;\n\n let poller;\n if (options.resumeFrom) {\n poller = restorePoller(this.client, options.resumeFrom, this.client.preFullBackup, options);\n } else {\n poller = this.client.preFullBackup(\n {\n storageResourceUri: blobStorageUri,\n token: sasToken,\n useManagedIdentity: sasToken === undefined,\n },\n {\n abortSignal: options.abortSignal,\n requestOptions: options.requestOptions,\n onResponse: options.onResponse,\n tracingOptions: options.tracingOptions,\n updateIntervalInMs: options.intervalInMs,\n },\n );\n }\n\n poller.onProgress(updateState);\n\n return wrapPoller(poller) as ReturnType<typeof this.beginPreBackup>;\n }\n\n /**\n * Starts a pre-restore operation which can be used to check whether the customer can perform a {@link beginRestore} operation using the provided SAS token.\n *\n * This function returns a Long Running Operation poller that allows you to wait indefinitely until the operation completes.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleBeginPreRestore_SAS\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultBackupClient(vaultUrl, credentials);\n *\n * const blobStorageUri = \"<blob-storage-uri>\"; // <Blob storage URL>/<folder name>\n * const sasToken = \"<sas-token>\";\n * const poller = await client.beginPreRestore(blobStorageUri, sasToken);\n *\n * // The poller can be serialized with:\n * const serialized = poller.toString();\n *\n * // A new poller can be created with:\n * await client.beginPreRestore(blobStorageUri, sasToken, { resumeFrom: serialized });\n *\n * // Waiting until it's done\n * await poller.pollUntilDone();\n * ```\n * @param folderUri - The URL of the blob storage resource where the previous successful full backup was stored.\n * @param sasToken - The SAS token. If no SAS token is provided, user-assigned Managed Identity will be used to access the blob storage resource.\n * @param options - The optional parameters.\n */\n public async beginPreRestore(\n folderUri: string,\n sasToken: string,\n options?: KeyVaultBeginPreRestoreOptions,\n ): Promise<PollerLike<KeyVaultRestoreOperationState, KeyVaultRestoreResult>>;\n /**\n * Starts a pre-restore operation which can be used to check whether the customer can perform a {@link beginRestore} operation using the provided SAS token.\n *\n * This function returns a Long Running Operation poller that allows you to wait indefinitely until the operation completes.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleBeginPreRestore_SAS\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultBackupClient(vaultUrl, credentials);\n *\n * const blobStorageUri = \"<blob-storage-uri>\"; // <Blob storage URL>/<folder name>\n * const sasToken = \"<sas-token>\";\n * const poller = await client.beginPreRestore(blobStorageUri, sasToken);\n *\n * // The poller can be serialized with:\n * const serialized = poller.toString();\n *\n * // A new poller can be created with:\n * await client.beginPreRestore(blobStorageUri, sasToken, { resumeFrom: serialized });\n *\n * // Waiting until it's done\n * await poller.pollUntilDone();\n * ```\n * @param folderUri - The URL of the blob storage resource where the previous successful full backup was stored.\n * @param sasToken - The SAS token. If no SAS token is provided, user-assigned Managed Identity will be used to access the blob storage resource.\n * @param options - The optional parameters.\n */\n public async beginPreRestore(\n folderUri: string,\n options?: KeyVaultBeginPreRestoreOptions,\n ): Promise<PollerLike<KeyVaultRestoreOperationState, KeyVaultRestoreResult>>;\n /**\n * Starts a pre-restore operation which can be used to check whether the customer can perform a {@link beginRestore} operation using the Managed HSM's configured user-assigned managed identity to authenticate with Azure Storage.\n *\n * This function returns a Long Running Operation poller that allows you to wait indefinitely until the operation completes.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleBeginPreRestore_SAS\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultBackupClient(vaultUrl, credentials);\n *\n * const blobStorageUri = \"<blob-storage-uri>\"; // <Blob storage URL>/<folder name>\n * const sasToken = \"<sas-token>\";\n * const poller = await client.beginPreRestore(blobStorageUri, sasToken);\n *\n * // The poller can be serialized with:\n * const serialized = poller.toString();\n *\n * // A new poller can be created with:\n * await client.beginPreRestore(blobStorageUri, sasToken, { resumeFrom: serialized });\n *\n * // Waiting until it's done\n * await poller.pollUntilDone();\n * ```\n * @param folderUri - The URL of the blob storage resource where the previous successful full backup was stored.\n * @param sasToken - The SAS token. If no SAS token is provided, user-assigned Managed Identity will be used to access the blob storage resource.\n * @param options - The optional parameters.\n */\n public async beginPreRestore(\n folderUri: string,\n sasTokenOrOptions: string | KeyVaultBeginPreRestoreOptions = {},\n optionsWhenSasTokenSpecified: KeyVaultBeginPreRestoreOptions = {},\n ): Promise<PollerLike<KeyVaultRestoreOperationState, KeyVaultRestoreResult>> {\n const sasToken = typeof sasTokenOrOptions === \"string\" ? sasTokenOrOptions : undefined;\n const options =\n typeof sasTokenOrOptions === \"string\" ? optionsWhenSasTokenSpecified : sasTokenOrOptions;\n\n const folderUriParts = mappings.folderUriParts(folderUri);\n\n let poller;\n if (options.resumeFrom) {\n poller = restorePoller(\n this.client,\n options.resumeFrom,\n this.client.preFullRestoreOperation,\n options,\n );\n } else {\n poller = this.client.preFullRestoreOperation(\n {\n folderToRestore: folderUriParts.folderName,\n sasTokenParameters: {\n storageResourceUri: folderUriParts.folderUri,\n token: sasToken,\n useManagedIdentity: sasToken === undefined,\n },\n },\n {\n abortSignal: options.abortSignal,\n requestOptions: options.requestOptions,\n onResponse: options.onResponse,\n tracingOptions: options.tracingOptions,\n updateIntervalInMs: options.intervalInMs,\n },\n );\n }\n poller.onProgress(updateState);\n\n return wrapPoller(poller) as ReturnType<typeof this.beginPreRestore>;\n }\n\n /**\n * Starts generating a backup of an Azure Key Vault on the specified Storage Blob account.\n *\n * This function returns a Long Running Operation poller that allows you to wait indefinitely until the Key Vault backup is generated.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleBeginBackup_SAS\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultBackupClient(vaultUrl, credentials);\n *\n * const blobStorageUri = \"<blob-storage-uri>\"; // <Blob storage URL>/<folder name>\n * const sasToken = \"<sas-token>\";\n * const poller = await client.beginBackup(blobStorageUri, sasToken);\n *\n * // Serializing the poller\n * const serialized = poller.toString();\n *\n * // A new poller can be created with:\n * await client.beginBackup(blobStorageUri, sasToken, { resumeFrom: serialized });\n *\n * // Waiting until it's done\n * const backupUri = await poller.pollUntilDone();\n * console.log(backupUri);\n * ```\n * Starts a full backup operation.\n * @param blobStorageUri - The URL of the blob storage resource, including the path to the container where the backup will end up being stored.\n * @param sasToken - The SAS token used to access the blob storage resource.\n * @param options - The optional parameters.\n */\n public async beginBackup(\n blobStorageUri: string,\n sasToken: string,\n options?: KeyVaultBeginBackupOptions,\n ): Promise<PollerLike<KeyVaultBackupOperationState, KeyVaultBackupResult>>;\n\n /**\n * Starts generating a backup of an Azure Key Vault on the specified Storage Blob account, using a user-assigned Managed Identity\n * to access the Storage account.\n *\n * This function returns a Long Running Operation poller that allows you to wait indefinitely until the Key Vault backup is generated.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleBeginBackup_NonSAS\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultBackupClient(vaultUrl, credentials);\n *\n * const blobStorageUri = \"<blob-storage-uri>\"; // <Blob storage URL>/<folder name>\n * const poller = await client.beginBackup(blobStorageUri);\n *\n * // Serializing the poller\n * const serialized = poller.toString();\n *\n * // A new poller can be created with:\n * await client.beginBackup(blobStorageUri, { resumeFrom: serialized });\n *\n * // Waiting until it's done\n * const backupUri = await poller.pollUntilDone();\n * console.log(backupUri);\n * ```\n * Starts a full backup operation.\n * @param blobStorageUri - The URL of the blob storage resource, including the path to the container where the backup will end up being stored.\n * @param options - The optional parameters.\n */\n public async beginBackup(\n blobStorageUri: string,\n options?: KeyVaultBeginBackupOptions,\n ): Promise<PollerLike<KeyVaultBackupOperationState, KeyVaultBackupResult>>;\n\n public async beginBackup(\n blobStorageUri: string,\n sasTokenOrOptions: string | KeyVaultBeginBackupOptions = {},\n optionsWhenSasTokenSpecified: KeyVaultBeginBackupOptions = {},\n ): Promise<PollerLike<KeyVaultBackupOperationState, KeyVaultBackupResult>> {\n const sasToken = typeof sasTokenOrOptions === \"string\" ? sasTokenOrOptions : undefined;\n const options =\n typeof sasTokenOrOptions === \"string\" ? optionsWhenSasTokenSpecified : sasTokenOrOptions;\n\n let poller;\n if (options.resumeFrom) {\n poller = restorePoller(this.client, options.resumeFrom, this.client.fullBackup, options);\n } else {\n poller = this.client.fullBackup(\n {\n storageResourceUri: blobStorageUri,\n token: sasToken,\n useManagedIdentity: sasToken === undefined,\n },\n {\n abortSignal: options.abortSignal,\n requestOptions: options.requestOptions,\n onResponse: options.onResponse,\n tracingOptions: options.tracingOptions,\n updateIntervalInMs: options.intervalInMs,\n },\n );\n }\n\n poller.onProgress(updateState);\n\n return wrapPoller(poller) as ReturnType<typeof this.beginBackup>;\n }\n\n /**\n * Starts restoring all key materials using the SAS token pointing to a previously stored Azure Blob storage\n * backup folder.\n *\n * This function returns a Long Running Operation poller that allows you to wait indefinitely until the Key Vault restore operation is complete.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleBeginRestore_SAS\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultBackupClient(vaultUrl, credentials);\n *\n * const blobStorageUri = \"<blob-storage-uri>\"; // <Blob storage URL>/<folder name>\n * const sasToken = \"<sas-token>\";\n * const poller = await client.beginRestore(blobStorageUri, sasToken);\n *\n * // The poller can be serialized with:\n * const serialized = poller.toString();\n *\n * // A new poller can be created with:\n * await client.beginRestore(blobStorageUri, sasToken, { resumeFrom: serialized });\n *\n * // Waiting until it's done\n * const backupUri = await poller.pollUntilDone();\n * console.log(backupUri);\n * ```\n * Starts a full restore operation.\n * @param folderUri - The URL of the blob storage resource where the previous successful full backup was stored.\n * @param sasToken - The SAS token. If no SAS token is provided, user-assigned Managed Identity will be used to access the blob storage resource.\n * @param options - The optional parameters.\n */\n public async beginRestore(\n folderUri: string,\n sasToken: string,\n options?: KeyVaultBeginRestoreOptions,\n ): Promise<PollerLike<KeyVaultRestoreOperationState, KeyVaultRestoreResult>>;\n\n /**\n * Starts restoring all key materials using the SAS token pointing to a previously stored Azure Blob storage\n * backup folder, using a user-assigned Managed Identity to access the storage account.\n *\n * This function returns a Long Running Operation poller that allows you to wait indefinitely until the Key Vault restore operation is complete.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleBeginRestore_NonSAS\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultBackupClient(vaultUrl, credentials);\n *\n * const blobStorageUri = \"<blob-storage-uri>\"; // <Blob storage URL>/<folder name>\n * const poller = await client.beginRestore(blobStorageUri);\n *\n * // The poller can be serialized with:\n * const serialized = poller.toString();\n *\n * // A new poller can be created with:\n * await client.beginRestore(blobStorageUri, { resumeFrom: serialized });\n *\n * // Waiting until it's done\n * await poller.pollUntilDone();\n * ```\n * Starts a full restore operation.\n * @param folderUri - The URL of the blob storage resource where the previous successful full backup was stored.\n * @param sasToken - The SAS token. If no SAS token is provided, user-assigned Managed Identity will be used to access the blob storage resource.\n * @param options - The optional parameters.\n */\n public async beginRestore(\n folderUri: string,\n options?: KeyVaultBeginRestoreOptions,\n ): Promise<PollerLike<KeyVaultRestoreOperationState, KeyVaultRestoreResult>>;\n\n public async beginRestore(\n folderUri: string,\n sasTokenOrOptions: string | KeyVaultBeginRestoreOptions = {},\n optionsWhenSasTokenSpecified: KeyVaultBeginRestoreOptions = {},\n ): Promise<PollerLike<KeyVaultRestoreOperationState, KeyVaultRestoreResult>> {\n const sasToken = typeof sasTokenOrOptions === \"string\" ? sasTokenOrOptions : undefined;\n const options =\n typeof sasTokenOrOptions === \"string\" ? optionsWhenSasTokenSpecified : sasTokenOrOptions;\n\n const folderUriParts = mappings.folderUriParts(folderUri);\n\n let poller;\n if (options.resumeFrom) {\n poller = restorePoller(\n this.client,\n options.resumeFrom,\n this.client.fullRestoreOperation,\n options,\n );\n } else {\n poller = this.client.fullRestoreOperation(\n {\n folderToRestore: folderUriParts.folderName,\n sasTokenParameters: {\n storageResourceUri: folderUriParts.folderUri,\n token: sasToken,\n useManagedIdentity: sasToken === undefined,\n },\n },\n {\n abortSignal: options.abortSignal,\n requestOptions: options.requestOptions,\n onResponse: options.onResponse,\n tracingOptions: options.tracingOptions,\n updateIntervalInMs: options.intervalInMs,\n },\n );\n }\n poller.onProgress(updateState);\n\n return wrapPoller(poller) as ReturnType<typeof this.beginRestore>;\n }\n\n /**\n * Starts restoring all key versions of a given key using user supplied SAS token pointing to a previously\n * stored Azure Blob storage backup folder.\n *\n * This function returns a Long Running Operation poller that allows you to wait indefinitely until the Key Vault selective restore is complete.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleBeginSelectiveKeyRestore_SAS\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultBackupClient(vaultUrl, credentials);\n *\n * const blobStorageUri = \"<blob-storage-uri>\";\n * const sasToken = \"<sas-token>\";\n * const keyName = \"<key-name>\";\n * const poller = await client.beginSelectiveKeyRestore(keyName, blobStorageUri, sasToken);\n *\n * // Serializing the poller\n * const serialized = poller.toString();\n *\n * // A new poller can be created with:\n * await client.beginSelectiveKeyRestore(keyName, blobStorageUri, sasToken, {\n * resumeFrom: serialized,\n * });\n *\n * // Waiting until it's done\n * await poller.pollUntilDone();\n * ```\n * Creates a new role assignment.\n * @param keyName - The name of the key that wants to be restored.\n * @param folderUri - The URL of the blob storage resource, with the folder name of the blob where the previous successful full backup was stored.\n * @param sasToken - The SAS token. If no SAS token is provided, user-assigned Managed Identity will be used to access the blob storage resource.\n * @param options - The optional parameters.\n */\n public async beginSelectiveKeyRestore(\n keyName: string,\n folderUri: string,\n sasToken: string,\n options?: KeyVaultBeginSelectiveKeyRestoreOptions,\n ): Promise<\n PollerLike<KeyVaultSelectiveKeyRestoreOperationState, KeyVaultSelectiveKeyRestoreResult>\n >;\n\n /**\n * Starts restoring all key versions of a given key using to a previously\n * stored Azure Blob storage backup folder. The Blob storage backup folder will be accessed using user-assigned Managed Identity.\n *\n * This function returns a Long Running Operation poller that allows you to wait indefinitely until the Key Vault selective restore is complete.\n *\n * Example usage:\n * ```ts snippet:ReadmeSampleBeginSelectiveKeyRestore_NonSAS\n * import { DefaultAzureCredential } from \"@azure/identity\";\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n *\n * const vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * const credentials = new DefaultAzureCredential();\n * const client = new KeyVaultBackupClient(vaultUrl, credentials);\n *\n * const blobStorageUri = \"<blob-storage-uri>\";\n * const keyName = \"<key-name>\";\n * const poller = await client.beginSelectiveKeyRestore(keyName, blobStorageUri);\n *\n * // Serializing the poller\n * const serialized = poller.toString();\n *\n * // A new poller can be created with:\n * await client.beginSelectiveKeyRestore(keyName, blobStorageUri, { resumeFrom: serialized });\n *\n * // Waiting until it's done\n * await poller.pollUntilDone();\n * ```\n * Creates a new role assignment.\n * @param keyName - The name of the key that wants to be restored.\n * @param folderUri - The URL of the blob storage resource, with the folder name of the blob where the previous successful full backup was stored.\n * @param sasToken - The SAS token. If no SAS token is provided, user-assigned Managed Identity will be used to access the blob storage resource.\n * @param options - The optional parameters.\n */\n public async beginSelectiveKeyRestore(\n keyName: string,\n folderUri: string,\n options?: KeyVaultBeginSelectiveKeyRestoreOptions,\n ): Promise<\n PollerLike<KeyVaultSelectiveKeyRestoreOperationState, KeyVaultSelectiveKeyRestoreResult>\n >;\n\n public async beginSelectiveKeyRestore(\n keyName: string,\n folderUri: string,\n sasTokenOrOptions: string | KeyVaultBeginSelectiveKeyRestoreOptions = {},\n optionsWhenSasTokenSpecified: KeyVaultBeginSelectiveKeyRestoreOptions = {},\n ): Promise<\n PollerLike<KeyVaultSelectiveKeyRestoreOperationState, KeyVaultSelectiveKeyRestoreResult>\n > {\n const sasToken = typeof sasTokenOrOptions === \"string\" ? sasTokenOrOptions : undefined;\n const options =\n typeof sasTokenOrOptions === \"string\" ? optionsWhenSasTokenSpecified : sasTokenOrOptions;\n\n const folderUriParts = mappings.folderUriParts(folderUri);\n\n let poller;\n if (options.resumeFrom) {\n poller = restorePoller(\n this.client,\n options.resumeFrom,\n this.client.selectiveKeyRestoreOperation,\n options,\n );\n } else {\n poller = this.client.selectiveKeyRestoreOperation(\n keyName,\n {\n folder: folderUriParts.folderName,\n sasTokenParameters: {\n storageResourceUri: folderUriParts.folderUri,\n token: sasToken,\n useManagedIdentity: sasToken === undefined,\n },\n },\n {\n abortSignal: options.abortSignal,\n requestOptions: options.requestOptions,\n onResponse: options.onResponse,\n tracingOptions: options.tracingOptions,\n updateIntervalInMs: options.intervalInMs,\n },\n );\n }\n poller.onProgress(updateState);\n\n return wrapPoller(poller) as ReturnType<typeof this.beginSelectiveKeyRestore>;\n }\n}\n"]}
@@ -9,17 +9,20 @@ const keyvault_common_1 = require("@azure/keyvault-common");
9
9
  const constants_js_1 = require("./constants.js");
10
10
  const log_js_1 = require("./log.js");
11
11
  function createKeyVaultClient(vaultUrl, credential, options) {
12
- var _a, _b;
13
- const clientOptions = Object.assign(Object.assign({}, options), { apiVersion: options.serviceVersion || constants_js_1.LATEST_API_VERSION, loggingOptions: {
12
+ const clientOptions = {
13
+ ...options,
14
+ apiVersion: options.serviceVersion || constants_js_1.LATEST_API_VERSION,
15
+ loggingOptions: {
14
16
  logger: log_js_1.logger.info,
15
17
  additionalAllowedHeaderNames: [
16
18
  "x-ms-keyvault-region",
17
19
  "x-ms-keyvault-network-info",
18
20
  "x-ms-keyvault-service-version",
19
21
  ],
20
- } });
21
- (_a = clientOptions.userAgentOptions) !== null && _a !== void 0 ? _a : (clientOptions.userAgentOptions = {});
22
- clientOptions.userAgentOptions.userAgentPrefix = `${(_b = clientOptions.userAgentOptions.userAgentPrefix) !== null && _b !== void 0 ? _b : ""} azsdk-js-keyvault-admin/${constants_js_1.SDK_VERSION}`;
22
+ },
23
+ };
24
+ clientOptions.userAgentOptions ??= {};
25
+ clientOptions.userAgentOptions.userAgentPrefix = `${clientOptions.userAgentOptions.userAgentPrefix ?? ""} azsdk-js-keyvault-admin/${constants_js_1.SDK_VERSION}`;
23
26
  const client = new keyVaultClient_js_1.KeyVaultClient(vaultUrl, credential, clientOptions);
24
27
  client.pipeline.removePolicy({ name: core_rest_pipeline_1.bearerTokenAuthenticationPolicyName });
25
28
  client.pipeline.addPolicy((0, keyvault_common_1.keyVaultAuthenticationPolicy)(credential, options));
@@ -27,8 +30,7 @@ function createKeyVaultClient(vaultUrl, credential, options) {
27
30
  client.pipeline.addPolicy({
28
31
  name: "ContentTypePolicy",
29
32
  sendRequest(request, next) {
30
- var _a;
31
- const contentType = (_a = request.headers.get("Content-Type")) !== null && _a !== void 0 ? _a : "";
33
+ const contentType = request.headers.get("Content-Type") ?? "";
32
34
  if (contentType.startsWith("application/json")) {
33
35
  request.headers.set("Content-Type", "application/json");
34
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"createKeyVaultClient.js","sourceRoot":"","sources":["../../src/createKeyVaultClient.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAalC,oDAoCC;AA7CD,yEAAmE;AACnE,kEAAgF;AAChF,4DAAsE;AAItE,iDAAiE;AACjE,qCAAkC;AAElC,SAAgB,oBAAoB,CAClC,QAAgB,EAChB,UAA2B,EAC3B,OAAyF;;IAEzF,MAAM,aAAa,mCACd,OAAO,KACV,UAAU,EAAE,OAAO,CAAC,cAAc,IAAI,iCAAkB,EACxD,cAAc,EAAE;YACd,MAAM,EAAE,eAAM,CAAC,IAAI;YACnB,4BAA4B,EAAE;gBAC5B,sBAAsB;gBACtB,4BAA4B;gBAC5B,+BAA+B;aAChC;SACF,GACF,CAAC;IACF,MAAA,aAAa,CAAC,gBAAgB,oCAA9B,aAAa,CAAC,gBAAgB,GAAK,EAAE,EAAC;IACtC,aAAa,CAAC,gBAAgB,CAAC,eAAe,GAAG,GAAG,MAAA,aAAa,CAAC,gBAAgB,CAAC,eAAe,mCAAI,EAAE,4BAA4B,0BAAW,EAAE,CAAC;IAElJ,MAAM,MAAM,GAAG,IAAI,kCAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IAEvE,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,wDAAmC,EAAE,CAAC,CAAC;IAC5E,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAA,8CAA4B,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7E,yEAAyE;IACzE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QACxB,IAAI,EAAE,mBAAmB;QACzB,WAAW,CAAC,OAAO,EAAE,IAAI;;YACvB,MAAM,WAAW,GAAG,MAAA,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,mCAAI,EAAE,CAAC;YAC9D,IAAI,WAAW,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC/C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAC1D,CAAC;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;KACF,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport type { KeyVaultClientOptionalParams } from \"./generated/src/keyVaultClient.js\";\nimport { KeyVaultClient } from \"./generated/src/keyVaultClient.js\";\nimport { bearerTokenAuthenticationPolicyName } from \"@azure/core-rest-pipeline\";\nimport { keyVaultAuthenticationPolicy } from \"@azure/keyvault-common\";\nimport type { AccessControlClientOptions } from \"./accessControlModels.js\";\nimport type { KeyVaultBackupClientOptions } from \"./backupClientModels.js\";\nimport type { SettingsClientOptions } from \"./settingsClientModels.js\";\nimport { LATEST_API_VERSION, SDK_VERSION } from \"./constants.js\";\nimport { logger } from \"./log.js\";\n\nexport function createKeyVaultClient(\n vaultUrl: string,\n credential: TokenCredential,\n options: AccessControlClientOptions | KeyVaultBackupClientOptions | SettingsClientOptions,\n): KeyVaultClient {\n const clientOptions: KeyVaultClientOptionalParams = {\n ...options,\n apiVersion: options.serviceVersion || LATEST_API_VERSION,\n loggingOptions: {\n logger: logger.info,\n additionalAllowedHeaderNames: [\n \"x-ms-keyvault-region\",\n \"x-ms-keyvault-network-info\",\n \"x-ms-keyvault-service-version\",\n ],\n },\n };\n clientOptions.userAgentOptions ??= {};\n clientOptions.userAgentOptions.userAgentPrefix = `${clientOptions.userAgentOptions.userAgentPrefix ?? \"\"} azsdk-js-keyvault-admin/${SDK_VERSION}`;\n\n const client = new KeyVaultClient(vaultUrl, credential, clientOptions);\n\n client.pipeline.removePolicy({ name: bearerTokenAuthenticationPolicyName });\n client.pipeline.addPolicy(keyVaultAuthenticationPolicy(credential, options));\n // Workaround for: https://github.com/Azure/azure-sdk-for-js/issues/31843\n client.pipeline.addPolicy({\n name: \"ContentTypePolicy\",\n sendRequest(request, next) {\n const contentType = request.headers.get(\"Content-Type\") ?? \"\";\n if (contentType.startsWith(\"application/json\")) {\n request.headers.set(\"Content-Type\", \"application/json\");\n }\n return next(request);\n },\n });\n return client;\n}\n"]}
1
+ {"version":3,"file":"createKeyVaultClient.js","sourceRoot":"","sources":["../../src/createKeyVaultClient.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAalC,oDAoCC;AA7CD,yEAAmE;AACnE,kEAAgF;AAChF,4DAAsE;AAItE,iDAAiE;AACjE,qCAAkC;AAElC,SAAgB,oBAAoB,CAClC,QAAgB,EAChB,UAA2B,EAC3B,OAAyF;IAEzF,MAAM,aAAa,GAAiC;QAClD,GAAG,OAAO;QACV,UAAU,EAAE,OAAO,CAAC,cAAc,IAAI,iCAAkB;QACxD,cAAc,EAAE;YACd,MAAM,EAAE,eAAM,CAAC,IAAI;YACnB,4BAA4B,EAAE;gBAC5B,sBAAsB;gBACtB,4BAA4B;gBAC5B,+BAA+B;aAChC;SACF;KACF,CAAC;IACF,aAAa,CAAC,gBAAgB,KAAK,EAAE,CAAC;IACtC,aAAa,CAAC,gBAAgB,CAAC,eAAe,GAAG,GAAG,aAAa,CAAC,gBAAgB,CAAC,eAAe,IAAI,EAAE,4BAA4B,0BAAW,EAAE,CAAC;IAElJ,MAAM,MAAM,GAAG,IAAI,kCAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IAEvE,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,wDAAmC,EAAE,CAAC,CAAC;IAC5E,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAA,8CAA4B,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7E,yEAAyE;IACzE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QACxB,IAAI,EAAE,mBAAmB;QACzB,WAAW,CAAC,OAAO,EAAE,IAAI;YACvB,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC9D,IAAI,WAAW,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC/C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAC1D,CAAC;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;KACF,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { TokenCredential } from \"@azure/core-auth\";\nimport type { KeyVaultClientOptionalParams } from \"./generated/src/keyVaultClient.js\";\nimport { KeyVaultClient } from \"./generated/src/keyVaultClient.js\";\nimport { bearerTokenAuthenticationPolicyName } from \"@azure/core-rest-pipeline\";\nimport { keyVaultAuthenticationPolicy } from \"@azure/keyvault-common\";\nimport type { AccessControlClientOptions } from \"./accessControlModels.js\";\nimport type { KeyVaultBackupClientOptions } from \"./backupClientModels.js\";\nimport type { SettingsClientOptions } from \"./settingsClientModels.js\";\nimport { LATEST_API_VERSION, SDK_VERSION } from \"./constants.js\";\nimport { logger } from \"./log.js\";\n\nexport function createKeyVaultClient(\n vaultUrl: string,\n credential: TokenCredential,\n options: AccessControlClientOptions | KeyVaultBackupClientOptions | SettingsClientOptions,\n): KeyVaultClient {\n const clientOptions: KeyVaultClientOptionalParams = {\n ...options,\n apiVersion: options.serviceVersion || LATEST_API_VERSION,\n loggingOptions: {\n logger: logger.info,\n additionalAllowedHeaderNames: [\n \"x-ms-keyvault-region\",\n \"x-ms-keyvault-network-info\",\n \"x-ms-keyvault-service-version\",\n ],\n },\n };\n clientOptions.userAgentOptions ??= {};\n clientOptions.userAgentOptions.userAgentPrefix = `${clientOptions.userAgentOptions.userAgentPrefix ?? \"\"} azsdk-js-keyvault-admin/${SDK_VERSION}`;\n\n const client = new KeyVaultClient(vaultUrl, credential, clientOptions);\n\n client.pipeline.removePolicy({ name: bearerTokenAuthenticationPolicyName });\n client.pipeline.addPolicy(keyVaultAuthenticationPolicy(credential, options));\n // Workaround for: https://github.com/Azure/azure-sdk-for-js/issues/31843\n client.pipeline.addPolicy({\n name: \"ContentTypePolicy\",\n sendRequest(request, next) {\n const contentType = request.headers.get(\"Content-Type\") ?? \"\";\n if (contentType.startsWith(\"application/json\")) {\n request.headers.set(\"Content-Type\", \"application/json\");\n }\n return next(request);\n },\n });\n return client;\n}\n"]}
@@ -3,26 +3,29 @@
3
3
  // Licensed under the MIT License.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.createKeyVault = createKeyVault;
6
- const tslib_1 = require("tslib");
7
6
  const logger_js_1 = require("../logger.js");
8
7
  const core_client_1 = require("@azure-rest/core-client");
9
8
  /** The key vault client performs cryptographic key operations and vault operations against the Key Vault service. */
10
9
  function createKeyVault(endpointParam, credential, options = {}) {
11
- var _a, _b, _c, _d, _e, _f, _g, _h;
12
- const endpointUrl = (_b = (_a = options.endpoint) !== null && _a !== void 0 ? _a : options.baseUrl) !== null && _b !== void 0 ? _b : String(endpointParam);
13
- const prefixFromOptions = (_c = options === null || options === void 0 ? void 0 : options.userAgentOptions) === null || _c === void 0 ? void 0 : _c.userAgentPrefix;
10
+ const endpointUrl = options.endpoint ?? options.baseUrl ?? String(endpointParam);
11
+ const prefixFromOptions = options?.userAgentOptions?.userAgentPrefix;
14
12
  const userAgentInfo = `azsdk-js-keyvault-admin/1.0.0-beta.1`;
15
13
  const userAgentPrefix = prefixFromOptions
16
14
  ? `${prefixFromOptions} azsdk-js-api ${userAgentInfo}`
17
15
  : `azsdk-js-api ${userAgentInfo}`;
18
- const _j = Object.assign(Object.assign({}, options), { userAgentOptions: { userAgentPrefix }, loggingOptions: { logger: (_e = (_d = options.loggingOptions) === null || _d === void 0 ? void 0 : _d.logger) !== null && _e !== void 0 ? _e : logger_js_1.logger.info }, credentials: {
19
- scopes: (_g = (_f = options.credentials) === null || _f === void 0 ? void 0 : _f.scopes) !== null && _g !== void 0 ? _g : [
16
+ const { apiVersion: _, ...updatedOptions } = {
17
+ ...options,
18
+ userAgentOptions: { userAgentPrefix },
19
+ loggingOptions: { logger: options.loggingOptions?.logger ?? logger_js_1.logger.info },
20
+ credentials: {
21
+ scopes: options.credentials?.scopes ?? [
20
22
  "https://vault.azure.net/.default",
21
23
  ],
22
- } }), { apiVersion: _ } = _j, updatedOptions = tslib_1.__rest(_j, ["apiVersion"]);
24
+ },
25
+ };
23
26
  const clientContext = (0, core_client_1.getClient)(endpointUrl, credential, updatedOptions);
24
27
  clientContext.pipeline.removePolicy({ name: "ApiVersionPolicy" });
25
- const apiVersion = (_h = options.apiVersion) !== null && _h !== void 0 ? _h : "7.6";
28
+ const apiVersion = options.apiVersion ?? "7.6";
26
29
  clientContext.pipeline.addPolicy({
27
30
  name: "ClientApiVersionPolicy",
28
31
  sendRequest: (req, next) => {
@@ -35,6 +38,6 @@ function createKeyVault(endpointParam, credential, options = {}) {
35
38
  return next(req);
36
39
  },
37
40
  });
38
- return Object.assign(Object.assign({}, clientContext), { apiVersion });
41
+ return { ...clientContext, apiVersion };
39
42
  }
40
43
  //# sourceMappingURL=keyVaultContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keyVaultContext.js","sourceRoot":"","sources":["../../../../../src/generated/src/api/keyVaultContext.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAsBlC,wCAyCC;;AA7DD,4CAAsC;AAEtC,yDAA2E;AAiB3E,qHAAqH;AACrH,SAAgB,cAAc,CAC5B,aAAqB,EACrB,UAA2B,EAC3B,UAAwC,EAAE;;IAE1C,MAAM,WAAW,GACf,MAAA,MAAA,OAAO,CAAC,QAAQ,mCAAI,OAAO,CAAC,OAAO,mCAAI,MAAM,CAAC,aAAa,CAAC,CAAC;IAC/D,MAAM,iBAAiB,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,0CAAE,eAAe,CAAC;IACrE,MAAM,aAAa,GAAG,sCAAsC,CAAC;IAC7D,MAAM,eAAe,GAAG,iBAAiB;QACvC,CAAC,CAAC,GAAG,iBAAiB,iBAAiB,aAAa,EAAE;QACtD,CAAC,CAAC,gBAAgB,aAAa,EAAE,CAAC;IACpC,MAAM,qCACD,OAAO,KACV,gBAAgB,EAAE,EAAE,eAAe,EAAE,EACrC,cAAc,EAAE,EAAE,MAAM,EAAE,MAAA,MAAA,OAAO,CAAC,cAAc,0CAAE,MAAM,mCAAI,kBAAM,CAAC,IAAI,EAAE,EACzE,WAAW,EAAE;YACX,MAAM,EAAE,MAAA,MAAA,OAAO,CAAC,WAAW,0CAAE,MAAM,mCAAI;gBACrC,kCAAkC;aACnC;SACF,GACF,EATK,EAAE,UAAU,EAAE,CAAC,OASpB,EATyB,cAAc,sBAAlC,cAAoC,CASzC,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,uBAAS,EAAC,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IACzE,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,MAAA,OAAO,CAAC,UAAU,mCAAI,KAAK,CAAC;IAC/C,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC/B,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACzB,qDAAqD;YACrD,yEAAyE;YACzE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;gBACzC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,GAClB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GACzD,eAAe,UAAU,EAAE,CAAC;YAC9B,CAAC;YAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;IACH,OAAO,gCAAK,aAAa,KAAE,UAAU,GAAqB,CAAC;AAC7D,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { logger } from \"../logger.js\";\nimport { KnownVersions } from \"../models/models.js\";\nimport { Client, ClientOptions, getClient } from \"@azure-rest/core-client\";\nimport { TokenCredential } from \"@azure/core-auth\";\n\n/** The key vault client performs cryptographic key operations and vault operations against the Key Vault service. */\nexport interface KeyVaultContext extends Client {\n /** The API version to use for this operation. */\n /** Known values of {@link KnownVersions} that the service accepts. */\n apiVersion: string;\n}\n\n/** Optional parameters for the client. */\nexport interface KeyVaultClientOptionalParams extends ClientOptions {\n /** The API version to use for this operation. */\n /** Known values of {@link KnownVersions} that the service accepts. */\n apiVersion?: string;\n}\n\n/** The key vault client performs cryptographic key operations and vault operations against the Key Vault service. */\nexport function createKeyVault(\n endpointParam: string,\n credential: TokenCredential,\n options: KeyVaultClientOptionalParams = {},\n): KeyVaultContext {\n const endpointUrl =\n options.endpoint ?? options.baseUrl ?? String(endpointParam);\n const prefixFromOptions = options?.userAgentOptions?.userAgentPrefix;\n const userAgentInfo = `azsdk-js-keyvault-admin/1.0.0-beta.1`;\n const userAgentPrefix = prefixFromOptions\n ? `${prefixFromOptions} azsdk-js-api ${userAgentInfo}`\n : `azsdk-js-api ${userAgentInfo}`;\n const { apiVersion: _, ...updatedOptions } = {\n ...options,\n userAgentOptions: { userAgentPrefix },\n loggingOptions: { logger: options.loggingOptions?.logger ?? logger.info },\n credentials: {\n scopes: options.credentials?.scopes ?? [\n \"https://vault.azure.net/.default\",\n ],\n },\n };\n const clientContext = getClient(endpointUrl, credential, updatedOptions);\n clientContext.pipeline.removePolicy({ name: \"ApiVersionPolicy\" });\n const apiVersion = options.apiVersion ?? \"7.6\";\n clientContext.pipeline.addPolicy({\n name: \"ClientApiVersionPolicy\",\n sendRequest: (req, next) => {\n // Use the apiVersion defined in request url directly\n // Append one if there is no apiVersion and we have one at client options\n const url = new URL(req.url);\n if (!url.searchParams.get(\"api-version\")) {\n req.url = `${req.url}${\n Array.from(url.searchParams.keys()).length > 0 ? \"&\" : \"?\"\n }api-version=${apiVersion}`;\n }\n\n return next(req);\n },\n });\n return { ...clientContext, apiVersion } as KeyVaultContext;\n}\n"]}
1
+ {"version":3,"file":"keyVaultContext.js","sourceRoot":"","sources":["../../../../../src/generated/src/api/keyVaultContext.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAsBlC,wCAyCC;AA7DD,4CAAsC;AAEtC,yDAA2E;AAiB3E,qHAAqH;AACrH,SAAgB,cAAc,CAC5B,aAAqB,EACrB,UAA2B,EAC3B,UAAwC,EAAE;IAE1C,MAAM,WAAW,GACf,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC;IAC/D,MAAM,iBAAiB,GAAG,OAAO,EAAE,gBAAgB,EAAE,eAAe,CAAC;IACrE,MAAM,aAAa,GAAG,sCAAsC,CAAC;IAC7D,MAAM,eAAe,GAAG,iBAAiB;QACvC,CAAC,CAAC,GAAG,iBAAiB,iBAAiB,aAAa,EAAE;QACtD,CAAC,CAAC,gBAAgB,aAAa,EAAE,CAAC;IACpC,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,cAAc,EAAE,GAAG;QAC3C,GAAG,OAAO;QACV,gBAAgB,EAAE,EAAE,eAAe,EAAE;QACrC,cAAc,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE,MAAM,IAAI,kBAAM,CAAC,IAAI,EAAE;QACzE,WAAW,EAAE;YACX,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,IAAI;gBACrC,kCAAkC;aACnC;SACF;KACF,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,uBAAS,EAAC,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IACzE,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,KAAK,CAAC;IAC/C,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC/B,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACzB,qDAAqD;YACrD,yEAAyE;YACzE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;gBACzC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,GAClB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GACzD,eAAe,UAAU,EAAE,CAAC;YAC9B,CAAC;YAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;IACH,OAAO,EAAE,GAAG,aAAa,EAAE,UAAU,EAAqB,CAAC;AAC7D,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { logger } from \"../logger.js\";\nimport { KnownVersions } from \"../models/models.js\";\nimport { Client, ClientOptions, getClient } from \"@azure-rest/core-client\";\nimport { TokenCredential } from \"@azure/core-auth\";\n\n/** The key vault client performs cryptographic key operations and vault operations against the Key Vault service. */\nexport interface KeyVaultContext extends Client {\n /** The API version to use for this operation. */\n /** Known values of {@link KnownVersions} that the service accepts. */\n apiVersion: string;\n}\n\n/** Optional parameters for the client. */\nexport interface KeyVaultClientOptionalParams extends ClientOptions {\n /** The API version to use for this operation. */\n /** Known values of {@link KnownVersions} that the service accepts. */\n apiVersion?: string;\n}\n\n/** The key vault client performs cryptographic key operations and vault operations against the Key Vault service. */\nexport function createKeyVault(\n endpointParam: string,\n credential: TokenCredential,\n options: KeyVaultClientOptionalParams = {},\n): KeyVaultContext {\n const endpointUrl =\n options.endpoint ?? options.baseUrl ?? String(endpointParam);\n const prefixFromOptions = options?.userAgentOptions?.userAgentPrefix;\n const userAgentInfo = `azsdk-js-keyvault-admin/1.0.0-beta.1`;\n const userAgentPrefix = prefixFromOptions\n ? `${prefixFromOptions} azsdk-js-api ${userAgentInfo}`\n : `azsdk-js-api ${userAgentInfo}`;\n const { apiVersion: _, ...updatedOptions } = {\n ...options,\n userAgentOptions: { userAgentPrefix },\n loggingOptions: { logger: options.loggingOptions?.logger ?? logger.info },\n credentials: {\n scopes: options.credentials?.scopes ?? [\n \"https://vault.azure.net/.default\",\n ],\n },\n };\n const clientContext = getClient(endpointUrl, credential, updatedOptions);\n clientContext.pipeline.removePolicy({ name: \"ApiVersionPolicy\" });\n const apiVersion = options.apiVersion ?? \"7.6\";\n clientContext.pipeline.addPolicy({\n name: \"ClientApiVersionPolicy\",\n sendRequest: (req, next) => {\n // Use the apiVersion defined in request url directly\n // Append one if there is no apiVersion and we have one at client options\n const url = new URL(req.url);\n if (!url.searchParams.get(\"api-version\")) {\n req.url = `${req.url}${\n Array.from(url.searchParams.keys()).length > 0 ? \"&\" : \"?\"\n }api-version=${apiVersion}`;\n }\n\n return next(req);\n },\n });\n return { ...clientContext, apiVersion } as KeyVaultContext;\n}\n"]}