From 248c403f28d58d3f4db985d7082a81222700475a Mon Sep 17 00:00:00 2001 From: SDKAuto Date: Fri, 23 Sep 2022 09:03:02 +0000 Subject: [PATCH] CodeGen from PR 20850 in Azure/azure-rest-api-specs Merge 6c5a3c7dd2f1bc3050310cc641399cc1c4f1c46d into 1d9c9c68844d2b5883621069d5bf0c958841782f --- common/config/rush/pnpm-lock.yaml | 13 +- .../arm-loadtestservice/CHANGELOG.md | 12 +- .../arm-loadtestservice/README.md | 4 +- .../arm-loadtestservice/_meta.json | 10 +- .../arm-loadtestservice/package.json | 29 +- .../review/arm-loadtestservice.api.md | 216 +++++++-- .../arm-loadtestservice/src/loadTestClient.ts | 44 +- .../arm-loadtestservice/src/models/index.ts | 318 +++++++++++-- .../arm-loadtestservice/src/models/mappers.ts | 421 ++++++++++++++++-- .../src/models/parameters.ts | 47 +- .../src/operations/index.ts | 1 + .../src/operations/loadTests.ts | 340 +++++++++++++- .../src/operations/quotas.ts | 245 ++++++++++ .../src/operationsInterfaces/index.ts | 1 + .../src/operationsInterfaces/loadTests.ts | 53 ++- .../src/operationsInterfaces/quotas.ts | 56 +++ .../arm-loadtestservice/test/sampleTest.ts | 39 +- .../arm-loadtestservice/tsconfig.json | 10 +- 18 files changed, 1638 insertions(+), 221 deletions(-) create mode 100644 sdk/loadtestservice/arm-loadtestservice/src/operations/quotas.ts create mode 100644 sdk/loadtestservice/arm-loadtestservice/src/operationsInterfaces/quotas.ts diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 4ee8c55abc62..098eeda4a033 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -4045,7 +4045,7 @@ packages: dependencies: semver: 7.3.7 shelljs: 0.8.5 - typescript: 4.9.0-dev.20220922 + typescript: 4.9.0-dev.20220923 dev: false /downlevel-dts/0.8.0: @@ -8989,8 +8989,8 @@ packages: hasBin: true dev: false - /typescript/4.9.0-dev.20220922: - resolution: {integrity: sha512-ELbWdlXaMl1//2wr2U09JIcPFFyifR8PEzVUGvQInfWVjRMalJJD28DRjp0yc4ZVdDcmQATO/pSQG0rRkr1z6A==} + /typescript/4.9.0-dev.20220923: + resolution: {integrity: sha512-BaTN9dPBZugYsJFXtoEFz85E7WsalhCrJT3IcrGj+d3LVrwVCOqiFxY/uNfhWkvJ4apXqjQrgiXiYxtPL/TKSw==} engines: {node: '>=4.2.0'} hasBin: true dev: false @@ -12774,18 +12774,20 @@ packages: dev: false file:projects/arm-loadtestservice.tgz: - resolution: {integrity: sha512-qxs7+yOzEIoACzajyRFSYucff3NJOdgHrO8cT4g/PJzzWTiHffccGQx8xosAdUNa7xQgJbSDOoe0Sc0BoKt8kw==, tarball: file:projects/arm-loadtestservice.tgz} + resolution: {integrity: sha512-benRcY/O8zsYhY+DlkitcIRM9Ht5lIvGKug3+S88We77Z48TwN9MiUj68aY9J3dBI6Pqsbi2YY36/YBx2OKYBg==, tarball: file:projects/arm-loadtestservice.tgz} name: '@rush-temp/arm-loadtestservice' version: 0.0.0 dependencies: '@azure-tools/test-recorder': 1.0.2 '@azure/core-lro': 2.2.4 '@azure/identity': 2.1.0 - '@microsoft/api-extractor': 7.31.1 + '@microsoft/api-extractor': 7.18.11 '@rollup/plugin-commonjs': 21.1.0_rollup@2.79.0 '@rollup/plugin-json': 4.1.0_rollup@2.79.0 '@rollup/plugin-multi-entry': 4.1.0_rollup@2.79.0 '@rollup/plugin-node-resolve': 13.3.0_rollup@2.79.0 + '@types/chai': 4.3.1 + chai: 4.3.6 cross-env: 7.0.3 mkdirp: 1.0.4 mocha: 7.2.0 @@ -12797,7 +12799,6 @@ packages: uglify-js: 3.16.3 transitivePeerDependencies: - '@types/node' - - encoding - supports-color dev: false diff --git a/sdk/loadtestservice/arm-loadtestservice/CHANGELOG.md b/sdk/loadtestservice/arm-loadtestservice/CHANGELOG.md index f0e454a703fc..94611f8a33a3 100644 --- a/sdk/loadtestservice/arm-loadtestservice/CHANGELOG.md +++ b/sdk/loadtestservice/arm-loadtestservice/CHANGELOG.md @@ -1,11 +1,5 @@ # Release History + +## 1.0.0 (2022-09-23) -## 1.0.0-beta.2 (2022-04-24) - -**Features** - - - Bug fix - -## 1.0.0-beta.1 (2021-12-08) - -- Initial Release +The package of @azure/arm-loadtestservice is using our next generation design principles. To learn more, please refer to our documentation [Quick Start](https://aka.ms/js-track2-quickstart). diff --git a/sdk/loadtestservice/arm-loadtestservice/README.md b/sdk/loadtestservice/arm-loadtestservice/README.md index d87972ebb3b5..cbf242fb8dac 100644 --- a/sdk/loadtestservice/arm-loadtestservice/README.md +++ b/sdk/loadtestservice/arm-loadtestservice/README.md @@ -6,14 +6,14 @@ LoadTest client provides access to LoadTest Resource and it's status operations. [Source code](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/loadtestservice/arm-loadtestservice) | [Package (NPM)](https://www.npmjs.com/package/@azure/arm-loadtestservice) | -[API reference documentation](https://docs.microsoft.com/javascript/api/@azure/arm-loadtestservice?view=azure-node-preview) | +[API reference documentation](https://docs.microsoft.com/javascript/api/@azure/arm-loadtestservice) | [Samples](https://github.com/Azure-Samples/azure-samples-js-management) ## Getting started ### Currently supported environments -- [LTS versions of Node.js](https://github.com/nodejs/release#release-schedule) +- [LTS versions of Node.js](https://nodejs.org/about/releases/) - Latest versions of Safari, Chrome, Edge and Firefox. See our [support policy](https://github.com/Azure/azure-sdk-for-js/blob/main/SUPPORT.md) for more details. diff --git a/sdk/loadtestservice/arm-loadtestservice/_meta.json b/sdk/loadtestservice/arm-loadtestservice/_meta.json index 9d9ae4bafe05..35e239556aff 100644 --- a/sdk/loadtestservice/arm-loadtestservice/_meta.json +++ b/sdk/loadtestservice/arm-loadtestservice/_meta.json @@ -1,8 +1,8 @@ { - "commit": "d90729bbada2b4f784f2737ab4b4e39693a7aab8", - "readme": "specification\\loadtestservice\\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\\loadtestservice\\resource-manager\\readme.md --use=@autorest/typescript@6.0.0-alpha.19.20220408.1 --generate-sample=true", + "commit": "78c063f8560a600cdd149987ff2619f8e703cfa1", + "readme": "specification/loadtestservice/resource-manager/readme.md", + "autorest_command": "autorest --version=3.8.4 --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/loadtestservice/resource-manager/readme.md --use=@autorest/typescript@6.0.0-rc.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.2", + "use": "@autorest/typescript@6.0.0-rc.1" } \ No newline at end of file diff --git a/sdk/loadtestservice/arm-loadtestservice/package.json b/sdk/loadtestservice/arm-loadtestservice/package.json index 7c1439e91e89..d2379f31d49e 100644 --- a/sdk/loadtestservice/arm-loadtestservice/package.json +++ b/sdk/loadtestservice/arm-loadtestservice/package.json @@ -3,7 +3,7 @@ "sdk-type": "mgmt", "author": "Microsoft Corporation", "description": "A generated SDK for LoadTestClient.", - "version": "1.0.0-beta.2", + "version": "1.0.0", "engines": { "node": ">=12.0.0" }, @@ -28,7 +28,7 @@ "module": "./dist-esm/src/index.js", "types": "./types/arm-loadtestservice.d.ts", "devDependencies": { - "@microsoft/api-extractor": "^7.31.1", + "@microsoft/api-extractor": "7.18.11", "@rollup/plugin-commonjs": "^21.0.1", "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-multi-entry": "^4.1.0", @@ -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/loadtestservice/arm-loadtestservice", "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-loadtestservice?view=azure-node-preview" - } -} + "autoPublish": true +} \ No newline at end of file diff --git a/sdk/loadtestservice/arm-loadtestservice/review/arm-loadtestservice.api.md b/sdk/loadtestservice/arm-loadtestservice/review/arm-loadtestservice.api.md index ce02d82d013a..a1d707dab9e4 100644 --- a/sdk/loadtestservice/arm-loadtestservice/review/arm-loadtestservice.api.md +++ b/sdk/loadtestservice/arm-loadtestservice/review/arm-loadtestservice.api.md @@ -13,9 +13,39 @@ import { PollOperationState } from '@azure/core-lro'; // @public export type ActionType = string; +// @public +export interface CheckQuotaAvailabilityResponse extends Resource { + availabilityStatus?: string; + isAvailable?: boolean; +} + // @public export type CreatedByType = string; +// @public +export interface EncryptionProperties { + identity?: EncryptionPropertiesIdentity; + keyUrl?: string; +} + +// @public +export interface EncryptionPropertiesIdentity { + resourceId?: string; + type?: Type; +} + +// @public +export interface EndpointDependency { + readonly description?: string; + readonly domainName?: string; + readonly endpointDetails?: EndpointDetail[]; +} + +// @public +export interface EndpointDetail { + readonly port?: number; +} + // @public export interface ErrorAdditionalInfo { readonly info?: Record; @@ -38,50 +68,44 @@ export interface ErrorResponse { // @public export enum KnownActionType { - // (undocumented) Internal = "Internal" } // @public export enum KnownCreatedByType { - // (undocumented) Application = "Application", - // (undocumented) Key = "Key", - // (undocumented) ManagedIdentity = "ManagedIdentity", - // (undocumented) User = "User" } +// @public +export enum KnownManagedServiceIdentityType { + None = "None", + SystemAssigned = "SystemAssigned", + SystemAssignedUserAssigned = "SystemAssigned,UserAssigned", + UserAssigned = "UserAssigned" +} + // @public export enum KnownOrigin { - // (undocumented) System = "system", - // (undocumented) User = "user", - // (undocumented) UserSystem = "user,system" } // @public export enum KnownResourceState { - // (undocumented) Canceled = "Canceled", - // (undocumented) Deleted = "Deleted", - // (undocumented) Failed = "Failed", - // (undocumented) Succeeded = "Succeeded" } // @public -export enum KnownSystemAssignedServiceIdentityType { - // (undocumented) - None = "None", - // (undocumented) - SystemAssigned = "SystemAssigned" +export enum KnownType { + SystemAssigned = "SystemAssigned", + UserAssigned = "UserAssigned" } // @public (undocumented) @@ -96,6 +120,8 @@ export class LoadTestClient extends coreClient.ServiceClient { // (undocumented) operations: Operations; // (undocumented) + quotas: Quotas; + // (undocumented) subscriptionId: string; } @@ -107,12 +133,13 @@ export interface LoadTestClientOptionalParams extends coreClient.ServiceClientOp } // @public -export type LoadTestResource = TrackedResource & { - identity?: SystemAssignedServiceIdentity; +export interface LoadTestResource extends TrackedResource { + readonly dataPlaneURI?: string; description?: string; + encryption?: EncryptionProperties; + identity?: ManagedServiceIdentity; readonly provisioningState?: ResourceState; - readonly dataPlaneURI?: string; -}; +} // @public export interface LoadTestResourcePageList { @@ -122,29 +149,30 @@ export interface LoadTestResourcePageList { // @public export interface LoadTestResourcePatchRequestBody { - identity?: SystemAssignedServiceIdentity; - properties?: LoadTestResourcePatchRequestBodyProperties; - tags?: Record; -} - -// @public -export interface LoadTestResourcePatchRequestBodyProperties { description?: string; + encryption?: EncryptionProperties; + identity?: ManagedServiceIdentity; + tags?: Record; } // @public export interface LoadTests { + beginCreateOrUpdate(resourceGroupName: string, loadTestName: string, loadTestResource: LoadTestResource, options?: LoadTestsCreateOrUpdateOptionalParams): Promise, LoadTestsCreateOrUpdateResponse>>; + beginCreateOrUpdateAndWait(resourceGroupName: string, loadTestName: string, loadTestResource: LoadTestResource, options?: LoadTestsCreateOrUpdateOptionalParams): Promise; beginDelete(resourceGroupName: string, loadTestName: string, options?: LoadTestsDeleteOptionalParams): Promise, void>>; beginDeleteAndWait(resourceGroupName: string, loadTestName: string, options?: LoadTestsDeleteOptionalParams): Promise; - createOrUpdate(resourceGroupName: string, loadTestName: string, loadTestResource: LoadTestResource, options?: LoadTestsCreateOrUpdateOptionalParams): Promise; + beginUpdate(resourceGroupName: string, loadTestName: string, loadTestResourcePatchRequestBody: LoadTestResourcePatchRequestBody, options?: LoadTestsUpdateOptionalParams): Promise, LoadTestsUpdateResponse>>; + beginUpdateAndWait(resourceGroupName: string, loadTestName: string, loadTestResourcePatchRequestBody: LoadTestResourcePatchRequestBody, options?: LoadTestsUpdateOptionalParams): Promise; get(resourceGroupName: string, loadTestName: string, options?: LoadTestsGetOptionalParams): Promise; listByResourceGroup(resourceGroupName: string, options?: LoadTestsListByResourceGroupOptionalParams): PagedAsyncIterableIterator; listBySubscription(options?: LoadTestsListBySubscriptionOptionalParams): PagedAsyncIterableIterator; - update(resourceGroupName: string, loadTestName: string, loadTestResourcePatchRequestBody: LoadTestResourcePatchRequestBody, options?: LoadTestsUpdateOptionalParams): Promise; + listOutboundNetworkDependenciesEndpoints(resourceGroupName: string, loadTestName: string, options?: LoadTestsListOutboundNetworkDependenciesEndpointsOptionalParams): PagedAsyncIterableIterator; } // @public export interface LoadTestsCreateOrUpdateOptionalParams extends coreClient.OperationOptions { + resumeFrom?: string; + updateIntervalInMs?: number; } // @public @@ -191,13 +219,42 @@ export interface LoadTestsListBySubscriptionOptionalParams extends coreClient.Op // @public export type LoadTestsListBySubscriptionResponse = LoadTestResourcePageList; +// @public +export interface LoadTestsListOutboundNetworkDependenciesEndpointsNextOptionalParams extends coreClient.OperationOptions { +} + +// @public +export type LoadTestsListOutboundNetworkDependenciesEndpointsNextResponse = OutboundEnvironmentEndpointCollection; + +// @public +export interface LoadTestsListOutboundNetworkDependenciesEndpointsOptionalParams extends coreClient.OperationOptions { +} + +// @public +export type LoadTestsListOutboundNetworkDependenciesEndpointsResponse = OutboundEnvironmentEndpointCollection; + // @public export interface LoadTestsUpdateOptionalParams extends coreClient.OperationOptions { + resumeFrom?: string; + updateIntervalInMs?: number; } // @public export type LoadTestsUpdateResponse = LoadTestResource; +// @public +export interface ManagedServiceIdentity { + readonly principalId?: string; + readonly tenantId?: string; + type: ManagedServiceIdentityType; + userAssignedIdentities?: { + [propertyName: string]: UserAssignedIdentity; + }; +} + +// @public +export type ManagedServiceIdentityType = string; + // @public export interface Operation { readonly actionType?: ActionType; @@ -243,6 +300,80 @@ export type OperationsListResponse = OperationListResult; // @public export type Origin = string; +// @public +export interface OutboundEnvironmentEndpoint { + readonly category?: string; + readonly endpoints?: EndpointDependency[]; +} + +// @public +export interface OutboundEnvironmentEndpointCollection { + nextLink?: string; + readonly value?: OutboundEnvironmentEndpoint[]; +} + +// @public +export interface QuotaBucketRequest extends Resource { + currentQuota?: number; + currentUsage?: number; + dimensions?: QuotaBucketRequestPropertiesDimensions; + newQuota?: number; +} + +// @public +export interface QuotaBucketRequestPropertiesDimensions { + location?: string; + subscriptionId?: string; +} + +// @public +export interface QuotaResource extends Resource { + limit?: number; + readonly provisioningState?: ResourceState; + usage?: number; +} + +// @public +export interface QuotaResourceList { + readonly nextLink?: string; + readonly value?: QuotaResource[]; +} + +// @public +export interface Quotas { + checkAvailability(location: string, quotaBucketName: string, quotaBucketRequest: QuotaBucketRequest, options?: QuotasCheckAvailabilityOptionalParams): Promise; + get(location: string, quotaBucketName: string, options?: QuotasGetOptionalParams): Promise; + list(location: string, options?: QuotasListOptionalParams): PagedAsyncIterableIterator; +} + +// @public +export interface QuotasCheckAvailabilityOptionalParams extends coreClient.OperationOptions { +} + +// @public +export type QuotasCheckAvailabilityResponse = CheckQuotaAvailabilityResponse; + +// @public +export interface QuotasGetOptionalParams extends coreClient.OperationOptions { +} + +// @public +export type QuotasGetResponse = QuotaResource; + +// @public +export interface QuotasListNextOptionalParams extends coreClient.OperationOptions { +} + +// @public +export type QuotasListNextResponse = QuotaResourceList; + +// @public +export interface QuotasListOptionalParams extends coreClient.OperationOptions { +} + +// @public +export type QuotasListResponse = QuotaResourceList; + // @public export interface Resource { readonly id?: string; @@ -254,16 +385,6 @@ export interface Resource { // @public export type ResourceState = string; -// @public -export interface SystemAssignedServiceIdentity { - readonly principalId?: string; - readonly tenantId?: string; - type: SystemAssignedServiceIdentityType; -} - -// @public -export type SystemAssignedServiceIdentityType = string; - // @public export interface SystemData { createdAt?: Date; @@ -275,12 +396,21 @@ export interface SystemData { } // @public -export type TrackedResource = Resource & { +export interface TrackedResource extends Resource { + location: string; tags?: { [propertyName: string]: string; }; - location: string; -}; +} + +// @public +export type Type = string; + +// @public +export interface UserAssignedIdentity { + readonly clientId?: string; + readonly principalId?: string; +} // (No @packageDocumentation comment for this package) diff --git a/sdk/loadtestservice/arm-loadtestservice/src/loadTestClient.ts b/sdk/loadtestservice/arm-loadtestservice/src/loadTestClient.ts index e7343b59bc8b..312688951cf4 100644 --- a/sdk/loadtestservice/arm-loadtestservice/src/loadTestClient.ts +++ b/sdk/loadtestservice/arm-loadtestservice/src/loadTestClient.ts @@ -8,9 +8,14 @@ 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, LoadTestsImpl } from "./operations"; -import { Operations, LoadTests } from "./operationsInterfaces"; +import { OperationsImpl, QuotasImpl, LoadTestsImpl } from "./operations"; +import { Operations, Quotas, LoadTests } from "./operationsInterfaces"; import { LoadTestClientOptionalParams } from "./models"; export class LoadTestClient extends coreClient.ServiceClient { @@ -45,7 +50,7 @@ export class LoadTestClient extends coreClient.ServiceClient { credential: credentials }; - const packageDetails = `azsdk-js-arm-loadtestservice/1.0.0-beta.2`; + const packageDetails = `azsdk-js-arm-loadtestservice/1.0.0`; const userAgentPrefix = options.userAgentOptions && options.userAgentOptions.userAgentPrefix ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}` @@ -92,11 +97,42 @@ export class LoadTestClient extends coreClient.ServiceClient { // Assigning values to Constant parameters this.$host = options.$host || "https://management.azure.com"; - this.apiVersion = options.apiVersion || "2021-12-01-preview"; + this.apiVersion = options.apiVersion || "2022-12-01"; this.operations = new OperationsImpl(this); + this.quotas = new QuotasImpl(this); this.loadTests = new LoadTestsImpl(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; + quotas: Quotas; loadTests: LoadTests; } diff --git a/sdk/loadtestservice/arm-loadtestservice/src/models/index.ts b/sdk/loadtestservice/arm-loadtestservice/src/models/index.ts index bfcfc48d7fa0..1b75e2a3dd0b 100644 --- a/sdk/loadtestservice/arm-loadtestservice/src/models/index.ts +++ b/sdk/loadtestservice/arm-loadtestservice/src/models/index.ts @@ -121,28 +121,18 @@ export interface ErrorAdditionalInfo { readonly info?: Record; } -/** List of resources page result. */ -export interface LoadTestResourcePageList { - /** List of resources in current page. */ - value?: LoadTestResource[]; - /** Link to next page of resources. */ - nextLink?: string; -} - -/** Managed service identity (either system assigned, or none) */ -export interface SystemAssignedServiceIdentity { +/** A list of Quota Bucket details. It contains an URL link to get the next set of results. */ +export interface QuotaResourceList { /** - * The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity. + * List of Quota Bucket details by the loadtestservice resource provider * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly principalId?: string; + readonly value?: QuotaResource[]; /** - * The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity. + * URL to get the next set of Quota Bucket details results (if there are any). * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly tenantId?: string; - /** Type of managed service identity (either system assigned, or none). */ - type: SystemAssignedServiceIdentityType; + readonly nextLink?: string; } /** Common fields that are returned in the response for all Azure Resource Manager resources */ @@ -185,34 +175,180 @@ export interface SystemData { lastModifiedAt?: Date; } +/** Dimensions for new quota request of the quota bucket. */ +export interface QuotaBucketRequestPropertiesDimensions { + /** Subscription Id dimension for new quota request of the quota bucket. */ + subscriptionId?: string; + /** Location dimension for new quota request of the quota bucket. */ + location?: string; +} + +/** List of resources page result. */ +export interface LoadTestResourcePageList { + /** List of resources in current page. */ + value?: LoadTestResource[]; + /** Link to next page of resources. */ + nextLink?: string; +} + +/** Key and identity details for Customer Managed Key encryption of load test resource */ +export interface EncryptionProperties { + /** All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault. */ + identity?: EncryptionPropertiesIdentity; + /** key encryption key Url, versioned. Ex: https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or https://contosovault.vault.azure.net/keys/contosokek. */ + keyUrl?: string; +} + +/** All identity configuration for Customer-managed key settings defining which identity should be used to auth to Key Vault. */ +export interface EncryptionPropertiesIdentity { + /** Managed identity type to use for accessing encryption key Url */ + type?: Type; + /** user assigned identity to use for accessing key encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId */ + resourceId?: string; +} + +/** Managed service identity (system assigned and/or user assigned identities) */ +export interface ManagedServiceIdentity { + /** + * The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly principalId?: string; + /** + * The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly tenantId?: string; + /** Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed). */ + type: ManagedServiceIdentityType; + /** The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests. */ + userAssignedIdentities?: { [propertyName: string]: UserAssignedIdentity }; +} + +/** User assigned identity properties */ +export interface UserAssignedIdentity { + /** + * The principal ID of the assigned identity. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly principalId?: string; + /** + * The client ID of the assigned identity. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly clientId?: string; +} + /** LoadTest resource patch request body. */ export interface LoadTestResourcePatchRequestBody { /** Resource tags. */ tags?: Record; /** The type of identity used for the resource. */ - identity?: SystemAssignedServiceIdentity; - /** Load Test resource properties */ - properties?: LoadTestResourcePatchRequestBodyProperties; -} - -/** Load Test resource properties */ -export interface LoadTestResourcePatchRequestBodyProperties { + identity?: ManagedServiceIdentity; /** Description of the resource. */ description?: string; + /** CMK Encryption property. */ + encryption?: EncryptionProperties; +} + +/** Values returned by the List operation. */ +export interface OutboundEnvironmentEndpointCollection { + /** + * The collection of outbound network dependency endpoints returned by the listing operation. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly value?: OutboundEnvironmentEndpoint[]; + /** The continuation token. */ + nextLink?: string; +} + +/** A collection of related endpoints from the same service for which the Batch service requires outbound access. */ +export interface OutboundEnvironmentEndpoint { + /** + * The type of service that Azure Load Testing connects to. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly category?: string; + /** + * The endpoints for this service to which the Batch service makes outbound calls. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly endpoints?: EndpointDependency[]; +} + +/** A domain name and connection details used to access a dependency. */ +export interface EndpointDependency { + /** + * The domain name of the dependency. Domain names may be fully qualified or may contain a * wildcard. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly domainName?: string; + /** + * Human-readable supplemental information about the dependency and when it is applicable. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly description?: string; + /** + * The list of connection details for this endpoint. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly endpointDetails?: EndpointDetail[]; +} + +/** Details about the connection between the Batch service and the endpoint. */ +export interface EndpointDetail { + /** + * The port an endpoint is connected to. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly port?: number; +} + +/** Quota Bucket details */ +export interface QuotaResource extends Resource { + /** Quota Limit of the quota bucket. */ + limit?: number; + /** Current Usage of the quota bucket. */ + usage?: number; + /** + * Resource provisioning state. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly provisioningState?: ResourceState; +} + +/** Quota Bucket Request. */ +export interface QuotaBucketRequest extends Resource { + /** Current Usage of the quota bucket. */ + currentUsage?: number; + /** Current Quota of the quota bucket. */ + currentQuota?: number; + /** New Requested Quota of the quota bucket. */ + newQuota?: number; + /** Dimensions for new quota request of the quota bucket. */ + dimensions?: QuotaBucketRequestPropertiesDimensions; +} + +/** Check Quota Availability Response. */ +export interface CheckQuotaAvailabilityResponse extends Resource { + /** true if Quota is Available, else false. */ + isAvailable?: boolean; + /** availability Status of the quota bucket. */ + availabilityStatus?: string; } /** 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; -}; +} /** LoadTest details */ -export type LoadTestResource = TrackedResource & { +export interface LoadTestResource extends TrackedResource { /** The type of identity used for the resource. */ - identity?: SystemAssignedServiceIdentity; + identity?: ManagedServiceIdentity; /** Description of the resource. */ description?: string; /** @@ -225,12 +361,17 @@ export type LoadTestResource = TrackedResource & { * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly dataPlaneURI?: string; -}; + /** CMK Encryption property. */ + encryption?: EncryptionProperties; +} /** Known values of {@link Origin} that the service accepts. */ export enum KnownOrigin { + /** User */ User = "user", + /** System */ System = "system", + /** UserSystem */ UserSystem = "user,system" } @@ -247,6 +388,7 @@ export type Origin = string; /** Known values of {@link ActionType} that the service accepts. */ export enum KnownActionType { + /** Internal */ Internal = "Internal" } @@ -261,9 +403,13 @@ export type ActionType = string; /** Known values of {@link ResourceState} that the service accepts. */ export enum KnownResourceState { + /** Succeeded */ Succeeded = "Succeeded", + /** Failed */ Failed = "Failed", + /** Canceled */ Canceled = "Canceled", + /** Deleted */ Deleted = "Deleted" } @@ -279,27 +425,15 @@ export enum KnownResourceState { */ export type ResourceState = string; -/** Known values of {@link SystemAssignedServiceIdentityType} that the service accepts. */ -export enum KnownSystemAssignedServiceIdentityType { - None = "None", - SystemAssigned = "SystemAssigned" -} - -/** - * Defines values for SystemAssignedServiceIdentityType. \ - * {@link KnownSystemAssignedServiceIdentityType} can be used interchangeably with SystemAssignedServiceIdentityType, - * this enum contains the known values that the service supports. - * ### Known values supported by the service - * **None** \ - * **SystemAssigned** - */ -export type SystemAssignedServiceIdentityType = string; - /** Known values of {@link CreatedByType} that the service accepts. */ export enum KnownCreatedByType { + /** User */ User = "User", + /** Application */ Application = "Application", + /** ManagedIdentity */ ManagedIdentity = "ManagedIdentity", + /** Key */ Key = "Key" } @@ -315,6 +449,48 @@ export enum KnownCreatedByType { */ export type CreatedByType = string; +/** Known values of {@link Type} that the service accepts. */ +export enum KnownType { + /** SystemAssigned */ + SystemAssigned = "SystemAssigned", + /** UserAssigned */ + UserAssigned = "UserAssigned" +} + +/** + * Defines values for Type. \ + * {@link KnownType} can be used interchangeably with Type, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **SystemAssigned** \ + * **UserAssigned** + */ +export type Type = string; + +/** Known values of {@link ManagedServiceIdentityType} that the service accepts. */ +export enum KnownManagedServiceIdentityType { + /** None */ + None = "None", + /** SystemAssigned */ + SystemAssigned = "SystemAssigned", + /** UserAssigned */ + UserAssigned = "UserAssigned", + /** SystemAssignedUserAssigned */ + SystemAssignedUserAssigned = "SystemAssigned,UserAssigned" +} + +/** + * Defines values for ManagedServiceIdentityType. \ + * {@link KnownManagedServiceIdentityType} can be used interchangeably with ManagedServiceIdentityType, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **None** \ + * **SystemAssigned** \ + * **UserAssigned** \ + * **SystemAssigned,UserAssigned** + */ +export type ManagedServiceIdentityType = string; + /** Optional parameters. */ export interface OperationsListOptionalParams extends coreClient.OperationOptions {} @@ -329,6 +505,32 @@ export interface OperationsListNextOptionalParams /** Contains response data for the listNext operation. */ export type OperationsListNextResponse = OperationListResult; +/** Optional parameters. */ +export interface QuotasListOptionalParams extends coreClient.OperationOptions {} + +/** Contains response data for the list operation. */ +export type QuotasListResponse = QuotaResourceList; + +/** Optional parameters. */ +export interface QuotasGetOptionalParams extends coreClient.OperationOptions {} + +/** Contains response data for the get operation. */ +export type QuotasGetResponse = QuotaResource; + +/** Optional parameters. */ +export interface QuotasCheckAvailabilityOptionalParams + extends coreClient.OperationOptions {} + +/** Contains response data for the checkAvailability operation. */ +export type QuotasCheckAvailabilityResponse = CheckQuotaAvailabilityResponse; + +/** Optional parameters. */ +export interface QuotasListNextOptionalParams + extends coreClient.OperationOptions {} + +/** Contains response data for the listNext operation. */ +export type QuotasListNextResponse = QuotaResourceList; + /** Optional parameters. */ export interface LoadTestsListBySubscriptionOptionalParams extends coreClient.OperationOptions {} @@ -352,14 +554,24 @@ export type LoadTestsGetResponse = LoadTestResource; /** Optional parameters. */ export interface LoadTestsCreateOrUpdateOptionalParams - extends coreClient.OperationOptions {} + extends coreClient.OperationOptions { + /** Delay to wait until next poll, in milliseconds. */ + updateIntervalInMs?: number; + /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */ + resumeFrom?: string; +} /** Contains response data for the createOrUpdate operation. */ export type LoadTestsCreateOrUpdateResponse = LoadTestResource; /** Optional parameters. */ export interface LoadTestsUpdateOptionalParams - extends coreClient.OperationOptions {} + extends coreClient.OperationOptions { + /** Delay to wait until next poll, in milliseconds. */ + updateIntervalInMs?: number; + /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */ + resumeFrom?: string; +} /** Contains response data for the update operation. */ export type LoadTestsUpdateResponse = LoadTestResource; @@ -373,6 +585,13 @@ export interface LoadTestsDeleteOptionalParams resumeFrom?: string; } +/** Optional parameters. */ +export interface LoadTestsListOutboundNetworkDependenciesEndpointsOptionalParams + extends coreClient.OperationOptions {} + +/** Contains response data for the listOutboundNetworkDependenciesEndpoints operation. */ +export type LoadTestsListOutboundNetworkDependenciesEndpointsResponse = OutboundEnvironmentEndpointCollection; + /** Optional parameters. */ export interface LoadTestsListBySubscriptionNextOptionalParams extends coreClient.OperationOptions {} @@ -387,6 +606,13 @@ export interface LoadTestsListByResourceGroupNextOptionalParams /** Contains response data for the listByResourceGroupNext operation. */ export type LoadTestsListByResourceGroupNextResponse = LoadTestResourcePageList; +/** Optional parameters. */ +export interface LoadTestsListOutboundNetworkDependenciesEndpointsNextOptionalParams + extends coreClient.OperationOptions {} + +/** Contains response data for the listOutboundNetworkDependenciesEndpointsNext operation. */ +export type LoadTestsListOutboundNetworkDependenciesEndpointsNextResponse = OutboundEnvironmentEndpointCollection; + /** Optional parameters. */ export interface LoadTestClientOptionalParams extends coreClient.ServiceClientOptions { diff --git a/sdk/loadtestservice/arm-loadtestservice/src/models/mappers.ts b/sdk/loadtestservice/arm-loadtestservice/src/models/mappers.ts index 5634c0043bdd..ca8743135b31 100644 --- a/sdk/loadtestservice/arm-loadtestservice/src/models/mappers.ts +++ b/sdk/loadtestservice/arm-loadtestservice/src/models/mappers.ts @@ -214,55 +214,27 @@ export const ErrorAdditionalInfo: coreClient.CompositeMapper = { } }; -export const LoadTestResourcePageList: coreClient.CompositeMapper = { +export const QuotaResourceList: coreClient.CompositeMapper = { type: { name: "Composite", - className: "LoadTestResourcePageList", + className: "QuotaResourceList", modelProperties: { value: { serializedName: "value", + readOnly: true, type: { name: "Sequence", element: { type: { name: "Composite", - className: "LoadTestResource" + className: "QuotaResource" } } } }, nextLink: { serializedName: "nextLink", - type: { - name: "String" - } - } - } - } -}; - -export const SystemAssignedServiceIdentity: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "SystemAssignedServiceIdentity", - modelProperties: { - principalId: { - serializedName: "principalId", readOnly: true, - type: { - name: "Uuid" - } - }, - tenantId: { - serializedName: "tenantId", - readOnly: true, - type: { - name: "Uuid" - } - }, - type: { - serializedName: "type", - required: true, type: { name: "String" } @@ -353,6 +325,165 @@ export const SystemData: coreClient.CompositeMapper = { } }; +export const QuotaBucketRequestPropertiesDimensions: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "QuotaBucketRequestPropertiesDimensions", + modelProperties: { + subscriptionId: { + constraints: { + MinLength: 1 + }, + serializedName: "subscriptionId", + type: { + name: "String" + } + }, + location: { + constraints: { + MinLength: 1 + }, + serializedName: "location", + type: { + name: "String" + } + } + } + } +}; + +export const LoadTestResourcePageList: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "LoadTestResourcePageList", + modelProperties: { + value: { + serializedName: "value", + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "LoadTestResource" + } + } + } + }, + nextLink: { + serializedName: "nextLink", + type: { + name: "String" + } + } + } + } +}; + +export const EncryptionProperties: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "EncryptionProperties", + modelProperties: { + identity: { + serializedName: "identity", + type: { + name: "Composite", + className: "EncryptionPropertiesIdentity" + } + }, + keyUrl: { + serializedName: "keyUrl", + type: { + name: "String" + } + } + } + } +}; + +export const EncryptionPropertiesIdentity: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "EncryptionPropertiesIdentity", + modelProperties: { + type: { + serializedName: "type", + type: { + name: "String" + } + }, + resourceId: { + serializedName: "resourceId", + type: { + name: "String" + } + } + } + } +}; + +export const ManagedServiceIdentity: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "ManagedServiceIdentity", + modelProperties: { + principalId: { + serializedName: "principalId", + readOnly: true, + type: { + name: "Uuid" + } + }, + tenantId: { + serializedName: "tenantId", + readOnly: true, + type: { + name: "Uuid" + } + }, + type: { + serializedName: "type", + required: true, + type: { + name: "String" + } + }, + userAssignedIdentities: { + serializedName: "userAssignedIdentities", + type: { + name: "Dictionary", + value: { + type: { name: "Composite", className: "UserAssignedIdentity" } + } + } + } + } + } +}; + +export const UserAssignedIdentity: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "UserAssignedIdentity", + modelProperties: { + principalId: { + serializedName: "principalId", + readOnly: true, + type: { + name: "Uuid" + } + }, + clientId: { + serializedName: "clientId", + readOnly: true, + type: { + name: "Uuid" + } + } + } + } +}; + export const LoadTestResourcePatchRequestBody: coreClient.CompositeMapper = { type: { name: "Composite", @@ -369,30 +500,231 @@ export const LoadTestResourcePatchRequestBody: coreClient.CompositeMapper = { serializedName: "identity", type: { name: "Composite", - className: "SystemAssignedServiceIdentity" + className: "ManagedServiceIdentity" + } + }, + description: { + constraints: { + MaxLength: 512 + }, + serializedName: "properties.description", + type: { + name: "String" } }, - properties: { - serializedName: "properties", + encryption: { + serializedName: "properties.encryption", type: { name: "Composite", - className: "LoadTestResourcePatchRequestBodyProperties" + className: "EncryptionProperties" + } + } + } + } +}; + +export const OutboundEnvironmentEndpointCollection: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "OutboundEnvironmentEndpointCollection", + modelProperties: { + value: { + serializedName: "value", + readOnly: true, + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "OutboundEnvironmentEndpoint" + } + } + } + }, + nextLink: { + serializedName: "nextLink", + type: { + name: "String" + } + } + } + } +}; + +export const OutboundEnvironmentEndpoint: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "OutboundEnvironmentEndpoint", + modelProperties: { + category: { + serializedName: "category", + readOnly: true, + type: { + name: "String" + } + }, + endpoints: { + serializedName: "endpoints", + readOnly: true, + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "EndpointDependency" + } + } } } } } }; -export const LoadTestResourcePatchRequestBodyProperties: coreClient.CompositeMapper = { +export const EndpointDependency: coreClient.CompositeMapper = { type: { name: "Composite", - className: "LoadTestResourcePatchRequestBodyProperties", + className: "EndpointDependency", modelProperties: { + domainName: { + serializedName: "domainName", + readOnly: true, + type: { + name: "String" + } + }, description: { + serializedName: "description", + readOnly: true, + type: { + name: "String" + } + }, + endpointDetails: { + serializedName: "endpointDetails", + readOnly: true, + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "EndpointDetail" + } + } + } + } + } + } +}; + +export const EndpointDetail: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "EndpointDetail", + modelProperties: { + port: { + serializedName: "port", + readOnly: true, + type: { + name: "Number" + } + } + } + } +}; + +export const QuotaResource: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "QuotaResource", + modelProperties: { + ...Resource.type.modelProperties, + limit: { constraints: { - MaxLength: 512 + InclusiveMinimum: 0 }, - serializedName: "description", + serializedName: "properties.limit", + type: { + name: "Number" + } + }, + usage: { + constraints: { + InclusiveMinimum: 0 + }, + serializedName: "properties.usage", + type: { + name: "Number" + } + }, + provisioningState: { + serializedName: "properties.provisioningState", + readOnly: true, + type: { + name: "String" + } + } + } + } +}; + +export const QuotaBucketRequest: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "QuotaBucketRequest", + modelProperties: { + ...Resource.type.modelProperties, + currentUsage: { + constraints: { + InclusiveMinimum: 0 + }, + serializedName: "properties.currentUsage", + type: { + name: "Number" + } + }, + currentQuota: { + constraints: { + InclusiveMinimum: 0 + }, + serializedName: "properties.currentQuota", + type: { + name: "Number" + } + }, + newQuota: { + constraints: { + InclusiveMinimum: 0 + }, + serializedName: "properties.newQuota", + type: { + name: "Number" + } + }, + dimensions: { + serializedName: "properties.dimensions", + type: { + name: "Composite", + className: "QuotaBucketRequestPropertiesDimensions" + } + } + } + } +}; + +export const CheckQuotaAvailabilityResponse: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "CheckQuotaAvailabilityResponse", + modelProperties: { + ...Resource.type.modelProperties, + isAvailable: { + serializedName: "properties.isAvailable", + type: { + name: "Boolean" + } + }, + availabilityStatus: { + serializedName: "properties.availabilityStatus", type: { name: "String" } @@ -435,7 +767,7 @@ export const LoadTestResource: coreClient.CompositeMapper = { serializedName: "identity", type: { name: "Composite", - className: "SystemAssignedServiceIdentity" + className: "ManagedServiceIdentity" } }, description: { @@ -463,6 +795,13 @@ export const LoadTestResource: coreClient.CompositeMapper = { type: { name: "String" } + }, + encryption: { + serializedName: "properties.encryption", + type: { + name: "Composite", + className: "EncryptionProperties" + } } } } diff --git a/sdk/loadtestservice/arm-loadtestservice/src/models/parameters.ts b/sdk/loadtestservice/arm-loadtestservice/src/models/parameters.ts index 606e293f1fd1..2e74e8860d2f 100644 --- a/sdk/loadtestservice/arm-loadtestservice/src/models/parameters.ts +++ b/sdk/loadtestservice/arm-loadtestservice/src/models/parameters.ts @@ -12,6 +12,7 @@ import { OperationQueryParameter } from "@azure/core-client"; import { + QuotaBucketRequest as QuotaBucketRequestMapper, LoadTestResource as LoadTestResourceMapper, LoadTestResourcePatchRequestBody as LoadTestResourcePatchRequestBodyMapper } from "../models/mappers"; @@ -43,7 +44,7 @@ export const $host: OperationURLParameter = { export const apiVersion: OperationQueryParameter = { parameterPath: "apiVersion", mapper: { - defaultValue: "2021-12-01-preview", + defaultValue: "2022-12-01", isConstant: true, serializedName: "api-version", type: { @@ -78,14 +79,13 @@ export const subscriptionId: OperationURLParameter = { } }; -export const resourceGroupName: OperationURLParameter = { - parameterPath: "resourceGroupName", +export const location: OperationURLParameter = { + parameterPath: "location", mapper: { constraints: { - MaxLength: 90, MinLength: 1 }, - serializedName: "resourceGroupName", + serializedName: "location", required: true, type: { name: "String" @@ -93,10 +93,10 @@ export const resourceGroupName: OperationURLParameter = { } }; -export const loadTestName: OperationURLParameter = { - parameterPath: "loadTestName", +export const quotaBucketName: OperationURLParameter = { + parameterPath: "quotaBucketName", mapper: { - serializedName: "loadTestName", + serializedName: "quotaBucketName", required: true, type: { name: "String" @@ -116,6 +116,37 @@ export const contentType: OperationParameter = { } }; +export const quotaBucketRequest: OperationParameter = { + parameterPath: "quotaBucketRequest", + mapper: QuotaBucketRequestMapper +}; + +export const resourceGroupName: OperationURLParameter = { + parameterPath: "resourceGroupName", + mapper: { + constraints: { + MaxLength: 90, + MinLength: 1 + }, + serializedName: "resourceGroupName", + required: true, + type: { + name: "String" + } + } +}; + +export const loadTestName: OperationURLParameter = { + parameterPath: "loadTestName", + mapper: { + serializedName: "loadTestName", + required: true, + type: { + name: "String" + } + } +}; + export const loadTestResource: OperationParameter = { parameterPath: "loadTestResource", mapper: LoadTestResourceMapper diff --git a/sdk/loadtestservice/arm-loadtestservice/src/operations/index.ts b/sdk/loadtestservice/arm-loadtestservice/src/operations/index.ts index 8a5be7b40018..a132021589c9 100644 --- a/sdk/loadtestservice/arm-loadtestservice/src/operations/index.ts +++ b/sdk/loadtestservice/arm-loadtestservice/src/operations/index.ts @@ -7,4 +7,5 @@ */ export * from "./operations"; +export * from "./quotas"; export * from "./loadTests"; diff --git a/sdk/loadtestservice/arm-loadtestservice/src/operations/loadTests.ts b/sdk/loadtestservice/arm-loadtestservice/src/operations/loadTests.ts index f6dc792bd59f..6f42cf3ed94a 100644 --- a/sdk/loadtestservice/arm-loadtestservice/src/operations/loadTests.ts +++ b/sdk/loadtestservice/arm-loadtestservice/src/operations/loadTests.ts @@ -20,6 +20,9 @@ import { LoadTestsListBySubscriptionOptionalParams, LoadTestsListByResourceGroupNextOptionalParams, LoadTestsListByResourceGroupOptionalParams, + OutboundEnvironmentEndpoint, + LoadTestsListOutboundNetworkDependenciesEndpointsNextOptionalParams, + LoadTestsListOutboundNetworkDependenciesEndpointsOptionalParams, LoadTestsListBySubscriptionResponse, LoadTestsListByResourceGroupResponse, LoadTestsGetOptionalParams, @@ -30,8 +33,10 @@ import { LoadTestsUpdateOptionalParams, LoadTestsUpdateResponse, LoadTestsDeleteOptionalParams, + LoadTestsListOutboundNetworkDependenciesEndpointsResponse, LoadTestsListBySubscriptionNextResponse, - LoadTestsListByResourceGroupNextResponse + LoadTestsListByResourceGroupNextResponse, + LoadTestsListOutboundNetworkDependenciesEndpointsNextResponse } from "../models"; /// @@ -142,6 +147,77 @@ export class LoadTestsImpl implements LoadTests { } } + /** + * Lists the endpoints that agents may call as part of load testing. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param loadTestName Load Test name. + * @param options The options parameters. + */ + public listOutboundNetworkDependenciesEndpoints( + resourceGroupName: string, + loadTestName: string, + options?: LoadTestsListOutboundNetworkDependenciesEndpointsOptionalParams + ): PagedAsyncIterableIterator { + const iter = this.listOutboundNetworkDependenciesEndpointsPagingAll( + resourceGroupName, + loadTestName, + options + ); + return { + next() { + return iter.next(); + }, + [Symbol.asyncIterator]() { + return this; + }, + byPage: () => { + return this.listOutboundNetworkDependenciesEndpointsPagingPage( + resourceGroupName, + loadTestName, + options + ); + } + }; + } + + private async *listOutboundNetworkDependenciesEndpointsPagingPage( + resourceGroupName: string, + loadTestName: string, + options?: LoadTestsListOutboundNetworkDependenciesEndpointsOptionalParams + ): AsyncIterableIterator { + let result = await this._listOutboundNetworkDependenciesEndpoints( + resourceGroupName, + loadTestName, + options + ); + yield result.value || []; + let continuationToken = result.nextLink; + while (continuationToken) { + result = await this._listOutboundNetworkDependenciesEndpointsNext( + resourceGroupName, + loadTestName, + continuationToken, + options + ); + continuationToken = result.nextLink; + yield result.value || []; + } + } + + private async *listOutboundNetworkDependenciesEndpointsPagingAll( + resourceGroupName: string, + loadTestName: string, + options?: LoadTestsListOutboundNetworkDependenciesEndpointsOptionalParams + ): AsyncIterableIterator { + for await (const page of this.listOutboundNetworkDependenciesEndpointsPagingPage( + resourceGroupName, + loadTestName, + options + )) { + yield* page; + } + } + /** * Lists loadtests resources in a subscription. * @param options The options parameters. @@ -194,16 +270,90 @@ export class LoadTestsImpl implements LoadTests { * @param loadTestResource LoadTest resource data * @param options The options parameters. */ - createOrUpdate( + async beginCreateOrUpdate( resourceGroupName: string, loadTestName: string, loadTestResource: LoadTestResource, options?: LoadTestsCreateOrUpdateOptionalParams - ): Promise { - return this.client.sendOperationRequest( + ): Promise< + PollerLike< + PollOperationState, + LoadTestsCreateOrUpdateResponse + > + > { + const directSendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ): Promise => { + return this.client.sendOperationRequest(args, spec); + }; + const sendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ) => { + let currentRawResponse: + | coreClient.FullOperationResponse + | undefined = undefined; + const providedCallback = args.options?.onResponse; + const callback: coreClient.RawResponseCallback = ( + rawResponse: coreClient.FullOperationResponse, + flatResponse: unknown + ) => { + currentRawResponse = rawResponse; + providedCallback?.(rawResponse, flatResponse); + }; + const updatedArgs = { + ...args, + options: { + ...args.options, + onResponse: callback + } + }; + const flatResponse = await directSendOperation(updatedArgs, spec); + return { + flatResponse, + rawResponse: { + statusCode: currentRawResponse!.status, + body: currentRawResponse!.parsedBody, + headers: currentRawResponse!.headers.toJSON() + } + }; + }; + + const lro = new LroImpl( + sendOperation, { resourceGroupName, loadTestName, loadTestResource, options }, createOrUpdateOperationSpec ); + const poller = new LroEngine(lro, { + resumeFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs, + lroResourceLocationConfig: "azure-async-operation" + }); + await poller.poll(); + return poller; + } + + /** + * Create or update LoadTest resource. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param loadTestName Load Test name. + * @param loadTestResource LoadTest resource data + * @param options The options parameters. + */ + async beginCreateOrUpdateAndWait( + resourceGroupName: string, + loadTestName: string, + loadTestResource: LoadTestResource, + options?: LoadTestsCreateOrUpdateOptionalParams + ): Promise { + const poller = await this.beginCreateOrUpdate( + resourceGroupName, + loadTestName, + loadTestResource, + options + ); + return poller.pollUntilDone(); } /** @@ -213,13 +363,58 @@ export class LoadTestsImpl implements LoadTests { * @param loadTestResourcePatchRequestBody LoadTest resource update data * @param options The options parameters. */ - update( + async beginUpdate( resourceGroupName: string, loadTestName: string, loadTestResourcePatchRequestBody: LoadTestResourcePatchRequestBody, options?: LoadTestsUpdateOptionalParams - ): Promise { - return this.client.sendOperationRequest( + ): Promise< + PollerLike< + PollOperationState, + LoadTestsUpdateResponse + > + > { + const directSendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ): Promise => { + return this.client.sendOperationRequest(args, spec); + }; + const sendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ) => { + let currentRawResponse: + | coreClient.FullOperationResponse + | undefined = undefined; + const providedCallback = args.options?.onResponse; + const callback: coreClient.RawResponseCallback = ( + rawResponse: coreClient.FullOperationResponse, + flatResponse: unknown + ) => { + currentRawResponse = rawResponse; + providedCallback?.(rawResponse, flatResponse); + }; + const updatedArgs = { + ...args, + options: { + ...args.options, + onResponse: callback + } + }; + const flatResponse = await directSendOperation(updatedArgs, spec); + return { + flatResponse, + rawResponse: { + statusCode: currentRawResponse!.status, + body: currentRawResponse!.parsedBody, + headers: currentRawResponse!.headers.toJSON() + } + }; + }; + + const lro = new LroImpl( + sendOperation, { resourceGroupName, loadTestName, @@ -228,6 +423,35 @@ export class LoadTestsImpl implements LoadTests { }, updateOperationSpec ); + const poller = new LroEngine(lro, { + resumeFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs, + lroResourceLocationConfig: "azure-async-operation" + }); + await poller.poll(); + return poller; + } + + /** + * Update a loadtest resource. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param loadTestName Load Test name. + * @param loadTestResourcePatchRequestBody LoadTest resource update data + * @param options The options parameters. + */ + async beginUpdateAndWait( + resourceGroupName: string, + loadTestName: string, + loadTestResourcePatchRequestBody: LoadTestResourcePatchRequestBody, + options?: LoadTestsUpdateOptionalParams + ): Promise { + const poller = await this.beginUpdate( + resourceGroupName, + loadTestName, + loadTestResourcePatchRequestBody, + options + ); + return poller.pollUntilDone(); } /** @@ -287,7 +511,8 @@ export class LoadTestsImpl implements LoadTests { ); const poller = new LroEngine(lro, { resumeFrom: options?.resumeFrom, - intervalInMs: options?.updateIntervalInMs + intervalInMs: options?.updateIntervalInMs, + lroResourceLocationConfig: "location" }); await poller.poll(); return poller; @@ -312,6 +537,23 @@ export class LoadTestsImpl implements LoadTests { return poller.pollUntilDone(); } + /** + * Lists the endpoints that agents may call as part of load testing. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param loadTestName Load Test name. + * @param options The options parameters. + */ + private _listOutboundNetworkDependenciesEndpoints( + resourceGroupName: string, + loadTestName: string, + options?: LoadTestsListOutboundNetworkDependenciesEndpointsOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { resourceGroupName, loadTestName, options }, + listOutboundNetworkDependenciesEndpointsOperationSpec + ); + } + /** * ListBySubscriptionNext * @param nextLink The nextLink from the previous successful call to the ListBySubscription method. @@ -343,6 +585,26 @@ export class LoadTestsImpl implements LoadTests { listByResourceGroupNextOperationSpec ); } + + /** + * ListOutboundNetworkDependenciesEndpointsNext + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param loadTestName Load Test name. + * @param nextLink The nextLink from the previous successful call to the + * ListOutboundNetworkDependenciesEndpoints method. + * @param options The options parameters. + */ + private _listOutboundNetworkDependenciesEndpointsNext( + resourceGroupName: string, + loadTestName: string, + nextLink: string, + options?: LoadTestsListOutboundNetworkDependenciesEndpointsNextOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { resourceGroupName, loadTestName, nextLink, options }, + listOutboundNetworkDependenciesEndpointsNextOperationSpec + ); + } } // Operation Specifications const serializer = coreClient.createSerializer(Mappers, /* isXml */ false); @@ -415,6 +677,15 @@ const createOrUpdateOperationSpec: coreClient.OperationSpec = { 200: { bodyMapper: Mappers.LoadTestResource }, + 201: { + bodyMapper: Mappers.LoadTestResource + }, + 202: { + bodyMapper: Mappers.LoadTestResource + }, + 204: { + bodyMapper: Mappers.LoadTestResource + }, default: { bodyMapper: Mappers.ErrorResponse } @@ -439,6 +710,15 @@ const updateOperationSpec: coreClient.OperationSpec = { 200: { bodyMapper: Mappers.LoadTestResource }, + 201: { + bodyMapper: Mappers.LoadTestResource + }, + 202: { + bodyMapper: Mappers.LoadTestResource + }, + 204: { + bodyMapper: Mappers.LoadTestResource + }, default: { bodyMapper: Mappers.ErrorResponse } @@ -478,6 +758,28 @@ const deleteOperationSpec: coreClient.OperationSpec = { headerParameters: [Parameters.accept], serializer }; +const listOutboundNetworkDependenciesEndpointsOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.LoadTestService/loadTests/{loadTestName}/outboundNetworkDependenciesEndpoints", + httpMethod: "GET", + responses: { + 200: { + bodyMapper: Mappers.OutboundEnvironmentEndpointCollection + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.loadTestName + ], + headerParameters: [Parameters.accept], + serializer +}; const listBySubscriptionNextOperationSpec: coreClient.OperationSpec = { path: "{nextLink}", httpMethod: "GET", @@ -519,3 +821,25 @@ const listByResourceGroupNextOperationSpec: coreClient.OperationSpec = { headerParameters: [Parameters.accept], serializer }; +const listOutboundNetworkDependenciesEndpointsNextOperationSpec: coreClient.OperationSpec = { + path: "{nextLink}", + httpMethod: "GET", + responses: { + 200: { + bodyMapper: Mappers.OutboundEnvironmentEndpointCollection + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.nextLink, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.loadTestName + ], + headerParameters: [Parameters.accept], + serializer +}; diff --git a/sdk/loadtestservice/arm-loadtestservice/src/operations/quotas.ts b/sdk/loadtestservice/arm-loadtestservice/src/operations/quotas.ts new file mode 100644 index 000000000000..304258765553 --- /dev/null +++ b/sdk/loadtestservice/arm-loadtestservice/src/operations/quotas.ts @@ -0,0 +1,245 @@ +/* + * 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 { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { Quotas } from "../operationsInterfaces"; +import * as coreClient from "@azure/core-client"; +import * as Mappers from "../models/mappers"; +import * as Parameters from "../models/parameters"; +import { LoadTestClient } from "../loadTestClient"; +import { + QuotaResource, + QuotasListNextOptionalParams, + QuotasListOptionalParams, + QuotasListResponse, + QuotasGetOptionalParams, + QuotasGetResponse, + QuotaBucketRequest, + QuotasCheckAvailabilityOptionalParams, + QuotasCheckAvailabilityResponse, + QuotasListNextResponse +} from "../models"; + +/// +/** Class containing Quotas operations. */ +export class QuotasImpl implements Quotas { + private readonly client: LoadTestClient; + + /** + * Initialize a new instance of the class Quotas class. + * @param client Reference to the service client + */ + constructor(client: LoadTestClient) { + this.client = client; + } + + /** + * Lists all the available quota per region per subscription. + * @param location The name of Azure region. + * @param options The options parameters. + */ + public list( + location: string, + options?: QuotasListOptionalParams + ): PagedAsyncIterableIterator { + const iter = this.listPagingAll(location, options); + return { + next() { + return iter.next(); + }, + [Symbol.asyncIterator]() { + return this; + }, + byPage: () => { + return this.listPagingPage(location, options); + } + }; + } + + private async *listPagingPage( + location: string, + options?: QuotasListOptionalParams + ): AsyncIterableIterator { + let result = await this._list(location, options); + yield result.value || []; + let continuationToken = result.nextLink; + while (continuationToken) { + result = await this._listNext(location, continuationToken, options); + continuationToken = result.nextLink; + yield result.value || []; + } + } + + private async *listPagingAll( + location: string, + options?: QuotasListOptionalParams + ): AsyncIterableIterator { + for await (const page of this.listPagingPage(location, options)) { + yield* page; + } + } + + /** + * Lists all the available quota per region per subscription. + * @param location The name of Azure region. + * @param options The options parameters. + */ + private _list( + location: string, + options?: QuotasListOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { location, options }, + listOperationSpec + ); + } + + /** + * Get the available quota for a quota bucket per region per subscription. + * @param location The name of Azure region. + * @param quotaBucketName Quota Bucket name. + * @param options The options parameters. + */ + get( + location: string, + quotaBucketName: string, + options?: QuotasGetOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { location, quotaBucketName, options }, + getOperationSpec + ); + } + + /** + * Check Quota Availability on quota bucket per region per subscription. + * @param location The name of Azure region. + * @param quotaBucketName Quota Bucket name. + * @param quotaBucketRequest Quota Bucket Request data + * @param options The options parameters. + */ + checkAvailability( + location: string, + quotaBucketName: string, + quotaBucketRequest: QuotaBucketRequest, + options?: QuotasCheckAvailabilityOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { location, quotaBucketName, quotaBucketRequest, options }, + checkAvailabilityOperationSpec + ); + } + + /** + * ListNext + * @param location The name of Azure region. + * @param nextLink The nextLink from the previous successful call to the List method. + * @param options The options parameters. + */ + private _listNext( + location: string, + nextLink: string, + options?: QuotasListNextOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { location, nextLink, options }, + listNextOperationSpec + ); + } +} +// Operation Specifications +const serializer = coreClient.createSerializer(Mappers, /* isXml */ false); + +const listOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/providers/Microsoft.LoadTestService/locations/{location}/quotas", + httpMethod: "GET", + responses: { + 200: { + bodyMapper: Mappers.QuotaResourceList + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.location + ], + headerParameters: [Parameters.accept], + serializer +}; +const getOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/providers/Microsoft.LoadTestService/locations/{location}/quotas/{quotaBucketName}", + httpMethod: "GET", + responses: { + 200: { + bodyMapper: Mappers.QuotaResource + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.location, + Parameters.quotaBucketName + ], + headerParameters: [Parameters.accept], + serializer +}; +const checkAvailabilityOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/providers/Microsoft.LoadTestService/locations/{location}/quotas/{quotaBucketName}/checkAvailability", + httpMethod: "POST", + responses: { + 200: { + bodyMapper: Mappers.CheckQuotaAvailabilityResponse + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + requestBody: Parameters.quotaBucketRequest, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.location, + Parameters.quotaBucketName + ], + headerParameters: [Parameters.accept, Parameters.contentType], + mediaType: "json", + serializer +}; +const listNextOperationSpec: coreClient.OperationSpec = { + path: "{nextLink}", + httpMethod: "GET", + responses: { + 200: { + bodyMapper: Mappers.QuotaResourceList + }, + default: { + bodyMapper: Mappers.ErrorResponse + } + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.nextLink, + Parameters.subscriptionId, + Parameters.location + ], + headerParameters: [Parameters.accept], + serializer +}; diff --git a/sdk/loadtestservice/arm-loadtestservice/src/operationsInterfaces/index.ts b/sdk/loadtestservice/arm-loadtestservice/src/operationsInterfaces/index.ts index 8a5be7b40018..a132021589c9 100644 --- a/sdk/loadtestservice/arm-loadtestservice/src/operationsInterfaces/index.ts +++ b/sdk/loadtestservice/arm-loadtestservice/src/operationsInterfaces/index.ts @@ -7,4 +7,5 @@ */ export * from "./operations"; +export * from "./quotas"; export * from "./loadTests"; diff --git a/sdk/loadtestservice/arm-loadtestservice/src/operationsInterfaces/loadTests.ts b/sdk/loadtestservice/arm-loadtestservice/src/operationsInterfaces/loadTests.ts index 3d222e890f40..cf8b423855e2 100644 --- a/sdk/loadtestservice/arm-loadtestservice/src/operationsInterfaces/loadTests.ts +++ b/sdk/loadtestservice/arm-loadtestservice/src/operationsInterfaces/loadTests.ts @@ -12,6 +12,8 @@ import { LoadTestResource, LoadTestsListBySubscriptionOptionalParams, LoadTestsListByResourceGroupOptionalParams, + OutboundEnvironmentEndpoint, + LoadTestsListOutboundNetworkDependenciesEndpointsOptionalParams, LoadTestsGetOptionalParams, LoadTestsGetResponse, LoadTestsCreateOrUpdateOptionalParams, @@ -41,6 +43,17 @@ export interface LoadTests { resourceGroupName: string, options?: LoadTestsListByResourceGroupOptionalParams ): PagedAsyncIterableIterator; + /** + * Lists the endpoints that agents may call as part of load testing. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param loadTestName Load Test name. + * @param options The options parameters. + */ + listOutboundNetworkDependenciesEndpoints( + resourceGroupName: string, + loadTestName: string, + options?: LoadTestsListOutboundNetworkDependenciesEndpointsOptionalParams + ): PagedAsyncIterableIterator; /** * Get a LoadTest resource. * @param resourceGroupName The name of the resource group. The name is case insensitive. @@ -59,7 +72,25 @@ export interface LoadTests { * @param loadTestResource LoadTest resource data * @param options The options parameters. */ - createOrUpdate( + beginCreateOrUpdate( + resourceGroupName: string, + loadTestName: string, + loadTestResource: LoadTestResource, + options?: LoadTestsCreateOrUpdateOptionalParams + ): Promise< + PollerLike< + PollOperationState, + LoadTestsCreateOrUpdateResponse + > + >; + /** + * Create or update LoadTest resource. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param loadTestName Load Test name. + * @param loadTestResource LoadTest resource data + * @param options The options parameters. + */ + beginCreateOrUpdateAndWait( resourceGroupName: string, loadTestName: string, loadTestResource: LoadTestResource, @@ -72,7 +103,25 @@ export interface LoadTests { * @param loadTestResourcePatchRequestBody LoadTest resource update data * @param options The options parameters. */ - update( + beginUpdate( + resourceGroupName: string, + loadTestName: string, + loadTestResourcePatchRequestBody: LoadTestResourcePatchRequestBody, + options?: LoadTestsUpdateOptionalParams + ): Promise< + PollerLike< + PollOperationState, + LoadTestsUpdateResponse + > + >; + /** + * Update a loadtest resource. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param loadTestName Load Test name. + * @param loadTestResourcePatchRequestBody LoadTest resource update data + * @param options The options parameters. + */ + beginUpdateAndWait( resourceGroupName: string, loadTestName: string, loadTestResourcePatchRequestBody: LoadTestResourcePatchRequestBody, diff --git a/sdk/loadtestservice/arm-loadtestservice/src/operationsInterfaces/quotas.ts b/sdk/loadtestservice/arm-loadtestservice/src/operationsInterfaces/quotas.ts new file mode 100644 index 000000000000..8d0b8c3f4fdf --- /dev/null +++ b/sdk/loadtestservice/arm-loadtestservice/src/operationsInterfaces/quotas.ts @@ -0,0 +1,56 @@ +/* + * 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 { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { + QuotaResource, + QuotasListOptionalParams, + QuotasGetOptionalParams, + QuotasGetResponse, + QuotaBucketRequest, + QuotasCheckAvailabilityOptionalParams, + QuotasCheckAvailabilityResponse +} from "../models"; + +/// +/** Interface representing a Quotas. */ +export interface Quotas { + /** + * Lists all the available quota per region per subscription. + * @param location The name of Azure region. + * @param options The options parameters. + */ + list( + location: string, + options?: QuotasListOptionalParams + ): PagedAsyncIterableIterator; + /** + * Get the available quota for a quota bucket per region per subscription. + * @param location The name of Azure region. + * @param quotaBucketName Quota Bucket name. + * @param options The options parameters. + */ + get( + location: string, + quotaBucketName: string, + options?: QuotasGetOptionalParams + ): Promise; + /** + * Check Quota Availability on quota bucket per region per subscription. + * @param location The name of Azure region. + * @param quotaBucketName Quota Bucket name. + * @param quotaBucketRequest Quota Bucket Request data + * @param options The options parameters. + */ + checkAvailability( + location: string, + quotaBucketName: string, + quotaBucketRequest: QuotaBucketRequest, + options?: QuotasCheckAvailabilityOptionalParams + ): Promise; +} diff --git a/sdk/loadtestservice/arm-loadtestservice/test/sampleTest.ts b/sdk/loadtestservice/arm-loadtestservice/test/sampleTest.ts index 7ed89b043e1b..25aeb3ebcc36 100644 --- a/sdk/loadtestservice/arm-loadtestservice/test/sampleTest.ts +++ b/sdk/loadtestservice/arm-loadtestservice/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/loadtestservice/arm-loadtestservice/tsconfig.json b/sdk/loadtestservice/arm-loadtestservice/tsconfig.json index 3f26a9e3ce75..3e6ae96443f3 100644 --- a/sdk/loadtestservice/arm-loadtestservice/tsconfig.json +++ b/sdk/loadtestservice/arm-loadtestservice/tsconfig.json @@ -15,17 +15,11 @@ ], "declaration": true, "outDir": "./dist-esm", - "importHelpers": true, - "paths": { - "@azure/arm-loadtestservice": [ - "./src/index" - ] - } + "importHelpers": true }, "include": [ "./src/**/*.ts", - "./test/**/*.ts", - "samples-dev/**/*.ts" + "./test/**/*.ts" ], "exclude": [ "node_modules"