diff --git a/sdk/keyvault/arm-keyvault/CHANGELOG.md b/sdk/keyvault/arm-keyvault/CHANGELOG.md index 2b5925239463..c3df3cced77b 100644 --- a/sdk/keyvault/arm-keyvault/CHANGELOG.md +++ b/sdk/keyvault/arm-keyvault/CHANGELOG.md @@ -1,25 +1,44 @@ # Release History -## 2.1.0-beta.1 (2022-04-24) +## 3.0.0 (2022-07-15) **Features** + - Added operation ManagedHsms.checkMhsmNameAvailability - Added Interface Action + - Added Interface CheckMhsmNameAvailabilityParameters + - Added Interface CheckMhsmNameAvailabilityResult - Added Interface KeyReleasePolicy - Added Interface KeyRotationPolicyAttributes - Added Interface LifetimeAction + - Added Interface ManagedHsmsCheckMhsmNameAvailabilityOptionalParams + - Added Interface ManagedHsmsCreateOrUpdateHeaders + - Added Interface ManagedHsmsDeleteHeaders + - Added Interface ManagedHSMSecurityDomainProperties + - Added Interface ManagedHsmsPurgeDeletedHeaders + - Added Interface ManagedHsmsUpdateHeaders - Added Interface RotationPolicy - Added Interface Trigger + - Added Type Alias ActivationStatus - Added Type Alias KeyRotationPolicyActionType + - Added Type Alias ManagedHsmsCheckMhsmNameAvailabilityResponse + - Added Type Alias ManagedHsmsPurgeDeletedResponse - Interface KeyProperties has a new optional parameter releasePolicy - Interface KeyProperties has a new optional parameter rotationPolicy + - Interface MhsmPrivateEndpointConnectionItem has a new optional parameter etag + - Interface MhsmPrivateEndpointConnectionItem has a new optional parameter id - Type Alias Key has a new parameter rotationPolicy - Type Alias Key has a new parameter releasePolicy + - Added Enum KnownActivationStatus - Enum KnownJsonWebKeyOperation has a new value Release - Enum KnownKeyPermissions has a new value Getrotationpolicy - Enum KnownKeyPermissions has a new value Release - Enum KnownKeyPermissions has a new value Rotate - Enum KnownKeyPermissions has a new value Setrotationpolicy + +**Breaking Changes** + + - Interface MhsmPrivateEndpointConnectionsDeleteHeaders no longer has parameter retryAfter ## 2.0.0 (2022-01-17) diff --git a/sdk/keyvault/arm-keyvault/README.md b/sdk/keyvault/arm-keyvault/README.md index 0773c14b86c3..f15e7dde1832 100644 --- a/sdk/keyvault/arm-keyvault/README.md +++ b/sdk/keyvault/arm-keyvault/README.md @@ -6,7 +6,7 @@ The Azure management API provides a RESTful set of web services that interact wi [Source code](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/keyvault/arm-keyvault) | [Package (NPM)](https://www.npmjs.com/package/@azure/arm-keyvault) | -[API reference documentation](https://docs.microsoft.com/javascript/api/@azure/arm-keyvault?view=azure-node-preview) | +[API reference documentation](https://docs.microsoft.com/javascript/api/@azure/arm-keyvault) | [Samples](https://github.com/Azure-Samples/azure-samples-js-management) ## Getting started diff --git a/sdk/keyvault/arm-keyvault/_meta.json b/sdk/keyvault/arm-keyvault/_meta.json index 3ad020efb5e3..7f2f7bdc9b60 100644 --- a/sdk/keyvault/arm-keyvault/_meta.json +++ b/sdk/keyvault/arm-keyvault/_meta.json @@ -1,8 +1,8 @@ { - "commit": "d90729bbada2b4f784f2737ab4b4e39693a7aab8", - "readme": "specification\\keyvault\\resource-manager\\readme.md", - "autorest_command": "autorest --version=3.7.3 --typescript --modelerfour.lenient-model-deduplication --head-as-boolean=true --license-header=MICROSOFT_MIT_NO_VERSION --generate-test --typescript-sdks-folder=D:\\work\\azure-sdk-for-js ..\\azure-rest-api-specs\\specification\\keyvault\\resource-manager\\readme.md --use=@autorest/typescript@6.0.0-alpha.19.20220408.1 --generate-sample=true", + "commit": "1c08462d46805748b66366252aff0ffc589b7d5f", + "readme": "specification/keyvault/resource-manager/readme.md", + "autorest_command": "autorest --version=3.7.3 --typescript --modelerfour.lenient-model-deduplication --azure-arm --head-as-boolean=true --license-header=MICROSOFT_MIT_NO_VERSION --generate-test --typescript-sdks-folder=/mnt/vss/_work/1/s/azure-sdk-for-js ../azure-rest-api-specs/specification/keyvault/resource-manager/readme.md --use=@autorest/typescript@6.0.0-alpha.19.20220425.1", "repository_url": "https://github.com/Azure/azure-rest-api-specs.git", - "release_tool": "@azure-tools/js-sdk-release-tools@2.2.6", - "use": "@autorest/typescript@6.0.0-alpha.19.20220408.1" -} + "release_tool": "@azure-tools/js-sdk-release-tools@2.4.0", + "use": "@autorest/typescript@6.0.0-alpha.19.20220425.1" +} \ No newline at end of file diff --git a/sdk/keyvault/arm-keyvault/package.json b/sdk/keyvault/arm-keyvault/package.json index 9bdbe9fab907..e861f191f43d 100644 --- a/sdk/keyvault/arm-keyvault/package.json +++ b/sdk/keyvault/arm-keyvault/package.json @@ -3,7 +3,7 @@ "sdk-type": "mgmt", "author": "Microsoft Corporation", "description": "A generated SDK for KeyVaultManagementClient.", - "version": "2.1.0-beta.1", + "version": "3.0.0", "engines": { "node": ">=12.0.0" }, @@ -40,9 +40,11 @@ "uglify-js": "^3.4.9", "rimraf": "^3.0.0", "@azure/identity": "^2.0.1", - "@azure-tools/test-recorder": "^1.0.0", + "@azure-tools/test-recorder": "^2.0.0", + "@azure-tools/test-credential": "^1.0.0", "mocha": "^7.1.1", - "cross-env": "^7.0.2" + "cross-env": "^7.0.2", + "@azure/dev-tool": "^1.0.0" }, "homepage": "https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/keyvault/arm-keyvault", "repository": { @@ -93,7 +95,7 @@ "unit-test:node": "cross-env TEST_MODE=playback npm run integration-test:node", "unit-test:browser": "echo skipped", "integration-test": "npm run integration-test:node && npm run integration-test:browser", - "integration-test:node": "mocha -r esm --require ts-node/register --timeout 1200000 --full-trace test/*.ts --reporter ../../../common/tools/mocha-multi-reporter.js", + "integration-test:node": "dev-tool run test:node-ts-input -- --timeout 1200000 'test/*.ts'", "integration-test:browser": "echo skipped", "docs": "echo skipped" }, @@ -106,13 +108,5 @@ } ] }, - "autoPublish": true, - "//sampleConfiguration": { - "productName": "", - "productSlugs": [ - "azure" - ], - "disableDocsMs": true, - "apiRefLink": "https://docs.microsoft.com/javascript/api/@azure/arm-keyvault?view=azure-node-preview" - } -} + "autoPublish": true +} \ No newline at end of file diff --git a/sdk/keyvault/arm-keyvault/review/arm-keyvault.api.md b/sdk/keyvault/arm-keyvault/review/arm-keyvault.api.md index 6af065138042..469a6594d53d 100644 --- a/sdk/keyvault/arm-keyvault/review/arm-keyvault.api.md +++ b/sdk/keyvault/arm-keyvault/review/arm-keyvault.api.md @@ -29,6 +29,9 @@ export interface Action { // @public export type ActionsRequired = string; +// @public +export type ActivationStatus = string; + // @public export interface Attributes { readonly created?: Date; @@ -41,6 +44,18 @@ export interface Attributes { // @public export type CertificatePermissions = string; +// @public +export interface CheckMhsmNameAvailabilityParameters { + name: string; +} + +// @public +export interface CheckMhsmNameAvailabilityResult { + readonly message?: string; + readonly nameAvailable?: boolean; + readonly reason?: Reason; +} + // @public export interface CheckNameAvailabilityResult { readonly message?: string; @@ -319,6 +334,14 @@ export enum KnownActionsRequired { None = "None" } +// @public +export enum KnownActivationStatus { + Active = "Active", + Failed = "Failed", + NotActivated = "NotActivated", + Unknown = "Unknown" +} + // @public export enum KnownCertificatePermissions { // (undocumented) @@ -676,10 +699,11 @@ export interface ManagedHsms { beginCreateOrUpdateAndWait(resourceGroupName: string, name: string, parameters: ManagedHsm, options?: ManagedHsmsCreateOrUpdateOptionalParams): Promise; beginDelete(resourceGroupName: string, name: string, options?: ManagedHsmsDeleteOptionalParams): Promise, void>>; beginDeleteAndWait(resourceGroupName: string, name: string, options?: ManagedHsmsDeleteOptionalParams): Promise; - beginPurgeDeleted(name: string, location: string, options?: ManagedHsmsPurgeDeletedOptionalParams): Promise, void>>; - beginPurgeDeletedAndWait(name: string, location: string, options?: ManagedHsmsPurgeDeletedOptionalParams): Promise; + beginPurgeDeleted(name: string, location: string, options?: ManagedHsmsPurgeDeletedOptionalParams): Promise, ManagedHsmsPurgeDeletedResponse>>; + beginPurgeDeletedAndWait(name: string, location: string, options?: ManagedHsmsPurgeDeletedOptionalParams): Promise; beginUpdate(resourceGroupName: string, name: string, parameters: ManagedHsm, options?: ManagedHsmsUpdateOptionalParams): Promise, ManagedHsmsUpdateResponse>>; beginUpdateAndWait(resourceGroupName: string, name: string, parameters: ManagedHsm, options?: ManagedHsmsUpdateOptionalParams): Promise; + checkMhsmNameAvailability(mhsmName: CheckMhsmNameAvailabilityParameters, options?: ManagedHsmsCheckMhsmNameAvailabilityOptionalParams): Promise; get(resourceGroupName: string, name: string, options?: ManagedHsmsGetOptionalParams): Promise; getDeleted(name: string, location: string, options?: ManagedHsmsGetDeletedOptionalParams): Promise; listByResourceGroup(resourceGroupName: string, options?: ManagedHsmsListByResourceGroupOptionalParams): PagedAsyncIterableIterator; @@ -687,6 +711,18 @@ export interface ManagedHsms { listDeleted(options?: ManagedHsmsListDeletedOptionalParams): PagedAsyncIterableIterator; } +// @public +export interface ManagedHsmsCheckMhsmNameAvailabilityOptionalParams extends coreClient.OperationOptions { +} + +// @public +export type ManagedHsmsCheckMhsmNameAvailabilityResponse = CheckMhsmNameAvailabilityResult; + +// @public +export interface ManagedHsmsCreateOrUpdateHeaders { + location?: string; +} + // @public export interface ManagedHsmsCreateOrUpdateOptionalParams extends coreClient.OperationOptions { resumeFrom?: string; @@ -696,12 +732,23 @@ export interface ManagedHsmsCreateOrUpdateOptionalParams extends coreClient.Oper // @public export type ManagedHsmsCreateOrUpdateResponse = ManagedHsm; +// @public +export interface ManagedHsmsDeleteHeaders { + location?: string; +} + // @public export interface ManagedHsmsDeleteOptionalParams extends coreClient.OperationOptions { resumeFrom?: string; updateIntervalInMs?: number; } +// @public +export interface ManagedHSMSecurityDomainProperties { + readonly activationStatus?: ActivationStatus; + readonly activationStatusMessage?: string; +} + // @public export interface ManagedHsmsGetDeletedOptionalParams extends coreClient.OperationOptions { } @@ -774,12 +821,25 @@ export interface ManagedHsmsListDeletedOptionalParams extends coreClient.Operati // @public export type ManagedHsmsListDeletedResponse = DeletedManagedHsmListResult; +// @public +export interface ManagedHsmsPurgeDeletedHeaders { + location?: string; +} + // @public export interface ManagedHsmsPurgeDeletedOptionalParams extends coreClient.OperationOptions { resumeFrom?: string; updateIntervalInMs?: number; } +// @public +export type ManagedHsmsPurgeDeletedResponse = ManagedHsmsPurgeDeletedHeaders; + +// @public +export interface ManagedHsmsUpdateHeaders { + location?: string; +} + // @public export interface ManagedHsmsUpdateOptionalParams extends coreClient.OperationOptions { resumeFrom?: string; @@ -832,6 +892,8 @@ export type MhsmPrivateEndpointConnection = ManagedHsmResource & { // @public export interface MhsmPrivateEndpointConnectionItem { + etag?: string; + id?: string; privateEndpoint?: MhsmPrivateEndpoint; privateLinkServiceConnectionState?: MhsmPrivateLinkServiceConnectionState; provisioningState?: PrivateEndpointConnectionProvisioningState; @@ -849,7 +911,6 @@ export interface MhsmPrivateEndpointConnections { // @public export interface MhsmPrivateEndpointConnectionsDeleteHeaders { location?: string; - retryAfter?: number; } // @public diff --git a/sdk/keyvault/arm-keyvault/src/keyVaultManagementClient.ts b/sdk/keyvault/arm-keyvault/src/keyVaultManagementClient.ts index f0f83568a1ee..7969fb85ffd9 100644 --- a/sdk/keyvault/arm-keyvault/src/keyVaultManagementClient.ts +++ b/sdk/keyvault/arm-keyvault/src/keyVaultManagementClient.ts @@ -8,6 +8,11 @@ import * as coreClient from "@azure/core-client"; import * as coreRestPipeline from "@azure/core-rest-pipeline"; +import { + PipelineRequest, + PipelineResponse, + SendRequest +} from "@azure/core-rest-pipeline"; import * as coreAuth from "@azure/core-auth"; import { KeysImpl, @@ -66,7 +71,7 @@ export class KeyVaultManagementClient extends coreClient.ServiceClient { credential: credentials }; - const packageDetails = `azsdk-js-arm-keyvault/2.1.0-beta.1`; + const packageDetails = `azsdk-js-arm-keyvault/3.0.0`; const userAgentPrefix = options.userAgentOptions && options.userAgentOptions.userAgentPrefix ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}` @@ -113,7 +118,7 @@ export class KeyVaultManagementClient extends coreClient.ServiceClient { // Assigning values to Constant parameters this.$host = options.$host || "https://management.azure.com"; - this.apiVersion = options.apiVersion || "2021-11-01-preview"; + this.apiVersion = options.apiVersion || "2022-07-01"; this.keys = new KeysImpl(this); this.vaults = new VaultsImpl(this); this.privateEndpointConnections = new PrivateEndpointConnectionsImpl(this); @@ -125,6 +130,35 @@ export class KeyVaultManagementClient extends coreClient.ServiceClient { this.mhsmPrivateLinkResources = new MhsmPrivateLinkResourcesImpl(this); this.operations = new OperationsImpl(this); this.secrets = new SecretsImpl(this); + this.addCustomApiVersionPolicy(options.apiVersion); + } + + /** A function that adds a policy that sets the api-version (or equivalent) to reflect the library version. */ + private addCustomApiVersionPolicy(apiVersion?: string) { + if (!apiVersion) { + return; + } + const apiVersionPolicy = { + name: "CustomApiVersionPolicy", + async sendRequest( + request: PipelineRequest, + next: SendRequest + ): Promise { + const param = request.url.split("?"); + if (param.length > 1) { + const newParams = param[1].split("&").map((item) => { + if (item.indexOf("api-version") > -1) { + return item.replace(/(?<==).*$/, apiVersion); + } else { + return item; + } + }); + request.url = param[0] + "?" + newParams.join("&"); + } + return next(request); + } + }; + this.pipeline.addPolicy(apiVersionPolicy); } keys: Keys; diff --git a/sdk/keyvault/arm-keyvault/src/models/index.ts b/sdk/keyvault/arm-keyvault/src/models/index.ts index 7b67e1830d69..b72adecc20ef 100644 --- a/sdk/keyvault/arm-keyvault/src/models/index.ts +++ b/sdk/keyvault/arm-keyvault/src/models/index.ts @@ -204,7 +204,7 @@ export interface VaultProperties { enableSoftDelete?: boolean; /** softDelete data retention days. It accepts >=7 and <=90. */ softDeleteRetentionInDays?: number; - /** Property that controls how data actions are authorized. When true, the key vault will use Role Based Access Control (RBAC) for authorization of data actions, and the access policies specified in vault properties will be ignored (warning: this is a preview feature). When false, the key vault will use the access policies specified in vault properties, and any policy stored on Azure Resource Manager will be ignored. If null or not specified, the vault is created with the default value of false. Note that management actions are always authorized with RBAC. */ + /** Property that controls how data actions are authorized. When true, the key vault will use Role Based Access Control (RBAC) for authorization of data actions, and the access policies specified in vault properties will be ignored. When false, the key vault will use the access policies specified in vault properties, and any policy stored on Azure Resource Manager will be ignored. If null or not specified, the vault is created with the default value of false. Note that management actions are always authorized with RBAC. */ enableRbacAuthorization?: boolean; /** The vault's create mode to indicate whether the vault need to be recovered or not. */ createMode?: CreateMode; @@ -384,7 +384,7 @@ export interface VaultPatchProperties { enabledForTemplateDeployment?: boolean; /** Property to specify whether the 'soft delete' functionality is enabled for this key vault. Once set to true, it cannot be reverted to false. */ enableSoftDelete?: boolean; - /** Property that controls how data actions are authorized. When true, the key vault will use Role Based Access Control (RBAC) for authorization of data actions, and the access policies specified in vault properties will be ignored (warning: this is a preview feature). When false, the key vault will use the access policies specified in vault properties, and any policy stored on Azure Resource Manager will be ignored. If null or not specified, the value of this property will not change. */ + /** Property that controls how data actions are authorized. When true, the key vault will use Role Based Access Control (RBAC) for authorization of data actions, and the access policies specified in vault properties will be ignored. When false, the key vault will use the access policies specified in vault properties, and any policy stored on Azure Resource Manager will be ignored. If null or not specified, the value of this property will not change. */ enableRbacAuthorization?: boolean; /** softDelete data retention days. It accepts >=7 and <=90. */ softDeleteRetentionInDays?: number; @@ -621,6 +621,10 @@ export interface MhsmVirtualNetworkRule { /** Private endpoint connection item. */ export interface MhsmPrivateEndpointConnectionItem { + /** Id of private endpoint connection. */ + id?: string; + /** Modified whenever there is a change in the state of private endpoint connection. */ + etag?: string; /** Properties of the private endpoint object. */ privateEndpoint?: MhsmPrivateEndpoint; /** Approval state of the private link connection. */ @@ -798,6 +802,31 @@ export interface MhsmPrivateLinkResourceListResult { value?: MhsmPrivateLinkResource[]; } +/** The parameters used to check the availability of the managed hsm name. */ +export interface CheckMhsmNameAvailabilityParameters { + /** The managed hsm name. */ + name: string; +} + +/** The CheckMhsmNameAvailability operation response. */ +export interface CheckMhsmNameAvailabilityResult { + /** + * A boolean value that indicates whether the name is available for you to use. If true, the name is available. If false, the name has already been taken or is invalid and cannot be used. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly nameAvailable?: boolean; + /** + * The reason that a managed hsm name could not be used. The reason element is only returned if NameAvailable is false. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly reason?: Reason; + /** + * An error message explaining the Reason value in more detail. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly message?: string; +} + /** Result of the request to list Storage operations. It contains a list of operations and a URL link to get the next set of results. */ export interface OperationListResult { /** List of Storage operations supported by the Storage resource provider. */ @@ -960,6 +989,20 @@ export interface SecretListResult { nextLink?: string; } +/** The security domain properties of the managed hsm. */ +export interface ManagedHSMSecurityDomainProperties { + /** + * Activation Status + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly activationStatus?: ActivationStatus; + /** + * Activation Status Message. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly activationStatusMessage?: string; +} + /** The key resource. */ export type Key = Resource & { /** The attributes of the key. */ @@ -1074,6 +1117,30 @@ export interface PrivateEndpointConnectionsDeleteHeaders { location?: string; } +/** Defines headers for ManagedHsms_createOrUpdate operation. */ +export interface ManagedHsmsCreateOrUpdateHeaders { + /** The URI to poll for completion status. */ + location?: string; +} + +/** Defines headers for ManagedHsms_update operation. */ +export interface ManagedHsmsUpdateHeaders { + /** The URI to poll for completion status. */ + location?: string; +} + +/** Defines headers for ManagedHsms_delete operation. */ +export interface ManagedHsmsDeleteHeaders { + /** The URI to poll for completion status. */ + location?: string; +} + +/** Defines headers for ManagedHsms_purgeDeleted operation. */ +export interface ManagedHsmsPurgeDeletedHeaders { + /** The URI to poll for completion status. */ + location?: string; +} + /** Defines headers for MhsmPrivateEndpointConnections_put operation. */ export interface MhsmPrivateEndpointConnectionsPutHeaders { /** (specified only if operation does not finish synchronously) The recommended number of seconds to wait before calling the URI specified in Azure-AsyncOperation. */ @@ -1084,8 +1151,6 @@ export interface MhsmPrivateEndpointConnectionsPutHeaders { /** Defines headers for MhsmPrivateEndpointConnections_delete operation. */ export interface MhsmPrivateEndpointConnectionsDeleteHeaders { - /** The recommended number of seconds to wait before calling the URI specified in the location header. */ - retryAfter?: number; /** The URI to poll for completion status. */ location?: string; } @@ -1555,6 +1620,30 @@ export enum KnownManagedHsmSkuFamily { * **B** */ export type ManagedHsmSkuFamily = string; + +/** Known values of {@link ActivationStatus} that the service accepts. */ +export enum KnownActivationStatus { + /** The managed HSM Pool is active. */ + Active = "Active", + /** The managed HSM Pool is not yet activated. */ + NotActivated = "NotActivated", + /** An unknown error occurred while activating managed hsm. */ + Unknown = "Unknown", + /** Failed to activate managed hsm. */ + Failed = "Failed" +} + +/** + * Defines values for ActivationStatus. \ + * {@link KnownActivationStatus} can be used interchangeably with ActivationStatus, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **Active**: The managed HSM Pool is active. \ + * **NotActivated**: The managed HSM Pool is not yet activated. \ + * **Unknown**: An unknown error occurred while activating managed hsm. \ + * **Failed**: Failed to activate managed hsm. + */ +export type ActivationStatus = string; /** Defines values for KeyRotationPolicyActionType. */ export type KeyRotationPolicyActionType = "rotate" | "notify"; /** Defines values for SkuName. */ @@ -1878,6 +1967,16 @@ export interface ManagedHsmsPurgeDeletedOptionalParams resumeFrom?: string; } +/** Contains response data for the purgeDeleted operation. */ +export type ManagedHsmsPurgeDeletedResponse = ManagedHsmsPurgeDeletedHeaders; + +/** Optional parameters. */ +export interface ManagedHsmsCheckMhsmNameAvailabilityOptionalParams + extends coreClient.OperationOptions {} + +/** Contains response data for the checkMhsmNameAvailability operation. */ +export type ManagedHsmsCheckMhsmNameAvailabilityResponse = CheckMhsmNameAvailabilityResult; + /** Optional parameters. */ export interface ManagedHsmsListByResourceGroupNextOptionalParams extends coreClient.OperationOptions { diff --git a/sdk/keyvault/arm-keyvault/src/models/mappers.ts b/sdk/keyvault/arm-keyvault/src/models/mappers.ts index 7aaf9c270466..b519ca018784 100644 --- a/sdk/keyvault/arm-keyvault/src/models/mappers.ts +++ b/sdk/keyvault/arm-keyvault/src/models/mappers.ts @@ -1599,6 +1599,18 @@ export const MhsmPrivateEndpointConnectionItem: coreClient.CompositeMapper = { name: "Composite", className: "MhsmPrivateEndpointConnectionItem", modelProperties: { + id: { + serializedName: "id", + type: { + name: "String" + } + }, + etag: { + serializedName: "etag", + type: { + name: "String" + } + }, privateEndpoint: { serializedName: "properties.privateEndpoint", type: { @@ -1984,6 +1996,53 @@ export const MhsmPrivateLinkResourceListResult: coreClient.CompositeMapper = { } }; +export const CheckMhsmNameAvailabilityParameters: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "CheckMhsmNameAvailabilityParameters", + modelProperties: { + name: { + serializedName: "name", + required: true, + type: { + name: "String" + } + } + } + } +}; + +export const CheckMhsmNameAvailabilityResult: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "CheckMhsmNameAvailabilityResult", + modelProperties: { + nameAvailable: { + serializedName: "nameAvailable", + readOnly: true, + type: { + name: "Boolean" + } + }, + reason: { + serializedName: "reason", + readOnly: true, + type: { + name: "Enum", + allowedValues: ["AccountNameInvalid", "AlreadyExists"] + } + }, + message: { + serializedName: "message", + readOnly: true, + type: { + name: "String" + } + } + } + } +}; + export const OperationListResult: coreClient.CompositeMapper = { type: { name: "Composite", @@ -2447,6 +2506,29 @@ export const SecretListResult: coreClient.CompositeMapper = { } }; +export const ManagedHSMSecurityDomainProperties: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "ManagedHSMSecurityDomainProperties", + modelProperties: { + activationStatus: { + serializedName: "activationStatus", + readOnly: true, + type: { + name: "String" + } + }, + activationStatusMessage: { + serializedName: "activationStatusMessage", + readOnly: true, + type: { + name: "String" + } + } + } + } +}; + export const Key: coreClient.CompositeMapper = { type: { name: "Composite", @@ -2759,6 +2841,66 @@ export const PrivateEndpointConnectionsDeleteHeaders: coreClient.CompositeMapper } }; +export const ManagedHsmsCreateOrUpdateHeaders: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "ManagedHsmsCreateOrUpdateHeaders", + modelProperties: { + location: { + serializedName: "location", + type: { + name: "String" + } + } + } + } +}; + +export const ManagedHsmsUpdateHeaders: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "ManagedHsmsUpdateHeaders", + modelProperties: { + location: { + serializedName: "location", + type: { + name: "String" + } + } + } + } +}; + +export const ManagedHsmsDeleteHeaders: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "ManagedHsmsDeleteHeaders", + modelProperties: { + location: { + serializedName: "location", + type: { + name: "String" + } + } + } + } +}; + +export const ManagedHsmsPurgeDeletedHeaders: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "ManagedHsmsPurgeDeletedHeaders", + modelProperties: { + location: { + serializedName: "location", + type: { + name: "String" + } + } + } + } +}; + export const MhsmPrivateEndpointConnectionsPutHeaders: coreClient.CompositeMapper = { type: { name: "Composite", @@ -2785,12 +2927,6 @@ export const MhsmPrivateEndpointConnectionsDeleteHeaders: coreClient.CompositeMa name: "Composite", className: "MhsmPrivateEndpointConnectionsDeleteHeaders", modelProperties: { - retryAfter: { - serializedName: "retry-after", - type: { - name: "Number" - } - }, location: { serializedName: "location", type: { diff --git a/sdk/keyvault/arm-keyvault/src/models/parameters.ts b/sdk/keyvault/arm-keyvault/src/models/parameters.ts index 98abfbf521ff..ab4459cadb38 100644 --- a/sdk/keyvault/arm-keyvault/src/models/parameters.ts +++ b/sdk/keyvault/arm-keyvault/src/models/parameters.ts @@ -19,6 +19,7 @@ import { VaultCheckNameAvailabilityParameters as VaultCheckNameAvailabilityParametersMapper, PrivateEndpointConnection as PrivateEndpointConnectionMapper, ManagedHsm as ManagedHsmMapper, + CheckMhsmNameAvailabilityParameters as CheckMhsmNameAvailabilityParametersMapper, MhsmPrivateEndpointConnection as MhsmPrivateEndpointConnectionMapper, SecretCreateOrUpdateParameters as SecretCreateOrUpdateParametersMapper, SecretPatchParameters as SecretPatchParametersMapper @@ -118,7 +119,7 @@ export const keyName: OperationURLParameter = { export const apiVersion: OperationQueryParameter = { parameterPath: "apiVersion", mapper: { - defaultValue: "2021-11-01-preview", + defaultValue: "2022-07-01", isConstant: true, serializedName: "api-version", type: { @@ -273,6 +274,11 @@ export const name: OperationURLParameter = { } }; +export const mhsmName: OperationParameter = { + parameterPath: "mhsmName", + mapper: CheckMhsmNameAvailabilityParametersMapper +}; + export const properties1: OperationParameter = { parameterPath: "properties", mapper: MhsmPrivateEndpointConnectionMapper diff --git a/sdk/keyvault/arm-keyvault/src/operations/managedHsms.ts b/sdk/keyvault/arm-keyvault/src/operations/managedHsms.ts index cf2c2631c162..f04fcb6a9ecb 100644 --- a/sdk/keyvault/arm-keyvault/src/operations/managedHsms.ts +++ b/sdk/keyvault/arm-keyvault/src/operations/managedHsms.ts @@ -36,6 +36,10 @@ import { ManagedHsmsGetDeletedOptionalParams, ManagedHsmsGetDeletedResponse, ManagedHsmsPurgeDeletedOptionalParams, + ManagedHsmsPurgeDeletedResponse, + CheckMhsmNameAvailabilityParameters, + ManagedHsmsCheckMhsmNameAvailabilityOptionalParams, + ManagedHsmsCheckMhsmNameAvailabilityResponse, ManagedHsmsListByResourceGroupNextResponse, ManagedHsmsListBySubscriptionNextResponse, ManagedHsmsListDeletedNextResponse @@ -540,11 +544,16 @@ export class ManagedHsmsImpl implements ManagedHsms { name: string, location: string, options?: ManagedHsmsPurgeDeletedOptionalParams - ): Promise, void>> { + ): Promise< + PollerLike< + PollOperationState, + ManagedHsmsPurgeDeletedResponse + > + > { const directSendOperation = async ( args: coreClient.OperationArguments, spec: coreClient.OperationSpec - ): Promise => { + ): Promise => { return this.client.sendOperationRequest(args, spec); }; const sendOperation = async ( @@ -603,11 +612,26 @@ export class ManagedHsmsImpl implements ManagedHsms { name: string, location: string, options?: ManagedHsmsPurgeDeletedOptionalParams - ): Promise { + ): Promise { const poller = await this.beginPurgeDeleted(name, location, options); return poller.pollUntilDone(); } + /** + * Checks that the managed hsm name is valid and is not already in use. + * @param mhsmName The name of the managed hsm. + * @param options The options parameters. + */ + checkMhsmNameAvailability( + mhsmName: CheckMhsmNameAvailabilityParameters, + options?: ManagedHsmsCheckMhsmNameAvailabilityOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { mhsmName, options }, + checkMhsmNameAvailabilityOperationSpec + ); + } + /** * ListByResourceGroupNext * @param resourceGroupName Name of the resource group that contains the managed HSM pool. @@ -755,7 +779,6 @@ const getOperationSpec: coreClient.OperationSpec = { 200: { bodyMapper: Mappers.ManagedHsm }, - 202: {}, 204: {}, default: { bodyMapper: Mappers.ManagedHsmError @@ -853,10 +876,18 @@ const purgeDeletedOperationSpec: coreClient.OperationSpec = { "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/locations/{location}/deletedManagedHSMs/{name}/purge", httpMethod: "POST", responses: { - 200: {}, - 201: {}, - 202: {}, - 204: {}, + 200: { + headersMapper: Mappers.ManagedHsmsPurgeDeletedHeaders + }, + 201: { + headersMapper: Mappers.ManagedHsmsPurgeDeletedHeaders + }, + 202: { + headersMapper: Mappers.ManagedHsmsPurgeDeletedHeaders + }, + 204: { + headersMapper: Mappers.ManagedHsmsPurgeDeletedHeaders + }, default: { bodyMapper: Mappers.ManagedHsmError } @@ -871,6 +902,25 @@ const purgeDeletedOperationSpec: coreClient.OperationSpec = { headerParameters: [Parameters.accept], serializer }; +const checkMhsmNameAvailabilityOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/providers/Microsoft.KeyVault/checkMhsmNameAvailability", + httpMethod: "POST", + responses: { + 200: { + bodyMapper: Mappers.CheckMhsmNameAvailabilityResult + }, + default: { + bodyMapper: Mappers.CloudError + } + }, + requestBody: Parameters.mhsmName, + queryParameters: [Parameters.apiVersion], + urlParameters: [Parameters.$host, Parameters.subscriptionId], + headerParameters: [Parameters.contentType, Parameters.accept], + mediaType: "json", + serializer +}; const listByResourceGroupNextOperationSpec: coreClient.OperationSpec = { path: "{nextLink}", httpMethod: "GET", diff --git a/sdk/keyvault/arm-keyvault/src/operationsInterfaces/managedHsms.ts b/sdk/keyvault/arm-keyvault/src/operationsInterfaces/managedHsms.ts index 2d82c3e245a6..121c8f760dec 100644 --- a/sdk/keyvault/arm-keyvault/src/operationsInterfaces/managedHsms.ts +++ b/sdk/keyvault/arm-keyvault/src/operationsInterfaces/managedHsms.ts @@ -23,7 +23,11 @@ import { ManagedHsmsGetResponse, ManagedHsmsGetDeletedOptionalParams, ManagedHsmsGetDeletedResponse, - ManagedHsmsPurgeDeletedOptionalParams + ManagedHsmsPurgeDeletedOptionalParams, + ManagedHsmsPurgeDeletedResponse, + CheckMhsmNameAvailabilityParameters, + ManagedHsmsCheckMhsmNameAvailabilityOptionalParams, + ManagedHsmsCheckMhsmNameAvailabilityResponse } from "../models"; /// @@ -169,7 +173,12 @@ export interface ManagedHsms { name: string, location: string, options?: ManagedHsmsPurgeDeletedOptionalParams - ): Promise, void>>; + ): Promise< + PollerLike< + PollOperationState, + ManagedHsmsPurgeDeletedResponse + > + >; /** * Permanently deletes the specified managed HSM. * @param name The name of the soft-deleted managed HSM. @@ -180,5 +189,14 @@ export interface ManagedHsms { name: string, location: string, options?: ManagedHsmsPurgeDeletedOptionalParams - ): Promise; + ): Promise; + /** + * Checks that the managed hsm name is valid and is not already in use. + * @param mhsmName The name of the managed hsm. + * @param options The options parameters. + */ + checkMhsmNameAvailability( + mhsmName: CheckMhsmNameAvailabilityParameters, + options?: ManagedHsmsCheckMhsmNameAvailabilityOptionalParams + ): Promise; } diff --git a/sdk/keyvault/arm-keyvault/test/sampleTest.ts b/sdk/keyvault/arm-keyvault/test/sampleTest.ts new file mode 100644 index 000000000000..25aeb3ebcc36 --- /dev/null +++ b/sdk/keyvault/arm-keyvault/test/sampleTest.ts @@ -0,0 +1,43 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is regenerated. + */ + +import { + Recorder, + RecorderStartOptions, + env +} from "@azure-tools/test-recorder"; +import { assert } from "chai"; +import { Context } from "mocha"; + +const replaceableVariables: Record = { + AZURE_CLIENT_ID: "azure_client_id", + AZURE_CLIENT_SECRET: "azure_client_secret", + AZURE_TENANT_ID: "88888888-8888-8888-8888-888888888888", + SUBSCRIPTION_ID: "azure_subscription_id" +}; + +const recorderOptions: RecorderStartOptions = { + envSetupForPlayback: replaceableVariables +}; + +describe("My test", () => { + let recorder: Recorder; + + beforeEach(async function(this: Context) { + recorder = new Recorder(this.currentTest); + await recorder.start(recorderOptions); + }); + + afterEach(async function() { + await recorder.stop(); + }); + + it("sample test", async function() { + console.log("Hi, I'm a test!"); + }); +}); diff --git a/sdk/keyvault/arm-keyvault/tsconfig.json b/sdk/keyvault/arm-keyvault/tsconfig.json index d2c1e922fd67..3e6ae96443f3 100644 --- a/sdk/keyvault/arm-keyvault/tsconfig.json +++ b/sdk/keyvault/arm-keyvault/tsconfig.json @@ -15,17 +15,11 @@ ], "declaration": true, "outDir": "./dist-esm", - "importHelpers": true, - "paths": { - "@azure/arm-keyvault": [ - "./src/index" - ] - } + "importHelpers": true }, "include": [ "./src/**/*.ts", - "./test/**/*.ts", - "samples-dev/**/*.ts" + "./test/**/*.ts" ], "exclude": [ "node_modules"