From fa4d4342096aba8faeea7f5a197e39a897ffd0fa Mon Sep 17 00:00:00 2001 From: SDKAuto Date: Fri, 5 Aug 2022 09:10:09 +0000 Subject: [PATCH] CodeGen from PR 20092 in Azure/azure-rest-api-specs migrate to .net track 2 batch 2 (#20092) --- common/config/rush/pnpm-lock.yaml | 11 +- .../arm-redisenterprisecache/CHANGELOG.md | 22 ++-- .../arm-redisenterprisecache/_meta.json | 8 +- .../arm-redisenterprisecache/package.json | 31 +++-- .../review/arm-redisenterprisecache.api.md | 106 ++++-------------- .../src/models/index.ts | 83 ++++++++++++-- .../src/redisEnterpriseManagementClient.ts | 60 +++++++++- .../test/sampleTest.ts | 39 +++---- .../arm-redisenterprisecache/tsconfig.json | 10 +- 9 files changed, 208 insertions(+), 162 deletions(-) diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index b745c70f36bc..ae3af0a91376 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -3971,7 +3971,7 @@ packages: dependencies: semver: 7.3.7 shelljs: 0.8.5 - typescript: 4.8.0-dev.20220804 + typescript: 4.8.0-dev.20220805 dev: false /downlevel-dts/0.4.0: @@ -8860,8 +8860,8 @@ packages: hasBin: true dev: false - /typescript/4.8.0-dev.20220804: - resolution: {integrity: sha512-N5tKzl5WE31E6YHL3nlYls2zCxkCfax3gb3zKKcrRJXEzfPRFodE0xzkIgGJIshTLQnF/uwiN2Nc8TG50aE9Hg==} + /typescript/4.8.0-dev.20220805: + resolution: {integrity: sha512-br4hTSU5UU+VnCdEDXgv4jeQduwNxNiYv30KW4cXU7W3fCxB8/UDd2OCqciN8H5pF//Lzo0clJBFHXbhrLx3eA==} engines: {node: '>=4.2.0'} hasBin: true dev: false @@ -13732,7 +13732,7 @@ packages: dev: false file:projects/arm-redisenterprisecache.tgz: - resolution: {integrity: sha512-ok0RMsxaEFLY6CJ8FVXBh6NJDlphVi4T60OB560heT/xL5X+spckyY1mltQIWeT6jA6hDLDqdqiMcfGl9oPylA==, tarball: file:projects/arm-redisenterprisecache.tgz} + resolution: {integrity: sha512-mnjmv+3JUyrYcvel7UKxLwaz6qmAePsVanqw7ZZQR6R4lTYYLMy4NJHgL838kxegw51nWZEApqRsTPUw3qdhcQ==, tarball: file:projects/arm-redisenterprisecache.tgz} name: '@rush-temp/arm-redisenterprisecache' version: 0.0.0 dependencies: @@ -13744,6 +13744,8 @@ packages: '@rollup/plugin-json': 4.1.0_rollup@2.77.0 '@rollup/plugin-multi-entry': 4.1.0_rollup@2.77.0 '@rollup/plugin-node-resolve': 13.3.0_rollup@2.77.0 + '@types/chai': 4.3.1 + chai: 4.3.6 cross-env: 7.0.3 mkdirp: 1.0.4 mocha: 7.2.0 @@ -13755,7 +13757,6 @@ packages: uglify-js: 3.16.3 transitivePeerDependencies: - '@types/node' - - encoding - supports-color dev: false diff --git a/sdk/redisenterprise/arm-redisenterprisecache/CHANGELOG.md b/sdk/redisenterprise/arm-redisenterprisecache/CHANGELOG.md index 0a872c98438b..d303c59554f5 100644 --- a/sdk/redisenterprise/arm-redisenterprisecache/CHANGELOG.md +++ b/sdk/redisenterprise/arm-redisenterprisecache/CHANGELOG.md @@ -1,15 +1,17 @@ # Release History + +## 2.2.0 (2022-08-05) + +**Features** -## 2.1.1 (Unreleased) - -### Features Added - -### Breaking Changes - -### Bugs Fixed - -### Other Changes - + - Added Interface Cluster + - Added Interface Database + - Added Interface PrivateEndpointConnection + - Added Interface PrivateLinkResource + - Added Interface ProxyResource + - Added Interface TrackedResource + + ## 2.1.0 (2022-04-11) **Features** diff --git a/sdk/redisenterprise/arm-redisenterprisecache/_meta.json b/sdk/redisenterprise/arm-redisenterprisecache/_meta.json index 5b6ba3265527..717a78216ed9 100644 --- a/sdk/redisenterprise/arm-redisenterprisecache/_meta.json +++ b/sdk/redisenterprise/arm-redisenterprisecache/_meta.json @@ -1,8 +1,8 @@ { - "commit": "468e23d2ac1bd3f3956924eadc2cc881a2b37e73", + "commit": "63f4e39c20223c20941614e776d33e699c3e2777", "readme": "specification/redisenterprise/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\\redisenterprise\\resource-manager\\readme.md --use=@autorest/typescript@6.0.0-alpha.18.20220329.1 --generate-sample=true", + "autorest_command": "", "repository_url": "https://github.com/Azure/azure-rest-api-specs.git", - "release_tool": "@azure-tools/js-sdk-release-tools@2.2.1", - "use": "@autorest/typescript@6.0.0-alpha.18.20220329.1" + "release_tool": "@azure-tools/js-sdk-release-tools@2.4.1", + "use": "@autorest/typescript@6.0.0-rc.1" } \ No newline at end of file diff --git a/sdk/redisenterprise/arm-redisenterprisecache/package.json b/sdk/redisenterprise/arm-redisenterprisecache/package.json index 5c1a820e21c5..1840c3869ae4 100644 --- a/sdk/redisenterprise/arm-redisenterprisecache/package.json +++ b/sdk/redisenterprise/arm-redisenterprisecache/package.json @@ -3,7 +3,7 @@ "sdk-type": "mgmt", "author": "Microsoft Corporation", "description": "A generated SDK for RedisEnterpriseManagementClient.", - "version": "2.1.1", + "version": "2.2.0", "engines": { "node": ">=12.0.0" }, @@ -11,9 +11,9 @@ "@azure/core-lro": "^2.2.0", "@azure/abort-controller": "^1.0.0", "@azure/core-paging": "^1.2.0", - "@azure/core-client": "^1.0.0", + "@azure/core-client": "^1.5.0", "@azure/core-auth": "^1.3.0", - "@azure/core-rest-pipeline": "^1.1.0", + "@azure/core-rest-pipeline": "^1.8.0", "tslib": "^2.2.0" }, "keywords": [ @@ -40,9 +40,13 @@ "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" + "@types/chai": "^4.2.8", + "chai": "^4.2.0", + "cross-env": "^7.0.2", + "@azure/dev-tool": "^1.0.0" }, "homepage": "https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/redisenterprise/arm-redisenterprisecache", "repository": { @@ -93,9 +97,8 @@ "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:browser": "echo skipped", - "docs": "echo skipped" + "integration-test:node": "dev-tool run test:node-ts-input -- --timeout 1200000 'test/*.ts'", + "integration-test:browser": "echo skipped" }, "sideEffects": false, "//metadata": { @@ -106,13 +109,5 @@ } ] }, - "autoPublish": true, - "//sampleConfiguration": { - "productName": "", - "productSlugs": [ - "azure" - ], - "disableDocsMs": true, - "apiRefLink": "https://docs.microsoft.com/javascript/api/@azure/arm-redisenterprisecache?view=azure-node-preview" - } -} + "autoPublish": true +} \ No newline at end of file diff --git a/sdk/redisenterprise/arm-redisenterprisecache/review/arm-redisenterprisecache.api.md b/sdk/redisenterprise/arm-redisenterprisecache/review/arm-redisenterprisecache.api.md index bfdf883104f7..31843c44178a 100644 --- a/sdk/redisenterprise/arm-redisenterprisecache/review/arm-redisenterprisecache.api.md +++ b/sdk/redisenterprise/arm-redisenterprisecache/review/arm-redisenterprisecache.api.md @@ -26,16 +26,16 @@ export type ActionType = string; export type AofFrequency = string; // @public -export type Cluster = TrackedResource & { - sku: Sku; - zones?: string[]; - minimumTlsVersion?: TlsVersion; +export interface Cluster extends TrackedResource { readonly hostName?: string; + minimumTlsVersion?: TlsVersion; + readonly privateEndpointConnections?: PrivateEndpointConnection[]; readonly provisioningState?: ProvisioningState; - readonly resourceState?: ResourceState; readonly redisVersion?: string; - readonly privateEndpointConnections?: PrivateEndpointConnection[]; -}; + readonly resourceState?: ResourceState; + sku: Sku; + zones?: string[]; +} // @public export type ClusteringPolicy = string; @@ -61,17 +61,17 @@ export interface ClusterUpdate { } // @public -export type Database = ProxyResource & { +export interface Database extends ProxyResource { clientProtocol?: Protocol; - port?: number; - readonly provisioningState?: ProvisioningState; - readonly resourceState?: ResourceState; clusteringPolicy?: ClusteringPolicy; evictionPolicy?: EvictionPolicy; - persistence?: Persistence; - modules?: Module[]; geoReplication?: DatabasePropertiesGeoReplication; -}; + modules?: Module[]; + persistence?: Persistence; + port?: number; + readonly provisioningState?: ProvisioningState; + readonly resourceState?: ResourceState; +} // @public export interface DatabaseList { @@ -238,179 +238,118 @@ export interface ImportClusterParameters { // @public export enum KnownActionType { - // (undocumented) Internal = "Internal" } // @public export enum KnownAofFrequency { - // (undocumented) Always = "always", - // (undocumented) OneS = "1s" } // @public export enum KnownClusteringPolicy { - // (undocumented) EnterpriseCluster = "EnterpriseCluster", - // (undocumented) OSSCluster = "OSSCluster" } // @public export enum KnownEvictionPolicy { - // (undocumented) AllKeysLFU = "AllKeysLFU", - // (undocumented) AllKeysLRU = "AllKeysLRU", - // (undocumented) AllKeysRandom = "AllKeysRandom", - // (undocumented) NoEviction = "NoEviction", - // (undocumented) VolatileLFU = "VolatileLFU", - // (undocumented) VolatileLRU = "VolatileLRU", - // (undocumented) VolatileRandom = "VolatileRandom", - // (undocumented) VolatileTTL = "VolatileTTL" } // @public export enum KnownLinkState { - // (undocumented) Linked = "Linked", - // (undocumented) LinkFailed = "LinkFailed", - // (undocumented) Linking = "Linking", - // (undocumented) UnlinkFailed = "UnlinkFailed", - // (undocumented) Unlinking = "Unlinking" } // @public export enum KnownOrigin { - // (undocumented) System = "system", - // (undocumented) User = "user", - // (undocumented) UserSystem = "user,system" } // @public export enum KnownPrivateEndpointConnectionProvisioningState { - // (undocumented) Creating = "Creating", - // (undocumented) Deleting = "Deleting", - // (undocumented) Failed = "Failed", - // (undocumented) Succeeded = "Succeeded" } // @public export enum KnownPrivateEndpointServiceConnectionStatus { - // (undocumented) Approved = "Approved", - // (undocumented) Pending = "Pending", - // (undocumented) Rejected = "Rejected" } // @public export enum KnownProtocol { - // (undocumented) Encrypted = "Encrypted", - // (undocumented) Plaintext = "Plaintext" } // @public export enum KnownProvisioningState { - // (undocumented) Canceled = "Canceled", - // (undocumented) Creating = "Creating", - // (undocumented) Deleting = "Deleting", - // (undocumented) Failed = "Failed", - // (undocumented) Succeeded = "Succeeded", - // (undocumented) Updating = "Updating" } // @public export enum KnownRdbFrequency { - // (undocumented) OneH = "1h", - // (undocumented) SixH = "6h", - // (undocumented) TwelveH = "12h" } // @public export enum KnownResourceState { - // (undocumented) CreateFailed = "CreateFailed", - // (undocumented) Creating = "Creating", - // (undocumented) DeleteFailed = "DeleteFailed", - // (undocumented) Deleting = "Deleting", - // (undocumented) Disabled = "Disabled", - // (undocumented) DisableFailed = "DisableFailed", - // (undocumented) Disabling = "Disabling", - // (undocumented) EnableFailed = "EnableFailed", - // (undocumented) Enabling = "Enabling", - // (undocumented) Running = "Running", - // (undocumented) UpdateFailed = "UpdateFailed", - // (undocumented) Updating = "Updating" } // @public export enum KnownSkuName { - // (undocumented) EnterpriseE10 = "Enterprise_E10", - // (undocumented) EnterpriseE100 = "Enterprise_E100", - // (undocumented) EnterpriseE20 = "Enterprise_E20", - // (undocumented) EnterpriseE50 = "Enterprise_E50", - // (undocumented) EnterpriseFlashF1500 = "EnterpriseFlash_F1500", - // (undocumented) EnterpriseFlashF300 = "EnterpriseFlash_F300", - // (undocumented) EnterpriseFlashF700 = "EnterpriseFlash_F700" } // @public export enum KnownTlsVersion { - // (undocumented) One0 = "1.0", - // (undocumented) One1 = "1.1", - // (undocumented) One2 = "1.2" } @@ -511,11 +450,11 @@ export interface PrivateEndpoint { } // @public -export type PrivateEndpointConnection = Resource & { +export interface PrivateEndpointConnection extends Resource { privateEndpoint?: PrivateEndpoint; privateLinkServiceConnectionState?: PrivateLinkServiceConnectionState; readonly provisioningState?: PrivateEndpointConnectionProvisioningState; -}; +} // @public export interface PrivateEndpointConnectionListResult { @@ -565,11 +504,11 @@ export type PrivateEndpointConnectionsPutResponse = PrivateEndpointConnection; export type PrivateEndpointServiceConnectionStatus = string; // @public -export type PrivateLinkResource = Resource & { +export interface PrivateLinkResource extends Resource { readonly groupId?: string; readonly requiredMembers?: string[]; requiredZoneNames?: string[]; -}; +} // @public export interface PrivateLinkResourceListResult { @@ -602,7 +541,8 @@ export type Protocol = string; export type ProvisioningState = string; // @public -export type ProxyResource = Resource & {}; +export interface ProxyResource extends Resource { +} // @public export type RdbFrequency = string; @@ -737,12 +677,12 @@ export type SkuName = string; export type TlsVersion = string; // @public -export type TrackedResource = Resource & { +export interface TrackedResource extends Resource { + location: string; tags?: { [propertyName: string]: string; }; - location: string; -}; +} // (No @packageDocumentation comment for this package) diff --git a/sdk/redisenterprise/arm-redisenterprisecache/src/models/index.ts b/sdk/redisenterprise/arm-redisenterprisecache/src/models/index.ts index b688726da85c..008564f03f2a 100644 --- a/sdk/redisenterprise/arm-redisenterprisecache/src/models/index.ts +++ b/sdk/redisenterprise/arm-redisenterprisecache/src/models/index.ts @@ -363,7 +363,7 @@ export interface ForceUnlinkParameters { } /** The Private Endpoint Connection resource. */ -export type PrivateEndpointConnection = Resource & { +export interface PrivateEndpointConnection extends Resource { /** The resource of private end point. */ privateEndpoint?: PrivateEndpoint; /** A collection of information about the state of the connection between service consumer and provider. */ @@ -373,21 +373,21 @@ export type PrivateEndpointConnection = Resource & { * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly provisioningState?: PrivateEndpointConnectionProvisioningState; -}; +} /** The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location' */ -export type TrackedResource = Resource & { +export interface TrackedResource extends Resource { /** Resource tags. */ tags?: { [propertyName: string]: string }; /** The geo-location where the resource lives */ location: string; -}; +} /** The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location */ -export type ProxyResource = Resource & {}; +export interface ProxyResource extends Resource {} /** A private link resource */ -export type PrivateLinkResource = Resource & { +export interface PrivateLinkResource extends Resource { /** * The private link resource group id. * NOTE: This property will not be serialized. It can only be populated by the server. @@ -400,10 +400,10 @@ export type PrivateLinkResource = Resource & { readonly requiredMembers?: string[]; /** The private link resource Private link DNS zone name. */ requiredZoneNames?: string[]; -}; +} /** Describes the RedisEnterprise cluster */ -export type Cluster = TrackedResource & { +export interface Cluster extends TrackedResource { /** The SKU to create, which affects price, performance, and features. */ sku: Sku; /** The Availability Zones where this cluster will be deployed. */ @@ -435,10 +435,10 @@ export type Cluster = TrackedResource & { * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly privateEndpointConnections?: PrivateEndpointConnection[]; -}; +} /** Describes a database on the RedisEnterprise cluster */ -export type Database = ProxyResource & { +export interface Database extends ProxyResource { /** Specifies whether redis clients can connect using TLS-encrypted or plaintext redis protocols. Default is TLS-encrypted. */ clientProtocol?: Protocol; /** TCP port of the database endpoint. Specified at create time. Defaults to an available port. */ @@ -463,12 +463,15 @@ export type Database = ProxyResource & { modules?: Module[]; /** Optional set of properties to configure geo replication for this database. */ geoReplication?: DatabasePropertiesGeoReplication; -}; +} /** Known values of {@link Origin} that the service accepts. */ export enum KnownOrigin { + /** User */ User = "user", + /** System */ System = "system", + /** UserSystem */ UserSystem = "user,system" } @@ -485,6 +488,7 @@ export type Origin = string; /** Known values of {@link ActionType} that the service accepts. */ export enum KnownActionType { + /** Internal */ Internal = "Internal" } @@ -499,12 +503,19 @@ export type ActionType = string; /** Known values of {@link SkuName} that the service accepts. */ export enum KnownSkuName { + /** EnterpriseE10 */ EnterpriseE10 = "Enterprise_E10", + /** EnterpriseE20 */ EnterpriseE20 = "Enterprise_E20", + /** EnterpriseE50 */ EnterpriseE50 = "Enterprise_E50", + /** EnterpriseE100 */ EnterpriseE100 = "Enterprise_E100", + /** EnterpriseFlashF300 */ EnterpriseFlashF300 = "EnterpriseFlash_F300", + /** EnterpriseFlashF700 */ EnterpriseFlashF700 = "EnterpriseFlash_F700", + /** EnterpriseFlashF1500 */ EnterpriseFlashF1500 = "EnterpriseFlash_F1500" } @@ -525,8 +536,11 @@ export type SkuName = string; /** Known values of {@link TlsVersion} that the service accepts. */ export enum KnownTlsVersion { + /** One0 */ One0 = "1.0", + /** One1 */ One1 = "1.1", + /** One2 */ One2 = "1.2" } @@ -543,11 +557,17 @@ export type TlsVersion = string; /** Known values of {@link ProvisioningState} that the service accepts. */ export enum KnownProvisioningState { + /** Succeeded */ Succeeded = "Succeeded", + /** Failed */ Failed = "Failed", + /** Canceled */ Canceled = "Canceled", + /** Creating */ Creating = "Creating", + /** Updating */ Updating = "Updating", + /** Deleting */ Deleting = "Deleting" } @@ -567,17 +587,29 @@ export type ProvisioningState = string; /** Known values of {@link ResourceState} that the service accepts. */ export enum KnownResourceState { + /** Running */ Running = "Running", + /** Creating */ Creating = "Creating", + /** CreateFailed */ CreateFailed = "CreateFailed", + /** Updating */ Updating = "Updating", + /** UpdateFailed */ UpdateFailed = "UpdateFailed", + /** Deleting */ Deleting = "Deleting", + /** DeleteFailed */ DeleteFailed = "DeleteFailed", + /** Enabling */ Enabling = "Enabling", + /** EnableFailed */ EnableFailed = "EnableFailed", + /** Disabling */ Disabling = "Disabling", + /** DisableFailed */ DisableFailed = "DisableFailed", + /** Disabled */ Disabled = "Disabled" } @@ -603,8 +635,11 @@ export type ResourceState = string; /** Known values of {@link PrivateEndpointServiceConnectionStatus} that the service accepts. */ export enum KnownPrivateEndpointServiceConnectionStatus { + /** Pending */ Pending = "Pending", + /** Approved */ Approved = "Approved", + /** Rejected */ Rejected = "Rejected" } @@ -621,9 +656,13 @@ export type PrivateEndpointServiceConnectionStatus = string; /** Known values of {@link PrivateEndpointConnectionProvisioningState} that the service accepts. */ export enum KnownPrivateEndpointConnectionProvisioningState { + /** Succeeded */ Succeeded = "Succeeded", + /** Creating */ Creating = "Creating", + /** Deleting */ Deleting = "Deleting", + /** Failed */ Failed = "Failed" } @@ -641,7 +680,9 @@ export type PrivateEndpointConnectionProvisioningState = string; /** Known values of {@link Protocol} that the service accepts. */ export enum KnownProtocol { + /** Encrypted */ Encrypted = "Encrypted", + /** Plaintext */ Plaintext = "Plaintext" } @@ -657,7 +698,9 @@ export type Protocol = string; /** Known values of {@link ClusteringPolicy} that the service accepts. */ export enum KnownClusteringPolicy { + /** EnterpriseCluster */ EnterpriseCluster = "EnterpriseCluster", + /** OSSCluster */ OSSCluster = "OSSCluster" } @@ -673,13 +716,21 @@ export type ClusteringPolicy = string; /** Known values of {@link EvictionPolicy} that the service accepts. */ export enum KnownEvictionPolicy { + /** AllKeysLFU */ AllKeysLFU = "AllKeysLFU", + /** AllKeysLRU */ AllKeysLRU = "AllKeysLRU", + /** AllKeysRandom */ AllKeysRandom = "AllKeysRandom", + /** VolatileLRU */ VolatileLRU = "VolatileLRU", + /** VolatileLFU */ VolatileLFU = "VolatileLFU", + /** VolatileTTL */ VolatileTTL = "VolatileTTL", + /** VolatileRandom */ VolatileRandom = "VolatileRandom", + /** NoEviction */ NoEviction = "NoEviction" } @@ -701,7 +752,9 @@ export type EvictionPolicy = string; /** Known values of {@link AofFrequency} that the service accepts. */ export enum KnownAofFrequency { + /** OneS */ OneS = "1s", + /** Always */ Always = "always" } @@ -717,8 +770,11 @@ export type AofFrequency = string; /** Known values of {@link RdbFrequency} that the service accepts. */ export enum KnownRdbFrequency { + /** OneH */ OneH = "1h", + /** SixH */ SixH = "6h", + /** TwelveH */ TwelveH = "12h" } @@ -735,10 +791,15 @@ export type RdbFrequency = string; /** Known values of {@link LinkState} that the service accepts. */ export enum KnownLinkState { + /** Linked */ Linked = "Linked", + /** Linking */ Linking = "Linking", + /** Unlinking */ Unlinking = "Unlinking", + /** LinkFailed */ LinkFailed = "LinkFailed", + /** UnlinkFailed */ UnlinkFailed = "UnlinkFailed" } diff --git a/sdk/redisenterprise/arm-redisenterprisecache/src/redisEnterpriseManagementClient.ts b/sdk/redisenterprise/arm-redisenterprisecache/src/redisEnterpriseManagementClient.ts index 5e5088580884..a309a5d16907 100644 --- a/sdk/redisenterprise/arm-redisenterprisecache/src/redisEnterpriseManagementClient.ts +++ b/sdk/redisenterprise/arm-redisenterprisecache/src/redisEnterpriseManagementClient.ts @@ -7,6 +7,12 @@ */ 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 { OperationsImpl, @@ -58,7 +64,7 @@ export class RedisEnterpriseManagementClient extends coreClient.ServiceClient { credential: credentials }; - const packageDetails = `azsdk-js-arm-redisenterprisecache/2.1.1`; + const packageDetails = `azsdk-js-arm-redisenterprisecache/2.2.0`; const userAgentPrefix = options.userAgentOptions && options.userAgentOptions.userAgentPrefix ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}` @@ -77,6 +83,29 @@ export class RedisEnterpriseManagementClient extends coreClient.ServiceClient { options.endpoint ?? options.baseUri ?? "https://management.azure.com" }; super(optionsWithDefaults); + + if (options?.pipeline && options.pipeline.getOrderedPolicies().length > 0) { + const pipelinePolicies: coreRestPipeline.PipelinePolicy[] = options.pipeline.getOrderedPolicies(); + const bearerTokenAuthenticationPolicyFound = pipelinePolicies.some( + (pipelinePolicy) => + pipelinePolicy.name === + coreRestPipeline.bearerTokenAuthenticationPolicyName + ); + if (!bearerTokenAuthenticationPolicyFound) { + this.pipeline.removePolicy({ + name: coreRestPipeline.bearerTokenAuthenticationPolicyName + }); + this.pipeline.addPolicy( + coreRestPipeline.bearerTokenAuthenticationPolicy({ + scopes: `${optionsWithDefaults.baseUri}/.default`, + challengeCallbacks: { + authorizeRequestOnChallenge: + coreClient.authorizeRequestOnClaimChallenge + } + }) + ); + } + } // Parameter assignments this.subscriptionId = subscriptionId; @@ -89,6 +118,35 @@ export class RedisEnterpriseManagementClient extends coreClient.ServiceClient { this.databases = new DatabasesImpl(this); this.privateEndpointConnections = new PrivateEndpointConnectionsImpl(this); this.privateLinkResources = new PrivateLinkResourcesImpl(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 "api-version=" + apiVersion; + } else { + return item; + } + }); + request.url = param[0] + "?" + newParams.join("&"); + } + return next(request); + } + }; + this.pipeline.addPolicy(apiVersionPolicy); } operations: Operations; diff --git a/sdk/redisenterprise/arm-redisenterprisecache/test/sampleTest.ts b/sdk/redisenterprise/arm-redisenterprisecache/test/sampleTest.ts index 7ed89b043e1b..25aeb3ebcc36 100644 --- a/sdk/redisenterprise/arm-redisenterprisecache/test/sampleTest.ts +++ b/sdk/redisenterprise/arm-redisenterprisecache/test/sampleTest.ts @@ -7,35 +7,30 @@ */ import { - env, - record, - RecorderEnvironmentSetup, - Recorder + Recorder, + RecorderStartOptions, + env } from "@azure-tools/test-recorder"; -import * as assert from "assert"; +import { assert } from "chai"; +import { Context } from "mocha"; -const recorderEnvSetup: RecorderEnvironmentSetup = { - replaceableVariables: { - 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" - }, - customizationsOnRecordings: [ - (recording: any): any => - recording.replace( - /"access_token":"[^"]*"/g, - `"access_token":"access_token"` - ) - ], - queryParametersToSkip: [] +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() { - recorder = record(this, recorderEnvSetup); + beforeEach(async function(this: Context) { + recorder = new Recorder(this.currentTest); + await recorder.start(recorderOptions); }); afterEach(async function() { diff --git a/sdk/redisenterprise/arm-redisenterprisecache/tsconfig.json b/sdk/redisenterprise/arm-redisenterprisecache/tsconfig.json index b929ba4f3f0f..3e6ae96443f3 100644 --- a/sdk/redisenterprise/arm-redisenterprisecache/tsconfig.json +++ b/sdk/redisenterprise/arm-redisenterprisecache/tsconfig.json @@ -15,17 +15,11 @@ ], "declaration": true, "outDir": "./dist-esm", - "importHelpers": true, - "paths": { - "@azure/arm-redisenterprisecache": [ - "./src/index" - ] - } + "importHelpers": true }, "include": [ "./src/**/*.ts", - "./test/**/*.ts", - "samples-dev/**/*.ts" + "./test/**/*.ts" ], "exclude": [ "node_modules"