@azure/keyvault-admin 4.5.0-beta.1 → 4.5.0

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.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/generated/models/mappers.ts","../src/generated/models/parameters.ts","../src/generated/operations/roleDefinitions.ts","../src/generated/operations/roleAssignments.ts","../src/generated/keyVaultClientContext.ts","../src/generated/keyVaultClient.ts","../src/constants.ts","../src/log.ts","../src/mappings.ts","../src/tracing.ts","../src/accessControlClient.ts","../src/generated/models/index.ts","../src/lro/keyVaultAdminPoller.ts","../src/lro/backup/operation.ts","../src/lro/backup/poller.ts","../src/lro/restore/operation.ts","../src/lro/restore/poller.ts","../src/lro/selectiveKeyRestore/operation.ts","../src/lro/selectiveKeyRestore/poller.ts","../src/backupClient.ts","../src/settingsClient.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\n\nexport const KeyVaultError: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"KeyVaultError\",\n modelProperties: {\n error: {\n serializedName: \"error\",\n type: {\n name: \"Composite\",\n className: \"ErrorModel\"\n }\n }\n }\n }\n};\n\nexport const ErrorModel: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ErrorModel\",\n modelProperties: {\n code: {\n serializedName: \"code\",\n readOnly: true,\n type: {\n name: \"String\"\n }\n },\n message: {\n serializedName: \"message\",\n readOnly: true,\n type: {\n name: \"String\"\n }\n },\n innerError: {\n serializedName: \"innererror\",\n type: {\n name: \"Composite\",\n className: \"ErrorModel\"\n }\n }\n }\n }\n};\n\nexport const RoleDefinitionCreateParameters: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RoleDefinitionCreateParameters\",\n modelProperties: {\n properties: {\n serializedName: \"properties\",\n type: {\n name: \"Composite\",\n className: \"RoleDefinitionProperties\"\n }\n }\n }\n }\n};\n\nexport const RoleDefinitionProperties: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RoleDefinitionProperties\",\n modelProperties: {\n roleName: {\n serializedName: \"roleName\",\n type: {\n name: \"String\"\n }\n },\n description: {\n serializedName: \"description\",\n type: {\n name: \"String\"\n }\n },\n roleType: {\n serializedName: \"type\",\n type: {\n name: \"String\"\n }\n },\n permissions: {\n serializedName: \"permissions\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"Permission\"\n }\n }\n }\n },\n assignableScopes: {\n serializedName: \"assignableScopes\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const Permission: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"Permission\",\n modelProperties: {\n actions: {\n serializedName: \"actions\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n },\n notActions: {\n serializedName: \"notActions\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n },\n dataActions: {\n serializedName: \"dataActions\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n },\n notDataActions: {\n serializedName: \"notDataActions\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const RoleDefinition: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RoleDefinition\",\n modelProperties: {\n id: {\n serializedName: \"id\",\n readOnly: true,\n type: {\n name: \"String\"\n }\n },\n name: {\n serializedName: \"name\",\n readOnly: true,\n type: {\n name: \"String\"\n }\n },\n type: {\n serializedName: \"type\",\n readOnly: true,\n type: {\n name: \"String\"\n }\n },\n roleName: {\n serializedName: \"properties.roleName\",\n type: {\n name: \"String\"\n }\n },\n description: {\n serializedName: \"properties.description\",\n type: {\n name: \"String\"\n }\n },\n roleType: {\n serializedName: \"properties.type\",\n type: {\n name: \"String\"\n }\n },\n permissions: {\n serializedName: \"properties.permissions\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"Permission\"\n }\n }\n }\n },\n assignableScopes: {\n serializedName: \"properties.assignableScopes\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const RoleDefinitionListResult: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RoleDefinitionListResult\",\n modelProperties: {\n value: {\n serializedName: \"value\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"RoleDefinition\"\n }\n }\n }\n },\n nextLink: {\n serializedName: \"nextLink\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const RoleAssignmentCreateParameters: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RoleAssignmentCreateParameters\",\n modelProperties: {\n properties: {\n serializedName: \"properties\",\n type: {\n name: \"Composite\",\n className: \"RoleAssignmentProperties\"\n }\n }\n }\n }\n};\n\nexport const RoleAssignmentProperties: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RoleAssignmentProperties\",\n modelProperties: {\n roleDefinitionId: {\n serializedName: \"roleDefinitionId\",\n required: true,\n type: {\n name: \"String\"\n }\n },\n principalId: {\n serializedName: \"principalId\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const RoleAssignment: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RoleAssignment\",\n modelProperties: {\n id: {\n serializedName: \"id\",\n readOnly: true,\n type: {\n name: \"String\"\n }\n },\n name: {\n serializedName: \"name\",\n readOnly: true,\n type: {\n name: \"String\"\n }\n },\n type: {\n serializedName: \"type\",\n readOnly: true,\n type: {\n name: \"String\"\n }\n },\n properties: {\n serializedName: \"properties\",\n type: {\n name: \"Composite\",\n className: \"RoleAssignmentPropertiesWithScope\"\n }\n }\n }\n }\n};\n\nexport const RoleAssignmentPropertiesWithScope: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RoleAssignmentPropertiesWithScope\",\n modelProperties: {\n scope: {\n serializedName: \"scope\",\n type: {\n name: \"String\"\n }\n },\n roleDefinitionId: {\n serializedName: \"roleDefinitionId\",\n type: {\n name: \"String\"\n }\n },\n principalId: {\n serializedName: \"principalId\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const RoleAssignmentListResult: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RoleAssignmentListResult\",\n modelProperties: {\n value: {\n serializedName: \"value\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"RoleAssignment\"\n }\n }\n }\n },\n nextLink: {\n serializedName: \"nextLink\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const SASTokenParameter: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"SASTokenParameter\",\n modelProperties: {\n storageResourceUri: {\n serializedName: \"storageResourceUri\",\n required: true,\n type: {\n name: \"String\"\n }\n },\n token: {\n serializedName: \"token\",\n type: {\n name: \"String\"\n }\n },\n useManagedIdentity: {\n defaultValue: false,\n serializedName: \"useManagedIdentity\",\n type: {\n name: \"Boolean\"\n }\n }\n }\n }\n};\n\nexport const FullBackupOperation: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"FullBackupOperation\",\n modelProperties: {\n status: {\n serializedName: \"status\",\n type: {\n name: \"String\"\n }\n },\n statusDetails: {\n serializedName: \"statusDetails\",\n type: {\n name: \"String\"\n }\n },\n error: {\n serializedName: \"error\",\n type: {\n name: \"Composite\",\n className: \"ErrorModel\"\n }\n },\n startTime: {\n serializedName: \"startTime\",\n type: {\n name: \"UnixTime\"\n }\n },\n endTime: {\n serializedName: \"endTime\",\n nullable: true,\n type: {\n name: \"UnixTime\"\n }\n },\n jobId: {\n serializedName: \"jobId\",\n type: {\n name: \"String\"\n }\n },\n azureStorageBlobContainerUri: {\n serializedName: \"azureStorageBlobContainerUri\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const RestoreOperationParameters: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RestoreOperationParameters\",\n modelProperties: {\n sasTokenParameters: {\n serializedName: \"sasTokenParameters\",\n type: {\n name: \"Composite\",\n className: \"SASTokenParameter\"\n }\n },\n folderToRestore: {\n serializedName: \"folderToRestore\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const RestoreOperation: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RestoreOperation\",\n modelProperties: {\n status: {\n serializedName: \"status\",\n type: {\n name: \"String\"\n }\n },\n statusDetails: {\n serializedName: \"statusDetails\",\n type: {\n name: \"String\"\n }\n },\n error: {\n serializedName: \"error\",\n type: {\n name: \"Composite\",\n className: \"ErrorModel\"\n }\n },\n jobId: {\n serializedName: \"jobId\",\n type: {\n name: \"String\"\n }\n },\n startTime: {\n serializedName: \"startTime\",\n type: {\n name: \"UnixTime\"\n }\n },\n endTime: {\n serializedName: \"endTime\",\n nullable: true,\n type: {\n name: \"UnixTime\"\n }\n }\n }\n }\n};\n\nexport const SelectiveKeyRestoreOperationParameters: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"SelectiveKeyRestoreOperationParameters\",\n modelProperties: {\n sasTokenParameters: {\n serializedName: \"sasTokenParameters\",\n type: {\n name: \"Composite\",\n className: \"SASTokenParameter\"\n }\n },\n folder: {\n serializedName: \"folder\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const SelectiveKeyRestoreOperation: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"SelectiveKeyRestoreOperation\",\n modelProperties: {\n status: {\n serializedName: \"status\",\n type: {\n name: \"String\"\n }\n },\n statusDetails: {\n serializedName: \"statusDetails\",\n type: {\n name: \"String\"\n }\n },\n error: {\n serializedName: \"error\",\n type: {\n name: \"Composite\",\n className: \"ErrorModel\"\n }\n },\n jobId: {\n serializedName: \"jobId\",\n type: {\n name: \"String\"\n }\n },\n startTime: {\n serializedName: \"startTime\",\n type: {\n name: \"UnixTime\"\n }\n },\n endTime: {\n serializedName: \"endTime\",\n nullable: true,\n type: {\n name: \"UnixTime\"\n }\n }\n }\n }\n};\n\nexport const UpdateSettingRequest: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"UpdateSettingRequest\",\n modelProperties: {\n value: {\n serializedName: \"value\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const Setting: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"Setting\",\n modelProperties: {\n name: {\n serializedName: \"name\",\n required: true,\n type: {\n name: \"String\"\n }\n },\n value: {\n serializedName: \"value\",\n required: true,\n type: {\n name: \"String\"\n }\n },\n type: {\n serializedName: \"type\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const SettingsListResult: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"SettingsListResult\",\n modelProperties: {\n settings: {\n serializedName: \"settings\",\n readOnly: true,\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"Setting\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const RoleAssignmentFilter: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RoleAssignmentFilter\",\n modelProperties: {\n principalId: {\n serializedName: \"principalId\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const RoleDefinitionFilter: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RoleDefinitionFilter\",\n modelProperties: {\n roleName: {\n serializedName: \"roleName\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const KeyVaultClientFullBackupHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"KeyVaultClientFullBackupHeaders\",\n modelProperties: {\n retryAfter: {\n serializedName: \"retry-after\",\n type: {\n name: \"Number\"\n }\n },\n azureAsyncOperation: {\n serializedName: \"azure-asyncoperation\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const KeyVaultClientFullRestoreOperationHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"KeyVaultClientFullRestoreOperationHeaders\",\n modelProperties: {\n retryAfter: {\n serializedName: \"retry-after\",\n type: {\n name: \"Number\"\n }\n },\n azureAsyncOperation: {\n serializedName: \"azure-asyncoperation\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const KeyVaultClientSelectiveKeyRestoreOperationHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"KeyVaultClientSelectiveKeyRestoreOperationHeaders\",\n modelProperties: {\n retryAfter: {\n serializedName: \"retry-after\",\n type: {\n name: \"Number\"\n }\n },\n azureAsyncOperation: {\n serializedName: \"azure-asyncoperation\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport {\n OperationParameter,\n OperationURLParameter,\n OperationQueryParameter\n} from \"@azure/core-client\";\nimport {\n RoleDefinitionCreateParameters as RoleDefinitionCreateParametersMapper,\n RoleAssignmentCreateParameters as RoleAssignmentCreateParametersMapper,\n SASTokenParameter as SASTokenParameterMapper,\n RestoreOperationParameters as RestoreOperationParametersMapper,\n SelectiveKeyRestoreOperationParameters as SelectiveKeyRestoreOperationParametersMapper,\n UpdateSettingRequest as UpdateSettingRequestMapper\n} from \"../models/mappers\";\n\nexport const accept: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const vaultBaseUrl: OperationURLParameter = {\n parameterPath: \"vaultBaseUrl\",\n mapper: {\n serializedName: \"vaultBaseUrl\",\n required: true,\n type: {\n name: \"String\"\n }\n },\n skipEncoding: true\n};\n\nexport const scope: OperationURLParameter = {\n parameterPath: \"scope\",\n mapper: {\n serializedName: \"scope\",\n required: true,\n type: {\n name: \"String\"\n }\n },\n skipEncoding: true\n};\n\nexport const roleDefinitionName: OperationURLParameter = {\n parameterPath: \"roleDefinitionName\",\n mapper: {\n serializedName: \"roleDefinitionName\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const apiVersion: OperationQueryParameter = {\n parameterPath: \"apiVersion\",\n mapper: {\n serializedName: \"api-version\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const contentType: OperationParameter = {\n parameterPath: [\"options\", \"contentType\"],\n mapper: {\n defaultValue: \"application/json\",\n isConstant: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const parameters: OperationParameter = {\n parameterPath: \"parameters\",\n mapper: RoleDefinitionCreateParametersMapper\n};\n\nexport const filter: OperationQueryParameter = {\n parameterPath: [\"options\", \"filter\"],\n mapper: {\n serializedName: \"$filter\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const nextLink: OperationURLParameter = {\n parameterPath: \"nextLink\",\n mapper: {\n serializedName: \"nextLink\",\n required: true,\n type: {\n name: \"String\"\n }\n },\n skipEncoding: true\n};\n\nexport const roleAssignmentName: OperationURLParameter = {\n parameterPath: \"roleAssignmentName\",\n mapper: {\n serializedName: \"roleAssignmentName\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const parameters1: OperationParameter = {\n parameterPath: \"parameters\",\n mapper: RoleAssignmentCreateParametersMapper\n};\n\nexport const azureStorageBlobContainerUri: OperationParameter = {\n parameterPath: [\"options\", \"azureStorageBlobContainerUri\"],\n mapper: SASTokenParameterMapper\n};\n\nexport const jobId: OperationURLParameter = {\n parameterPath: \"jobId\",\n mapper: {\n serializedName: \"jobId\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const restoreBlobDetails: OperationParameter = {\n parameterPath: [\"options\", \"restoreBlobDetails\"],\n mapper: RestoreOperationParametersMapper\n};\n\nexport const restoreBlobDetails1: OperationParameter = {\n parameterPath: [\"options\", \"restoreBlobDetails\"],\n mapper: SelectiveKeyRestoreOperationParametersMapper\n};\n\nexport const keyName: OperationURLParameter = {\n parameterPath: \"keyName\",\n mapper: {\n serializedName: \"keyName\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const value: OperationParameter = {\n parameterPath: \"value\",\n mapper: UpdateSettingRequestMapper\n};\n\nexport const settingName: OperationURLParameter = {\n parameterPath: \"settingName\",\n mapper: {\n serializedName: \"setting-name\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { RoleDefinitions } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { KeyVaultClientContext } from \"../keyVaultClientContext\";\nimport {\n RoleDefinitionsDeleteOptionalParams,\n RoleDefinitionCreateParameters,\n RoleDefinitionsCreateOrUpdateOptionalParams,\n RoleDefinitionsCreateOrUpdateResponse,\n RoleDefinitionsGetOptionalParams,\n RoleDefinitionsGetResponse,\n RoleDefinitionsListOptionalParams,\n RoleDefinitionsListResponse,\n RoleDefinitionsListNextOptionalParams,\n RoleDefinitionsListNextResponse\n} from \"../models\";\n\n/** Class containing RoleDefinitions operations. */\nexport class RoleDefinitionsImpl implements RoleDefinitions {\n private readonly client: KeyVaultClientContext;\n\n /**\n * Initialize a new instance of the class RoleDefinitions class.\n * @param client Reference to the service client\n */\n constructor(client: KeyVaultClientContext) {\n this.client = client;\n }\n\n /**\n * Deletes a custom role definition.\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param scope The scope of the role definition to delete. Managed HSM only supports '/'.\n * @param roleDefinitionName The name (GUID) of the role definition to delete.\n * @param options The options parameters.\n */\n delete(\n vaultBaseUrl: string,\n scope: string,\n roleDefinitionName: string,\n options?: RoleDefinitionsDeleteOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { vaultBaseUrl, scope, roleDefinitionName, options },\n deleteOperationSpec\n );\n }\n\n /**\n * Creates or updates a custom role definition.\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param scope The scope of the role definition to create or update. Managed HSM only supports '/'.\n * @param roleDefinitionName The name of the role definition to create or update. It can be any valid\n * GUID.\n * @param parameters Parameters for the role definition.\n * @param options The options parameters.\n */\n createOrUpdate(\n vaultBaseUrl: string,\n scope: string,\n roleDefinitionName: string,\n parameters: RoleDefinitionCreateParameters,\n options?: RoleDefinitionsCreateOrUpdateOptionalParams\n ): Promise<RoleDefinitionsCreateOrUpdateResponse> {\n return this.client.sendOperationRequest(\n { vaultBaseUrl, scope, roleDefinitionName, parameters, options },\n createOrUpdateOperationSpec\n );\n }\n\n /**\n * Get the specified role definition.\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param scope The scope of the role definition to get. Managed HSM only supports '/'.\n * @param roleDefinitionName The name of the role definition to get.\n * @param options The options parameters.\n */\n get(\n vaultBaseUrl: string,\n scope: string,\n roleDefinitionName: string,\n options?: RoleDefinitionsGetOptionalParams\n ): Promise<RoleDefinitionsGetResponse> {\n return this.client.sendOperationRequest(\n { vaultBaseUrl, scope, roleDefinitionName, options },\n getOperationSpec\n );\n }\n\n /**\n * Get all role definitions that are applicable at scope and above.\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param scope The scope of the role definition.\n * @param options The options parameters.\n */\n list(\n vaultBaseUrl: string,\n scope: string,\n options?: RoleDefinitionsListOptionalParams\n ): Promise<RoleDefinitionsListResponse> {\n return this.client.sendOperationRequest(\n { vaultBaseUrl, scope, options },\n listOperationSpec\n );\n }\n\n /**\n * ListNext\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param scope The scope of the role definition.\n * @param nextLink The nextLink from the previous successful call to the List method.\n * @param options The options parameters.\n */\n listNext(\n vaultBaseUrl: string,\n scope: string,\n nextLink: string,\n options?: RoleDefinitionsListNextOptionalParams\n ): Promise<RoleDefinitionsListNextResponse> {\n return this.client.sendOperationRequest(\n { vaultBaseUrl, scope, nextLink, options },\n listNextOperationSpec\n );\n }\n}\n// Operation Specifications\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst deleteOperationSpec: coreClient.OperationSpec = {\n path:\n \"/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}\",\n httpMethod: \"DELETE\",\n responses: {\n 200: {},\n 404: {},\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.vaultBaseUrl,\n Parameters.scope,\n Parameters.roleDefinitionName\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst createOrUpdateOperationSpec: coreClient.OperationSpec = {\n path:\n \"/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}\",\n httpMethod: \"PUT\",\n responses: {\n 201: {\n bodyMapper: Mappers.RoleDefinition\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n requestBody: Parameters.parameters,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.vaultBaseUrl,\n Parameters.scope,\n Parameters.roleDefinitionName\n ],\n headerParameters: [Parameters.accept, Parameters.contentType],\n mediaType: \"json\",\n serializer\n};\nconst getOperationSpec: coreClient.OperationSpec = {\n path:\n \"/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.RoleDefinition\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.vaultBaseUrl,\n Parameters.scope,\n Parameters.roleDefinitionName\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst listOperationSpec: coreClient.OperationSpec = {\n path: \"/{scope}/providers/Microsoft.Authorization/roleDefinitions\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.RoleDefinitionListResult\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n queryParameters: [Parameters.apiVersion, Parameters.filter],\n urlParameters: [Parameters.vaultBaseUrl, Parameters.scope],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst listNextOperationSpec: coreClient.OperationSpec = {\n path: \"{nextLink}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.RoleDefinitionListResult\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n queryParameters: [Parameters.apiVersion, Parameters.filter],\n urlParameters: [\n Parameters.vaultBaseUrl,\n Parameters.scope,\n Parameters.nextLink\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { RoleAssignments } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { KeyVaultClientContext } from \"../keyVaultClientContext\";\nimport {\n RoleAssignmentsDeleteOptionalParams,\n RoleAssignmentCreateParameters,\n RoleAssignmentsCreateOptionalParams,\n RoleAssignmentsCreateResponse,\n RoleAssignmentsGetOptionalParams,\n RoleAssignmentsGetResponse,\n RoleAssignmentsListForScopeOptionalParams,\n RoleAssignmentsListForScopeResponse,\n RoleAssignmentsListForScopeNextOptionalParams,\n RoleAssignmentsListForScopeNextResponse\n} from \"../models\";\n\n/** Class containing RoleAssignments operations. */\nexport class RoleAssignmentsImpl implements RoleAssignments {\n private readonly client: KeyVaultClientContext;\n\n /**\n * Initialize a new instance of the class RoleAssignments class.\n * @param client Reference to the service client\n */\n constructor(client: KeyVaultClientContext) {\n this.client = client;\n }\n\n /**\n * Deletes a role assignment.\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param scope The scope of the role assignment to delete.\n * @param roleAssignmentName The name of the role assignment to delete.\n * @param options The options parameters.\n */\n delete(\n vaultBaseUrl: string,\n scope: string,\n roleAssignmentName: string,\n options?: RoleAssignmentsDeleteOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { vaultBaseUrl, scope, roleAssignmentName, options },\n deleteOperationSpec\n );\n }\n\n /**\n * Creates a role assignment.\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param scope The scope of the role assignment to create.\n * @param roleAssignmentName The name of the role assignment to create. It can be any valid GUID.\n * @param parameters Parameters for the role assignment.\n * @param options The options parameters.\n */\n create(\n vaultBaseUrl: string,\n scope: string,\n roleAssignmentName: string,\n parameters: RoleAssignmentCreateParameters,\n options?: RoleAssignmentsCreateOptionalParams\n ): Promise<RoleAssignmentsCreateResponse> {\n return this.client.sendOperationRequest(\n { vaultBaseUrl, scope, roleAssignmentName, parameters, options },\n createOperationSpec\n );\n }\n\n /**\n * Get the specified role assignment.\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param scope The scope of the role assignment.\n * @param roleAssignmentName The name of the role assignment to get.\n * @param options The options parameters.\n */\n get(\n vaultBaseUrl: string,\n scope: string,\n roleAssignmentName: string,\n options?: RoleAssignmentsGetOptionalParams\n ): Promise<RoleAssignmentsGetResponse> {\n return this.client.sendOperationRequest(\n { vaultBaseUrl, scope, roleAssignmentName, options },\n getOperationSpec\n );\n }\n\n /**\n * Gets role assignments for a scope.\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param scope The scope of the role assignments.\n * @param options The options parameters.\n */\n listForScope(\n vaultBaseUrl: string,\n scope: string,\n options?: RoleAssignmentsListForScopeOptionalParams\n ): Promise<RoleAssignmentsListForScopeResponse> {\n return this.client.sendOperationRequest(\n { vaultBaseUrl, scope, options },\n listForScopeOperationSpec\n );\n }\n\n /**\n * ListForScopeNext\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param scope The scope of the role assignments.\n * @param nextLink The nextLink from the previous successful call to the ListForScope method.\n * @param options The options parameters.\n */\n listForScopeNext(\n vaultBaseUrl: string,\n scope: string,\n nextLink: string,\n options?: RoleAssignmentsListForScopeNextOptionalParams\n ): Promise<RoleAssignmentsListForScopeNextResponse> {\n return this.client.sendOperationRequest(\n { vaultBaseUrl, scope, nextLink, options },\n listForScopeNextOperationSpec\n );\n }\n}\n// Operation Specifications\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst deleteOperationSpec: coreClient.OperationSpec = {\n path:\n \"/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}\",\n httpMethod: \"DELETE\",\n responses: {\n 200: {},\n 404: {},\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.vaultBaseUrl,\n Parameters.scope,\n Parameters.roleAssignmentName\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst createOperationSpec: coreClient.OperationSpec = {\n path:\n \"/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}\",\n httpMethod: \"PUT\",\n responses: {\n 201: {\n bodyMapper: Mappers.RoleAssignment\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n requestBody: Parameters.parameters1,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.vaultBaseUrl,\n Parameters.scope,\n Parameters.roleAssignmentName\n ],\n headerParameters: [Parameters.accept, Parameters.contentType],\n mediaType: \"json\",\n serializer\n};\nconst getOperationSpec: coreClient.OperationSpec = {\n path:\n \"/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.RoleAssignment\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.vaultBaseUrl,\n Parameters.scope,\n Parameters.roleAssignmentName\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst listForScopeOperationSpec: coreClient.OperationSpec = {\n path: \"/{scope}/providers/Microsoft.Authorization/roleAssignments\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.RoleAssignmentListResult\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n queryParameters: [Parameters.apiVersion, Parameters.filter],\n urlParameters: [Parameters.vaultBaseUrl, Parameters.scope],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst listForScopeNextOperationSpec: coreClient.OperationSpec = {\n path: \"{nextLink}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.RoleAssignmentListResult\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n queryParameters: [Parameters.apiVersion, Parameters.filter],\n urlParameters: [\n Parameters.vaultBaseUrl,\n Parameters.scope,\n Parameters.nextLink\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\nimport { ApiVersion75Preview1, KeyVaultClientOptionalParams } from \"./models\";\n\nexport class KeyVaultClientContext extends coreClient.ServiceClient {\n apiVersion: ApiVersion75Preview1;\n\n /**\n * Initializes a new instance of the KeyVaultClientContext class.\n * @param apiVersion Api Version\n * @param options The parameter options\n */\n constructor(\n apiVersion: ApiVersion75Preview1,\n options?: KeyVaultClientOptionalParams\n ) {\n if (apiVersion === undefined) {\n throw new Error(\"'apiVersion' cannot be null\");\n }\n\n // Initializing default values for options\n if (!options) {\n options = {};\n }\n const defaults: KeyVaultClientOptionalParams = {\n requestContentType: \"application/json; charset=utf-8\"\n };\n\n const packageDetails = `azsdk-js-keyvault-admin/4.5.0-beta.1`;\n const userAgentPrefix =\n options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n\n const optionsWithDefaults = {\n ...defaults,\n ...options,\n userAgentOptions: {\n userAgentPrefix\n },\n baseUri: options.endpoint || \"{vaultBaseUrl}\"\n };\n super(optionsWithDefaults);\n // Parameter assignments\n this.apiVersion = apiVersion;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\nimport { RoleDefinitionsImpl, RoleAssignmentsImpl } from \"./operations\";\nimport { RoleDefinitions, RoleAssignments } from \"./operationsInterfaces\";\nimport * as Parameters from \"./models/parameters\";\nimport * as Mappers from \"./models/mappers\";\nimport { KeyVaultClientContext } from \"./keyVaultClientContext\";\nimport {\n KeyVaultClientOptionalParams,\n ApiVersion75Preview1,\n FullBackupOptionalParams,\n FullBackupResponse,\n FullBackupStatusOptionalParams,\n FullBackupStatusResponse,\n FullRestoreOperationOptionalParams,\n FullRestoreOperationResponse,\n RestoreStatusOptionalParams,\n RestoreStatusResponse,\n SelectiveKeyRestoreOperationOptionalParams,\n SelectiveKeyRestoreOperationResponse,\n UpdateSettingOptionalParams,\n UpdateSettingResponse,\n GetSettingOptionalParams,\n GetSettingResponse,\n GetSettingsOptionalParams,\n GetSettingsResponse\n} from \"./models\";\n\nexport class KeyVaultClient extends KeyVaultClientContext {\n /**\n * Initializes a new instance of the KeyVaultClient class.\n * @param apiVersion Api Version\n * @param options The parameter options\n */\n constructor(\n apiVersion: ApiVersion75Preview1,\n options?: KeyVaultClientOptionalParams\n ) {\n super(apiVersion, options);\n this.roleDefinitions = new RoleDefinitionsImpl(this);\n this.roleAssignments = new RoleAssignmentsImpl(this);\n }\n\n /**\n * Creates a full backup using a user-provided SAS token to an Azure blob storage container.\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param options The options parameters.\n */\n fullBackup(\n vaultBaseUrl: string,\n options?: FullBackupOptionalParams\n ): Promise<FullBackupResponse> {\n return this.sendOperationRequest(\n { vaultBaseUrl, options },\n fullBackupOperationSpec\n );\n }\n\n /**\n * Returns the status of full backup operation\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param jobId The id returned as part of the backup request\n * @param options The options parameters.\n */\n fullBackupStatus(\n vaultBaseUrl: string,\n jobId: string,\n options?: FullBackupStatusOptionalParams\n ): Promise<FullBackupStatusResponse> {\n return this.sendOperationRequest(\n { vaultBaseUrl, jobId, options },\n fullBackupStatusOperationSpec\n );\n }\n\n /**\n * Restores all key materials using the SAS token pointing to a previously stored Azure Blob storage\n * backup folder\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param options The options parameters.\n */\n fullRestoreOperation(\n vaultBaseUrl: string,\n options?: FullRestoreOperationOptionalParams\n ): Promise<FullRestoreOperationResponse> {\n return this.sendOperationRequest(\n { vaultBaseUrl, options },\n fullRestoreOperationOperationSpec\n );\n }\n\n /**\n * Returns the status of restore operation\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param jobId The Job Id returned part of the restore operation\n * @param options The options parameters.\n */\n restoreStatus(\n vaultBaseUrl: string,\n jobId: string,\n options?: RestoreStatusOptionalParams\n ): Promise<RestoreStatusResponse> {\n return this.sendOperationRequest(\n { vaultBaseUrl, jobId, options },\n restoreStatusOperationSpec\n );\n }\n\n /**\n * Restores all key versions of a given key using user supplied SAS token pointing to a previously\n * stored Azure Blob storage backup folder\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param keyName The name of the key to be restored from the user supplied backup\n * @param options The options parameters.\n */\n selectiveKeyRestoreOperation(\n vaultBaseUrl: string,\n keyName: string,\n options?: SelectiveKeyRestoreOperationOptionalParams\n ): Promise<SelectiveKeyRestoreOperationResponse> {\n return this.sendOperationRequest(\n { vaultBaseUrl, keyName, options },\n selectiveKeyRestoreOperationOperationSpec\n );\n }\n\n /**\n * Description of the pool setting to be updated\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param settingName The name of the account setting. Must be a valid settings option.\n * @param value The value of the pool setting.\n * @param options The options parameters.\n */\n updateSetting(\n vaultBaseUrl: string,\n settingName: string,\n value: string,\n options?: UpdateSettingOptionalParams\n ): Promise<UpdateSettingResponse> {\n return this.sendOperationRequest(\n { vaultBaseUrl, settingName, value, options },\n updateSettingOperationSpec\n );\n }\n\n /**\n * Retrieves the setting object of a specified setting name.\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param settingName The name of the account setting. Must be a valid settings option.\n * @param options The options parameters.\n */\n getSetting(\n vaultBaseUrl: string,\n settingName: string,\n options?: GetSettingOptionalParams\n ): Promise<GetSettingResponse> {\n return this.sendOperationRequest(\n { vaultBaseUrl, settingName, options },\n getSettingOperationSpec\n );\n }\n\n /**\n * Retrieves a list of all the available account settings that can be configured.\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param options The options parameters.\n */\n getSettings(\n vaultBaseUrl: string,\n options?: GetSettingsOptionalParams\n ): Promise<GetSettingsResponse> {\n return this.sendOperationRequest(\n { vaultBaseUrl, options },\n getSettingsOperationSpec\n );\n }\n\n roleDefinitions: RoleDefinitions;\n roleAssignments: RoleAssignments;\n}\n// Operation Specifications\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst fullBackupOperationSpec: coreClient.OperationSpec = {\n path: \"/backup\",\n httpMethod: \"POST\",\n responses: {\n 202: {\n bodyMapper: Mappers.FullBackupOperation,\n headersMapper: Mappers.KeyVaultClientFullBackupHeaders\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n requestBody: Parameters.azureStorageBlobContainerUri,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.vaultBaseUrl],\n headerParameters: [Parameters.accept, Parameters.contentType],\n mediaType: \"json\",\n serializer\n};\nconst fullBackupStatusOperationSpec: coreClient.OperationSpec = {\n path: \"/backup/{jobId}/pending\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.FullBackupOperation\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.vaultBaseUrl, Parameters.jobId],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst fullRestoreOperationOperationSpec: coreClient.OperationSpec = {\n path: \"/restore\",\n httpMethod: \"PUT\",\n responses: {\n 202: {\n bodyMapper: Mappers.RestoreOperation,\n headersMapper: Mappers.KeyVaultClientFullRestoreOperationHeaders\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n requestBody: Parameters.restoreBlobDetails,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.vaultBaseUrl],\n headerParameters: [Parameters.accept, Parameters.contentType],\n mediaType: \"json\",\n serializer\n};\nconst restoreStatusOperationSpec: coreClient.OperationSpec = {\n path: \"/restore/{jobId}/pending\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.RestoreOperation\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.vaultBaseUrl, Parameters.jobId],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst selectiveKeyRestoreOperationOperationSpec: coreClient.OperationSpec = {\n path: \"/keys/{keyName}/restore\",\n httpMethod: \"PUT\",\n responses: {\n 202: {\n bodyMapper: Mappers.SelectiveKeyRestoreOperation,\n headersMapper: Mappers.KeyVaultClientSelectiveKeyRestoreOperationHeaders\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n requestBody: Parameters.restoreBlobDetails1,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.vaultBaseUrl, Parameters.keyName],\n headerParameters: [Parameters.accept, Parameters.contentType],\n mediaType: \"json\",\n serializer\n};\nconst updateSettingOperationSpec: coreClient.OperationSpec = {\n path: \"/settings/{setting-name}\",\n httpMethod: \"PATCH\",\n responses: {\n 200: {\n bodyMapper: Mappers.Setting\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n requestBody: {\n parameterPath: { value: [\"value\"] },\n mapper: { ...Mappers.UpdateSettingRequest, required: true }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.vaultBaseUrl, Parameters.settingName],\n headerParameters: [Parameters.accept, Parameters.contentType],\n mediaType: \"json\",\n serializer\n};\nconst getSettingOperationSpec: coreClient.OperationSpec = {\n path: \"/settings/{setting-name}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.Setting\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.vaultBaseUrl, Parameters.settingName],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst getSettingsOperationSpec: coreClient.OperationSpec = {\n path: \"/settings\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.SettingsListResult\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.vaultBaseUrl],\n headerParameters: [Parameters.accept],\n serializer\n};\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * Current version of the Key Vault Admin SDK.\n */\nexport const SDK_VERSION: string = \"4.5.0-beta.1\";\n\n/**\n * The latest supported Key Vault service API version.\n */\nexport const LATEST_API_VERSION = \"7.5-preview.1\";\n\n/**\n * Supported API versions\n */\nexport type SUPPORTED_API_VERSIONS = \"7.2\" | \"7.3\" | \"7.4\" | \"7.5-preview.1\";\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { createClientLogger } from \"@azure/logger\";\n\n/**\n * The \\@azure/logger configuration for this package.\n */\nexport const logger = createClientLogger(\"keyvault-admin\");\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n KeyVaultRoleAssignment,\n KeyVaultRoleDefinition,\n KeyVaultRoleScope,\n} from \"./accessControlModels\";\nimport { RoleAssignment, RoleDefinition } from \"./generated/models\";\n\nexport const mappings = {\n roleAssignment: {\n generatedToPublic(roleAssignment: RoleAssignment): KeyVaultRoleAssignment {\n const { id, name, type, properties } = roleAssignment;\n const { scope, roleDefinitionId, principalId } = properties || {};\n return {\n id: id!,\n name: name!,\n kind: type!,\n properties: {\n scope: scope as KeyVaultRoleScope,\n roleDefinitionId: roleDefinitionId!,\n principalId: principalId!,\n },\n };\n },\n },\n roleDefinition: {\n generatedToPublic(roleDefinition: RoleDefinition): KeyVaultRoleDefinition {\n const { id, name, type, roleName, description, roleType, permissions, assignableScopes } =\n roleDefinition;\n return {\n id: id!,\n name: name!,\n kind: type!,\n roleName: roleName!,\n description: description!,\n roleType: roleType!,\n permissions: permissions!,\n assignableScopes: assignableScopes!,\n };\n },\n },\n folderUriParts(folderUri: string): { folderName: string; folderUri: string } {\n const uriParts = folderUri.split(\"/\");\n const folderName = uriParts.pop();\n const storageUri = uriParts.join(\"/\");\n\n if (!folderName) {\n throw new Error(\"The provided folder URI is missing the folder name.\");\n }\n\n return {\n folderName,\n folderUri: storageUri,\n };\n },\n};\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { SDK_VERSION } from \"./constants\";\nimport { createTracingClient } from \"@azure/core-tracing\";\n\nexport const tracingClient = createTracingClient({\n namespace: \"Microsoft.KeyVault\",\n packageName: \"@azure/keyvault-admin\",\n packageVersion: SDK_VERSION,\n});\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n/// <reference lib=\"esnext.asynciterable\" />\n\nimport {\n AccessControlClientOptions,\n CreateRoleAssignmentOptions,\n DeleteRoleAssignmentOptions,\n DeleteRoleDefinitionOptions,\n GetRoleAssignmentOptions,\n GetRoleDefinitionOptions,\n KeyVaultRoleAssignment,\n KeyVaultRoleDefinition,\n KeyVaultRoleScope,\n ListRoleAssignmentsOptions,\n ListRoleAssignmentsPageSettings,\n ListRoleDefinitionsOptions,\n ListRoleDefinitionsPageSettings,\n SetRoleDefinitionOptions,\n} from \"./accessControlModels\";\nimport { KeyVaultClient } from \"./generated/keyVaultClient\";\nimport { LATEST_API_VERSION } from \"./constants\";\nimport { PagedAsyncIterableIterator } from \"@azure/core-paging\";\nimport { RoleAssignmentsListForScopeOptionalParams } from \"./generated/models\";\nimport { TokenCredential } from \"@azure/core-auth\";\nimport { bearerTokenAuthenticationPolicy } from \"@azure/core-rest-pipeline\";\nimport { createKeyVaultChallengeCallbacks } from \"@azure/keyvault-common\";\nimport { logger } from \"./log\";\nimport { mappings } from \"./mappings\";\nimport { tracingClient } from \"./tracing\";\nimport { v4 as v4uuid } from \"uuid\";\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\n * import { KeyVaultAccessControlClient } from \"@azure/keyvault-admin\";\n * import { DefaultAzureCredential } from \"@azure/identity\";\n *\n * let vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * let credentials = new DefaultAzureCredential();\n *\n * let 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 options: AccessControlClientOptions = {}\n ) {\n this.vaultUrl = vaultUrl;\n\n const serviceVersion = options.serviceVersion || LATEST_API_VERSION;\n\n const clientOptions = {\n ...options,\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\n this.client = new KeyVaultClient(serviceVersion, clientOptions);\n\n this.client.pipeline.addPolicy(\n bearerTokenAuthenticationPolicy({\n credential,\n // The scopes will be populated in the challenge callbacks based on the WWW-authenticate header\n // returned by the challenge, so pass an empty array as a placeholder.\n scopes: [],\n challengeCallbacks: createKeyVaultChallengeCallbacks(options),\n })\n );\n }\n\n /**\n * Creates a role assignment in an Azure Key Vault.\n *\n * Example usage:\n * ```ts\n * const client = new KeyVaultAccessControlClient(url, credentials);\n * const roleDefinition = await client.listRoleDefinitions(\"/\").next();\n * const principalId = \"4871f6a6-374f-4b6b-8b0c-f5d84db823f6\";\n * const result = await client.createRoleAssignment(\"/\", \"295c179b-9ad3-4117-99cd-b1aa66cf4517\", roleDefinition, principalId);\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 this.vaultUrl,\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\n * const client = new KeyVaultAccessControlClient(url, credentials);\n * const roleAssignment = await client.createRoleAssignment(\"/\", \"295c179b-9ad3-4117-99cd-b1aa66cf4517\");\n * await client.deleteRoleAssignment(roleAssignment.properties.roleScope, 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 await this.client.roleAssignments.delete(this.vaultUrl, roleScope, name, updatedOptions);\n }\n );\n }\n\n /**\n * Gets a role assignments previously created in an Azure Key Vault.\n *\n * Example usage:\n * ```ts\n * const client = new KeyVaultAccessControlClient(url, credentials);\n * let roleAssignment = await client.createRoleAssignment(\"/\", \"295c179b-9ad3-4117-99cd-b1aa66cf4517\");\n * roleAssignment = const await client.getRoleAssignment(roleAssignment.properties.roleScope, roleAssignment.name);\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(\n this.vaultUrl,\n roleScope,\n name,\n updatedOptions\n );\n return mappings.roleAssignment.generatedToPublic(response);\n }\n );\n }\n\n /**\n * Deals with the pagination of {@link listRoleAssignments}.\n * @param roleScope - The scope of the role assignments.\n * @param continuationState - An object that indicates the position of the paginated request.\n * @param options - Common options for the iterative endpoints.\n */\n private async *listRoleAssignmentsPage(\n roleScope: KeyVaultRoleScope,\n continuationState: ListRoleAssignmentsPageSettings,\n options?: ListRoleAssignmentsOptions\n ): AsyncIterableIterator<KeyVaultRoleAssignment[]> {\n if (!continuationState.continuationToken) {\n const optionsComplete: RoleAssignmentsListForScopeOptionalParams = options || {};\n const currentSetResponse = await tracingClient.withSpan(\n \"KeyVaultAccessControlClient.listRoleAssignmentsPage\",\n optionsComplete,\n async (updatedOptions) => {\n return this.client.roleAssignments.listForScope(this.vaultUrl, roleScope, updatedOptions);\n }\n );\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mappings.roleAssignment.generatedToPublic, this);\n }\n }\n while (continuationState.continuationToken) {\n const currentSetResponse = await tracingClient.withSpan(\n \"KeyVaultAccessControlClient.listRoleAssignmentsPage\",\n options || {},\n async (updatedOptions) => {\n return this.client.roleAssignments.listForScopeNext(\n this.vaultUrl,\n roleScope,\n continuationState.continuationToken!,\n updatedOptions\n );\n }\n );\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mappings.roleAssignment.generatedToPublic, this);\n } else {\n break;\n }\n }\n }\n\n /**\n * Deals with the iteration of all the available results of {@link listRoleAssignments}.\n * @param roleScope - The scope of the role assignments.\n * @param options - Common options for the iterative endpoints.\n */\n private async *listRoleAssignmentsAll(\n roleScope: KeyVaultRoleScope,\n options?: ListRoleAssignmentsOptions\n ): AsyncIterableIterator<KeyVaultRoleAssignment> {\n for await (const page of this.listRoleAssignmentsPage(roleScope, {}, options)) {\n yield* page;\n }\n }\n\n /**\n * Iterates over all of the available role assignments in an Azure Key Vault.\n *\n * Example usage:\n * ```ts\n * let client = new KeyVaultAccessControlClient(url, credentials);\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 const iter = this.listRoleAssignmentsAll(roleScope, options);\n\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage: (settings: ListRoleAssignmentsPageSettings = {}) =>\n this.listRoleAssignmentsPage(roleScope, settings, options),\n };\n }\n\n /**\n * Deals with the pagination of {@link listRoleDefinitions}.\n * @param roleScope - The scope of the role definition.\n * @param continuationState - An object that indicates the position of the paginated request.\n * @param options - Common options for the iterative endpoints.\n */\n private async *listRoleDefinitionsPage(\n roleScope: KeyVaultRoleScope,\n continuationState: ListRoleDefinitionsPageSettings,\n options: ListRoleDefinitionsOptions = {}\n ): AsyncIterableIterator<KeyVaultRoleDefinition[]> {\n if (!continuationState.continuationToken) {\n const optionsComplete: RoleAssignmentsListForScopeOptionalParams = options || {};\n const currentSetResponse = await tracingClient.withSpan(\n \"KeyVaultAccessControlClient.listRoleDefinitionsPage\",\n optionsComplete,\n (updatedOptions) =>\n this.client.roleDefinitions.list(this.vaultUrl, roleScope, updatedOptions)\n );\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mappings.roleDefinition.generatedToPublic, this);\n }\n }\n while (continuationState.continuationToken) {\n const currentSetResponse = await tracingClient.withSpan(\n \"KeyVaultAccessControlClient.listRoleDefinitionsPage\",\n options,\n (updatedOptions) =>\n this.client.roleDefinitions.listNext(\n this.vaultUrl,\n roleScope,\n continuationState.continuationToken!,\n updatedOptions\n )\n );\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mappings.roleDefinition.generatedToPublic, this);\n } else {\n break;\n }\n }\n }\n\n /**\n * Deals with the iteration of all the available results of {@link listRoleDefinitions}.\n * @param roleScope - The scope of the role definition.\n * @param options - Common options for the iterative endpoints.\n */\n private async *listRoleDefinitionsAll(\n roleScope: KeyVaultRoleScope,\n options?: ListRoleDefinitionsOptions\n ): AsyncIterableIterator<KeyVaultRoleDefinition> {\n for await (const page of this.listRoleDefinitionsPage(roleScope, {}, options)) {\n yield* page;\n }\n }\n\n /**\n * Iterates over all of the available role definitions in an Azure Key Vault.\n *\n * Example usage:\n * ```ts\n * let client = new KeyVaultAccessControlClient(url, credentials);\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 const iter = this.listRoleDefinitionsAll(roleScope, options);\n\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage: (settings: ListRoleDefinitionsPageSettings = {}) =>\n this.listRoleDefinitionsPage(roleScope, settings, options),\n };\n }\n\n /**\n * Gets a role definition from Azure Key Vault.\n *\n * Example usage:\n * ```\n * const client = new KeyVaultAccessControlClient(url, credentials);\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(\n this.vaultUrl,\n roleScope,\n name,\n updatedOptions\n );\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\n * const client = new KeyVaultAccessControlClient(url, credentials);\n * const permissions = [{ dataActions: [KnownKeyVaultDataAction.BackupHsmKeys] }];\n * const roleDefinitionName = \"23b8bb1a-39c0-4c89-a85b-dd3c99273a8a\";\n * const roleDefinition = await client.setRoleDefinition(KnownKeyVaultRoleScope.Global, { permissions, roleDefinitionName });\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 this.vaultUrl,\n roleScope,\n options.roleDefinitionName || v4uuid(),\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\n * const client = new KeyVaultAccessControlClient(url, credentials);\n * const roleDefinition = await client.setRoleDefinition(\"/\", \"23b8bb1a-39c0-4c89-a85b-dd3c99273a8a\", []);\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 await this.client.roleDefinitions.delete(this.vaultUrl, roleScope, name, updatedOptions);\n }\n );\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\n\n/** The key vault error exception. */\nexport interface KeyVaultError {\n /**\n * The key vault server error.\n * NOTE: This property will not be serialized. It can only be populated by the server.\n */\n readonly error?: ErrorModel;\n}\n\n/** The key vault server error. */\nexport interface ErrorModel {\n /**\n * The error code.\n * NOTE: This property will not be serialized. It can only be populated by the server.\n */\n readonly code?: string;\n /**\n * The error message.\n * NOTE: This property will not be serialized. It can only be populated by the server.\n */\n readonly message?: string;\n /**\n * The key vault server error.\n * NOTE: This property will not be serialized. It can only be populated by the server.\n */\n readonly innerError?: ErrorModel;\n}\n\n/** Role definition create parameters. */\nexport interface RoleDefinitionCreateParameters {\n /** Role definition properties. */\n properties: RoleDefinitionProperties;\n}\n\n/** Role definition properties. */\nexport interface RoleDefinitionProperties {\n /** The role name. */\n roleName?: string;\n /** The role definition description. */\n description?: string;\n /** The role type. */\n roleType?: RoleType;\n /** Role definition permissions. */\n permissions?: Permission[];\n /** Role definition assignable scopes. */\n assignableScopes?: RoleScope[];\n}\n\n/** Role definition permissions. */\nexport interface Permission {\n /** Action permissions that are granted. */\n actions?: string[];\n /** Action permissions that are excluded but not denied. They may be granted by other role definitions assigned to a principal. */\n notActions?: string[];\n /** Data action permissions that are granted. */\n dataActions?: DataAction[];\n /** Data action permissions that are excluded but not denied. They may be granted by other role definitions assigned to a principal. */\n notDataActions?: DataAction[];\n}\n\n/** Role definition. */\nexport interface RoleDefinition {\n /**\n * The role definition ID.\n * NOTE: This property will not be serialized. It can only be populated by the server.\n */\n readonly id?: string;\n /**\n * The role definition name.\n * NOTE: This property will not be serialized. It can only be populated by the server.\n */\n readonly name?: string;\n /**\n * The role definition type.\n * NOTE: This property will not be serialized. It can only be populated by the server.\n */\n readonly type?: RoleDefinitionType;\n /** The role name. */\n roleName?: string;\n /** The role definition description. */\n description?: string;\n /** The role type. */\n roleType?: RoleType;\n /** Role definition permissions. */\n permissions?: Permission[];\n /** Role definition assignable scopes. */\n assignableScopes?: RoleScope[];\n}\n\n/** Role definition list operation result. */\nexport interface RoleDefinitionListResult {\n /** Role definition list. */\n value?: RoleDefinition[];\n /** The URL to use for getting the next set of results. */\n nextLink?: string;\n}\n\n/** Role assignment create parameters. */\nexport interface RoleAssignmentCreateParameters {\n /** Role assignment properties. */\n properties: RoleAssignmentProperties;\n}\n\n/** Role assignment properties. */\nexport interface RoleAssignmentProperties {\n /** The role definition ID used in the role assignment. */\n roleDefinitionId: string;\n /** 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 principalId: string;\n}\n\n/** Role Assignments */\nexport interface RoleAssignment {\n /**\n * The role assignment ID.\n * NOTE: This property will not be serialized. It can only be populated by the server.\n */\n readonly id?: string;\n /**\n * The role assignment name.\n * NOTE: This property will not be serialized. It can only be populated by the server.\n */\n readonly name?: string;\n /**\n * The role assignment type.\n * NOTE: This property will not be serialized. It can only be populated by the server.\n */\n readonly type?: string;\n /** Role assignment properties. */\n properties?: RoleAssignmentPropertiesWithScope;\n}\n\n/** Role assignment properties with scope. */\nexport interface RoleAssignmentPropertiesWithScope {\n /** The role scope. */\n scope?: RoleScope;\n /** The role definition ID. */\n roleDefinitionId?: string;\n /** The principal ID. */\n principalId?: string;\n}\n\n/** Role assignment list operation result. */\nexport interface RoleAssignmentListResult {\n /** Role assignment list. */\n value?: RoleAssignment[];\n /** The URL to use for getting the next set of results. */\n nextLink?: string;\n}\n\nexport interface SASTokenParameter {\n /** Azure Blob storage container Uri */\n storageResourceUri: string;\n /** The SAS token pointing to an Azure Blob storage container */\n token?: string;\n /** Indicates which authentication method should be used. If set to true, Managed HSM will use the configured user-assigned managed identity to authenticate with Azure Storage. Otherwise, a SAS token has to be specified. */\n useManagedIdentity?: boolean;\n}\n\n/** Full backup operation */\nexport interface FullBackupOperation {\n /** Status of the backup operation. */\n status?: string;\n /** The status details of backup operation. */\n statusDetails?: string;\n /** Error encountered, if any, during the full backup operation. */\n error?: ErrorModel;\n /** The start time of the backup operation in UTC */\n startTime?: Date;\n /** The end time of the backup operation in UTC */\n endTime?: Date;\n /** Identifier for the full backup operation. */\n jobId?: string;\n /** The Azure blob storage container Uri which contains the full backup */\n azureStorageBlobContainerUri?: string;\n}\n\nexport interface RestoreOperationParameters {\n sasTokenParameters: SASTokenParameter;\n /** The Folder name of the blob where the previous successful full backup was stored */\n folderToRestore: string;\n}\n\n/** Restore operation */\nexport interface RestoreOperation {\n /** Status of the restore operation. */\n status?: string;\n /** The status details of restore operation. */\n statusDetails?: string;\n /** Error encountered, if any, during the restore operation. */\n error?: ErrorModel;\n /** Identifier for the restore operation. */\n jobId?: string;\n /** The start time of the restore operation */\n startTime?: Date;\n /** The end time of the restore operation */\n endTime?: Date;\n}\n\nexport interface SelectiveKeyRestoreOperationParameters {\n sasTokenParameters: SASTokenParameter;\n /** The Folder name of the blob where the previous successful full backup was stored */\n folder: string;\n}\n\n/** Selective Key Restore operation */\nexport interface SelectiveKeyRestoreOperation {\n /** Status of the restore operation. */\n status?: string;\n /** The status details of restore operation. */\n statusDetails?: string;\n /** Error encountered, if any, during the selective key restore operation. */\n error?: ErrorModel;\n /** Identifier for the selective key restore operation. */\n jobId?: string;\n /** The start time of the restore operation */\n startTime?: Date;\n /** The end time of the restore operation */\n endTime?: Date;\n}\n\n/** The update settings request object. */\nexport interface UpdateSettingRequest {\n /** The value of the pool setting. */\n value: string;\n}\n\nexport interface Setting {\n /** The account setting to be updated */\n name: string;\n /** The value of the pool setting. */\n value: string;\n /** The type specifier of the value. */\n type?: SettingTypeEnum;\n}\n\n/** The settings list result. */\nexport interface SettingsListResult {\n /**\n * A response message containing a list of account settings with their associated value.\n * NOTE: This property will not be serialized. It can only be populated by the server.\n */\n readonly settings?: Setting[];\n}\n\n/** Role Assignments filter */\nexport interface RoleAssignmentFilter {\n /** Returns role assignment of the specific principal. */\n principalId?: string;\n}\n\n/** Role Definitions filter */\nexport interface RoleDefinitionFilter {\n /** Returns role definition with the specific name. */\n roleName?: string;\n}\n\n/** Defines headers for KeyVaultClient_fullBackup operation. */\nexport interface KeyVaultClientFullBackupHeaders {\n /** The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation. */\n retryAfter?: number;\n /** The URI to poll for completion status. */\n azureAsyncOperation?: string;\n}\n\n/** Defines headers for KeyVaultClient_fullRestoreOperation operation. */\nexport interface KeyVaultClientFullRestoreOperationHeaders {\n /** The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation. */\n retryAfter?: number;\n /** The URI to poll for completion status. */\n azureAsyncOperation?: string;\n}\n\n/** Defines headers for KeyVaultClient_selectiveKeyRestoreOperation operation. */\nexport interface KeyVaultClientSelectiveKeyRestoreOperationHeaders {\n /** The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation. */\n retryAfter?: number;\n /** The URI to poll for completion status. */\n azureAsyncOperation?: string;\n}\n\n/** Known values of {@link ApiVersion75Preview1} that the service accepts. */\nexport enum KnownApiVersion75Preview1 {\n /** Api Version '7.5-preview.1' */\n Seven5Preview1 = \"7.5-preview.1\"\n}\n\n/**\n * Defines values for ApiVersion75Preview1. \\\n * {@link KnownApiVersion75Preview1} can be used interchangeably with ApiVersion75Preview1,\n * this enum contains the known values that the service supports.\n * ### Known values supported by the service\n * **7.5-preview.1**: Api Version '7.5-preview.1'\n */\nexport type ApiVersion75Preview1 = string;\n\n/** Known values of {@link RoleType} that the service accepts. */\nexport enum KnownRoleType {\n /** Built in role. */\n BuiltInRole = \"AKVBuiltInRole\",\n /** Custom role. */\n CustomRole = \"CustomRole\"\n}\n\n/**\n * Defines values for RoleType. \\\n * {@link KnownRoleType} can be used interchangeably with RoleType,\n * this enum contains the known values that the service supports.\n * ### Known values supported by the service\n * **AKVBuiltInRole**: Built in role. \\\n * **CustomRole**: Custom role.\n */\nexport type RoleType = string;\n\n/** Known values of {@link DataAction} that the service accepts. */\nexport enum KnownDataAction {\n /** Read HSM key metadata. */\n ReadHsmKey = \"Microsoft.KeyVault/managedHsm/keys/read/action\",\n /** Update an HSM key. */\n WriteHsmKey = \"Microsoft.KeyVault/managedHsm/keys/write/action\",\n /** Read deleted HSM key. */\n ReadDeletedHsmKey = \"Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action\",\n /** Recover deleted HSM key. */\n RecoverDeletedHsmKey = \"Microsoft.KeyVault/managedHsm/keys/deletedKeys/recover/action\",\n /** Backup HSM keys. */\n BackupHsmKeys = \"Microsoft.KeyVault/managedHsm/keys/backup/action\",\n /** Restore HSM keys. */\n RestoreHsmKeys = \"Microsoft.KeyVault/managedHsm/keys/restore/action\",\n /** Delete role assignment. */\n DeleteRoleAssignment = \"Microsoft.KeyVault/managedHsm/roleAssignments/delete/action\",\n /** Get role assignment. */\n GetRoleAssignment = \"Microsoft.KeyVault/managedHsm/roleAssignments/read/action\",\n /** Create or update role assignment. */\n WriteRoleAssignment = \"Microsoft.KeyVault/managedHsm/roleAssignments/write/action\",\n /** Get role definition. */\n ReadRoleDefinition = \"Microsoft.KeyVault/managedHsm/roleDefinitions/read/action\",\n /** Create or update role definition. */\n WriteRoleDefinition = \"Microsoft.KeyVault/managedHsm/roleDefinitions/write/action\",\n /** Delete role definition. */\n DeleteRoleDefinition = \"Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action\",\n /** Encrypt using an HSM key. */\n EncryptHsmKey = \"Microsoft.KeyVault/managedHsm/keys/encrypt/action\",\n /** Decrypt using an HSM key. */\n DecryptHsmKey = \"Microsoft.KeyVault/managedHsm/keys/decrypt/action\",\n /** Wrap using an HSM key. */\n WrapHsmKey = \"Microsoft.KeyVault/managedHsm/keys/wrap/action\",\n /** Unwrap using an HSM key. */\n UnwrapHsmKey = \"Microsoft.KeyVault/managedHsm/keys/unwrap/action\",\n /** Sign using an HSM key. */\n SignHsmKey = \"Microsoft.KeyVault/managedHsm/keys/sign/action\",\n /** Verify using an HSM key. */\n VerifyHsmKey = \"Microsoft.KeyVault/managedHsm/keys/verify/action\",\n /** Create an HSM key. */\n CreateHsmKey = \"Microsoft.KeyVault/managedHsm/keys/create\",\n /** Delete an HSM key. */\n DeleteHsmKey = \"Microsoft.KeyVault/managedHsm/keys/delete\",\n /** Export an HSM key. */\n ExportHsmKey = \"Microsoft.KeyVault/managedHsm/keys/export/action\",\n /** Release an HSM key using Secure Key Release. */\n ReleaseKey = \"Microsoft.KeyVault/managedHsm/keys/release/action\",\n /** Import an HSM key. */\n ImportHsmKey = \"Microsoft.KeyVault/managedHsm/keys/import/action\",\n /** Purge a deleted HSM key. */\n PurgeDeletedHsmKey = \"Microsoft.KeyVault/managedHsm/keys/deletedKeys/delete\",\n /** Download an HSM security domain. */\n DownloadHsmSecurityDomain = \"Microsoft.KeyVault/managedHsm/securitydomain/download/action\",\n /** Check status of HSM security domain download. */\n DownloadHsmSecurityDomainStatus = \"Microsoft.KeyVault/managedHsm/securitydomain/download/read\",\n /** Upload an HSM security domain. */\n UploadHsmSecurityDomain = \"Microsoft.KeyVault/managedHsm/securitydomain/upload/action\",\n /** Check the status of the HSM security domain exchange file. */\n ReadHsmSecurityDomainStatus = \"Microsoft.KeyVault/managedHsm/securitydomain/upload/read\",\n /** Download an HSM security domain transfer key. */\n ReadHsmSecurityDomainTransferKey = \"Microsoft.KeyVault/managedHsm/securitydomain/transferkey/read\",\n /** Start an HSM backup. */\n StartHsmBackup = \"Microsoft.KeyVault/managedHsm/backup/start/action\",\n /** Start an HSM restore. */\n StartHsmRestore = \"Microsoft.KeyVault/managedHsm/restore/start/action\",\n /** Read an HSM backup status. */\n ReadHsmBackupStatus = \"Microsoft.KeyVault/managedHsm/backup/status/action\",\n /** Read an HSM restore status. */\n ReadHsmRestoreStatus = \"Microsoft.KeyVault/managedHsm/restore/status/action\",\n /** Generate random numbers. */\n RandomNumbersGenerate = \"Microsoft.KeyVault/managedHsm/rng/action\"\n}\n\n/**\n * Defines values for DataAction. \\\n * {@link KnownDataAction} can be used interchangeably with DataAction,\n * this enum contains the known values that the service supports.\n * ### Known values supported by the service\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/read\\/action**: Read HSM key metadata. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/write\\/action**: Update an HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/deletedKeys\\/read\\/action**: Read deleted HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/deletedKeys\\/recover\\/action**: Recover deleted HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/backup\\/action**: Backup HSM keys. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/restore\\/action**: Restore HSM keys. \\\n * **Microsoft.KeyVault\\/managedHsm\\/roleAssignments\\/delete\\/action**: Delete role assignment. \\\n * **Microsoft.KeyVault\\/managedHsm\\/roleAssignments\\/read\\/action**: Get role assignment. \\\n * **Microsoft.KeyVault\\/managedHsm\\/roleAssignments\\/write\\/action**: Create or update role assignment. \\\n * **Microsoft.KeyVault\\/managedHsm\\/roleDefinitions\\/read\\/action**: Get role definition. \\\n * **Microsoft.KeyVault\\/managedHsm\\/roleDefinitions\\/write\\/action**: Create or update role definition. \\\n * **Microsoft.KeyVault\\/managedHsm\\/roleDefinitions\\/delete\\/action**: Delete role definition. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/encrypt\\/action**: Encrypt using an HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/decrypt\\/action**: Decrypt using an HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/wrap\\/action**: Wrap using an HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/unwrap\\/action**: Unwrap using an HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/sign\\/action**: Sign using an HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/verify\\/action**: Verify using an HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/create**: Create an HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/delete**: Delete an HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/export\\/action**: Export an HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/release\\/action**: Release an HSM key using Secure Key Release. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/import\\/action**: Import an HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/deletedKeys\\/delete**: Purge a deleted HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/securitydomain\\/download\\/action**: Download an HSM security domain. \\\n * **Microsoft.KeyVault\\/managedHsm\\/securitydomain\\/download\\/read**: Check status of HSM security domain download. \\\n * **Microsoft.KeyVault\\/managedHsm\\/securitydomain\\/upload\\/action**: Upload an HSM security domain. \\\n * **Microsoft.KeyVault\\/managedHsm\\/securitydomain\\/upload\\/read**: Check the status of the HSM security domain exchange file. \\\n * **Microsoft.KeyVault\\/managedHsm\\/securitydomain\\/transferkey\\/read**: Download an HSM security domain transfer key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/backup\\/start\\/action**: Start an HSM backup. \\\n * **Microsoft.KeyVault\\/managedHsm\\/restore\\/start\\/action**: Start an HSM restore. \\\n * **Microsoft.KeyVault\\/managedHsm\\/backup\\/status\\/action**: Read an HSM backup status. \\\n * **Microsoft.KeyVault\\/managedHsm\\/restore\\/status\\/action**: Read an HSM restore status. \\\n * **Microsoft.KeyVault\\/managedHsm\\/rng\\/action**: Generate random numbers.\n */\nexport type DataAction = string;\n\n/** Known values of {@link RoleScope} that the service accepts. */\nexport enum KnownRoleScope {\n /** Global scope */\n Global = \"/\",\n /** Keys scope */\n Keys = \"/keys\"\n}\n\n/**\n * Defines values for RoleScope. \\\n * {@link KnownRoleScope} can be used interchangeably with RoleScope,\n * this enum contains the known values that the service supports.\n * ### Known values supported by the service\n * **\\/**: Global scope \\\n * **\\/keys**: Keys scope\n */\nexport type RoleScope = string;\n\n/** Known values of {@link RoleDefinitionType} that the service accepts. */\nexport enum KnownRoleDefinitionType {\n MicrosoftAuthorizationRoleDefinitions = \"Microsoft.Authorization/roleDefinitions\"\n}\n\n/**\n * Defines values for RoleDefinitionType. \\\n * {@link KnownRoleDefinitionType} can be used interchangeably with RoleDefinitionType,\n * this enum contains the known values that the service supports.\n * ### Known values supported by the service\n * **Microsoft.Authorization\\/roleDefinitions**\n */\nexport type RoleDefinitionType = string;\n\n/** Known values of {@link SettingTypeEnum} that the service accepts. */\nexport enum KnownSettingTypeEnum {\n Boolean = \"boolean\"\n}\n\n/**\n * Defines values for SettingTypeEnum. \\\n * {@link KnownSettingTypeEnum} can be used interchangeably with SettingTypeEnum,\n * this enum contains the known values that the service supports.\n * ### Known values supported by the service\n * **boolean**\n */\nexport type SettingTypeEnum = string;\n\n/** Optional parameters. */\nexport interface RoleDefinitionsDeleteOptionalParams\n extends coreClient.OperationOptions {}\n\n/** Optional parameters. */\nexport interface RoleDefinitionsCreateOrUpdateOptionalParams\n extends coreClient.OperationOptions {}\n\n/** Contains response data for the createOrUpdate operation. */\nexport type RoleDefinitionsCreateOrUpdateResponse = RoleDefinition;\n\n/** Optional parameters. */\nexport interface RoleDefinitionsGetOptionalParams\n extends coreClient.OperationOptions {}\n\n/** Contains response data for the get operation. */\nexport type RoleDefinitionsGetResponse = RoleDefinition;\n\n/** Optional parameters. */\nexport interface RoleDefinitionsListOptionalParams\n extends coreClient.OperationOptions {\n /** The filter to apply on the operation. Use atScopeAndBelow filter to search below the given scope as well. */\n filter?: string;\n}\n\n/** Contains response data for the list operation. */\nexport type RoleDefinitionsListResponse = RoleDefinitionListResult;\n\n/** Optional parameters. */\nexport interface RoleDefinitionsListNextOptionalParams\n extends coreClient.OperationOptions {\n /** The filter to apply on the operation. Use atScopeAndBelow filter to search below the given scope as well. */\n filter?: string;\n}\n\n/** Contains response data for the listNext operation. */\nexport type RoleDefinitionsListNextResponse = RoleDefinitionListResult;\n\n/** Optional parameters. */\nexport interface RoleAssignmentsDeleteOptionalParams\n extends coreClient.OperationOptions {}\n\n/** Optional parameters. */\nexport interface RoleAssignmentsCreateOptionalParams\n extends coreClient.OperationOptions {}\n\n/** Contains response data for the create operation. */\nexport type RoleAssignmentsCreateResponse = RoleAssignment;\n\n/** Optional parameters. */\nexport interface RoleAssignmentsGetOptionalParams\n extends coreClient.OperationOptions {}\n\n/** Contains response data for the get operation. */\nexport type RoleAssignmentsGetResponse = RoleAssignment;\n\n/** Optional parameters. */\nexport interface RoleAssignmentsListForScopeOptionalParams\n extends coreClient.OperationOptions {\n /** The filter to apply on the operation. Use $filter=atScope() to return all role assignments at or above the scope. Use $filter=principalId eq {id} to return all role assignments at, above or below the scope for the specified principal. */\n filter?: string;\n}\n\n/** Contains response data for the listForScope operation. */\nexport type RoleAssignmentsListForScopeResponse = RoleAssignmentListResult;\n\n/** Optional parameters. */\nexport interface RoleAssignmentsListForScopeNextOptionalParams\n extends coreClient.OperationOptions {\n /** The filter to apply on the operation. Use $filter=atScope() to return all role assignments at or above the scope. Use $filter=principalId eq {id} to return all role assignments at, above or below the scope for the specified principal. */\n filter?: string;\n}\n\n/** Contains response data for the listForScopeNext operation. */\nexport type RoleAssignmentsListForScopeNextResponse = RoleAssignmentListResult;\n\n/** Optional parameters. */\nexport interface FullBackupOptionalParams extends coreClient.OperationOptions {\n /** Azure blob shared access signature token pointing to a valid Azure blob container where full backup needs to be stored. This token needs to be valid for at least next 24 hours from the time of making this call */\n azureStorageBlobContainerUri?: SASTokenParameter;\n}\n\n/** Contains response data for the fullBackup operation. */\nexport type FullBackupResponse = KeyVaultClientFullBackupHeaders &\n FullBackupOperation;\n\n/** Optional parameters. */\nexport interface FullBackupStatusOptionalParams\n extends coreClient.OperationOptions {}\n\n/** Contains response data for the fullBackupStatus operation. */\nexport type FullBackupStatusResponse = FullBackupOperation;\n\n/** Optional parameters. */\nexport interface FullRestoreOperationOptionalParams\n extends coreClient.OperationOptions {\n /** The Azure blob SAS token pointing to a folder where the previous successful full backup was stored */\n restoreBlobDetails?: RestoreOperationParameters;\n}\n\n/** Contains response data for the fullRestoreOperation operation. */\nexport type FullRestoreOperationResponse = KeyVaultClientFullRestoreOperationHeaders &\n RestoreOperation;\n\n/** Optional parameters. */\nexport interface RestoreStatusOptionalParams\n extends coreClient.OperationOptions {}\n\n/** Contains response data for the restoreStatus operation. */\nexport type RestoreStatusResponse = RestoreOperation;\n\n/** Optional parameters. */\nexport interface SelectiveKeyRestoreOperationOptionalParams\n extends coreClient.OperationOptions {\n /** The Azure blob SAS token pointing to a folder where the previous successful full backup was stored */\n restoreBlobDetails?: SelectiveKeyRestoreOperationParameters;\n}\n\n/** Contains response data for the selectiveKeyRestoreOperation operation. */\nexport type SelectiveKeyRestoreOperationResponse = KeyVaultClientSelectiveKeyRestoreOperationHeaders &\n SelectiveKeyRestoreOperation;\n\n/** Optional parameters. */\nexport interface UpdateSettingOptionalParams\n extends coreClient.OperationOptions {}\n\n/** Contains response data for the updateSetting operation. */\nexport type UpdateSettingResponse = Setting;\n\n/** Optional parameters. */\nexport interface GetSettingOptionalParams extends coreClient.OperationOptions {}\n\n/** Contains response data for the getSetting operation. */\nexport type GetSettingResponse = Setting;\n\n/** Optional parameters. */\nexport interface GetSettingsOptionalParams\n extends coreClient.OperationOptions {}\n\n/** Contains response data for the getSettings operation. */\nexport type GetSettingsResponse = SettingsListResult;\n\n/** Optional parameters. */\nexport interface KeyVaultClientOptionalParams\n extends coreClient.ServiceClientOptions {\n /** Overrides client endpoint. */\n endpoint?: string;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { PollOperation, PollOperationState, Poller } from \"@azure/core-lro\";\nimport { KeyVaultClient } from \"../generated/keyVaultClient\";\nimport { OperationOptions } from \"@azure/core-client\";\n\n/**\n * Common parameters to a Key Vault Admin Poller.\n */\nexport interface KeyVaultAdminPollerOptions {\n vaultUrl: string;\n client: KeyVaultClient;\n requestOptions?: OperationOptions;\n intervalInMs?: number;\n resumeFrom?: string;\n}\n\n/**\n * An interface representing the state of a Key Vault Admin Poller's operation.\n */\nexport interface KeyVaultAdminPollOperationState<TResult> extends PollOperationState<TResult> {\n /**\n * Identifier for the full restore operation.\n */\n jobId?: string;\n /**\n * Status of the restore operation.\n */\n status?: string;\n /**\n * The status details of restore operation.\n */\n statusDetails?: string;\n /**\n * The start time of the restore operation in UTC\n */\n startTime?: Date;\n /**\n * The end time of the restore operation in UTC\n */\n endTime?: Date;\n}\n\n/**\n * Generates a version of the state with only public properties. At least those common for all of the Key Vault Admin pollers.\n */\nexport function cleanState<TState extends KeyVaultAdminPollOperationState<TResult>, TResult>(\n state: TState\n): KeyVaultAdminPollOperationState<TResult> {\n return {\n jobId: state.jobId,\n status: state.status,\n statusDetails: state.statusDetails,\n startTime: state.startTime,\n endTime: state.endTime,\n isStarted: state.isStarted,\n isCancelled: state.isCancelled,\n isCompleted: state.isCompleted,\n error: state.error,\n result: state.result,\n };\n}\n\n/**\n * Common properties and methods of the Key Vault Admin Pollers.\n */\nexport abstract class KeyVaultAdminPoller<\n TState extends KeyVaultAdminPollOperationState<TResult>,\n TResult\n> extends Poller<TState, TResult> {\n /**\n * Defines how much time the poller is going to wait before making a new request to the service.\n */\n public intervalInMs: number = 2000;\n\n /**\n * The method used by the poller to wait before attempting to update its operation.\n */\n async delay(): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, this.intervalInMs));\n }\n\n /**\n * Gets the public state of the polling operation\n */\n public getOperationState(): TState {\n return cleanState(this.operation.state) as TState;\n }\n}\n\n/**\n * Optional parameters to the KeyVaultAdminPollOperation\n */\nexport interface KeyVaultAdminPollOperationOptions {\n cancelMessage: string;\n}\n\n/**\n * Common properties and methods of the Key Vault Admin Poller operations.\n */\nexport class KeyVaultAdminPollOperation<\n TState extends KeyVaultAdminPollOperationState<unknown>,\n TResult\n> implements PollOperation<TState, TResult>\n{\n private cancelMessage: string;\n\n constructor(public state: TState, options: KeyVaultAdminPollOperationOptions) {\n this.cancelMessage = options.cancelMessage;\n }\n\n /**\n * Meant to reach to the service and update the Poller operation.\n */\n public async update(): Promise<PollOperation<TState, TResult>> {\n throw new Error(\"Operation not supported.\");\n }\n\n /**\n * Meant to reach to the service and cancel the Poller operation.\n */\n public async cancel(): Promise<PollOperation<TState, TResult>> {\n throw new Error(this.cancelMessage);\n }\n\n /**\n * Serializes the Poller operation.\n */\n public toString(): string {\n return JSON.stringify({\n state: cleanState(this.state),\n });\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n FullBackupOperation,\n FullBackupOptionalParams,\n FullBackupResponse,\n FullBackupStatusResponse,\n} from \"../../generated/models\";\nimport {\n KeyVaultAdminPollOperation,\n KeyVaultAdminPollOperationState,\n} from \"../keyVaultAdminPoller\";\nimport { KeyVaultBackupResult, KeyVaultBeginBackupOptions } from \"../../backupClientModels\";\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport { KeyVaultClient } from \"../../generated/keyVaultClient\";\nimport { tracingClient } from \"../../tracing\";\n\n/**\n * An interface representing the publicly available properties of the state of a backup Key Vault's poll operation.\n */\nexport type KeyVaultBackupOperationState = KeyVaultAdminPollOperationState<KeyVaultBackupResult>;\n\n/**\n * An internal interface representing the state of a backup Key Vault's poll operation.\n */\nexport interface KeyVaultBackupPollOperationState\n extends KeyVaultAdminPollOperationState<KeyVaultBackupResult> {\n /**\n * The URI of the blob storage account.\n */\n blobStorageUri: string;\n /**\n * The SAS token.\n */\n sasToken?: string;\n}\n\n/**\n * The backup Key Vault's poll operation.\n */\nexport class KeyVaultBackupPollOperation extends KeyVaultAdminPollOperation<\n KeyVaultBackupPollOperationState,\n string\n> {\n constructor(\n public state: KeyVaultBackupPollOperationState,\n private vaultUrl: string,\n private client: KeyVaultClient,\n private requestOptions: KeyVaultBeginBackupOptions = {}\n ) {\n super(state, { cancelMessage: \"Cancelling a full Key Vault backup is not supported.\" });\n }\n\n /**\n * Tracing the fullBackup operation\n */\n private fullBackup(options: FullBackupOptionalParams): Promise<FullBackupResponse> {\n return tracingClient.withSpan(\"KeyVaultBackupPoller.fullBackup\", options, (updatedOptions) =>\n this.client.fullBackup(this.vaultUrl, updatedOptions)\n );\n }\n\n /**\n * Tracing the fullBackupStatus operation\n */\n private fullBackupStatus(\n jobId: string,\n options: KeyVaultBeginBackupOptions\n ): Promise<FullBackupStatusResponse> {\n return tracingClient.withSpan(\n \"KeyVaultBackupPoller.fullBackupStatus\",\n options,\n (updatedOptions) => this.client.fullBackupStatus(this.vaultUrl, jobId, updatedOptions)\n );\n }\n\n /**\n * Reaches to the service and updates the backup's poll operation.\n */\n async update(\n options: {\n abortSignal?: AbortSignalLike;\n fireProgress?: (state: KeyVaultBackupPollOperationState) => void;\n } = {}\n ): Promise<KeyVaultBackupPollOperation> {\n const state = this.state;\n const { blobStorageUri, sasToken } = state;\n\n if (options.abortSignal) {\n this.requestOptions.abortSignal = options.abortSignal;\n }\n\n if (!state.isStarted) {\n const serviceOperation = await this.fullBackup({\n ...this.requestOptions,\n azureStorageBlobContainerUri: {\n storageResourceUri: blobStorageUri!,\n token: sasToken,\n useManagedIdentity: sasToken === undefined,\n },\n });\n\n this.mapState(serviceOperation);\n } else if (!state.isCompleted) {\n if (!state.jobId) {\n throw new Error(`Missing \"jobId\" from the full backup operation.`);\n }\n const serviceOperation = await this.fullBackupStatus(state.jobId, this.requestOptions);\n this.mapState(serviceOperation);\n }\n\n return this;\n }\n\n private mapState(serviceOperation: FullBackupOperation): void {\n const state = this.state;\n const {\n startTime,\n jobId,\n azureStorageBlobContainerUri,\n endTime,\n error,\n status,\n statusDetails,\n } = serviceOperation;\n if (!startTime) {\n throw new Error(\n `Missing \"startTime\" from the full backup operation. Full backup did not start successfully.`\n );\n }\n\n state.isStarted = true;\n state.jobId = jobId;\n state.endTime = endTime;\n state.startTime = startTime;\n state.status = status;\n state.statusDetails = statusDetails;\n state.isCompleted = !!endTime;\n\n if (state.isCompleted && error?.code) {\n throw new Error(error?.message || statusDetails);\n }\n\n if (state.isCompleted) {\n state.result = {\n folderUri: azureStorageBlobContainerUri,\n startTime,\n endTime,\n };\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { KeyVaultAdminPoller, KeyVaultAdminPollerOptions } from \"../keyVaultAdminPoller\";\nimport {\n KeyVaultBackupOperationState,\n KeyVaultBackupPollOperation,\n KeyVaultBackupPollOperationState,\n} from \"./operation\";\nimport { KeyVaultBackupResult } from \"../../backupClientModels\";\n\nexport interface KeyVaultBackupPollerOptions extends KeyVaultAdminPollerOptions {\n blobStorageUri: string;\n sasToken?: string;\n}\n\n/**\n * Class that creates a poller that waits until the backup of a Key Vault ends up being generated.\n */\nexport class KeyVaultBackupPoller extends KeyVaultAdminPoller<\n KeyVaultBackupOperationState,\n KeyVaultBackupResult\n> {\n constructor(options: KeyVaultBackupPollerOptions) {\n const {\n client,\n vaultUrl,\n blobStorageUri,\n sasToken,\n requestOptions,\n intervalInMs = 2000,\n resumeFrom,\n } = options;\n\n let state: KeyVaultBackupPollOperationState | undefined;\n\n if (resumeFrom) {\n state = JSON.parse(resumeFrom).state;\n }\n\n const operation = new KeyVaultBackupPollOperation(\n {\n ...state,\n blobStorageUri,\n sasToken,\n },\n vaultUrl,\n client,\n requestOptions\n );\n\n super(operation);\n\n this.intervalInMs = intervalInMs;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n FullRestoreOperationOptionalParams,\n FullRestoreOperationResponse,\n RestoreOperation,\n RestoreStatusResponse,\n} from \"../../generated/models\";\nimport {\n KeyVaultAdminPollOperation,\n KeyVaultAdminPollOperationState,\n} from \"../keyVaultAdminPoller\";\nimport { KeyVaultBeginRestoreOptions, KeyVaultRestoreResult } from \"../../backupClientModels\";\n\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport { KeyVaultClient } from \"../../generated/keyVaultClient\";\nimport { OperationOptions } from \"@azure/core-client\";\nimport { tracingClient } from \"../../tracing\";\n\n/**\n * An interface representing the publicly available properties of the state of a restore Key Vault's poll operation.\n */\nexport interface KeyVaultRestoreOperationState\n extends KeyVaultAdminPollOperationState<KeyVaultRestoreResult> {}\n\n/**\n * An internal interface representing the state of a restore Key Vault's poll operation.\n * @internal\n */\nexport interface KeyVaultRestorePollOperationState\n extends KeyVaultAdminPollOperationState<KeyVaultRestoreResult> {\n /**\n * The URI of the blob storage account.\n */\n folderUri: string;\n /**\n * The SAS token.\n */\n sasToken?: string;\n /**\n * The Folder name of the blob where the previous successful full backup was stored\n */\n folderName: string;\n}\n\n/**\n * An interface representing a restore Key Vault's poll operation.\n */\nexport class KeyVaultRestorePollOperation extends KeyVaultAdminPollOperation<\n KeyVaultRestorePollOperationState,\n KeyVaultRestoreResult\n> {\n constructor(\n public state: KeyVaultRestorePollOperationState,\n private vaultUrl: string,\n private client: KeyVaultClient,\n private requestOptions: KeyVaultBeginRestoreOptions = {}\n ) {\n super(state, {\n cancelMessage: \"Cancelling the restoration full Key Vault backup is not supported.\",\n });\n }\n\n /**\n * Tracing the fullRestore operation\n */\n private fullRestore(\n options: FullRestoreOperationOptionalParams\n ): Promise<FullRestoreOperationResponse> {\n return tracingClient.withSpan(\"KeyVaultRestorePoller.fullRestore\", options, (updatedOptions) =>\n this.client.fullRestoreOperation(this.vaultUrl, updatedOptions)\n );\n }\n\n /**\n * Tracing the restoreStatus operation.\n */\n private async restoreStatus(\n jobId: string,\n options: OperationOptions\n ): Promise<RestoreStatusResponse> {\n return tracingClient.withSpan(\n \"KeyVaultRestorePoller.restoreStatus\",\n options,\n (updatedOptions) => this.client.restoreStatus(this.vaultUrl, jobId, updatedOptions)\n );\n }\n\n /**\n * Reaches to the service and updates the restore poll operation.\n */\n async update(\n options: {\n abortSignal?: AbortSignalLike;\n fireProgress?: (state: KeyVaultRestorePollOperationState) => void;\n } = {}\n ): Promise<KeyVaultRestorePollOperation> {\n const state = this.state;\n const { folderUri, sasToken, folderName } = state;\n\n if (options.abortSignal) {\n this.requestOptions.abortSignal = options.abortSignal;\n }\n\n if (!state.isStarted) {\n const serviceOperation = await this.fullRestore({\n ...this.requestOptions,\n restoreBlobDetails: {\n folderToRestore: folderName,\n sasTokenParameters: {\n storageResourceUri: folderUri,\n token: sasToken,\n useManagedIdentity: sasToken === undefined,\n },\n },\n });\n\n this.mapState(serviceOperation);\n } else if (!state.isCompleted) {\n if (!state.jobId) {\n throw new Error(`Missing \"jobId\" from the full restore operation.`);\n }\n const serviceOperation = await this.restoreStatus(state.jobId, this.requestOptions);\n this.mapState(serviceOperation);\n }\n\n return this;\n }\n\n private mapState(serviceOperation: RestoreOperation): void {\n const state = this.state;\n const { startTime, jobId, endTime, error, status, statusDetails } = serviceOperation;\n\n if (!startTime) {\n throw new Error(\n `Missing \"startTime\" from the full restore operation. Restore did not start successfully.`\n );\n }\n\n state.isStarted = true;\n state.jobId = jobId;\n state.endTime = endTime;\n state.startTime = startTime;\n state.status = status;\n state.statusDetails = statusDetails;\n\n state.isCompleted = !!endTime;\n\n if (state.isCompleted && error?.code) {\n throw new Error(error?.message || statusDetails);\n }\n\n if (state.isCompleted) {\n state.result = {\n startTime,\n endTime,\n };\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { KeyVaultAdminPoller, KeyVaultAdminPollerOptions } from \"../keyVaultAdminPoller\";\nimport {\n KeyVaultRestoreOperationState,\n KeyVaultRestorePollOperation,\n KeyVaultRestorePollOperationState,\n} from \"./operation\";\nimport { KeyVaultRestoreResult } from \"../../backupClientModels\";\n\nexport interface KeyVaultRestorePollerOptions extends KeyVaultAdminPollerOptions {\n folderUri: string;\n sasToken?: string;\n folderName: string;\n}\n\n/**\n * Class that creates a poller that waits until a Key Vault ends up being restored.\n */\nexport class KeyVaultRestorePoller extends KeyVaultAdminPoller<\n KeyVaultRestoreOperationState,\n KeyVaultRestoreResult\n> {\n constructor(options: KeyVaultRestorePollerOptions) {\n const {\n client,\n vaultUrl,\n folderUri,\n sasToken,\n folderName,\n requestOptions,\n intervalInMs = 2000,\n resumeFrom,\n } = options;\n\n let state: KeyVaultRestorePollOperationState | undefined;\n\n if (resumeFrom) {\n state = JSON.parse(resumeFrom).state;\n }\n\n const operation = new KeyVaultRestorePollOperation(\n {\n ...state,\n folderUri,\n sasToken,\n folderName,\n },\n vaultUrl,\n client,\n requestOptions\n );\n\n super(operation);\n\n this.intervalInMs = intervalInMs;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n KeyVaultAdminPollOperation,\n KeyVaultAdminPollOperationState,\n} from \"../keyVaultAdminPoller\";\nimport {\n KeyVaultBeginSelectiveKeyRestoreOptions,\n KeyVaultSelectiveKeyRestoreResult,\n} from \"../../backupClientModels\";\nimport {\n RestoreOperation,\n RestoreStatusResponse,\n SelectiveKeyRestoreOperationOptionalParams,\n SelectiveKeyRestoreOperationResponse,\n} from \"../../generated/models\";\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport { KeyVaultClient } from \"../../generated/keyVaultClient\";\nimport { OperationOptions } from \"@azure/core-client\";\nimport { tracingClient } from \"../../tracing\";\n\n/**\n * An interface representing the publicly available properties of the state of a restore Key Vault's poll operation.\n */\nexport interface KeyVaultSelectiveKeyRestoreOperationState\n extends KeyVaultAdminPollOperationState<KeyVaultSelectiveKeyRestoreResult> {}\n\n/**\n * An internal interface representing the state of a restore Key Vault's poll operation.\n */\nexport interface KeyVaultSelectiveKeyRestorePollOperationState\n extends KeyVaultAdminPollOperationState<KeyVaultSelectiveKeyRestoreResult> {\n /**\n * The name of a Key Vault Key.\n */\n keyName: string;\n /**\n * The Folder name of the blob where the previous successful full backup was stored\n */\n folderName: string;\n /**\n * The URI of the blob storage account where the previous successful full backup was stored.\n */\n folderUri: string;\n /**\n * The SAS token.\n */\n sasToken?: string;\n}\n\n/**\n * The selective restore Key Vault's poll operation.\n */\nexport class KeyVaultSelectiveKeyRestorePollOperation extends KeyVaultAdminPollOperation<\n KeyVaultSelectiveKeyRestorePollOperationState,\n string\n> {\n constructor(\n public state: KeyVaultSelectiveKeyRestorePollOperationState,\n private vaultUrl: string,\n private client: KeyVaultClient,\n private requestOptions: KeyVaultBeginSelectiveKeyRestoreOptions = {}\n ) {\n super(state, { cancelMessage: \"Cancelling a selective Key Vault restore is not supported.\" });\n }\n\n /**\n * Tracing the selectiveRestore operation\n */\n private selectiveRestore(\n keyName: string,\n options: SelectiveKeyRestoreOperationOptionalParams\n ): Promise<SelectiveKeyRestoreOperationResponse> {\n return tracingClient.withSpan(\n \"KeyVaultSelectiveKeyRestorePoller.selectiveRestore\",\n options,\n (updatedOptions) =>\n this.client.selectiveKeyRestoreOperation(this.vaultUrl, keyName, updatedOptions)\n );\n }\n\n /**\n * Tracing the restoreStatus operation.\n */\n private restoreStatus(jobId: string, options: OperationOptions): Promise<RestoreStatusResponse> {\n return tracingClient.withSpan(\n \"KeyVaultSelectiveKeyRestorePoller.restoreStatus\",\n options,\n (updatedOptions) => this.client.restoreStatus(this.vaultUrl, jobId, updatedOptions)\n );\n }\n\n /**\n * Reaches to the service and updates the selective restore poll operation.\n */\n async update(\n options: {\n abortSignal?: AbortSignalLike;\n fireProgress?: (state: KeyVaultSelectiveKeyRestorePollOperationState) => void;\n } = {}\n ): Promise<KeyVaultSelectiveKeyRestorePollOperation> {\n const state = this.state;\n const { keyName, folderUri, sasToken, folderName } = state;\n\n if (options.abortSignal) {\n this.requestOptions.abortSignal = options.abortSignal;\n }\n\n if (!state.isStarted) {\n const selectiveRestoreOperation = await this.selectiveRestore(keyName, {\n ...this.requestOptions,\n restoreBlobDetails: {\n folder: folderName,\n sasTokenParameters: {\n storageResourceUri: folderUri,\n token: sasToken,\n useManagedIdentity: sasToken === undefined,\n },\n },\n });\n this.mapState(selectiveRestoreOperation);\n } else if (!state.isCompleted) {\n if (!state.jobId) {\n throw new Error(`Missing \"jobId\" from the full restore operation.`);\n }\n const serviceOperation = await this.restoreStatus(state.jobId, this.requestOptions);\n this.mapState(serviceOperation);\n }\n\n return this;\n }\n\n private mapState(serviceOperation: RestoreOperation): void {\n const state = this.state;\n const { startTime, jobId, endTime, error, status, statusDetails } = serviceOperation;\n\n if (!startTime) {\n throw new Error(`Missing \"startTime\" from the selective restore operation.`);\n }\n\n state.isStarted = true;\n state.jobId = jobId;\n state.endTime = endTime;\n state.startTime = startTime;\n state.status = status;\n state.statusDetails = statusDetails;\n state.isCompleted = !!endTime;\n\n if (state.isCompleted && error?.code) {\n throw new Error(error?.message || statusDetails);\n }\n\n if (state.isCompleted) {\n state.result = {\n startTime,\n endTime,\n };\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { KeyVaultAdminPoller, KeyVaultAdminPollerOptions } from \"../keyVaultAdminPoller\";\nimport {\n KeyVaultSelectiveKeyRestoreOperationState,\n KeyVaultSelectiveKeyRestorePollOperation,\n KeyVaultSelectiveKeyRestorePollOperationState,\n} from \"./operation\";\nimport { KeyVaultSelectiveKeyRestoreResult } from \"../../backupClientModels\";\n\nexport interface KeyVaultSelectiveKeyRestorePollerOptions extends KeyVaultAdminPollerOptions {\n keyName: string;\n folderUri: string;\n sasToken?: string;\n folderName: string;\n}\n\n/**\n * Class that creates a poller that waits until a key of a Key Vault backup ends up being restored.\n */\nexport class KeyVaultSelectiveKeyRestorePoller extends KeyVaultAdminPoller<\n KeyVaultSelectiveKeyRestoreOperationState,\n KeyVaultSelectiveKeyRestoreResult\n> {\n constructor(options: KeyVaultSelectiveKeyRestorePollerOptions) {\n const {\n client,\n vaultUrl,\n keyName,\n folderUri,\n sasToken,\n folderName,\n requestOptions,\n intervalInMs = 2000,\n resumeFrom,\n } = options;\n\n let state: KeyVaultSelectiveKeyRestorePollOperationState | undefined;\n\n if (resumeFrom) {\n state = JSON.parse(resumeFrom).state;\n }\n\n const operation = new KeyVaultSelectiveKeyRestorePollOperation(\n {\n ...state,\n keyName,\n folderUri: folderUri,\n sasToken,\n folderName,\n },\n vaultUrl,\n client,\n requestOptions\n );\n\n super(operation);\n\n this.intervalInMs = intervalInMs;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n KeyVaultBackupClientOptions,\n KeyVaultBackupResult,\n KeyVaultBeginBackupOptions,\n KeyVaultBeginRestoreOptions,\n KeyVaultBeginSelectiveKeyRestoreOptions,\n KeyVaultRestoreResult,\n KeyVaultSelectiveKeyRestoreResult,\n} from \"./backupClientModels\";\nimport { KeyVaultAdminPollOperationState } from \"./lro/keyVaultAdminPoller\";\nimport { KeyVaultBackupOperationState } from \"./lro/backup/operation\";\nimport { KeyVaultBackupPoller } from \"./lro/backup/poller\";\nimport { KeyVaultClient } from \"./generated/keyVaultClient\";\nimport { KeyVaultRestoreOperationState } from \"./lro/restore/operation\";\nimport { KeyVaultRestorePoller } from \"./lro/restore/poller\";\nimport { KeyVaultSelectiveKeyRestoreOperationState } from \"./lro/selectiveKeyRestore/operation\";\nimport { KeyVaultSelectiveKeyRestorePoller } from \"./lro/selectiveKeyRestore/poller\";\nimport { LATEST_API_VERSION } from \"./constants\";\nimport { PollerLike } from \"@azure/core-lro\";\nimport { TokenCredential } from \"@azure/core-auth\";\nimport { bearerTokenAuthenticationPolicy } from \"@azure/core-rest-pipeline\";\nimport { createKeyVaultChallengeCallbacks } from \"@azure/keyvault-common\";\nimport { logger } from \"./log\";\nimport { mappings } from \"./mappings\";\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\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n * import { DefaultAzureCredential } from \"@azure/identity\";\n *\n * let vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * let credentials = new DefaultAzureCredential();\n *\n * let 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 const apiVersion = options.serviceVersion || LATEST_API_VERSION;\n\n const clientOptions = {\n ...options,\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\n this.client = new KeyVaultClient(apiVersion, clientOptions);\n this.client.pipeline.addPolicy(\n bearerTokenAuthenticationPolicy({\n credential,\n // The scopes will be populated in the challenge callbacks based on the WWW-authenticate header\n // returned by the challenge, so pass an empty array as a placeholder.\n scopes: [],\n challengeCallbacks: createKeyVaultChallengeCallbacks(options),\n })\n );\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\n * const client = new KeyVaultBackupClient(url, 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 * //\n * // const serialized = poller.toString();\n * //\n * // A new poller can be created with:\n * //\n * // await client.beginBackup(blobStorageUri, sasToken, { resumeFrom: serialized });\n * //\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. 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 beginBackup(\n blobStorageUri: string,\n sasToken?: string,\n options: KeyVaultBeginBackupOptions = {}\n ): Promise<PollerLike<KeyVaultBackupOperationState, KeyVaultBackupResult>> {\n const poller = new KeyVaultBackupPoller({\n blobStorageUri,\n sasToken,\n client: this.client,\n vaultUrl: this.vaultUrl,\n intervalInMs: options.intervalInMs,\n resumeFrom: options.resumeFrom,\n requestOptions: options,\n });\n\n // This will initialize the poller's operation (the generation of the backup).\n await poller.poll();\n\n return poller;\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\n * const client = new KeyVaultBackupClient(url, 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 * //\n * // const serialized = poller.toString();\n * //\n * // A new poller can be created with:\n * //\n * // await client.beginRestore(blobStorageUri, sasToken, { resumeFrom: serialized });\n * //\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 const poller = new KeyVaultRestorePoller({\n ...mappings.folderUriParts(folderUri),\n sasToken,\n client: this.client,\n vaultUrl: this.vaultUrl,\n intervalInMs: options.intervalInMs,\n resumeFrom: options.resumeFrom,\n requestOptions: options,\n });\n\n // This will initialize the poller's operation (the generation of the backup).\n await poller.poll();\n\n return poller;\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\n * const client = new KeyVaultBackupClient(url, 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 * //\n * // const serialized = poller.toString();\n * //\n * // A new poller can be created with:\n * //\n * // await client.beginSelectiveKeyRestore(keyName, blobStorageUri, sasToken, { 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 const poller = new KeyVaultSelectiveKeyRestorePoller({\n ...mappings.folderUriParts(folderUri),\n keyName,\n sasToken,\n client: this.client,\n vaultUrl: this.vaultUrl,\n intervalInMs: options.intervalInMs,\n resumeFrom: options.resumeFrom,\n requestOptions: options,\n });\n\n // This will initialize the poller's operation (the generation of the backup).\n await poller.poll();\n\n return poller;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { TokenCredential } from \"@azure/core-auth\";\nimport { bearerTokenAuthenticationPolicy } from \"@azure/core-rest-pipeline\";\nimport { createKeyVaultChallengeCallbacks } from \"@azure/keyvault-common\";\nimport { LATEST_API_VERSION } from \"./constants\";\nimport { KeyVaultClient, Setting as GeneratedSetting } from \"./generated\";\nimport { logger } from \"./log\";\nimport {\n UpdateSettingOptions,\n GetSettingOptions,\n ListSettingsOptions,\n ListSettingsResponse,\n KeyVaultSetting,\n SettingsClientOptions,\n BooleanKeyVaultSetting,\n} from \"./settingsClientModels\";\n\nfunction makeSetting(generatedSetting: GeneratedSetting): KeyVaultSetting {\n if (generatedSetting.type === \"boolean\") {\n return {\n kind: \"boolean\",\n name: generatedSetting.name,\n value: generatedSetting.value === \"true\" ? true : false,\n };\n } else {\n return {\n kind: generatedSetting.type,\n name: generatedSetting.name,\n value: generatedSetting.value,\n };\n }\n}\n\n/**\n * Determines whether a given {@link KeyVaultSetting} is a {@link BooleanKeyVaultSetting}, i.e. has a boolean value.\n */\nexport function isBooleanSetting(setting: KeyVaultSetting): setting is BooleanKeyVaultSetting {\n return setting.kind === \"boolean\" && typeof setting.value === \"boolean\";\n}\n\n/**\n * The KeyVaultSettingsClient provides asynchronous methods to create, update, get and list\n * settings for the Azure Key Vault.\n */\nexport class KeyVaultSettingsClient {\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 KeyVaultSettingsClient.\n *\n * Example usage:\n * ```ts\n * import { KeyVaultSettingsClient } from \"@azure/keyvault-admin\";\n * import { DefaultAzureCredential } from \"@azure/identity\";\n *\n * let vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * let credentials = new DefaultAzureCredential();\n *\n * let client = new KeyVaultSettingsClient(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 */\n constructor(vaultUrl: string, credential: TokenCredential, options: SettingsClientOptions = {}) {\n this.vaultUrl = vaultUrl;\n\n const apiVersion = options.serviceVersion || LATEST_API_VERSION;\n\n const clientOptions = {\n ...options,\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\n this.client = new KeyVaultClient(apiVersion, clientOptions);\n this.client.pipeline.addPolicy(\n bearerTokenAuthenticationPolicy({\n credential,\n scopes: [],\n challengeCallbacks: createKeyVaultChallengeCallbacks(options),\n })\n );\n }\n\n /**\n * Updates the named account setting.\n *\n * @param setting - the setting to update. The name of the setting must be a valid settings option.\n * @param options - the optional parameters.\n */\n async updateSetting(\n setting: KeyVaultSetting,\n options: UpdateSettingOptions = {}\n ): Promise<KeyVaultSetting> {\n return makeSetting(\n await this.client.updateSetting(this.vaultUrl, setting.name, String(setting.value), options)\n );\n }\n\n /**\n * Get the value of a specific account setting.\n *\n * @param settingName - the name of the setting.\n * @param options - the optional parameters.\n */\n async getSetting(settingName: string, options: GetSettingOptions = {}): Promise<KeyVaultSetting> {\n return makeSetting(await this.client.getSetting(this.vaultUrl, settingName, options));\n }\n\n /**\n * List the account's settings.\n *\n * @param options - the optional parameters.\n */\n async getSettings(options: ListSettingsOptions = {}): Promise<ListSettingsResponse> {\n const { settings } = await this.client.getSettings(this.vaultUrl, options);\n return { settings: settings?.map(makeSetting) ?? [] };\n }\n}\n"],"names":["RoleDefinitionCreateParametersMapper","RoleAssignmentCreateParametersMapper","SASTokenParameterMapper","RestoreOperationParametersMapper","SelectiveKeyRestoreOperationParametersMapper","deleteOperationSpec","getOperationSpec","serializer","coreClient","Mappers.KeyVaultError","Parameters.apiVersion","Parameters.vaultBaseUrl","Parameters.scope","Parameters.roleDefinitionName","Parameters.accept","Mappers.RoleDefinition","Parameters.parameters","Parameters.contentType","Mappers.RoleDefinitionListResult","Parameters.filter","Parameters.nextLink","Parameters.roleAssignmentName","Mappers.RoleAssignment","Parameters.parameters1","Mappers.RoleAssignmentListResult","Mappers.FullBackupOperation","Mappers.KeyVaultClientFullBackupHeaders","Parameters.azureStorageBlobContainerUri","Parameters.jobId","Mappers.RestoreOperation","Mappers.KeyVaultClientFullRestoreOperationHeaders","Parameters.restoreBlobDetails","Mappers.SelectiveKeyRestoreOperation","Mappers.KeyVaultClientSelectiveKeyRestoreOperationHeaders","Parameters.restoreBlobDetails1","Parameters.keyName","Mappers.Setting","Mappers.UpdateSettingRequest","Parameters.settingName","Mappers.SettingsListResult","createClientLogger","createTracingClient","bearerTokenAuthenticationPolicy","createKeyVaultChallengeCallbacks","__await","__asyncValues","__asyncDelegator","v4uuid","KnownDataAction","KnownRoleScope","Poller"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/generated/models/mappers.ts","../src/generated/models/parameters.ts","../src/generated/operations/roleDefinitions.ts","../src/generated/operations/roleAssignments.ts","../src/generated/keyVaultClientContext.ts","../src/generated/keyVaultClient.ts","../src/constants.ts","../src/log.ts","../src/mappings.ts","../src/tracing.ts","../src/accessControlClient.ts","../src/generated/models/index.ts","../src/lro/keyVaultAdminPoller.ts","../src/lro/backup/operation.ts","../src/lro/backup/poller.ts","../src/lro/restore/operation.ts","../src/lro/restore/poller.ts","../src/lro/selectiveKeyRestore/operation.ts","../src/lro/selectiveKeyRestore/poller.ts","../src/backupClient.ts","../src/settingsClient.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\n\nexport const KeyVaultError: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"KeyVaultError\",\n modelProperties: {\n error: {\n serializedName: \"error\",\n type: {\n name: \"Composite\",\n className: \"ErrorModel\"\n }\n }\n }\n }\n};\n\nexport const ErrorModel: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"ErrorModel\",\n modelProperties: {\n code: {\n serializedName: \"code\",\n readOnly: true,\n type: {\n name: \"String\"\n }\n },\n message: {\n serializedName: \"message\",\n readOnly: true,\n type: {\n name: \"String\"\n }\n },\n innerError: {\n serializedName: \"innererror\",\n type: {\n name: \"Composite\",\n className: \"ErrorModel\"\n }\n }\n }\n }\n};\n\nexport const RoleDefinitionCreateParameters: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RoleDefinitionCreateParameters\",\n modelProperties: {\n properties: {\n serializedName: \"properties\",\n type: {\n name: \"Composite\",\n className: \"RoleDefinitionProperties\"\n }\n }\n }\n }\n};\n\nexport const RoleDefinitionProperties: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RoleDefinitionProperties\",\n modelProperties: {\n roleName: {\n serializedName: \"roleName\",\n type: {\n name: \"String\"\n }\n },\n description: {\n serializedName: \"description\",\n type: {\n name: \"String\"\n }\n },\n roleType: {\n serializedName: \"type\",\n type: {\n name: \"String\"\n }\n },\n permissions: {\n serializedName: \"permissions\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"Permission\"\n }\n }\n }\n },\n assignableScopes: {\n serializedName: \"assignableScopes\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const Permission: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"Permission\",\n modelProperties: {\n actions: {\n serializedName: \"actions\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n },\n notActions: {\n serializedName: \"notActions\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n },\n dataActions: {\n serializedName: \"dataActions\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n },\n notDataActions: {\n serializedName: \"notDataActions\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const RoleDefinition: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RoleDefinition\",\n modelProperties: {\n id: {\n serializedName: \"id\",\n readOnly: true,\n type: {\n name: \"String\"\n }\n },\n name: {\n serializedName: \"name\",\n readOnly: true,\n type: {\n name: \"String\"\n }\n },\n type: {\n serializedName: \"type\",\n readOnly: true,\n type: {\n name: \"String\"\n }\n },\n roleName: {\n serializedName: \"properties.roleName\",\n type: {\n name: \"String\"\n }\n },\n description: {\n serializedName: \"properties.description\",\n type: {\n name: \"String\"\n }\n },\n roleType: {\n serializedName: \"properties.type\",\n type: {\n name: \"String\"\n }\n },\n permissions: {\n serializedName: \"properties.permissions\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"Permission\"\n }\n }\n }\n },\n assignableScopes: {\n serializedName: \"properties.assignableScopes\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"String\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const RoleDefinitionListResult: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RoleDefinitionListResult\",\n modelProperties: {\n value: {\n serializedName: \"value\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"RoleDefinition\"\n }\n }\n }\n },\n nextLink: {\n serializedName: \"nextLink\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const RoleAssignmentCreateParameters: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RoleAssignmentCreateParameters\",\n modelProperties: {\n properties: {\n serializedName: \"properties\",\n type: {\n name: \"Composite\",\n className: \"RoleAssignmentProperties\"\n }\n }\n }\n }\n};\n\nexport const RoleAssignmentProperties: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RoleAssignmentProperties\",\n modelProperties: {\n roleDefinitionId: {\n serializedName: \"roleDefinitionId\",\n required: true,\n type: {\n name: \"String\"\n }\n },\n principalId: {\n serializedName: \"principalId\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const RoleAssignment: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RoleAssignment\",\n modelProperties: {\n id: {\n serializedName: \"id\",\n readOnly: true,\n type: {\n name: \"String\"\n }\n },\n name: {\n serializedName: \"name\",\n readOnly: true,\n type: {\n name: \"String\"\n }\n },\n type: {\n serializedName: \"type\",\n readOnly: true,\n type: {\n name: \"String\"\n }\n },\n properties: {\n serializedName: \"properties\",\n type: {\n name: \"Composite\",\n className: \"RoleAssignmentPropertiesWithScope\"\n }\n }\n }\n }\n};\n\nexport const RoleAssignmentPropertiesWithScope: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RoleAssignmentPropertiesWithScope\",\n modelProperties: {\n scope: {\n serializedName: \"scope\",\n type: {\n name: \"String\"\n }\n },\n roleDefinitionId: {\n serializedName: \"roleDefinitionId\",\n type: {\n name: \"String\"\n }\n },\n principalId: {\n serializedName: \"principalId\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const RoleAssignmentListResult: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RoleAssignmentListResult\",\n modelProperties: {\n value: {\n serializedName: \"value\",\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"RoleAssignment\"\n }\n }\n }\n },\n nextLink: {\n serializedName: \"nextLink\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const SASTokenParameter: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"SASTokenParameter\",\n modelProperties: {\n storageResourceUri: {\n serializedName: \"storageResourceUri\",\n required: true,\n type: {\n name: \"String\"\n }\n },\n token: {\n serializedName: \"token\",\n type: {\n name: \"String\"\n }\n },\n useManagedIdentity: {\n defaultValue: false,\n serializedName: \"useManagedIdentity\",\n type: {\n name: \"Boolean\"\n }\n }\n }\n }\n};\n\nexport const FullBackupOperation: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"FullBackupOperation\",\n modelProperties: {\n status: {\n serializedName: \"status\",\n type: {\n name: \"String\"\n }\n },\n statusDetails: {\n serializedName: \"statusDetails\",\n type: {\n name: \"String\"\n }\n },\n error: {\n serializedName: \"error\",\n type: {\n name: \"Composite\",\n className: \"ErrorModel\"\n }\n },\n startTime: {\n serializedName: \"startTime\",\n type: {\n name: \"UnixTime\"\n }\n },\n endTime: {\n serializedName: \"endTime\",\n nullable: true,\n type: {\n name: \"UnixTime\"\n }\n },\n jobId: {\n serializedName: \"jobId\",\n type: {\n name: \"String\"\n }\n },\n azureStorageBlobContainerUri: {\n serializedName: \"azureStorageBlobContainerUri\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const RestoreOperationParameters: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RestoreOperationParameters\",\n modelProperties: {\n sasTokenParameters: {\n serializedName: \"sasTokenParameters\",\n type: {\n name: \"Composite\",\n className: \"SASTokenParameter\"\n }\n },\n folderToRestore: {\n serializedName: \"folderToRestore\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const RestoreOperation: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RestoreOperation\",\n modelProperties: {\n status: {\n serializedName: \"status\",\n type: {\n name: \"String\"\n }\n },\n statusDetails: {\n serializedName: \"statusDetails\",\n type: {\n name: \"String\"\n }\n },\n error: {\n serializedName: \"error\",\n type: {\n name: \"Composite\",\n className: \"ErrorModel\"\n }\n },\n jobId: {\n serializedName: \"jobId\",\n type: {\n name: \"String\"\n }\n },\n startTime: {\n serializedName: \"startTime\",\n type: {\n name: \"UnixTime\"\n }\n },\n endTime: {\n serializedName: \"endTime\",\n nullable: true,\n type: {\n name: \"UnixTime\"\n }\n }\n }\n }\n};\n\nexport const SelectiveKeyRestoreOperationParameters: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"SelectiveKeyRestoreOperationParameters\",\n modelProperties: {\n sasTokenParameters: {\n serializedName: \"sasTokenParameters\",\n type: {\n name: \"Composite\",\n className: \"SASTokenParameter\"\n }\n },\n folder: {\n serializedName: \"folder\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const SelectiveKeyRestoreOperation: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"SelectiveKeyRestoreOperation\",\n modelProperties: {\n status: {\n serializedName: \"status\",\n type: {\n name: \"String\"\n }\n },\n statusDetails: {\n serializedName: \"statusDetails\",\n type: {\n name: \"String\"\n }\n },\n error: {\n serializedName: \"error\",\n type: {\n name: \"Composite\",\n className: \"ErrorModel\"\n }\n },\n jobId: {\n serializedName: \"jobId\",\n type: {\n name: \"String\"\n }\n },\n startTime: {\n serializedName: \"startTime\",\n type: {\n name: \"UnixTime\"\n }\n },\n endTime: {\n serializedName: \"endTime\",\n nullable: true,\n type: {\n name: \"UnixTime\"\n }\n }\n }\n }\n};\n\nexport const UpdateSettingRequest: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"UpdateSettingRequest\",\n modelProperties: {\n value: {\n serializedName: \"value\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const Setting: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"Setting\",\n modelProperties: {\n name: {\n serializedName: \"name\",\n required: true,\n type: {\n name: \"String\"\n }\n },\n value: {\n serializedName: \"value\",\n required: true,\n type: {\n name: \"String\"\n }\n },\n type: {\n serializedName: \"type\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const SettingsListResult: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"SettingsListResult\",\n modelProperties: {\n settings: {\n serializedName: \"settings\",\n readOnly: true,\n type: {\n name: \"Sequence\",\n element: {\n type: {\n name: \"Composite\",\n className: \"Setting\"\n }\n }\n }\n }\n }\n }\n};\n\nexport const RoleAssignmentFilter: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RoleAssignmentFilter\",\n modelProperties: {\n principalId: {\n serializedName: \"principalId\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const RoleDefinitionFilter: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"RoleDefinitionFilter\",\n modelProperties: {\n roleName: {\n serializedName: \"roleName\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const KeyVaultClientFullBackupHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"KeyVaultClientFullBackupHeaders\",\n modelProperties: {\n retryAfter: {\n serializedName: \"retry-after\",\n type: {\n name: \"Number\"\n }\n },\n azureAsyncOperation: {\n serializedName: \"azure-asyncoperation\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const KeyVaultClientFullRestoreOperationHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"KeyVaultClientFullRestoreOperationHeaders\",\n modelProperties: {\n retryAfter: {\n serializedName: \"retry-after\",\n type: {\n name: \"Number\"\n }\n },\n azureAsyncOperation: {\n serializedName: \"azure-asyncoperation\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n\nexport const KeyVaultClientSelectiveKeyRestoreOperationHeaders: coreClient.CompositeMapper = {\n type: {\n name: \"Composite\",\n className: \"KeyVaultClientSelectiveKeyRestoreOperationHeaders\",\n modelProperties: {\n retryAfter: {\n serializedName: \"retry-after\",\n type: {\n name: \"Number\"\n }\n },\n azureAsyncOperation: {\n serializedName: \"azure-asyncoperation\",\n type: {\n name: \"String\"\n }\n }\n }\n }\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport {\n OperationParameter,\n OperationURLParameter,\n OperationQueryParameter\n} from \"@azure/core-client\";\nimport {\n RoleDefinitionCreateParameters as RoleDefinitionCreateParametersMapper,\n RoleAssignmentCreateParameters as RoleAssignmentCreateParametersMapper,\n SASTokenParameter as SASTokenParameterMapper,\n RestoreOperationParameters as RestoreOperationParametersMapper,\n SelectiveKeyRestoreOperationParameters as SelectiveKeyRestoreOperationParametersMapper,\n UpdateSettingRequest as UpdateSettingRequestMapper\n} from \"../models/mappers\";\n\nexport const accept: OperationParameter = {\n parameterPath: \"accept\",\n mapper: {\n defaultValue: \"application/json\",\n isConstant: true,\n serializedName: \"Accept\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const vaultBaseUrl: OperationURLParameter = {\n parameterPath: \"vaultBaseUrl\",\n mapper: {\n serializedName: \"vaultBaseUrl\",\n required: true,\n type: {\n name: \"String\"\n }\n },\n skipEncoding: true\n};\n\nexport const scope: OperationURLParameter = {\n parameterPath: \"scope\",\n mapper: {\n serializedName: \"scope\",\n required: true,\n type: {\n name: \"String\"\n }\n },\n skipEncoding: true\n};\n\nexport const roleDefinitionName: OperationURLParameter = {\n parameterPath: \"roleDefinitionName\",\n mapper: {\n serializedName: \"roleDefinitionName\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const apiVersion: OperationQueryParameter = {\n parameterPath: \"apiVersion\",\n mapper: {\n serializedName: \"api-version\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const contentType: OperationParameter = {\n parameterPath: [\"options\", \"contentType\"],\n mapper: {\n defaultValue: \"application/json\",\n isConstant: true,\n serializedName: \"Content-Type\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const parameters: OperationParameter = {\n parameterPath: \"parameters\",\n mapper: RoleDefinitionCreateParametersMapper\n};\n\nexport const filter: OperationQueryParameter = {\n parameterPath: [\"options\", \"filter\"],\n mapper: {\n serializedName: \"$filter\",\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const nextLink: OperationURLParameter = {\n parameterPath: \"nextLink\",\n mapper: {\n serializedName: \"nextLink\",\n required: true,\n type: {\n name: \"String\"\n }\n },\n skipEncoding: true\n};\n\nexport const roleAssignmentName: OperationURLParameter = {\n parameterPath: \"roleAssignmentName\",\n mapper: {\n serializedName: \"roleAssignmentName\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const parameters1: OperationParameter = {\n parameterPath: \"parameters\",\n mapper: RoleAssignmentCreateParametersMapper\n};\n\nexport const azureStorageBlobContainerUri: OperationParameter = {\n parameterPath: [\"options\", \"azureStorageBlobContainerUri\"],\n mapper: SASTokenParameterMapper\n};\n\nexport const jobId: OperationURLParameter = {\n parameterPath: \"jobId\",\n mapper: {\n serializedName: \"jobId\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const restoreBlobDetails: OperationParameter = {\n parameterPath: [\"options\", \"restoreBlobDetails\"],\n mapper: RestoreOperationParametersMapper\n};\n\nexport const restoreBlobDetails1: OperationParameter = {\n parameterPath: [\"options\", \"restoreBlobDetails\"],\n mapper: SelectiveKeyRestoreOperationParametersMapper\n};\n\nexport const keyName: OperationURLParameter = {\n parameterPath: \"keyName\",\n mapper: {\n serializedName: \"keyName\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n};\n\nexport const value: OperationParameter = {\n parameterPath: \"value\",\n mapper: UpdateSettingRequestMapper\n};\n\nexport const settingName: OperationURLParameter = {\n parameterPath: \"settingName\",\n mapper: {\n serializedName: \"setting-name\",\n required: true,\n type: {\n name: \"String\"\n }\n }\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { RoleDefinitions } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { KeyVaultClientContext } from \"../keyVaultClientContext\";\nimport {\n RoleDefinitionsDeleteOptionalParams,\n RoleDefinitionCreateParameters,\n RoleDefinitionsCreateOrUpdateOptionalParams,\n RoleDefinitionsCreateOrUpdateResponse,\n RoleDefinitionsGetOptionalParams,\n RoleDefinitionsGetResponse,\n RoleDefinitionsListOptionalParams,\n RoleDefinitionsListResponse,\n RoleDefinitionsListNextOptionalParams,\n RoleDefinitionsListNextResponse\n} from \"../models\";\n\n/** Class containing RoleDefinitions operations. */\nexport class RoleDefinitionsImpl implements RoleDefinitions {\n private readonly client: KeyVaultClientContext;\n\n /**\n * Initialize a new instance of the class RoleDefinitions class.\n * @param client Reference to the service client\n */\n constructor(client: KeyVaultClientContext) {\n this.client = client;\n }\n\n /**\n * Deletes a custom role definition.\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param scope The scope of the role definition to delete. Managed HSM only supports '/'.\n * @param roleDefinitionName The name (GUID) of the role definition to delete.\n * @param options The options parameters.\n */\n delete(\n vaultBaseUrl: string,\n scope: string,\n roleDefinitionName: string,\n options?: RoleDefinitionsDeleteOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { vaultBaseUrl, scope, roleDefinitionName, options },\n deleteOperationSpec\n );\n }\n\n /**\n * Creates or updates a custom role definition.\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param scope The scope of the role definition to create or update. Managed HSM only supports '/'.\n * @param roleDefinitionName The name of the role definition to create or update. It can be any valid\n * GUID.\n * @param parameters Parameters for the role definition.\n * @param options The options parameters.\n */\n createOrUpdate(\n vaultBaseUrl: string,\n scope: string,\n roleDefinitionName: string,\n parameters: RoleDefinitionCreateParameters,\n options?: RoleDefinitionsCreateOrUpdateOptionalParams\n ): Promise<RoleDefinitionsCreateOrUpdateResponse> {\n return this.client.sendOperationRequest(\n { vaultBaseUrl, scope, roleDefinitionName, parameters, options },\n createOrUpdateOperationSpec\n );\n }\n\n /**\n * Get the specified role definition.\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param scope The scope of the role definition to get. Managed HSM only supports '/'.\n * @param roleDefinitionName The name of the role definition to get.\n * @param options The options parameters.\n */\n get(\n vaultBaseUrl: string,\n scope: string,\n roleDefinitionName: string,\n options?: RoleDefinitionsGetOptionalParams\n ): Promise<RoleDefinitionsGetResponse> {\n return this.client.sendOperationRequest(\n { vaultBaseUrl, scope, roleDefinitionName, options },\n getOperationSpec\n );\n }\n\n /**\n * Get all role definitions that are applicable at scope and above.\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param scope The scope of the role definition.\n * @param options The options parameters.\n */\n list(\n vaultBaseUrl: string,\n scope: string,\n options?: RoleDefinitionsListOptionalParams\n ): Promise<RoleDefinitionsListResponse> {\n return this.client.sendOperationRequest(\n { vaultBaseUrl, scope, options },\n listOperationSpec\n );\n }\n\n /**\n * ListNext\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param scope The scope of the role definition.\n * @param nextLink The nextLink from the previous successful call to the List method.\n * @param options The options parameters.\n */\n listNext(\n vaultBaseUrl: string,\n scope: string,\n nextLink: string,\n options?: RoleDefinitionsListNextOptionalParams\n ): Promise<RoleDefinitionsListNextResponse> {\n return this.client.sendOperationRequest(\n { vaultBaseUrl, scope, nextLink, options },\n listNextOperationSpec\n );\n }\n}\n// Operation Specifications\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst deleteOperationSpec: coreClient.OperationSpec = {\n path:\n \"/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}\",\n httpMethod: \"DELETE\",\n responses: {\n 200: {},\n 404: {},\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.vaultBaseUrl,\n Parameters.scope,\n Parameters.roleDefinitionName\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst createOrUpdateOperationSpec: coreClient.OperationSpec = {\n path:\n \"/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}\",\n httpMethod: \"PUT\",\n responses: {\n 201: {\n bodyMapper: Mappers.RoleDefinition\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n requestBody: Parameters.parameters,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.vaultBaseUrl,\n Parameters.scope,\n Parameters.roleDefinitionName\n ],\n headerParameters: [Parameters.accept, Parameters.contentType],\n mediaType: \"json\",\n serializer\n};\nconst getOperationSpec: coreClient.OperationSpec = {\n path:\n \"/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.RoleDefinition\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.vaultBaseUrl,\n Parameters.scope,\n Parameters.roleDefinitionName\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst listOperationSpec: coreClient.OperationSpec = {\n path: \"/{scope}/providers/Microsoft.Authorization/roleDefinitions\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.RoleDefinitionListResult\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n queryParameters: [Parameters.apiVersion, Parameters.filter],\n urlParameters: [Parameters.vaultBaseUrl, Parameters.scope],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst listNextOperationSpec: coreClient.OperationSpec = {\n path: \"{nextLink}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.RoleDefinitionListResult\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n queryParameters: [Parameters.apiVersion, Parameters.filter],\n urlParameters: [\n Parameters.vaultBaseUrl,\n Parameters.scope,\n Parameters.nextLink\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport { RoleAssignments } from \"../operationsInterfaces\";\nimport * as coreClient from \"@azure/core-client\";\nimport * as Mappers from \"../models/mappers\";\nimport * as Parameters from \"../models/parameters\";\nimport { KeyVaultClientContext } from \"../keyVaultClientContext\";\nimport {\n RoleAssignmentsDeleteOptionalParams,\n RoleAssignmentCreateParameters,\n RoleAssignmentsCreateOptionalParams,\n RoleAssignmentsCreateResponse,\n RoleAssignmentsGetOptionalParams,\n RoleAssignmentsGetResponse,\n RoleAssignmentsListForScopeOptionalParams,\n RoleAssignmentsListForScopeResponse,\n RoleAssignmentsListForScopeNextOptionalParams,\n RoleAssignmentsListForScopeNextResponse\n} from \"../models\";\n\n/** Class containing RoleAssignments operations. */\nexport class RoleAssignmentsImpl implements RoleAssignments {\n private readonly client: KeyVaultClientContext;\n\n /**\n * Initialize a new instance of the class RoleAssignments class.\n * @param client Reference to the service client\n */\n constructor(client: KeyVaultClientContext) {\n this.client = client;\n }\n\n /**\n * Deletes a role assignment.\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param scope The scope of the role assignment to delete.\n * @param roleAssignmentName The name of the role assignment to delete.\n * @param options The options parameters.\n */\n delete(\n vaultBaseUrl: string,\n scope: string,\n roleAssignmentName: string,\n options?: RoleAssignmentsDeleteOptionalParams\n ): Promise<void> {\n return this.client.sendOperationRequest(\n { vaultBaseUrl, scope, roleAssignmentName, options },\n deleteOperationSpec\n );\n }\n\n /**\n * Creates a role assignment.\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param scope The scope of the role assignment to create.\n * @param roleAssignmentName The name of the role assignment to create. It can be any valid GUID.\n * @param parameters Parameters for the role assignment.\n * @param options The options parameters.\n */\n create(\n vaultBaseUrl: string,\n scope: string,\n roleAssignmentName: string,\n parameters: RoleAssignmentCreateParameters,\n options?: RoleAssignmentsCreateOptionalParams\n ): Promise<RoleAssignmentsCreateResponse> {\n return this.client.sendOperationRequest(\n { vaultBaseUrl, scope, roleAssignmentName, parameters, options },\n createOperationSpec\n );\n }\n\n /**\n * Get the specified role assignment.\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param scope The scope of the role assignment.\n * @param roleAssignmentName The name of the role assignment to get.\n * @param options The options parameters.\n */\n get(\n vaultBaseUrl: string,\n scope: string,\n roleAssignmentName: string,\n options?: RoleAssignmentsGetOptionalParams\n ): Promise<RoleAssignmentsGetResponse> {\n return this.client.sendOperationRequest(\n { vaultBaseUrl, scope, roleAssignmentName, options },\n getOperationSpec\n );\n }\n\n /**\n * Gets role assignments for a scope.\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param scope The scope of the role assignments.\n * @param options The options parameters.\n */\n listForScope(\n vaultBaseUrl: string,\n scope: string,\n options?: RoleAssignmentsListForScopeOptionalParams\n ): Promise<RoleAssignmentsListForScopeResponse> {\n return this.client.sendOperationRequest(\n { vaultBaseUrl, scope, options },\n listForScopeOperationSpec\n );\n }\n\n /**\n * ListForScopeNext\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param scope The scope of the role assignments.\n * @param nextLink The nextLink from the previous successful call to the ListForScope method.\n * @param options The options parameters.\n */\n listForScopeNext(\n vaultBaseUrl: string,\n scope: string,\n nextLink: string,\n options?: RoleAssignmentsListForScopeNextOptionalParams\n ): Promise<RoleAssignmentsListForScopeNextResponse> {\n return this.client.sendOperationRequest(\n { vaultBaseUrl, scope, nextLink, options },\n listForScopeNextOperationSpec\n );\n }\n}\n// Operation Specifications\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst deleteOperationSpec: coreClient.OperationSpec = {\n path:\n \"/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}\",\n httpMethod: \"DELETE\",\n responses: {\n 200: {},\n 404: {},\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.vaultBaseUrl,\n Parameters.scope,\n Parameters.roleAssignmentName\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst createOperationSpec: coreClient.OperationSpec = {\n path:\n \"/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}\",\n httpMethod: \"PUT\",\n responses: {\n 201: {\n bodyMapper: Mappers.RoleAssignment\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n requestBody: Parameters.parameters1,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.vaultBaseUrl,\n Parameters.scope,\n Parameters.roleAssignmentName\n ],\n headerParameters: [Parameters.accept, Parameters.contentType],\n mediaType: \"json\",\n serializer\n};\nconst getOperationSpec: coreClient.OperationSpec = {\n path:\n \"/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.RoleAssignment\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [\n Parameters.vaultBaseUrl,\n Parameters.scope,\n Parameters.roleAssignmentName\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst listForScopeOperationSpec: coreClient.OperationSpec = {\n path: \"/{scope}/providers/Microsoft.Authorization/roleAssignments\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.RoleAssignmentListResult\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n queryParameters: [Parameters.apiVersion, Parameters.filter],\n urlParameters: [Parameters.vaultBaseUrl, Parameters.scope],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst listForScopeNextOperationSpec: coreClient.OperationSpec = {\n path: \"{nextLink}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.RoleAssignmentListResult\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n queryParameters: [Parameters.apiVersion, Parameters.filter],\n urlParameters: [\n Parameters.vaultBaseUrl,\n Parameters.scope,\n Parameters.nextLink\n ],\n headerParameters: [Parameters.accept],\n serializer\n};\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\nimport { ApiVersion75, KeyVaultClientOptionalParams } from \"./models\";\n\nexport class KeyVaultClientContext extends coreClient.ServiceClient {\n apiVersion: ApiVersion75;\n\n /**\n * Initializes a new instance of the KeyVaultClientContext class.\n * @param apiVersion Api Version\n * @param options The parameter options\n */\n constructor(\n apiVersion: ApiVersion75,\n options?: KeyVaultClientOptionalParams\n ) {\n if (apiVersion === undefined) {\n throw new Error(\"'apiVersion' cannot be null\");\n }\n\n // Initializing default values for options\n if (!options) {\n options = {};\n }\n const defaults: KeyVaultClientOptionalParams = {\n requestContentType: \"application/json; charset=utf-8\"\n };\n\n const packageDetails = `azsdk-js-keyvault-admin/4.5.0`;\n const userAgentPrefix =\n options.userAgentOptions && options.userAgentOptions.userAgentPrefix\n ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`\n : `${packageDetails}`;\n\n const optionsWithDefaults = {\n ...defaults,\n ...options,\n userAgentOptions: {\n userAgentPrefix\n },\n baseUri: options.endpoint || \"{vaultBaseUrl}\"\n };\n super(optionsWithDefaults);\n // Parameter assignments\n this.apiVersion = apiVersion;\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\nimport { RoleDefinitionsImpl, RoleAssignmentsImpl } from \"./operations\";\nimport { RoleDefinitions, RoleAssignments } from \"./operationsInterfaces\";\nimport * as Parameters from \"./models/parameters\";\nimport * as Mappers from \"./models/mappers\";\nimport { KeyVaultClientContext } from \"./keyVaultClientContext\";\nimport {\n KeyVaultClientOptionalParams,\n ApiVersion75,\n FullBackupOptionalParams,\n FullBackupResponse,\n FullBackupStatusOptionalParams,\n FullBackupStatusResponse,\n FullRestoreOperationOptionalParams,\n FullRestoreOperationResponse,\n RestoreStatusOptionalParams,\n RestoreStatusResponse,\n SelectiveKeyRestoreOperationOptionalParams,\n SelectiveKeyRestoreOperationResponse,\n UpdateSettingOptionalParams,\n UpdateSettingResponse,\n GetSettingOptionalParams,\n GetSettingResponse,\n GetSettingsOptionalParams,\n GetSettingsResponse\n} from \"./models\";\n\nexport class KeyVaultClient extends KeyVaultClientContext {\n /**\n * Initializes a new instance of the KeyVaultClient class.\n * @param apiVersion Api Version\n * @param options The parameter options\n */\n constructor(\n apiVersion: ApiVersion75,\n options?: KeyVaultClientOptionalParams\n ) {\n super(apiVersion, options);\n this.roleDefinitions = new RoleDefinitionsImpl(this);\n this.roleAssignments = new RoleAssignmentsImpl(this);\n }\n\n /**\n * Creates a full backup using a user-provided SAS token to an Azure blob storage container.\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param options The options parameters.\n */\n fullBackup(\n vaultBaseUrl: string,\n options?: FullBackupOptionalParams\n ): Promise<FullBackupResponse> {\n return this.sendOperationRequest(\n { vaultBaseUrl, options },\n fullBackupOperationSpec\n );\n }\n\n /**\n * Returns the status of full backup operation\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param jobId The id returned as part of the backup request\n * @param options The options parameters.\n */\n fullBackupStatus(\n vaultBaseUrl: string,\n jobId: string,\n options?: FullBackupStatusOptionalParams\n ): Promise<FullBackupStatusResponse> {\n return this.sendOperationRequest(\n { vaultBaseUrl, jobId, options },\n fullBackupStatusOperationSpec\n );\n }\n\n /**\n * Restores all key materials using the SAS token pointing to a previously stored Azure Blob storage\n * backup folder\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param options The options parameters.\n */\n fullRestoreOperation(\n vaultBaseUrl: string,\n options?: FullRestoreOperationOptionalParams\n ): Promise<FullRestoreOperationResponse> {\n return this.sendOperationRequest(\n { vaultBaseUrl, options },\n fullRestoreOperationOperationSpec\n );\n }\n\n /**\n * Returns the status of restore operation\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param jobId The Job Id returned part of the restore operation\n * @param options The options parameters.\n */\n restoreStatus(\n vaultBaseUrl: string,\n jobId: string,\n options?: RestoreStatusOptionalParams\n ): Promise<RestoreStatusResponse> {\n return this.sendOperationRequest(\n { vaultBaseUrl, jobId, options },\n restoreStatusOperationSpec\n );\n }\n\n /**\n * Restores all key versions of a given key using user supplied SAS token pointing to a previously\n * stored Azure Blob storage backup folder\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param keyName The name of the key to be restored from the user supplied backup\n * @param options The options parameters.\n */\n selectiveKeyRestoreOperation(\n vaultBaseUrl: string,\n keyName: string,\n options?: SelectiveKeyRestoreOperationOptionalParams\n ): Promise<SelectiveKeyRestoreOperationResponse> {\n return this.sendOperationRequest(\n { vaultBaseUrl, keyName, options },\n selectiveKeyRestoreOperationOperationSpec\n );\n }\n\n /**\n * Description of the pool setting to be updated\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param settingName The name of the account setting. Must be a valid settings option.\n * @param value The value of the pool setting.\n * @param options The options parameters.\n */\n updateSetting(\n vaultBaseUrl: string,\n settingName: string,\n value: string,\n options?: UpdateSettingOptionalParams\n ): Promise<UpdateSettingResponse> {\n return this.sendOperationRequest(\n { vaultBaseUrl, settingName, value, options },\n updateSettingOperationSpec\n );\n }\n\n /**\n * Retrieves the setting object of a specified setting name.\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param settingName The name of the account setting. Must be a valid settings option.\n * @param options The options parameters.\n */\n getSetting(\n vaultBaseUrl: string,\n settingName: string,\n options?: GetSettingOptionalParams\n ): Promise<GetSettingResponse> {\n return this.sendOperationRequest(\n { vaultBaseUrl, settingName, options },\n getSettingOperationSpec\n );\n }\n\n /**\n * Retrieves a list of all the available account settings that can be configured.\n * @param vaultBaseUrl The vault name, for example https://myvault.vault.azure.net.\n * @param options The options parameters.\n */\n getSettings(\n vaultBaseUrl: string,\n options?: GetSettingsOptionalParams\n ): Promise<GetSettingsResponse> {\n return this.sendOperationRequest(\n { vaultBaseUrl, options },\n getSettingsOperationSpec\n );\n }\n\n roleDefinitions: RoleDefinitions;\n roleAssignments: RoleAssignments;\n}\n// Operation Specifications\nconst serializer = coreClient.createSerializer(Mappers, /* isXml */ false);\n\nconst fullBackupOperationSpec: coreClient.OperationSpec = {\n path: \"/backup\",\n httpMethod: \"POST\",\n responses: {\n 202: {\n bodyMapper: Mappers.FullBackupOperation,\n headersMapper: Mappers.KeyVaultClientFullBackupHeaders\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n requestBody: Parameters.azureStorageBlobContainerUri,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.vaultBaseUrl],\n headerParameters: [Parameters.accept, Parameters.contentType],\n mediaType: \"json\",\n serializer\n};\nconst fullBackupStatusOperationSpec: coreClient.OperationSpec = {\n path: \"/backup/{jobId}/pending\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.FullBackupOperation\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.vaultBaseUrl, Parameters.jobId],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst fullRestoreOperationOperationSpec: coreClient.OperationSpec = {\n path: \"/restore\",\n httpMethod: \"PUT\",\n responses: {\n 202: {\n bodyMapper: Mappers.RestoreOperation,\n headersMapper: Mappers.KeyVaultClientFullRestoreOperationHeaders\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n requestBody: Parameters.restoreBlobDetails,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.vaultBaseUrl],\n headerParameters: [Parameters.accept, Parameters.contentType],\n mediaType: \"json\",\n serializer\n};\nconst restoreStatusOperationSpec: coreClient.OperationSpec = {\n path: \"/restore/{jobId}/pending\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.RestoreOperation\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.vaultBaseUrl, Parameters.jobId],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst selectiveKeyRestoreOperationOperationSpec: coreClient.OperationSpec = {\n path: \"/keys/{keyName}/restore\",\n httpMethod: \"PUT\",\n responses: {\n 202: {\n bodyMapper: Mappers.SelectiveKeyRestoreOperation,\n headersMapper: Mappers.KeyVaultClientSelectiveKeyRestoreOperationHeaders\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n requestBody: Parameters.restoreBlobDetails1,\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.vaultBaseUrl, Parameters.keyName],\n headerParameters: [Parameters.accept, Parameters.contentType],\n mediaType: \"json\",\n serializer\n};\nconst updateSettingOperationSpec: coreClient.OperationSpec = {\n path: \"/settings/{setting-name}\",\n httpMethod: \"PATCH\",\n responses: {\n 200: {\n bodyMapper: Mappers.Setting\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n requestBody: {\n parameterPath: { value: [\"value\"] },\n mapper: { ...Mappers.UpdateSettingRequest, required: true }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.vaultBaseUrl, Parameters.settingName],\n headerParameters: [Parameters.accept, Parameters.contentType],\n mediaType: \"json\",\n serializer\n};\nconst getSettingOperationSpec: coreClient.OperationSpec = {\n path: \"/settings/{setting-name}\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.Setting\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.vaultBaseUrl, Parameters.settingName],\n headerParameters: [Parameters.accept],\n serializer\n};\nconst getSettingsOperationSpec: coreClient.OperationSpec = {\n path: \"/settings\",\n httpMethod: \"GET\",\n responses: {\n 200: {\n bodyMapper: Mappers.SettingsListResult\n },\n default: {\n bodyMapper: Mappers.KeyVaultError\n }\n },\n queryParameters: [Parameters.apiVersion],\n urlParameters: [Parameters.vaultBaseUrl],\n headerParameters: [Parameters.accept],\n serializer\n};\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n/**\n * Current version of the Key Vault Admin SDK.\n */\nexport const SDK_VERSION: string = \"4.5.0\";\n\n/**\n * The latest supported Key Vault service API version.\n */\nexport const LATEST_API_VERSION = \"7.5\";\n\n/**\n * Supported API versions\n */\nexport type SUPPORTED_API_VERSIONS = \"7.2\" | \"7.3\" | \"7.4\" | \"7.5\";\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { createClientLogger } from \"@azure/logger\";\n\n/**\n * The \\@azure/logger configuration for this package.\n */\nexport const logger = createClientLogger(\"keyvault-admin\");\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n KeyVaultRoleAssignment,\n KeyVaultRoleDefinition,\n KeyVaultRoleScope,\n} from \"./accessControlModels\";\nimport { RoleAssignment, RoleDefinition } from \"./generated/models\";\n\nexport const mappings = {\n roleAssignment: {\n generatedToPublic(roleAssignment: RoleAssignment): KeyVaultRoleAssignment {\n const { id, name, type, properties } = roleAssignment;\n const { scope, roleDefinitionId, principalId } = properties || {};\n return {\n id: id!,\n name: name!,\n kind: type!,\n properties: {\n scope: scope as KeyVaultRoleScope,\n roleDefinitionId: roleDefinitionId!,\n principalId: principalId!,\n },\n };\n },\n },\n roleDefinition: {\n generatedToPublic(roleDefinition: RoleDefinition): KeyVaultRoleDefinition {\n const { id, name, type, roleName, description, roleType, permissions, assignableScopes } =\n roleDefinition;\n return {\n id: id!,\n name: name!,\n kind: type!,\n roleName: roleName!,\n description: description!,\n roleType: roleType!,\n permissions: permissions!,\n assignableScopes: assignableScopes!,\n };\n },\n },\n folderUriParts(folderUri: string): { folderName: string; folderUri: string } {\n const uriParts = folderUri.split(\"/\");\n const folderName = uriParts.pop();\n const storageUri = uriParts.join(\"/\");\n\n if (!folderName) {\n throw new Error(\"The provided folder URI is missing the folder name.\");\n }\n\n return {\n folderName,\n folderUri: storageUri,\n };\n },\n};\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { SDK_VERSION } from \"./constants\";\nimport { createTracingClient } from \"@azure/core-tracing\";\n\nexport const tracingClient = createTracingClient({\n namespace: \"Microsoft.KeyVault\",\n packageName: \"@azure/keyvault-admin\",\n packageVersion: SDK_VERSION,\n});\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n/// <reference lib=\"esnext.asynciterable\" />\n\nimport {\n AccessControlClientOptions,\n CreateRoleAssignmentOptions,\n DeleteRoleAssignmentOptions,\n DeleteRoleDefinitionOptions,\n GetRoleAssignmentOptions,\n GetRoleDefinitionOptions,\n KeyVaultRoleAssignment,\n KeyVaultRoleDefinition,\n KeyVaultRoleScope,\n ListRoleAssignmentsOptions,\n ListRoleAssignmentsPageSettings,\n ListRoleDefinitionsOptions,\n ListRoleDefinitionsPageSettings,\n SetRoleDefinitionOptions,\n} from \"./accessControlModels\";\nimport { KeyVaultClient } from \"./generated/keyVaultClient\";\nimport { LATEST_API_VERSION } from \"./constants\";\nimport { PagedAsyncIterableIterator } from \"@azure/core-paging\";\nimport { RoleAssignmentsListForScopeOptionalParams } from \"./generated/models\";\nimport { TokenCredential } from \"@azure/core-auth\";\nimport { bearerTokenAuthenticationPolicy } from \"@azure/core-rest-pipeline\";\nimport { createKeyVaultChallengeCallbacks } from \"@azure/keyvault-common\";\nimport { logger } from \"./log\";\nimport { mappings } from \"./mappings\";\nimport { tracingClient } from \"./tracing\";\nimport { v4 as v4uuid } from \"uuid\";\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\n * import { KeyVaultAccessControlClient } from \"@azure/keyvault-admin\";\n * import { DefaultAzureCredential } from \"@azure/identity\";\n *\n * let vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * let credentials = new DefaultAzureCredential();\n *\n * let 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 options: AccessControlClientOptions = {},\n ) {\n this.vaultUrl = vaultUrl;\n\n const serviceVersion = options.serviceVersion || LATEST_API_VERSION;\n\n const clientOptions = {\n ...options,\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\n this.client = new KeyVaultClient(serviceVersion, clientOptions);\n\n this.client.pipeline.addPolicy(\n bearerTokenAuthenticationPolicy({\n credential,\n // The scopes will be populated in the challenge callbacks based on the WWW-authenticate header\n // returned by the challenge, so pass an empty array as a placeholder.\n scopes: [],\n challengeCallbacks: createKeyVaultChallengeCallbacks(options),\n }),\n );\n }\n\n /**\n * Creates a role assignment in an Azure Key Vault.\n *\n * Example usage:\n * ```ts\n * const client = new KeyVaultAccessControlClient(url, credentials);\n * const roleDefinition = await client.listRoleDefinitions(\"/\").next();\n * const principalId = \"4871f6a6-374f-4b6b-8b0c-f5d84db823f6\";\n * const result = await client.createRoleAssignment(\"/\", \"295c179b-9ad3-4117-99cd-b1aa66cf4517\", roleDefinition, principalId);\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 this.vaultUrl,\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\n * const client = new KeyVaultAccessControlClient(url, credentials);\n * const roleAssignment = await client.createRoleAssignment(\"/\", \"295c179b-9ad3-4117-99cd-b1aa66cf4517\");\n * await client.deleteRoleAssignment(roleAssignment.properties.roleScope, 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 await this.client.roleAssignments.delete(this.vaultUrl, roleScope, name, updatedOptions);\n },\n );\n }\n\n /**\n * Gets a role assignments previously created in an Azure Key Vault.\n *\n * Example usage:\n * ```ts\n * const client = new KeyVaultAccessControlClient(url, credentials);\n * let roleAssignment = await client.createRoleAssignment(\"/\", \"295c179b-9ad3-4117-99cd-b1aa66cf4517\");\n * roleAssignment = const await client.getRoleAssignment(roleAssignment.properties.roleScope, roleAssignment.name);\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(\n this.vaultUrl,\n roleScope,\n name,\n updatedOptions,\n );\n return mappings.roleAssignment.generatedToPublic(response);\n },\n );\n }\n\n /**\n * Deals with the pagination of {@link listRoleAssignments}.\n * @param roleScope - The scope of the role assignments.\n * @param continuationState - An object that indicates the position of the paginated request.\n * @param options - Common options for the iterative endpoints.\n */\n private async *listRoleAssignmentsPage(\n roleScope: KeyVaultRoleScope,\n continuationState: ListRoleAssignmentsPageSettings,\n options?: ListRoleAssignmentsOptions,\n ): AsyncIterableIterator<KeyVaultRoleAssignment[]> {\n if (!continuationState.continuationToken) {\n const optionsComplete: RoleAssignmentsListForScopeOptionalParams = options || {};\n const currentSetResponse = await tracingClient.withSpan(\n \"KeyVaultAccessControlClient.listRoleAssignmentsPage\",\n optionsComplete,\n async (updatedOptions) => {\n return this.client.roleAssignments.listForScope(this.vaultUrl, roleScope, updatedOptions);\n },\n );\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mappings.roleAssignment.generatedToPublic, this);\n }\n }\n while (continuationState.continuationToken) {\n const currentSetResponse = await tracingClient.withSpan(\n \"KeyVaultAccessControlClient.listRoleAssignmentsPage\",\n options || {},\n async (updatedOptions) => {\n return this.client.roleAssignments.listForScopeNext(\n this.vaultUrl,\n roleScope,\n continuationState.continuationToken!,\n updatedOptions,\n );\n },\n );\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mappings.roleAssignment.generatedToPublic, this);\n } else {\n break;\n }\n }\n }\n\n /**\n * Deals with the iteration of all the available results of {@link listRoleAssignments}.\n * @param roleScope - The scope of the role assignments.\n * @param options - Common options for the iterative endpoints.\n */\n private async *listRoleAssignmentsAll(\n roleScope: KeyVaultRoleScope,\n options?: ListRoleAssignmentsOptions,\n ): AsyncIterableIterator<KeyVaultRoleAssignment> {\n for await (const page of this.listRoleAssignmentsPage(roleScope, {}, options)) {\n yield* page;\n }\n }\n\n /**\n * Iterates over all of the available role assignments in an Azure Key Vault.\n *\n * Example usage:\n * ```ts\n * let client = new KeyVaultAccessControlClient(url, credentials);\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 const iter = this.listRoleAssignmentsAll(roleScope, options);\n\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage: (settings: ListRoleAssignmentsPageSettings = {}) =>\n this.listRoleAssignmentsPage(roleScope, settings, options),\n };\n }\n\n /**\n * Deals with the pagination of {@link listRoleDefinitions}.\n * @param roleScope - The scope of the role definition.\n * @param continuationState - An object that indicates the position of the paginated request.\n * @param options - Common options for the iterative endpoints.\n */\n private async *listRoleDefinitionsPage(\n roleScope: KeyVaultRoleScope,\n continuationState: ListRoleDefinitionsPageSettings,\n options: ListRoleDefinitionsOptions = {},\n ): AsyncIterableIterator<KeyVaultRoleDefinition[]> {\n if (!continuationState.continuationToken) {\n const optionsComplete: RoleAssignmentsListForScopeOptionalParams = options || {};\n const currentSetResponse = await tracingClient.withSpan(\n \"KeyVaultAccessControlClient.listRoleDefinitionsPage\",\n optionsComplete,\n (updatedOptions) =>\n this.client.roleDefinitions.list(this.vaultUrl, roleScope, updatedOptions),\n );\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mappings.roleDefinition.generatedToPublic, this);\n }\n }\n while (continuationState.continuationToken) {\n const currentSetResponse = await tracingClient.withSpan(\n \"KeyVaultAccessControlClient.listRoleDefinitionsPage\",\n options,\n (updatedOptions) =>\n this.client.roleDefinitions.listNext(\n this.vaultUrl,\n roleScope,\n continuationState.continuationToken!,\n updatedOptions,\n ),\n );\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mappings.roleDefinition.generatedToPublic, this);\n } else {\n break;\n }\n }\n }\n\n /**\n * Deals with the iteration of all the available results of {@link listRoleDefinitions}.\n * @param roleScope - The scope of the role definition.\n * @param options - Common options for the iterative endpoints.\n */\n private async *listRoleDefinitionsAll(\n roleScope: KeyVaultRoleScope,\n options?: ListRoleDefinitionsOptions,\n ): AsyncIterableIterator<KeyVaultRoleDefinition> {\n for await (const page of this.listRoleDefinitionsPage(roleScope, {}, options)) {\n yield* page;\n }\n }\n\n /**\n * Iterates over all of the available role definitions in an Azure Key Vault.\n *\n * Example usage:\n * ```ts\n * let client = new KeyVaultAccessControlClient(url, credentials);\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 const iter = this.listRoleDefinitionsAll(roleScope, options);\n\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage: (settings: ListRoleDefinitionsPageSettings = {}) =>\n this.listRoleDefinitionsPage(roleScope, settings, options),\n };\n }\n\n /**\n * Gets a role definition from Azure Key Vault.\n *\n * Example usage:\n * ```\n * const client = new KeyVaultAccessControlClient(url, credentials);\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(\n this.vaultUrl,\n roleScope,\n name,\n updatedOptions,\n );\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\n * const client = new KeyVaultAccessControlClient(url, credentials);\n * const permissions = [{ dataActions: [KnownKeyVaultDataAction.BackupHsmKeys] }];\n * const roleDefinitionName = \"23b8bb1a-39c0-4c89-a85b-dd3c99273a8a\";\n * const roleDefinition = await client.setRoleDefinition(KnownKeyVaultRoleScope.Global, { permissions, roleDefinitionName });\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 this.vaultUrl,\n roleScope,\n options.roleDefinitionName || v4uuid(),\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\n * const client = new KeyVaultAccessControlClient(url, credentials);\n * const roleDefinition = await client.setRoleDefinition(\"/\", \"23b8bb1a-39c0-4c89-a85b-dd3c99273a8a\", []);\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 await this.client.roleDefinitions.delete(this.vaultUrl, roleScope, name, updatedOptions);\n },\n );\n }\n}\n","/*\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * Code generated by Microsoft (R) AutoRest Code Generator.\n * Changes may cause incorrect behavior and will be lost if the code is regenerated.\n */\n\nimport * as coreClient from \"@azure/core-client\";\n\n/** The key vault error exception. */\nexport interface KeyVaultError {\n /**\n * The key vault server error.\n * NOTE: This property will not be serialized. It can only be populated by the server.\n */\n readonly error?: ErrorModel;\n}\n\n/** The key vault server error. */\nexport interface ErrorModel {\n /**\n * The error code.\n * NOTE: This property will not be serialized. It can only be populated by the server.\n */\n readonly code?: string;\n /**\n * The error message.\n * NOTE: This property will not be serialized. It can only be populated by the server.\n */\n readonly message?: string;\n /**\n * The key vault server error.\n * NOTE: This property will not be serialized. It can only be populated by the server.\n */\n readonly innerError?: ErrorModel;\n}\n\n/** Role definition create parameters. */\nexport interface RoleDefinitionCreateParameters {\n /** Role definition properties. */\n properties: RoleDefinitionProperties;\n}\n\n/** Role definition properties. */\nexport interface RoleDefinitionProperties {\n /** The role name. */\n roleName?: string;\n /** The role definition description. */\n description?: string;\n /** The role type. */\n roleType?: RoleType;\n /** Role definition permissions. */\n permissions?: Permission[];\n /** Role definition assignable scopes. */\n assignableScopes?: RoleScope[];\n}\n\n/** Role definition permissions. */\nexport interface Permission {\n /** Action permissions that are granted. */\n actions?: string[];\n /** Action permissions that are excluded but not denied. They may be granted by other role definitions assigned to a principal. */\n notActions?: string[];\n /** Data action permissions that are granted. */\n dataActions?: DataAction[];\n /** Data action permissions that are excluded but not denied. They may be granted by other role definitions assigned to a principal. */\n notDataActions?: DataAction[];\n}\n\n/** Role definition. */\nexport interface RoleDefinition {\n /**\n * The role definition ID.\n * NOTE: This property will not be serialized. It can only be populated by the server.\n */\n readonly id?: string;\n /**\n * The role definition name.\n * NOTE: This property will not be serialized. It can only be populated by the server.\n */\n readonly name?: string;\n /**\n * The role definition type.\n * NOTE: This property will not be serialized. It can only be populated by the server.\n */\n readonly type?: RoleDefinitionType;\n /** The role name. */\n roleName?: string;\n /** The role definition description. */\n description?: string;\n /** The role type. */\n roleType?: RoleType;\n /** Role definition permissions. */\n permissions?: Permission[];\n /** Role definition assignable scopes. */\n assignableScopes?: RoleScope[];\n}\n\n/** Role definition list operation result. */\nexport interface RoleDefinitionListResult {\n /** Role definition list. */\n value?: RoleDefinition[];\n /** The URL to use for getting the next set of results. */\n nextLink?: string;\n}\n\n/** Role assignment create parameters. */\nexport interface RoleAssignmentCreateParameters {\n /** Role assignment properties. */\n properties: RoleAssignmentProperties;\n}\n\n/** Role assignment properties. */\nexport interface RoleAssignmentProperties {\n /** The role definition ID used in the role assignment. */\n roleDefinitionId: string;\n /** 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 principalId: string;\n}\n\n/** Role Assignments */\nexport interface RoleAssignment {\n /**\n * The role assignment ID.\n * NOTE: This property will not be serialized. It can only be populated by the server.\n */\n readonly id?: string;\n /**\n * The role assignment name.\n * NOTE: This property will not be serialized. It can only be populated by the server.\n */\n readonly name?: string;\n /**\n * The role assignment type.\n * NOTE: This property will not be serialized. It can only be populated by the server.\n */\n readonly type?: string;\n /** Role assignment properties. */\n properties?: RoleAssignmentPropertiesWithScope;\n}\n\n/** Role assignment properties with scope. */\nexport interface RoleAssignmentPropertiesWithScope {\n /** The role scope. */\n scope?: RoleScope;\n /** The role definition ID. */\n roleDefinitionId?: string;\n /** The principal ID. */\n principalId?: string;\n}\n\n/** Role assignment list operation result. */\nexport interface RoleAssignmentListResult {\n /** Role assignment list. */\n value?: RoleAssignment[];\n /** The URL to use for getting the next set of results. */\n nextLink?: string;\n}\n\nexport interface SASTokenParameter {\n /** Azure Blob storage container Uri */\n storageResourceUri: string;\n /** The SAS token pointing to an Azure Blob storage container */\n token?: string;\n /** Indicates which authentication method should be used. If set to true, Managed HSM will use the configured user-assigned managed identity to authenticate with Azure Storage. Otherwise, a SAS token has to be specified. */\n useManagedIdentity?: boolean;\n}\n\n/** Full backup operation */\nexport interface FullBackupOperation {\n /** Status of the backup operation. */\n status?: string;\n /** The status details of backup operation. */\n statusDetails?: string;\n /** Error encountered, if any, during the full backup operation. */\n error?: ErrorModel;\n /** The start time of the backup operation in UTC */\n startTime?: Date;\n /** The end time of the backup operation in UTC */\n endTime?: Date;\n /** Identifier for the full backup operation. */\n jobId?: string;\n /** The Azure blob storage container Uri which contains the full backup */\n azureStorageBlobContainerUri?: string;\n}\n\nexport interface RestoreOperationParameters {\n sasTokenParameters: SASTokenParameter;\n /** The Folder name of the blob where the previous successful full backup was stored */\n folderToRestore: string;\n}\n\n/** Restore operation */\nexport interface RestoreOperation {\n /** Status of the restore operation. */\n status?: string;\n /** The status details of restore operation. */\n statusDetails?: string;\n /** Error encountered, if any, during the restore operation. */\n error?: ErrorModel;\n /** Identifier for the restore operation. */\n jobId?: string;\n /** The start time of the restore operation */\n startTime?: Date;\n /** The end time of the restore operation */\n endTime?: Date;\n}\n\nexport interface SelectiveKeyRestoreOperationParameters {\n sasTokenParameters: SASTokenParameter;\n /** The Folder name of the blob where the previous successful full backup was stored */\n folder: string;\n}\n\n/** Selective Key Restore operation */\nexport interface SelectiveKeyRestoreOperation {\n /** Status of the restore operation. */\n status?: string;\n /** The status details of restore operation. */\n statusDetails?: string;\n /** Error encountered, if any, during the selective key restore operation. */\n error?: ErrorModel;\n /** Identifier for the selective key restore operation. */\n jobId?: string;\n /** The start time of the restore operation */\n startTime?: Date;\n /** The end time of the restore operation */\n endTime?: Date;\n}\n\n/** The update settings request object. */\nexport interface UpdateSettingRequest {\n /** The value of the pool setting. */\n value: string;\n}\n\nexport interface Setting {\n /** The account setting to be updated */\n name: string;\n /** The value of the pool setting. */\n value: string;\n /** The type specifier of the value. */\n type?: SettingTypeEnum;\n}\n\n/** The settings list result. */\nexport interface SettingsListResult {\n /**\n * A response message containing a list of account settings with their associated value.\n * NOTE: This property will not be serialized. It can only be populated by the server.\n */\n readonly settings?: Setting[];\n}\n\n/** Role Assignments filter */\nexport interface RoleAssignmentFilter {\n /** Returns role assignment of the specific principal. */\n principalId?: string;\n}\n\n/** Role Definitions filter */\nexport interface RoleDefinitionFilter {\n /** Returns role definition with the specific name. */\n roleName?: string;\n}\n\n/** Defines headers for KeyVaultClient_fullBackup operation. */\nexport interface KeyVaultClientFullBackupHeaders {\n /** The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation. */\n retryAfter?: number;\n /** The URI to poll for completion status. */\n azureAsyncOperation?: string;\n}\n\n/** Defines headers for KeyVaultClient_fullRestoreOperation operation. */\nexport interface KeyVaultClientFullRestoreOperationHeaders {\n /** The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation. */\n retryAfter?: number;\n /** The URI to poll for completion status. */\n azureAsyncOperation?: string;\n}\n\n/** Defines headers for KeyVaultClient_selectiveKeyRestoreOperation operation. */\nexport interface KeyVaultClientSelectiveKeyRestoreOperationHeaders {\n /** The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation. */\n retryAfter?: number;\n /** The URI to poll for completion status. */\n azureAsyncOperation?: string;\n}\n\n/** Known values of {@link ApiVersion75} that the service accepts. */\nexport enum KnownApiVersion75 {\n /** Api Version '7.5' */\n Seven5 = \"7.5\"\n}\n\n/**\n * Defines values for ApiVersion75. \\\n * {@link KnownApiVersion75} can be used interchangeably with ApiVersion75,\n * this enum contains the known values that the service supports.\n * ### Known values supported by the service\n * **7.5**: Api Version '7.5'\n */\nexport type ApiVersion75 = string;\n\n/** Known values of {@link RoleType} that the service accepts. */\nexport enum KnownRoleType {\n /** Built in role. */\n BuiltInRole = \"AKVBuiltInRole\",\n /** Custom role. */\n CustomRole = \"CustomRole\"\n}\n\n/**\n * Defines values for RoleType. \\\n * {@link KnownRoleType} can be used interchangeably with RoleType,\n * this enum contains the known values that the service supports.\n * ### Known values supported by the service\n * **AKVBuiltInRole**: Built in role. \\\n * **CustomRole**: Custom role.\n */\nexport type RoleType = string;\n\n/** Known values of {@link DataAction} that the service accepts. */\nexport enum KnownDataAction {\n /** Read HSM key metadata. */\n ReadHsmKey = \"Microsoft.KeyVault/managedHsm/keys/read/action\",\n /** Update an HSM key. */\n WriteHsmKey = \"Microsoft.KeyVault/managedHsm/keys/write/action\",\n /** Read deleted HSM key. */\n ReadDeletedHsmKey = \"Microsoft.KeyVault/managedHsm/keys/deletedKeys/read/action\",\n /** Recover deleted HSM key. */\n RecoverDeletedHsmKey = \"Microsoft.KeyVault/managedHsm/keys/deletedKeys/recover/action\",\n /** Backup HSM keys. */\n BackupHsmKeys = \"Microsoft.KeyVault/managedHsm/keys/backup/action\",\n /** Restore HSM keys. */\n RestoreHsmKeys = \"Microsoft.KeyVault/managedHsm/keys/restore/action\",\n /** Delete role assignment. */\n DeleteRoleAssignment = \"Microsoft.KeyVault/managedHsm/roleAssignments/delete/action\",\n /** Get role assignment. */\n GetRoleAssignment = \"Microsoft.KeyVault/managedHsm/roleAssignments/read/action\",\n /** Create or update role assignment. */\n WriteRoleAssignment = \"Microsoft.KeyVault/managedHsm/roleAssignments/write/action\",\n /** Get role definition. */\n ReadRoleDefinition = \"Microsoft.KeyVault/managedHsm/roleDefinitions/read/action\",\n /** Create or update role definition. */\n WriteRoleDefinition = \"Microsoft.KeyVault/managedHsm/roleDefinitions/write/action\",\n /** Delete role definition. */\n DeleteRoleDefinition = \"Microsoft.KeyVault/managedHsm/roleDefinitions/delete/action\",\n /** Encrypt using an HSM key. */\n EncryptHsmKey = \"Microsoft.KeyVault/managedHsm/keys/encrypt/action\",\n /** Decrypt using an HSM key. */\n DecryptHsmKey = \"Microsoft.KeyVault/managedHsm/keys/decrypt/action\",\n /** Wrap using an HSM key. */\n WrapHsmKey = \"Microsoft.KeyVault/managedHsm/keys/wrap/action\",\n /** Unwrap using an HSM key. */\n UnwrapHsmKey = \"Microsoft.KeyVault/managedHsm/keys/unwrap/action\",\n /** Sign using an HSM key. */\n SignHsmKey = \"Microsoft.KeyVault/managedHsm/keys/sign/action\",\n /** Verify using an HSM key. */\n VerifyHsmKey = \"Microsoft.KeyVault/managedHsm/keys/verify/action\",\n /** Create an HSM key. */\n CreateHsmKey = \"Microsoft.KeyVault/managedHsm/keys/create\",\n /** Delete an HSM key. */\n DeleteHsmKey = \"Microsoft.KeyVault/managedHsm/keys/delete\",\n /** Export an HSM key. */\n ExportHsmKey = \"Microsoft.KeyVault/managedHsm/keys/export/action\",\n /** Release an HSM key using Secure Key Release. */\n ReleaseKey = \"Microsoft.KeyVault/managedHsm/keys/release/action\",\n /** Import an HSM key. */\n ImportHsmKey = \"Microsoft.KeyVault/managedHsm/keys/import/action\",\n /** Purge a deleted HSM key. */\n PurgeDeletedHsmKey = \"Microsoft.KeyVault/managedHsm/keys/deletedKeys/delete\",\n /** Download an HSM security domain. */\n DownloadHsmSecurityDomain = \"Microsoft.KeyVault/managedHsm/securitydomain/download/action\",\n /** Check status of HSM security domain download. */\n DownloadHsmSecurityDomainStatus = \"Microsoft.KeyVault/managedHsm/securitydomain/download/read\",\n /** Upload an HSM security domain. */\n UploadHsmSecurityDomain = \"Microsoft.KeyVault/managedHsm/securitydomain/upload/action\",\n /** Check the status of the HSM security domain exchange file. */\n ReadHsmSecurityDomainStatus = \"Microsoft.KeyVault/managedHsm/securitydomain/upload/read\",\n /** Download an HSM security domain transfer key. */\n ReadHsmSecurityDomainTransferKey = \"Microsoft.KeyVault/managedHsm/securitydomain/transferkey/read\",\n /** Start an HSM backup. */\n StartHsmBackup = \"Microsoft.KeyVault/managedHsm/backup/start/action\",\n /** Start an HSM restore. */\n StartHsmRestore = \"Microsoft.KeyVault/managedHsm/restore/start/action\",\n /** Read an HSM backup status. */\n ReadHsmBackupStatus = \"Microsoft.KeyVault/managedHsm/backup/status/action\",\n /** Read an HSM restore status. */\n ReadHsmRestoreStatus = \"Microsoft.KeyVault/managedHsm/restore/status/action\",\n /** Generate random numbers. */\n RandomNumbersGenerate = \"Microsoft.KeyVault/managedHsm/rng/action\"\n}\n\n/**\n * Defines values for DataAction. \\\n * {@link KnownDataAction} can be used interchangeably with DataAction,\n * this enum contains the known values that the service supports.\n * ### Known values supported by the service\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/read\\/action**: Read HSM key metadata. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/write\\/action**: Update an HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/deletedKeys\\/read\\/action**: Read deleted HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/deletedKeys\\/recover\\/action**: Recover deleted HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/backup\\/action**: Backup HSM keys. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/restore\\/action**: Restore HSM keys. \\\n * **Microsoft.KeyVault\\/managedHsm\\/roleAssignments\\/delete\\/action**: Delete role assignment. \\\n * **Microsoft.KeyVault\\/managedHsm\\/roleAssignments\\/read\\/action**: Get role assignment. \\\n * **Microsoft.KeyVault\\/managedHsm\\/roleAssignments\\/write\\/action**: Create or update role assignment. \\\n * **Microsoft.KeyVault\\/managedHsm\\/roleDefinitions\\/read\\/action**: Get role definition. \\\n * **Microsoft.KeyVault\\/managedHsm\\/roleDefinitions\\/write\\/action**: Create or update role definition. \\\n * **Microsoft.KeyVault\\/managedHsm\\/roleDefinitions\\/delete\\/action**: Delete role definition. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/encrypt\\/action**: Encrypt using an HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/decrypt\\/action**: Decrypt using an HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/wrap\\/action**: Wrap using an HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/unwrap\\/action**: Unwrap using an HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/sign\\/action**: Sign using an HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/verify\\/action**: Verify using an HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/create**: Create an HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/delete**: Delete an HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/export\\/action**: Export an HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/release\\/action**: Release an HSM key using Secure Key Release. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/import\\/action**: Import an HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/keys\\/deletedKeys\\/delete**: Purge a deleted HSM key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/securitydomain\\/download\\/action**: Download an HSM security domain. \\\n * **Microsoft.KeyVault\\/managedHsm\\/securitydomain\\/download\\/read**: Check status of HSM security domain download. \\\n * **Microsoft.KeyVault\\/managedHsm\\/securitydomain\\/upload\\/action**: Upload an HSM security domain. \\\n * **Microsoft.KeyVault\\/managedHsm\\/securitydomain\\/upload\\/read**: Check the status of the HSM security domain exchange file. \\\n * **Microsoft.KeyVault\\/managedHsm\\/securitydomain\\/transferkey\\/read**: Download an HSM security domain transfer key. \\\n * **Microsoft.KeyVault\\/managedHsm\\/backup\\/start\\/action**: Start an HSM backup. \\\n * **Microsoft.KeyVault\\/managedHsm\\/restore\\/start\\/action**: Start an HSM restore. \\\n * **Microsoft.KeyVault\\/managedHsm\\/backup\\/status\\/action**: Read an HSM backup status. \\\n * **Microsoft.KeyVault\\/managedHsm\\/restore\\/status\\/action**: Read an HSM restore status. \\\n * **Microsoft.KeyVault\\/managedHsm\\/rng\\/action**: Generate random numbers.\n */\nexport type DataAction = string;\n\n/** Known values of {@link RoleScope} that the service accepts. */\nexport enum KnownRoleScope {\n /** Global scope */\n Global = \"/\",\n /** Keys scope */\n Keys = \"/keys\"\n}\n\n/**\n * Defines values for RoleScope. \\\n * {@link KnownRoleScope} can be used interchangeably with RoleScope,\n * this enum contains the known values that the service supports.\n * ### Known values supported by the service\n * **\\/**: Global scope \\\n * **\\/keys**: Keys scope\n */\nexport type RoleScope = string;\n\n/** Known values of {@link RoleDefinitionType} that the service accepts. */\nexport enum KnownRoleDefinitionType {\n MicrosoftAuthorizationRoleDefinitions = \"Microsoft.Authorization/roleDefinitions\"\n}\n\n/**\n * Defines values for RoleDefinitionType. \\\n * {@link KnownRoleDefinitionType} can be used interchangeably with RoleDefinitionType,\n * this enum contains the known values that the service supports.\n * ### Known values supported by the service\n * **Microsoft.Authorization\\/roleDefinitions**\n */\nexport type RoleDefinitionType = string;\n\n/** Known values of {@link SettingTypeEnum} that the service accepts. */\nexport enum KnownSettingTypeEnum {\n Boolean = \"boolean\"\n}\n\n/**\n * Defines values for SettingTypeEnum. \\\n * {@link KnownSettingTypeEnum} can be used interchangeably with SettingTypeEnum,\n * this enum contains the known values that the service supports.\n * ### Known values supported by the service\n * **boolean**\n */\nexport type SettingTypeEnum = string;\n\n/** Optional parameters. */\nexport interface RoleDefinitionsDeleteOptionalParams\n extends coreClient.OperationOptions {}\n\n/** Optional parameters. */\nexport interface RoleDefinitionsCreateOrUpdateOptionalParams\n extends coreClient.OperationOptions {}\n\n/** Contains response data for the createOrUpdate operation. */\nexport type RoleDefinitionsCreateOrUpdateResponse = RoleDefinition;\n\n/** Optional parameters. */\nexport interface RoleDefinitionsGetOptionalParams\n extends coreClient.OperationOptions {}\n\n/** Contains response data for the get operation. */\nexport type RoleDefinitionsGetResponse = RoleDefinition;\n\n/** Optional parameters. */\nexport interface RoleDefinitionsListOptionalParams\n extends coreClient.OperationOptions {\n /** The filter to apply on the operation. Use atScopeAndBelow filter to search below the given scope as well. */\n filter?: string;\n}\n\n/** Contains response data for the list operation. */\nexport type RoleDefinitionsListResponse = RoleDefinitionListResult;\n\n/** Optional parameters. */\nexport interface RoleDefinitionsListNextOptionalParams\n extends coreClient.OperationOptions {\n /** The filter to apply on the operation. Use atScopeAndBelow filter to search below the given scope as well. */\n filter?: string;\n}\n\n/** Contains response data for the listNext operation. */\nexport type RoleDefinitionsListNextResponse = RoleDefinitionListResult;\n\n/** Optional parameters. */\nexport interface RoleAssignmentsDeleteOptionalParams\n extends coreClient.OperationOptions {}\n\n/** Optional parameters. */\nexport interface RoleAssignmentsCreateOptionalParams\n extends coreClient.OperationOptions {}\n\n/** Contains response data for the create operation. */\nexport type RoleAssignmentsCreateResponse = RoleAssignment;\n\n/** Optional parameters. */\nexport interface RoleAssignmentsGetOptionalParams\n extends coreClient.OperationOptions {}\n\n/** Contains response data for the get operation. */\nexport type RoleAssignmentsGetResponse = RoleAssignment;\n\n/** Optional parameters. */\nexport interface RoleAssignmentsListForScopeOptionalParams\n extends coreClient.OperationOptions {\n /** The filter to apply on the operation. Use $filter=atScope() to return all role assignments at or above the scope. Use $filter=principalId eq {id} to return all role assignments at, above or below the scope for the specified principal. */\n filter?: string;\n}\n\n/** Contains response data for the listForScope operation. */\nexport type RoleAssignmentsListForScopeResponse = RoleAssignmentListResult;\n\n/** Optional parameters. */\nexport interface RoleAssignmentsListForScopeNextOptionalParams\n extends coreClient.OperationOptions {\n /** The filter to apply on the operation. Use $filter=atScope() to return all role assignments at or above the scope. Use $filter=principalId eq {id} to return all role assignments at, above or below the scope for the specified principal. */\n filter?: string;\n}\n\n/** Contains response data for the listForScopeNext operation. */\nexport type RoleAssignmentsListForScopeNextResponse = RoleAssignmentListResult;\n\n/** Optional parameters. */\nexport interface FullBackupOptionalParams extends coreClient.OperationOptions {\n /** Azure blob shared access signature token pointing to a valid Azure blob container where full backup needs to be stored. This token needs to be valid for at least next 24 hours from the time of making this call */\n azureStorageBlobContainerUri?: SASTokenParameter;\n}\n\n/** Contains response data for the fullBackup operation. */\nexport type FullBackupResponse = KeyVaultClientFullBackupHeaders &\n FullBackupOperation;\n\n/** Optional parameters. */\nexport interface FullBackupStatusOptionalParams\n extends coreClient.OperationOptions {}\n\n/** Contains response data for the fullBackupStatus operation. */\nexport type FullBackupStatusResponse = FullBackupOperation;\n\n/** Optional parameters. */\nexport interface FullRestoreOperationOptionalParams\n extends coreClient.OperationOptions {\n /** The Azure blob SAS token pointing to a folder where the previous successful full backup was stored */\n restoreBlobDetails?: RestoreOperationParameters;\n}\n\n/** Contains response data for the fullRestoreOperation operation. */\nexport type FullRestoreOperationResponse = KeyVaultClientFullRestoreOperationHeaders &\n RestoreOperation;\n\n/** Optional parameters. */\nexport interface RestoreStatusOptionalParams\n extends coreClient.OperationOptions {}\n\n/** Contains response data for the restoreStatus operation. */\nexport type RestoreStatusResponse = RestoreOperation;\n\n/** Optional parameters. */\nexport interface SelectiveKeyRestoreOperationOptionalParams\n extends coreClient.OperationOptions {\n /** The Azure blob SAS token pointing to a folder where the previous successful full backup was stored */\n restoreBlobDetails?: SelectiveKeyRestoreOperationParameters;\n}\n\n/** Contains response data for the selectiveKeyRestoreOperation operation. */\nexport type SelectiveKeyRestoreOperationResponse = KeyVaultClientSelectiveKeyRestoreOperationHeaders &\n SelectiveKeyRestoreOperation;\n\n/** Optional parameters. */\nexport interface UpdateSettingOptionalParams\n extends coreClient.OperationOptions {}\n\n/** Contains response data for the updateSetting operation. */\nexport type UpdateSettingResponse = Setting;\n\n/** Optional parameters. */\nexport interface GetSettingOptionalParams extends coreClient.OperationOptions {}\n\n/** Contains response data for the getSetting operation. */\nexport type GetSettingResponse = Setting;\n\n/** Optional parameters. */\nexport interface GetSettingsOptionalParams\n extends coreClient.OperationOptions {}\n\n/** Contains response data for the getSettings operation. */\nexport type GetSettingsResponse = SettingsListResult;\n\n/** Optional parameters. */\nexport interface KeyVaultClientOptionalParams\n extends coreClient.ServiceClientOptions {\n /** Overrides client endpoint. */\n endpoint?: string;\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { PollOperation, PollOperationState, Poller } from \"@azure/core-lro\";\nimport { KeyVaultClient } from \"../generated/keyVaultClient\";\nimport { OperationOptions } from \"@azure/core-client\";\n\n/**\n * Common parameters to a Key Vault Admin Poller.\n */\nexport interface KeyVaultAdminPollerOptions {\n vaultUrl: string;\n client: KeyVaultClient;\n requestOptions?: OperationOptions;\n intervalInMs?: number;\n resumeFrom?: string;\n}\n\n/**\n * An interface representing the state of a Key Vault Admin Poller's operation.\n */\nexport interface KeyVaultAdminPollOperationState<TResult> extends PollOperationState<TResult> {\n /**\n * Identifier for the full restore operation.\n */\n jobId?: string;\n /**\n * Status of the restore operation.\n */\n status?: string;\n /**\n * The status details of restore operation.\n */\n statusDetails?: string;\n /**\n * The start time of the restore operation in UTC\n */\n startTime?: Date;\n /**\n * The end time of the restore operation in UTC\n */\n endTime?: Date;\n}\n\n/**\n * Generates a version of the state with only public properties. At least those common for all of the Key Vault Admin pollers.\n */\nexport function cleanState<TState extends KeyVaultAdminPollOperationState<TResult>, TResult>(\n state: TState,\n): KeyVaultAdminPollOperationState<TResult> {\n return {\n jobId: state.jobId,\n status: state.status,\n statusDetails: state.statusDetails,\n startTime: state.startTime,\n endTime: state.endTime,\n isStarted: state.isStarted,\n isCancelled: state.isCancelled,\n isCompleted: state.isCompleted,\n error: state.error,\n result: state.result,\n };\n}\n\n/**\n * Common properties and methods of the Key Vault Admin Pollers.\n */\nexport abstract class KeyVaultAdminPoller<\n TState extends KeyVaultAdminPollOperationState<TResult>,\n TResult,\n> extends Poller<TState, TResult> {\n /**\n * Defines how much time the poller is going to wait before making a new request to the service.\n */\n public intervalInMs: number = 2000;\n\n /**\n * The method used by the poller to wait before attempting to update its operation.\n */\n async delay(): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, this.intervalInMs));\n }\n\n /**\n * Gets the public state of the polling operation\n */\n public getOperationState(): TState {\n return cleanState(this.operation.state) as TState;\n }\n}\n\n/**\n * Optional parameters to the KeyVaultAdminPollOperation\n */\nexport interface KeyVaultAdminPollOperationOptions {\n cancelMessage: string;\n}\n\n/**\n * Common properties and methods of the Key Vault Admin Poller operations.\n */\nexport class KeyVaultAdminPollOperation<\n TState extends KeyVaultAdminPollOperationState<unknown>,\n TResult,\n> implements PollOperation<TState, TResult>\n{\n private cancelMessage: string;\n\n constructor(\n public state: TState,\n options: KeyVaultAdminPollOperationOptions,\n ) {\n this.cancelMessage = options.cancelMessage;\n }\n\n /**\n * Meant to reach to the service and update the Poller operation.\n */\n public async update(): Promise<PollOperation<TState, TResult>> {\n throw new Error(\"Operation not supported.\");\n }\n\n /**\n * Meant to reach to the service and cancel the Poller operation.\n */\n public async cancel(): Promise<PollOperation<TState, TResult>> {\n throw new Error(this.cancelMessage);\n }\n\n /**\n * Serializes the Poller operation.\n */\n public toString(): string {\n return JSON.stringify({\n state: cleanState(this.state),\n });\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n FullBackupOperation,\n FullBackupOptionalParams,\n FullBackupResponse,\n FullBackupStatusResponse,\n} from \"../../generated/models\";\nimport {\n KeyVaultAdminPollOperation,\n KeyVaultAdminPollOperationState,\n} from \"../keyVaultAdminPoller\";\nimport { KeyVaultBackupResult, KeyVaultBeginBackupOptions } from \"../../backupClientModels\";\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport { KeyVaultClient } from \"../../generated/keyVaultClient\";\nimport { tracingClient } from \"../../tracing\";\n\n/**\n * An interface representing the publicly available properties of the state of a backup Key Vault's poll operation.\n */\nexport type KeyVaultBackupOperationState = KeyVaultAdminPollOperationState<KeyVaultBackupResult>;\n\n/**\n * An internal interface representing the state of a backup Key Vault's poll operation.\n */\nexport interface KeyVaultBackupPollOperationState\n extends KeyVaultAdminPollOperationState<KeyVaultBackupResult> {\n /**\n * The URI of the blob storage account.\n */\n blobStorageUri: string;\n /**\n * The SAS token.\n */\n sasToken?: string;\n}\n\n/**\n * The backup Key Vault's poll operation.\n */\nexport class KeyVaultBackupPollOperation extends KeyVaultAdminPollOperation<\n KeyVaultBackupPollOperationState,\n string\n> {\n constructor(\n public state: KeyVaultBackupPollOperationState,\n private vaultUrl: string,\n private client: KeyVaultClient,\n private requestOptions: KeyVaultBeginBackupOptions = {},\n ) {\n super(state, { cancelMessage: \"Cancelling a full Key Vault backup is not supported.\" });\n }\n\n /**\n * Tracing the fullBackup operation\n */\n private fullBackup(options: FullBackupOptionalParams): Promise<FullBackupResponse> {\n return tracingClient.withSpan(\"KeyVaultBackupPoller.fullBackup\", options, (updatedOptions) =>\n this.client.fullBackup(this.vaultUrl, updatedOptions),\n );\n }\n\n /**\n * Tracing the fullBackupStatus operation\n */\n private fullBackupStatus(\n jobId: string,\n options: KeyVaultBeginBackupOptions,\n ): Promise<FullBackupStatusResponse> {\n return tracingClient.withSpan(\n \"KeyVaultBackupPoller.fullBackupStatus\",\n options,\n (updatedOptions) => this.client.fullBackupStatus(this.vaultUrl, jobId, updatedOptions),\n );\n }\n\n /**\n * Reaches to the service and updates the backup's poll operation.\n */\n async update(\n options: {\n abortSignal?: AbortSignalLike;\n fireProgress?: (state: KeyVaultBackupPollOperationState) => void;\n } = {},\n ): Promise<KeyVaultBackupPollOperation> {\n const state = this.state;\n const { blobStorageUri, sasToken } = state;\n\n if (options.abortSignal) {\n this.requestOptions.abortSignal = options.abortSignal;\n }\n\n if (!state.isStarted) {\n const serviceOperation = await this.fullBackup({\n ...this.requestOptions,\n azureStorageBlobContainerUri: {\n storageResourceUri: blobStorageUri!,\n token: sasToken,\n useManagedIdentity: sasToken === undefined,\n },\n });\n\n this.mapState(serviceOperation);\n } else if (!state.isCompleted) {\n if (!state.jobId) {\n throw new Error(`Missing \"jobId\" from the full backup operation.`);\n }\n const serviceOperation = await this.fullBackupStatus(state.jobId, this.requestOptions);\n this.mapState(serviceOperation);\n }\n\n return this;\n }\n\n private mapState(serviceOperation: FullBackupOperation): void {\n const state = this.state;\n const {\n startTime,\n jobId,\n azureStorageBlobContainerUri,\n endTime,\n error,\n status,\n statusDetails,\n } = serviceOperation;\n if (!startTime) {\n throw new Error(\n `Missing \"startTime\" from the full backup operation. Full backup did not start successfully.`,\n );\n }\n\n state.isStarted = true;\n state.jobId = jobId;\n state.endTime = endTime;\n state.startTime = startTime;\n state.status = status;\n state.statusDetails = statusDetails;\n state.isCompleted = !!endTime;\n\n if (state.isCompleted && error?.code) {\n throw new Error(error?.message || statusDetails);\n }\n\n if (state.isCompleted) {\n state.result = {\n folderUri: azureStorageBlobContainerUri,\n startTime,\n endTime,\n };\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { KeyVaultAdminPoller, KeyVaultAdminPollerOptions } from \"../keyVaultAdminPoller\";\nimport {\n KeyVaultBackupOperationState,\n KeyVaultBackupPollOperation,\n KeyVaultBackupPollOperationState,\n} from \"./operation\";\nimport { KeyVaultBackupResult } from \"../../backupClientModels\";\n\nexport interface KeyVaultBackupPollerOptions extends KeyVaultAdminPollerOptions {\n blobStorageUri: string;\n sasToken?: string;\n}\n\n/**\n * Class that creates a poller that waits until the backup of a Key Vault ends up being generated.\n */\nexport class KeyVaultBackupPoller extends KeyVaultAdminPoller<\n KeyVaultBackupOperationState,\n KeyVaultBackupResult\n> {\n constructor(options: KeyVaultBackupPollerOptions) {\n const {\n client,\n vaultUrl,\n blobStorageUri,\n sasToken,\n requestOptions,\n intervalInMs = 2000,\n resumeFrom,\n } = options;\n\n let state: KeyVaultBackupPollOperationState | undefined;\n\n if (resumeFrom) {\n state = JSON.parse(resumeFrom).state;\n }\n\n const operation = new KeyVaultBackupPollOperation(\n {\n ...state,\n blobStorageUri,\n sasToken,\n },\n vaultUrl,\n client,\n requestOptions,\n );\n\n super(operation);\n\n this.intervalInMs = intervalInMs;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n FullRestoreOperationOptionalParams,\n FullRestoreOperationResponse,\n RestoreOperation,\n RestoreStatusResponse,\n} from \"../../generated/models\";\nimport {\n KeyVaultAdminPollOperation,\n KeyVaultAdminPollOperationState,\n} from \"../keyVaultAdminPoller\";\nimport { KeyVaultBeginRestoreOptions, KeyVaultRestoreResult } from \"../../backupClientModels\";\n\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport { KeyVaultClient } from \"../../generated/keyVaultClient\";\nimport { OperationOptions } from \"@azure/core-client\";\nimport { tracingClient } from \"../../tracing\";\n\n/**\n * An interface representing the publicly available properties of the state of a restore Key Vault's poll operation.\n */\nexport interface KeyVaultRestoreOperationState\n extends KeyVaultAdminPollOperationState<KeyVaultRestoreResult> {}\n\n/**\n * An internal interface representing the state of a restore Key Vault's poll operation.\n * @internal\n */\nexport interface KeyVaultRestorePollOperationState\n extends KeyVaultAdminPollOperationState<KeyVaultRestoreResult> {\n /**\n * The URI of the blob storage account.\n */\n folderUri: string;\n /**\n * The SAS token.\n */\n sasToken?: string;\n /**\n * The Folder name of the blob where the previous successful full backup was stored\n */\n folderName: string;\n}\n\n/**\n * An interface representing a restore Key Vault's poll operation.\n */\nexport class KeyVaultRestorePollOperation extends KeyVaultAdminPollOperation<\n KeyVaultRestorePollOperationState,\n KeyVaultRestoreResult\n> {\n constructor(\n public state: KeyVaultRestorePollOperationState,\n private vaultUrl: string,\n private client: KeyVaultClient,\n private requestOptions: KeyVaultBeginRestoreOptions = {},\n ) {\n super(state, {\n cancelMessage: \"Cancelling the restoration full Key Vault backup is not supported.\",\n });\n }\n\n /**\n * Tracing the fullRestore operation\n */\n private fullRestore(\n options: FullRestoreOperationOptionalParams,\n ): Promise<FullRestoreOperationResponse> {\n return tracingClient.withSpan(\"KeyVaultRestorePoller.fullRestore\", options, (updatedOptions) =>\n this.client.fullRestoreOperation(this.vaultUrl, updatedOptions),\n );\n }\n\n /**\n * Tracing the restoreStatus operation.\n */\n private async restoreStatus(\n jobId: string,\n options: OperationOptions,\n ): Promise<RestoreStatusResponse> {\n return tracingClient.withSpan(\n \"KeyVaultRestorePoller.restoreStatus\",\n options,\n (updatedOptions) => this.client.restoreStatus(this.vaultUrl, jobId, updatedOptions),\n );\n }\n\n /**\n * Reaches to the service and updates the restore poll operation.\n */\n async update(\n options: {\n abortSignal?: AbortSignalLike;\n fireProgress?: (state: KeyVaultRestorePollOperationState) => void;\n } = {},\n ): Promise<KeyVaultRestorePollOperation> {\n const state = this.state;\n const { folderUri, sasToken, folderName } = state;\n\n if (options.abortSignal) {\n this.requestOptions.abortSignal = options.abortSignal;\n }\n\n if (!state.isStarted) {\n const serviceOperation = await this.fullRestore({\n ...this.requestOptions,\n restoreBlobDetails: {\n folderToRestore: folderName,\n sasTokenParameters: {\n storageResourceUri: folderUri,\n token: sasToken,\n useManagedIdentity: sasToken === undefined,\n },\n },\n });\n\n this.mapState(serviceOperation);\n } else if (!state.isCompleted) {\n if (!state.jobId) {\n throw new Error(`Missing \"jobId\" from the full restore operation.`);\n }\n const serviceOperation = await this.restoreStatus(state.jobId, this.requestOptions);\n this.mapState(serviceOperation);\n }\n\n return this;\n }\n\n private mapState(serviceOperation: RestoreOperation): void {\n const state = this.state;\n const { startTime, jobId, endTime, error, status, statusDetails } = serviceOperation;\n\n if (!startTime) {\n throw new Error(\n `Missing \"startTime\" from the full restore operation. Restore did not start successfully.`,\n );\n }\n\n state.isStarted = true;\n state.jobId = jobId;\n state.endTime = endTime;\n state.startTime = startTime;\n state.status = status;\n state.statusDetails = statusDetails;\n\n state.isCompleted = !!endTime;\n\n if (state.isCompleted && error?.code) {\n throw new Error(error?.message || statusDetails);\n }\n\n if (state.isCompleted) {\n state.result = {\n startTime,\n endTime,\n };\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { KeyVaultAdminPoller, KeyVaultAdminPollerOptions } from \"../keyVaultAdminPoller\";\nimport {\n KeyVaultRestoreOperationState,\n KeyVaultRestorePollOperation,\n KeyVaultRestorePollOperationState,\n} from \"./operation\";\nimport { KeyVaultRestoreResult } from \"../../backupClientModels\";\n\nexport interface KeyVaultRestorePollerOptions extends KeyVaultAdminPollerOptions {\n folderUri: string;\n sasToken?: string;\n folderName: string;\n}\n\n/**\n * Class that creates a poller that waits until a Key Vault ends up being restored.\n */\nexport class KeyVaultRestorePoller extends KeyVaultAdminPoller<\n KeyVaultRestoreOperationState,\n KeyVaultRestoreResult\n> {\n constructor(options: KeyVaultRestorePollerOptions) {\n const {\n client,\n vaultUrl,\n folderUri,\n sasToken,\n folderName,\n requestOptions,\n intervalInMs = 2000,\n resumeFrom,\n } = options;\n\n let state: KeyVaultRestorePollOperationState | undefined;\n\n if (resumeFrom) {\n state = JSON.parse(resumeFrom).state;\n }\n\n const operation = new KeyVaultRestorePollOperation(\n {\n ...state,\n folderUri,\n sasToken,\n folderName,\n },\n vaultUrl,\n client,\n requestOptions,\n );\n\n super(operation);\n\n this.intervalInMs = intervalInMs;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n KeyVaultAdminPollOperation,\n KeyVaultAdminPollOperationState,\n} from \"../keyVaultAdminPoller\";\nimport {\n KeyVaultBeginSelectiveKeyRestoreOptions,\n KeyVaultSelectiveKeyRestoreResult,\n} from \"../../backupClientModels\";\nimport {\n RestoreOperation,\n RestoreStatusResponse,\n SelectiveKeyRestoreOperationOptionalParams,\n SelectiveKeyRestoreOperationResponse,\n} from \"../../generated/models\";\nimport { AbortSignalLike } from \"@azure/abort-controller\";\nimport { KeyVaultClient } from \"../../generated/keyVaultClient\";\nimport { OperationOptions } from \"@azure/core-client\";\nimport { tracingClient } from \"../../tracing\";\n\n/**\n * An interface representing the publicly available properties of the state of a restore Key Vault's poll operation.\n */\nexport interface KeyVaultSelectiveKeyRestoreOperationState\n extends KeyVaultAdminPollOperationState<KeyVaultSelectiveKeyRestoreResult> {}\n\n/**\n * An internal interface representing the state of a restore Key Vault's poll operation.\n */\nexport interface KeyVaultSelectiveKeyRestorePollOperationState\n extends KeyVaultAdminPollOperationState<KeyVaultSelectiveKeyRestoreResult> {\n /**\n * The name of a Key Vault Key.\n */\n keyName: string;\n /**\n * The Folder name of the blob where the previous successful full backup was stored\n */\n folderName: string;\n /**\n * The URI of the blob storage account where the previous successful full backup was stored.\n */\n folderUri: string;\n /**\n * The SAS token.\n */\n sasToken?: string;\n}\n\n/**\n * The selective restore Key Vault's poll operation.\n */\nexport class KeyVaultSelectiveKeyRestorePollOperation extends KeyVaultAdminPollOperation<\n KeyVaultSelectiveKeyRestorePollOperationState,\n string\n> {\n constructor(\n public state: KeyVaultSelectiveKeyRestorePollOperationState,\n private vaultUrl: string,\n private client: KeyVaultClient,\n private requestOptions: KeyVaultBeginSelectiveKeyRestoreOptions = {},\n ) {\n super(state, { cancelMessage: \"Cancelling a selective Key Vault restore is not supported.\" });\n }\n\n /**\n * Tracing the selectiveRestore operation\n */\n private selectiveRestore(\n keyName: string,\n options: SelectiveKeyRestoreOperationOptionalParams,\n ): Promise<SelectiveKeyRestoreOperationResponse> {\n return tracingClient.withSpan(\n \"KeyVaultSelectiveKeyRestorePoller.selectiveRestore\",\n options,\n (updatedOptions) =>\n this.client.selectiveKeyRestoreOperation(this.vaultUrl, keyName, updatedOptions),\n );\n }\n\n /**\n * Tracing the restoreStatus operation.\n */\n private restoreStatus(jobId: string, options: OperationOptions): Promise<RestoreStatusResponse> {\n return tracingClient.withSpan(\n \"KeyVaultSelectiveKeyRestorePoller.restoreStatus\",\n options,\n (updatedOptions) => this.client.restoreStatus(this.vaultUrl, jobId, updatedOptions),\n );\n }\n\n /**\n * Reaches to the service and updates the selective restore poll operation.\n */\n async update(\n options: {\n abortSignal?: AbortSignalLike;\n fireProgress?: (state: KeyVaultSelectiveKeyRestorePollOperationState) => void;\n } = {},\n ): Promise<KeyVaultSelectiveKeyRestorePollOperation> {\n const state = this.state;\n const { keyName, folderUri, sasToken, folderName } = state;\n\n if (options.abortSignal) {\n this.requestOptions.abortSignal = options.abortSignal;\n }\n\n if (!state.isStarted) {\n const selectiveRestoreOperation = await this.selectiveRestore(keyName, {\n ...this.requestOptions,\n restoreBlobDetails: {\n folder: folderName,\n sasTokenParameters: {\n storageResourceUri: folderUri,\n token: sasToken,\n useManagedIdentity: sasToken === undefined,\n },\n },\n });\n this.mapState(selectiveRestoreOperation);\n } else if (!state.isCompleted) {\n if (!state.jobId) {\n throw new Error(`Missing \"jobId\" from the full restore operation.`);\n }\n const serviceOperation = await this.restoreStatus(state.jobId, this.requestOptions);\n this.mapState(serviceOperation);\n }\n\n return this;\n }\n\n private mapState(serviceOperation: RestoreOperation): void {\n const state = this.state;\n const { startTime, jobId, endTime, error, status, statusDetails } = serviceOperation;\n\n if (!startTime) {\n throw new Error(`Missing \"startTime\" from the selective restore operation.`);\n }\n\n state.isStarted = true;\n state.jobId = jobId;\n state.endTime = endTime;\n state.startTime = startTime;\n state.status = status;\n state.statusDetails = statusDetails;\n state.isCompleted = !!endTime;\n\n if (state.isCompleted && error?.code) {\n throw new Error(error?.message || statusDetails);\n }\n\n if (state.isCompleted) {\n state.result = {\n startTime,\n endTime,\n };\n }\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { KeyVaultAdminPoller, KeyVaultAdminPollerOptions } from \"../keyVaultAdminPoller\";\nimport {\n KeyVaultSelectiveKeyRestoreOperationState,\n KeyVaultSelectiveKeyRestorePollOperation,\n KeyVaultSelectiveKeyRestorePollOperationState,\n} from \"./operation\";\nimport { KeyVaultSelectiveKeyRestoreResult } from \"../../backupClientModels\";\n\nexport interface KeyVaultSelectiveKeyRestorePollerOptions extends KeyVaultAdminPollerOptions {\n keyName: string;\n folderUri: string;\n sasToken?: string;\n folderName: string;\n}\n\n/**\n * Class that creates a poller that waits until a key of a Key Vault backup ends up being restored.\n */\nexport class KeyVaultSelectiveKeyRestorePoller extends KeyVaultAdminPoller<\n KeyVaultSelectiveKeyRestoreOperationState,\n KeyVaultSelectiveKeyRestoreResult\n> {\n constructor(options: KeyVaultSelectiveKeyRestorePollerOptions) {\n const {\n client,\n vaultUrl,\n keyName,\n folderUri,\n sasToken,\n folderName,\n requestOptions,\n intervalInMs = 2000,\n resumeFrom,\n } = options;\n\n let state: KeyVaultSelectiveKeyRestorePollOperationState | undefined;\n\n if (resumeFrom) {\n state = JSON.parse(resumeFrom).state;\n }\n\n const operation = new KeyVaultSelectiveKeyRestorePollOperation(\n {\n ...state,\n keyName,\n folderUri: folderUri,\n sasToken,\n folderName,\n },\n vaultUrl,\n client,\n requestOptions,\n );\n\n super(operation);\n\n this.intervalInMs = intervalInMs;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n KeyVaultBackupClientOptions,\n KeyVaultBackupResult,\n KeyVaultBeginBackupOptions,\n KeyVaultBeginRestoreOptions,\n KeyVaultBeginSelectiveKeyRestoreOptions,\n KeyVaultRestoreResult,\n KeyVaultSelectiveKeyRestoreResult,\n} from \"./backupClientModels\";\nimport { KeyVaultAdminPollOperationState } from \"./lro/keyVaultAdminPoller\";\nimport { KeyVaultBackupOperationState } from \"./lro/backup/operation\";\nimport { KeyVaultBackupPoller } from \"./lro/backup/poller\";\nimport { KeyVaultClient } from \"./generated/keyVaultClient\";\nimport { KeyVaultRestoreOperationState } from \"./lro/restore/operation\";\nimport { KeyVaultRestorePoller } from \"./lro/restore/poller\";\nimport { KeyVaultSelectiveKeyRestoreOperationState } from \"./lro/selectiveKeyRestore/operation\";\nimport { KeyVaultSelectiveKeyRestorePoller } from \"./lro/selectiveKeyRestore/poller\";\nimport { LATEST_API_VERSION } from \"./constants\";\nimport { PollerLike } from \"@azure/core-lro\";\nimport { TokenCredential } from \"@azure/core-auth\";\nimport { bearerTokenAuthenticationPolicy } from \"@azure/core-rest-pipeline\";\nimport { createKeyVaultChallengeCallbacks } from \"@azure/keyvault-common\";\nimport { logger } from \"./log\";\nimport { mappings } from \"./mappings\";\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\n * import { KeyVaultBackupClient } from \"@azure/keyvault-admin\";\n * import { DefaultAzureCredential } from \"@azure/identity\";\n *\n * let vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * let credentials = new DefaultAzureCredential();\n *\n * let 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 const apiVersion = options.serviceVersion || LATEST_API_VERSION;\n\n const clientOptions = {\n ...options,\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\n this.client = new KeyVaultClient(apiVersion, clientOptions);\n this.client.pipeline.addPolicy(\n bearerTokenAuthenticationPolicy({\n credential,\n // The scopes will be populated in the challenge callbacks based on the WWW-authenticate header\n // returned by the challenge, so pass an empty array as a placeholder.\n scopes: [],\n challengeCallbacks: createKeyVaultChallengeCallbacks(options),\n }),\n );\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\n * const client = new KeyVaultBackupClient(url, 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 * //\n * // const serialized = poller.toString();\n * //\n * // A new poller can be created with:\n * //\n * // await client.beginBackup(blobStorageUri, sasToken, { resumeFrom: serialized });\n * //\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\n * const client = new KeyVaultBackupClient(url, 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);\n *\n * // Serializing the poller\n * //\n * // const serialized = poller.toString();\n * //\n * // A new poller can be created with:\n * //\n * // await client.beginBackup(blobStorageUri, { resumeFrom: serialized });\n * //\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 const poller = new KeyVaultBackupPoller({\n blobStorageUri,\n sasToken,\n client: this.client,\n vaultUrl: this.vaultUrl,\n intervalInMs: options.intervalInMs,\n resumeFrom: options.resumeFrom,\n requestOptions: options,\n });\n\n // This will initialize the poller's operation (the generation of the backup).\n await poller.poll();\n\n return poller;\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\n * const client = new KeyVaultBackupClient(url, 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 * //\n * // const serialized = poller.toString();\n * //\n * // A new poller can be created with:\n * //\n * // await client.beginRestore(blobStorageUri, sasToken, { resumeFrom: serialized });\n * //\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\n * const client = new KeyVaultBackupClient(url, 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);\n *\n * // The poller can be serialized with:\n * //\n * // const serialized = poller.toString();\n * //\n * // A new poller can be created with:\n * //\n * // await client.beginRestore(blobStorageUri, { resumeFrom: serialized });\n * //\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 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 poller = new KeyVaultRestorePoller({\n ...mappings.folderUriParts(folderUri),\n sasToken,\n client: this.client,\n vaultUrl: this.vaultUrl,\n intervalInMs: options.intervalInMs,\n resumeFrom: options.resumeFrom,\n requestOptions: options,\n });\n\n // This will initialize the poller's operation (the generation of the backup).\n await poller.poll();\n\n return poller;\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\n * const client = new KeyVaultBackupClient(url, 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 * //\n * // const serialized = poller.toString();\n * //\n * // A new poller can be created with:\n * //\n * // await client.beginSelectiveKeyRestore(keyName, blobStorageUri, sasToken, { 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\n * const client = new KeyVaultBackupClient(url, 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 * //\n * // const serialized = poller.toString();\n * //\n * // A new poller can be created with:\n * //\n * // await client.beginSelectiveKeyRestore(keyName, blobStorageUri, sasToken, { 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 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 poller = new KeyVaultSelectiveKeyRestorePoller({\n ...mappings.folderUriParts(folderUri),\n keyName,\n sasToken,\n client: this.client,\n vaultUrl: this.vaultUrl,\n intervalInMs: options.intervalInMs,\n resumeFrom: options.resumeFrom,\n requestOptions: options,\n });\n\n // This will initialize the poller's operation (the generation of the backup).\n await poller.poll();\n\n return poller;\n }\n}\n","// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport { TokenCredential } from \"@azure/core-auth\";\nimport { bearerTokenAuthenticationPolicy } from \"@azure/core-rest-pipeline\";\nimport { createKeyVaultChallengeCallbacks } from \"@azure/keyvault-common\";\nimport { LATEST_API_VERSION } from \"./constants\";\nimport { KeyVaultClient, Setting as GeneratedSetting } from \"./generated\";\nimport { logger } from \"./log\";\nimport {\n UpdateSettingOptions,\n GetSettingOptions,\n ListSettingsOptions,\n ListSettingsResponse,\n KeyVaultSetting,\n SettingsClientOptions,\n BooleanKeyVaultSetting,\n} from \"./settingsClientModels\";\n\nfunction makeSetting(generatedSetting: GeneratedSetting): KeyVaultSetting {\n if (generatedSetting.type === \"boolean\") {\n return {\n kind: \"boolean\",\n name: generatedSetting.name,\n value: generatedSetting.value === \"true\" ? true : false,\n };\n } else {\n return {\n kind: generatedSetting.type,\n name: generatedSetting.name,\n value: generatedSetting.value,\n };\n }\n}\n\n/**\n * Determines whether a given {@link KeyVaultSetting} is a {@link BooleanKeyVaultSetting}, i.e. has a boolean value.\n */\nexport function isBooleanSetting(setting: KeyVaultSetting): setting is BooleanKeyVaultSetting {\n return setting.kind === \"boolean\" && typeof setting.value === \"boolean\";\n}\n\n/**\n * The KeyVaultSettingsClient provides asynchronous methods to create, update, get and list\n * settings for the Azure Key Vault.\n */\nexport class KeyVaultSettingsClient {\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 KeyVaultSettingsClient.\n *\n * Example usage:\n * ```ts\n * import { KeyVaultSettingsClient } from \"@azure/keyvault-admin\";\n * import { DefaultAzureCredential } from \"@azure/identity\";\n *\n * let vaultUrl = `https://<MY KEY VAULT HERE>.vault.azure.net`;\n * let credentials = new DefaultAzureCredential();\n *\n * let client = new KeyVaultSettingsClient(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 */\n constructor(vaultUrl: string, credential: TokenCredential, options: SettingsClientOptions = {}) {\n this.vaultUrl = vaultUrl;\n\n const apiVersion = options.serviceVersion || LATEST_API_VERSION;\n\n const clientOptions = {\n ...options,\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\n this.client = new KeyVaultClient(apiVersion, clientOptions);\n this.client.pipeline.addPolicy(\n bearerTokenAuthenticationPolicy({\n credential,\n scopes: [],\n challengeCallbacks: createKeyVaultChallengeCallbacks(options),\n }),\n );\n }\n\n /**\n * Updates the named account setting.\n *\n * @param setting - the setting to update. The name of the setting must be a valid settings option.\n * @param options - the optional parameters.\n */\n async updateSetting(\n setting: KeyVaultSetting,\n options: UpdateSettingOptions = {},\n ): Promise<KeyVaultSetting> {\n return makeSetting(\n await this.client.updateSetting(this.vaultUrl, setting.name, String(setting.value), options),\n );\n }\n\n /**\n * Get the value of a specific account setting.\n *\n * @param settingName - the name of the setting.\n * @param options - the optional parameters.\n */\n async getSetting(settingName: string, options: GetSettingOptions = {}): Promise<KeyVaultSetting> {\n return makeSetting(await this.client.getSetting(this.vaultUrl, settingName, options));\n }\n\n /**\n * List the account's settings.\n *\n * @param options - the optional parameters.\n */\n async getSettings(options: ListSettingsOptions = {}): Promise<ListSettingsResponse> {\n const { settings } = await this.client.getSettings(this.vaultUrl, options);\n return { settings: settings?.map(makeSetting) ?? [] };\n }\n}\n"],"names":["RoleDefinitionCreateParametersMapper","RoleAssignmentCreateParametersMapper","SASTokenParameterMapper","RestoreOperationParametersMapper","SelectiveKeyRestoreOperationParametersMapper","deleteOperationSpec","getOperationSpec","serializer","coreClient","Mappers.KeyVaultError","Parameters.apiVersion","Parameters.vaultBaseUrl","Parameters.scope","Parameters.roleDefinitionName","Parameters.accept","Mappers.RoleDefinition","Parameters.parameters","Parameters.contentType","Mappers.RoleDefinitionListResult","Parameters.filter","Parameters.nextLink","Parameters.roleAssignmentName","Mappers.RoleAssignment","Parameters.parameters1","Mappers.RoleAssignmentListResult","Mappers.FullBackupOperation","Mappers.KeyVaultClientFullBackupHeaders","Parameters.azureStorageBlobContainerUri","Parameters.jobId","Mappers.RestoreOperation","Mappers.KeyVaultClientFullRestoreOperationHeaders","Parameters.restoreBlobDetails","Mappers.SelectiveKeyRestoreOperation","Mappers.KeyVaultClientSelectiveKeyRestoreOperationHeaders","Parameters.restoreBlobDetails1","Parameters.keyName","Mappers.Setting","Mappers.UpdateSettingRequest","Parameters.settingName","Mappers.SettingsListResult","createClientLogger","createTracingClient","bearerTokenAuthenticationPolicy","createKeyVaultChallengeCallbacks","__await","__asyncValues","__asyncDelegator","v4uuid","KnownDataAction","KnownRoleScope","Poller"],"mappings":"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"}