From b4388b92d0b1c8e092d7ed3565d3b580a73119c8 Mon Sep 17 00:00:00 2001 From: SDKAuto Date: Tue, 7 Nov 2023 02:27:37 +0000 Subject: [PATCH] CodeGen from PR 26584 in Azure/azure-rest-api-specs Merge 8c7f48906c6567353e11f0a50e8f7144add6c0fb into 11bbc2b1df2e915a2227a6a1a48a27b9e67c3311 --- common/config/rush/pnpm-lock.yaml | 6 +- .../arm-recoveryservicesbackup/CHANGELOG.md | 64 ++- .../arm-recoveryservicesbackup/_meta.json | 8 +- .../arm-recoveryservicesbackup/package.json | 23 +- .../review/arm-recoveryservicesbackup.api.md | 183 ++++++- .../src/models/index.ts | 267 +++++++++- .../src/models/mappers.ts | 461 ++++++++++++++++++ .../src/models/parameters.ts | 30 +- .../src/operations/fetchTieringCost.ts | 174 +++++++ .../getTieringCostOperationResult.ts | 77 +++ .../src/operations/index.ts | 3 + .../src/operations/operation.ts | 4 +- .../src/operations/protectionContainers.ts | 112 ++++- .../operations/tieringCostOperationStatus.ts | 77 +++ .../src/operations/validateOperation.ts | 6 +- .../operationsInterfaces/fetchTieringCost.ts | 55 +++ .../getTieringCostOperationResult.ts | 30 ++ .../src/operationsInterfaces/index.ts | 3 + .../src/operationsInterfaces/operation.ts | 4 +- .../protectionContainers.ts | 29 +- .../tieringCostOperationStatus.ts | 30 ++ .../operationsInterfaces/validateOperation.ts | 6 +- .../src/recoveryServicesBackupClient.ts | 22 +- .../test/sampleTest.ts | 43 ++ .../arm-recoveryservicesbackup/tsconfig.json | 10 +- 25 files changed, 1637 insertions(+), 90 deletions(-) create mode 100644 sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/fetchTieringCost.ts create mode 100644 sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/getTieringCostOperationResult.ts create mode 100644 sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/tieringCostOperationStatus.ts create mode 100644 sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/fetchTieringCost.ts create mode 100644 sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/getTieringCostOperationResult.ts create mode 100644 sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/tieringCostOperationStatus.ts create mode 100644 sdk/recoveryservicesbackup/arm-recoveryservicesbackup/test/sampleTest.ts diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 29c35dff55ba..83bb3ed1bca8 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -14676,20 +14676,22 @@ packages: dev: false file:projects/arm-recoveryservicesbackup.tgz: - resolution: {integrity: sha512-kcDzZ8zZXD0c9hnnEDdECXEw+kvmB0NntVRhBW2k//EtS3iAFUwoRGGpkj9mqpnn81MEPX0lmCV1f+1aeGpgow==, tarball: file:projects/arm-recoveryservicesbackup.tgz} + resolution: {integrity: sha512-6MZDuw+BO+POa9YF/yq+GeSFx+Kvf0zmvVAWel0Vtao8l6vEu+u1rOUw1atK4dPqhF+43Cm5ryoF9BcvjL59VQ==, tarball: file:projects/arm-recoveryservicesbackup.tgz} name: '@rush-temp/arm-recoveryservicesbackup' version: 0.0.0 dependencies: '@azure/identity': 3.3.2 '@microsoft/api-extractor': 7.38.2(@types/node@18.18.8) '@types/chai': 4.3.9 + '@types/mocha': 10.0.3 '@types/node': 18.18.8 chai: 4.3.10 cross-env: 7.0.3 dotenv: 16.3.1 + esm: 3.2.25 mkdirp: 2.1.6 mocha: 10.2.0 - rimraf: 3.0.2 + rimraf: 5.0.5 ts-node: 10.9.1(@types/node@18.18.8)(typescript@5.2.2) tslib: 2.6.2 typescript: 5.2.2 diff --git a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/CHANGELOG.md b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/CHANGELOG.md index 4bb7dda0143f..2a55e3abba98 100644 --- a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/CHANGELOG.md +++ b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/CHANGELOG.md @@ -1,15 +1,61 @@ # Release History + +## 12.0.0 (2023-11-07) + +**Features** -## 11.0.1 (Unreleased) - -### Features Added - -### Breaking Changes - -### Bugs Fixed + - Added operation group FetchTieringCost + - Added operation group GetTieringCostOperationResult + - Added operation group TieringCostOperationStatus + - Added operation ProtectionContainers.beginRegister + - Added operation ProtectionContainers.beginRegisterAndWait + - Added Interface FetchTieringCostInfoForRehydrationRequest + - Added Interface FetchTieringCostInfoRequest + - Added Interface FetchTieringCostPostHeaders + - Added Interface FetchTieringCostPostOptionalParams + - Added Interface FetchTieringCostSavingsInfoForPolicyRequest + - Added Interface FetchTieringCostSavingsInfoForProtectedItemRequest + - Added Interface FetchTieringCostSavingsInfoForVaultRequest + - Added Interface GetTieringCostOperationResultGetOptionalParams + - Added Interface SnapshotBackupAdditionalDetails + - Added Interface SnapshotRestoreParameters + - Added Interface TieringCostInfo + - Added Interface TieringCostOperationStatusGetOptionalParams + - Added Interface TieringCostRehydrationInfo + - Added Interface TieringCostSavingInfo + - Added Interface UserAssignedIdentity + - Added Interface UserAssignedManagedIdentityDetails + - Added Interface ValidateOperationRequestResource + - Added Interface VaultRetentionPolicy + - Added Type Alias FetchTieringCostInfoRequestUnion + - Added Type Alias FetchTieringCostPostResponse + - Added Type Alias GetTieringCostOperationResultGetResponse + - Added Type Alias TieringCostInfoUnion + - Added Type Alias TieringCostOperationStatusGetResponse + - Interface AzureFileShareProtectionPolicy has a new optional parameter vaultRetentionPolicy + - Interface AzureWorkloadRestoreRequest has a new optional parameter snapshotRestoreParameters + - Interface AzureWorkloadRestoreRequest has a new optional parameter targetResourceGroupName + - Interface AzureWorkloadRestoreRequest has a new optional parameter userAssignedManagedIdentityDetails + - Interface BackupStatusResponse has a new optional parameter acquireStorageAccountLock + - Interface BackupStatusResponse has a new optional parameter protectedItemsCount + - Interface IaasVMRecoveryPoint has a new optional parameter extendedLocation + - Interface ProtectedItem has a new optional parameter vaultId + - Interface ProtectionContainersRegisterOptionalParams has a new optional parameter resumeFrom + - Interface ProtectionContainersRegisterOptionalParams has a new optional parameter updateIntervalInMs + - Interface SubProtectionPolicy has a new optional parameter snapshotBackupAdditionalDetails + - Enum KnownRecoveryMode has a new value RecoveryUsingSnapshot + - Enum KnownRecoveryMode has a new value SnapshotAttach + - Enum KnownRecoveryMode has a new value SnapshotAttachAndRecover -### Other Changes +**Breaking Changes** + - Removed operation ProtectionContainers.register + - Operation Operation.validate has a new signature + - Operation ValidateOperation.beginTrigger has a new signature + - Operation ValidateOperation.beginTriggerAndWait has a new signature + - Parameter resourceGuardResourceId of interface ResourceGuardProxyBase is now required + + ## 11.0.0 (2023-09-01) **Features** @@ -323,4 +369,4 @@ To understand the detail of the change, please refer to [Changelog](https://aka. To migrate the existing applications to the latest version, please refer to [Migration Guide](https://aka.ms/js-track2-migration-guide). -To learn more, please refer to our documentation [Quick Start](https://aka.ms/azsdk/js/mgmt/quickstart ). +To learn more, please refer to our documentation [Quick Start](https://aka.ms/js-track2-quickstart). diff --git a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/_meta.json b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/_meta.json index 8440b201b76d..8f4fb8e9fc65 100644 --- a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/_meta.json +++ b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/_meta.json @@ -1,8 +1,8 @@ { - "commit": "95c0363e4cae8756c6a33b58add67776db427bbc", + "commit": "df7192de3a87365c92de697d97c6c182f1f6cfea", "readme": "specification/recoveryservicesbackup/resource-manager/readme.md", - "autorest_command": "autorest --version=3.9.7 --typescript --modelerfour.lenient-model-deduplication --azure-arm --head-as-boolean=true --license-header=MICROSOFT_MIT_NO_VERSION --generate-test --typescript-sdks-folder=D:\\Git\\azure-sdk-for-js ..\\azure-rest-api-specs\\specification\\recoveryservicesbackup\\resource-manager\\readme.md --use=@autorest/typescript@6.0.8 --generate-sample=true", + "autorest_command": "autorest --version=3.9.7 --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/recoveryservicesbackup/resource-manager/readme.md --use=@autorest/typescript@^6.0.12", "repository_url": "https://github.com/Azure/azure-rest-api-specs.git", - "release_tool": "@azure-tools/js-sdk-release-tools@2.7.2", - "use": "@autorest/typescript@6.0.8" + "release_tool": "@azure-tools/js-sdk-release-tools@2.7.4", + "use": "@autorest/typescript@^6.0.12" } \ No newline at end of file diff --git a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/package.json b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/package.json index f6cd6c6e16d7..04746781dd37 100644 --- a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/package.json +++ b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/package.json @@ -3,7 +3,7 @@ "sdk-type": "mgmt", "author": "Microsoft Corporation", "description": "A generated SDK for RecoveryServicesBackupClient.", - "version": "11.0.1", + "version": "12.0.0", "engines": { "node": ">=18.0.0" }, @@ -32,18 +32,19 @@ "mkdirp": "^2.1.2", "typescript": "~5.2.0", "uglify-js": "^3.4.9", - "rimraf": "^3.0.0", + "rimraf": "^5.0.0", "dotenv": "^16.0.0", + "@azure/dev-tool": "^1.0.0", "@azure/identity": "^3.3.0", "@azure-tools/test-recorder": "^3.0.0", "@azure-tools/test-credential": "^1.0.0", "mocha": "^10.0.0", + "@types/mocha": "^10.0.0", + "esm": "^3.2.18", "@types/chai": "^4.2.8", "chai": "^4.2.0", "cross-env": "^7.0.2", "@types/node": "^18.0.0", - "@azure/dev-tool": "^1.0.0", - "@azure/arm-recoveryservices": "^5.2.0", "ts-node": "^10.0.0" }, "repository": { @@ -78,7 +79,7 @@ "extract-api": "api-extractor run --local", "lint": "echo skipped", "audit": "echo skipped", - "clean": "rimraf dist dist-browser dist-esm test-dist temp types *.tgz *.log", + "clean": "rimraf --glob dist dist-browser dist-esm test-dist temp types *.tgz *.log", "build:node": "echo skipped", "build:browser": "echo skipped", "build:test": "echo skipped", @@ -106,13 +107,5 @@ ] }, "autoPublish": true, - "homepage": "https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/recoveryservicesbackup/arm-recoveryservicesbackup", - "//sampleConfiguration": { - "productName": "", - "productSlugs": [ - "azure" - ], - "disableDocsMs": true, - "apiRefLink": "https://docs.microsoft.com/javascript/api/@azure/arm-recoveryservicesbackup?view=azure-node-preview" - } -} + "homepage": "https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/recoveryservicesbackup/arm-recoveryservicesbackup" +} \ No newline at end of file diff --git a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/review/arm-recoveryservicesbackup.api.md b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/review/arm-recoveryservicesbackup.api.md index 6ea563464896..eba4a1286314 100644 --- a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/review/arm-recoveryservicesbackup.api.md +++ b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/review/arm-recoveryservicesbackup.api.md @@ -71,6 +71,7 @@ export interface AzureFileShareProtectionPolicy extends ProtectionPolicy { retentionPolicy?: RetentionPolicyUnion; schedulePolicy?: SchedulePolicyUnion; timeZone?: string; + vaultRetentionPolicy?: VaultRetentionPolicy; workLoadType?: WorkloadType; } @@ -639,9 +640,12 @@ export interface AzureWorkloadRestoreRequest extends RestoreRequest { }; recoveryMode?: RecoveryMode; recoveryType?: RecoveryType; + snapshotRestoreParameters?: SnapshotRestoreParameters; sourceResourceId?: string; targetInfo?: TargetRestoreInfo; + targetResourceGroupName?: string; targetVirtualMachineId?: string; + userAssignedManagedIdentityDetails?: UserAssignedManagedIdentityDetails; } // @public (undocumented) @@ -1155,12 +1159,14 @@ export interface BackupStatusRequest { // @public export interface BackupStatusResponse { + acquireStorageAccountLock?: AcquireStorageAccountLock; containerName?: string; errorCode?: string; errorMessage?: string; fabricName?: FabricName; policyName?: string; protectedItemName?: string; + protectedItemsCount?: number; protectionStatus?: ProtectionStatus; registrationStatus?: string; vaultId?: string; @@ -1635,6 +1641,64 @@ export interface FeatureSupportValidateOptionalParams extends coreClient.Operati // @public export type FeatureSupportValidateResponse = AzureVMResourceFeatureSupportResponse; +// @public +export interface FetchTieringCost { + beginPost(resourceGroupName: string, vaultName: string, parameters: FetchTieringCostInfoRequestUnion, options?: FetchTieringCostPostOptionalParams): Promise, FetchTieringCostPostResponse>>; + beginPostAndWait(resourceGroupName: string, vaultName: string, parameters: FetchTieringCostInfoRequestUnion, options?: FetchTieringCostPostOptionalParams): Promise; +} + +// @public +export interface FetchTieringCostInfoForRehydrationRequest extends FetchTieringCostInfoRequest { + containerName: string; + objectType: "FetchTieringCostInfoForRehydrationRequest"; + protectedItemName: string; + recoveryPointId: string; + rehydrationPriority: RehydrationPriority; +} + +// @public +export interface FetchTieringCostInfoRequest { + objectType: "FetchTieringCostInfoForRehydrationRequest" | "FetchTieringCostSavingsInfoForPolicyRequest" | "FetchTieringCostSavingsInfoForProtectedItemRequest" | "FetchTieringCostSavingsInfoForVaultRequest"; + sourceTierType: RecoveryPointTierType; + targetTierType: RecoveryPointTierType; +} + +// @public (undocumented) +export type FetchTieringCostInfoRequestUnion = FetchTieringCostInfoRequest | FetchTieringCostInfoForRehydrationRequest | FetchTieringCostSavingsInfoForPolicyRequest | FetchTieringCostSavingsInfoForProtectedItemRequest | FetchTieringCostSavingsInfoForVaultRequest; + +// @public +export interface FetchTieringCostPostHeaders { + // (undocumented) + location?: string; +} + +// @public +export interface FetchTieringCostPostOptionalParams extends coreClient.OperationOptions { + resumeFrom?: string; + updateIntervalInMs?: number; +} + +// @public +export type FetchTieringCostPostResponse = TieringCostInfoUnion; + +// @public +export interface FetchTieringCostSavingsInfoForPolicyRequest extends FetchTieringCostInfoRequest { + objectType: "FetchTieringCostSavingsInfoForPolicyRequest"; + policyName: string; +} + +// @public +export interface FetchTieringCostSavingsInfoForProtectedItemRequest extends FetchTieringCostInfoRequest { + containerName: string; + objectType: "FetchTieringCostSavingsInfoForProtectedItemRequest"; + protectedItemName: string; +} + +// @public +export interface FetchTieringCostSavingsInfoForVaultRequest extends FetchTieringCostInfoRequest { + objectType: "FetchTieringCostSavingsInfoForVaultRequest"; +} + // @public export interface GenericContainer extends ProtectionContainer { containerType: "GenericContainer"; @@ -1697,6 +1761,18 @@ export interface GetProtectedItemQueryObject { expand?: string; } +// @public +export interface GetTieringCostOperationResult { + get(resourceGroupName: string, vaultName: string, operationId: string, options?: GetTieringCostOperationResultGetOptionalParams): Promise; +} + +// @public +export interface GetTieringCostOperationResultGetOptionalParams extends coreClient.OperationOptions { +} + +// @public +export type GetTieringCostOperationResultGetResponse = TieringCostInfoUnion; + // @public export type HealthState = string; @@ -1755,6 +1831,7 @@ export type IaaSVMProtectableItemUnion = IaaSVMProtectableItem | AzureIaaSClassi // @public export interface IaasVMRecoveryPoint extends RecoveryPoint { + extendedLocation?: ExtendedLocation; isInstantIlrSessionActive?: boolean; isManagedVirtualMachine?: boolean; isPrivateAccessEnabledOnAnyDisk?: boolean; @@ -2358,6 +2435,9 @@ export enum KnownProvisioningState { export enum KnownRecoveryMode { FileRecovery = "FileRecovery", Invalid = "Invalid", + RecoveryUsingSnapshot = "RecoveryUsingSnapshot", + SnapshotAttach = "SnapshotAttach", + SnapshotAttachAndRecover = "SnapshotAttachAndRecover", WorkloadRecovery = "WorkloadRecovery" } @@ -2738,7 +2818,7 @@ export interface NewErrorResponseError { // @public export interface Operation { - validate(vaultName: string, resourceGroupName: string, parameters: ValidateOperationRequestUnion, options?: OperationValidateOptionalParams): Promise; + validate(vaultName: string, resourceGroupName: string, parameters: ValidateOperationRequestResource, options?: OperationValidateOptionalParams): Promise; } // @public @@ -3042,6 +3122,7 @@ export interface ProtectedItem { resourceGuardOperationRequests?: string[]; softDeleteRetentionPeriodInDays?: number; sourceResourceId?: string; + readonly vaultId?: string; readonly workloadType?: DataSourceType; } @@ -3170,10 +3251,11 @@ export interface ProtectionContainerResourceList extends ResourceList { // @public export interface ProtectionContainers { + beginRegister(vaultName: string, resourceGroupName: string, fabricName: string, containerName: string, parameters: ProtectionContainerResource, options?: ProtectionContainersRegisterOptionalParams): Promise, ProtectionContainersRegisterResponse>>; + beginRegisterAndWait(vaultName: string, resourceGroupName: string, fabricName: string, containerName: string, parameters: ProtectionContainerResource, options?: ProtectionContainersRegisterOptionalParams): Promise; get(vaultName: string, resourceGroupName: string, fabricName: string, containerName: string, options?: ProtectionContainersGetOptionalParams): Promise; inquire(vaultName: string, resourceGroupName: string, fabricName: string, containerName: string, options?: ProtectionContainersInquireOptionalParams): Promise; refresh(vaultName: string, resourceGroupName: string, fabricName: string, options?: ProtectionContainersRefreshOptionalParams): Promise; - register(vaultName: string, resourceGroupName: string, fabricName: string, containerName: string, parameters: ProtectionContainerResource, options?: ProtectionContainersRegisterOptionalParams): Promise; unregister(vaultName: string, resourceGroupName: string, fabricName: string, containerName: string, options?: ProtectionContainersUnregisterOptionalParams): Promise; } @@ -3196,6 +3278,8 @@ export interface ProtectionContainersRefreshOptionalParams extends coreClient.Op // @public export interface ProtectionContainersRegisterOptionalParams extends coreClient.OperationOptions { + resumeFrom?: string; + updateIntervalInMs?: number; } // @public @@ -3532,8 +3616,12 @@ export class RecoveryServicesBackupClient extends coreClient.ServiceClient { exportJobsOperationResults: ExportJobsOperationResults; // (undocumented) featureSupport: FeatureSupport; + // (undocumented) + fetchTieringCost: FetchTieringCost; getOperationStatus(vaultName: string, resourceGroupName: string, operationId: string, options?: GetOperationStatusOptionalParams): Promise; // (undocumented) + getTieringCostOperationResult: GetTieringCostOperationResult; + // (undocumented) itemLevelRecoveryConnections: ItemLevelRecoveryConnections; // (undocumented) jobCancellations: JobCancellations; @@ -3588,6 +3676,8 @@ export class RecoveryServicesBackupClient extends coreClient.ServiceClient { // (undocumented) subscriptionId: string; // (undocumented) + tieringCostOperationStatus: TieringCostOperationStatus; + // (undocumented) validateOperation: ValidateOperation; // (undocumented) validateOperationResults: ValidateOperationResults; @@ -3664,7 +3754,7 @@ export interface ResourceGuardProxyBase { // (undocumented) resourceGuardOperationDetails?: ResourceGuardOperationDetail[]; // (undocumented) - resourceGuardResourceId?: string; + resourceGuardResourceId: string; } // @public (undocumented) @@ -3845,6 +3935,24 @@ export interface SimpleSchedulePolicyV2 extends SchedulePolicy { weeklySchedule?: WeeklySchedule; } +// @public +export interface SnapshotBackupAdditionalDetails { + // (undocumented) + instantRPDetails?: string; + // (undocumented) + instantRpRetentionRangeInDays?: number; + // (undocumented) + userAssignedManagedIdentityDetails?: UserAssignedManagedIdentityDetails; +} + +// @public +export interface SnapshotRestoreParameters { + // (undocumented) + logPointInTimeForDBRecovery?: string; + // (undocumented) + skipAttachAndMount?: boolean; +} + // @public export type SoftDeleteFeatureState = string; @@ -3877,6 +3985,7 @@ export interface SubProtectionPolicy { policyType?: PolicyType; retentionPolicy?: RetentionPolicyUnion; schedulePolicy?: SchedulePolicyUnion; + snapshotBackupAdditionalDetails?: SnapshotBackupAdditionalDetails; tieringPolicy?: { [propertyName: string]: TieringPolicy; }; @@ -3908,6 +4017,42 @@ export interface TargetRestoreInfo { targetDirectoryForFileRestore?: string; } +// @public +export interface TieringCostInfo { + objectType: "TieringCostRehydrationInfo" | "TieringCostSavingInfo"; +} + +// @public (undocumented) +export type TieringCostInfoUnion = TieringCostInfo | TieringCostRehydrationInfo | TieringCostSavingInfo; + +// @public +export interface TieringCostOperationStatus { + get(resourceGroupName: string, vaultName: string, operationId: string, options?: TieringCostOperationStatusGetOptionalParams): Promise; +} + +// @public +export interface TieringCostOperationStatusGetOptionalParams extends coreClient.OperationOptions { +} + +// @public +export type TieringCostOperationStatusGetResponse = OperationStatus; + +// @public +export interface TieringCostRehydrationInfo extends TieringCostInfo { + objectType: "TieringCostRehydrationInfo"; + rehydrationSizeInBytes: number; + retailRehydrationCostPerGBPerMonth: number; +} + +// @public +export interface TieringCostSavingInfo extends TieringCostInfo { + objectType: "TieringCostSavingInfo"; + retailSourceTierCostPerGBPerMonth: number; + retailTargetTierCostPerGBPerMonth: number; + sourceTierSizeReductionInBytes: number; + targetTierSizeIncreaseInBytes: number; +} + // @public export type TieringMode = string; @@ -3954,6 +4099,21 @@ export interface UnlockDeleteResponse { // @public export type UsagesUnit = string; +// @public +export interface UserAssignedIdentity { + readonly clientId?: string; + readonly principalId?: string; +} + +// @public (undocumented) +export interface UserAssignedManagedIdentityDetails { + // (undocumented) + identityArmId?: string; + // (undocumented) + identityName?: string; + userAssignedIdentityProperties?: UserAssignedIdentity; +} + // @public export interface ValidateIaasVMRestoreOperationRequest extends ValidateRestoreOperationRequest { objectType: "ValidateIaasVMRestoreOperationRequest"; @@ -3961,8 +4121,8 @@ export interface ValidateIaasVMRestoreOperationRequest extends ValidateRestoreOp // @public export interface ValidateOperation { - beginTrigger(vaultName: string, resourceGroupName: string, parameters: ValidateOperationRequestUnion, options?: ValidateOperationTriggerOptionalParams): Promise, void>>; - beginTriggerAndWait(vaultName: string, resourceGroupName: string, parameters: ValidateOperationRequestUnion, options?: ValidateOperationTriggerOptionalParams): Promise; + beginTrigger(vaultName: string, resourceGroupName: string, parameters: ValidateOperationRequestResource, options?: ValidateOperationTriggerOptionalParams): Promise, void>>; + beginTriggerAndWait(vaultName: string, resourceGroupName: string, parameters: ValidateOperationRequestResource, options?: ValidateOperationTriggerOptionalParams): Promise; } // @public @@ -3970,6 +4130,12 @@ export interface ValidateOperationRequest { objectType: "ValidateRestoreOperationRequest" | "ValidateIaasVMRestoreOperationRequest"; } +// @public +export interface ValidateOperationRequestResource { + id: string; + properties: ValidateOperationRequestUnion; +} + // @public (undocumented) export type ValidateOperationRequestUnion = ValidateOperationRequest | ValidateRestoreOperationRequestUnion; @@ -4048,6 +4214,13 @@ export interface VaultJobExtendedInfo { }; } +// @public +export interface VaultRetentionPolicy { + // (undocumented) + snapshotRetentionInDays: number; + vaultRetention: RetentionPolicyUnion; +} + // @public export interface VaultStorageConfigOperationResultResponse { objectType: "PrepareDataMoveResponse"; diff --git a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/models/index.ts b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/models/index.ts index 10f305f27b8c..226356452aae 100644 --- a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/models/index.ts +++ b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/models/index.ts @@ -102,6 +102,16 @@ export type WorkloadProtectableItemUnion = | AzureFileShareProtectableItem | IaaSVMProtectableItemUnion | AzureVmWorkloadProtectableItemUnion; +export type FetchTieringCostInfoRequestUnion = + | FetchTieringCostInfoRequest + | FetchTieringCostInfoForRehydrationRequest + | FetchTieringCostSavingsInfoForPolicyRequest + | FetchTieringCostSavingsInfoForProtectedItemRequest + | FetchTieringCostSavingsInfoForVaultRequest; +export type TieringCostInfoUnion = + | TieringCostInfo + | TieringCostRehydrationInfo + | TieringCostSavingInfo; export type SchedulePolicyUnion = | SchedulePolicy | LogSchedulePolicy @@ -353,6 +363,10 @@ export interface BackupStatusResponse { policyName?: string; /** Container registration status */ registrationStatus?: string; + /** Number of protected items */ + protectedItemsCount?: number; + /** Specifies whether the storage account lock has been acquired or not */ + acquireStorageAccountLock?: AcquireStorageAccountLock; } /** Base class for feature request */ @@ -704,6 +718,11 @@ export interface ProtectedItem { policyName?: string; /** Soft delete retention period in days */ softDeleteRetentionPeriodInDays?: number; + /** + * ID of the vault which protects this item + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly vaultId?: string; } /** Base class for backup copies. Workload-specific backup copies are derived from this class. */ @@ -797,6 +816,14 @@ export interface OperationWorkerResponse { headers?: { [propertyName: string]: string[] }; } +/** Base class for validate operation request. */ +export interface ValidateOperationRequestResource { + /** Recovery point ID. */ + id: string; + /** ValidateOperationRequestResource properties */ + properties: ValidateOperationRequestUnion; +} + /** Base class for validate operation request. */ export interface ValidateOperationRequest { /** Polymorphic discriminator, which specifies the different types this object can be */ @@ -1026,7 +1053,7 @@ export interface ListRecoveryPointsRecommendedForMoveRequest { } export interface ResourceGuardProxyBase { - resourceGuardResourceId?: string; + resourceGuardResourceId: string; resourceGuardOperationDetails?: ResourceGuardOperationDetail[]; lastUpdatedTime?: string; description?: string; @@ -1049,6 +1076,29 @@ export interface UnlockDeleteResponse { unlockDeleteExpiryTime?: string; } +/** + * Base class for tiering cost request. + * Specific cost request types are derived from this class. + */ +export interface FetchTieringCostInfoRequest { + /** Polymorphic discriminator, which specifies the different types this object can be */ + objectType: + | "FetchTieringCostInfoForRehydrationRequest" + | "FetchTieringCostSavingsInfoForPolicyRequest" + | "FetchTieringCostSavingsInfoForProtectedItemRequest" + | "FetchTieringCostSavingsInfoForVaultRequest"; + /** Source tier for the request */ + sourceTierType: RecoveryPointTierType; + /** target tier for the request */ + targetTierType: RecoveryPointTierType; +} + +/** Base class for tiering cost response */ +export interface TieringCostInfo { + /** Polymorphic discriminator, which specifies the different types this object can be */ + objectType: "TieringCostRehydrationInfo" | "TieringCostSavingInfo"; +} + /** KPI Resource Health Details */ export interface KPIResourceHealthDetails { /** Resource Health Status */ @@ -1156,6 +1206,8 @@ export interface SubProtectionPolicy { * Tiering policy specifies the criteria to move RP to the target tier. */ tieringPolicy?: { [propertyName: string]: TieringPolicy }; + /** Snapshot Backup related fields for WorkloadType SaPHanaSystem */ + snapshotBackupAdditionalDetails?: SnapshotBackupAdditionalDetails; } /** Base class for backup schedule. */ @@ -1198,6 +1250,41 @@ export interface TieringPolicy { durationType?: RetentionDurationType; } +/** Snapshot Backup related fields for WorkloadType SaPHanaSystem */ +export interface SnapshotBackupAdditionalDetails { + instantRpRetentionRangeInDays?: number; + instantRPDetails?: string; + userAssignedManagedIdentityDetails?: UserAssignedManagedIdentityDetails; +} + +export interface UserAssignedManagedIdentityDetails { + identityArmId?: string; + identityName?: string; + /** User assigned identity properties */ + userAssignedIdentityProperties?: 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; +} + +/** Vault retention policy for AzureFileShare */ +export interface VaultRetentionPolicy { + /** Base class for retention policy. */ + vaultRetention: RetentionPolicyUnion; + snapshotRetentionInDays: number; +} + /** Additional information on Azure IaaS VM specific backup item. */ export interface AzureIaaSVMProtectedItemExtendedInfo { /** The oldest backup copy available for this backup item across all tiers. */ @@ -1435,6 +1522,12 @@ export interface TargetRestoreInfo { targetDirectoryForFileRestore?: string; } +/** Encapsulates information regarding snapshot recovery for SAP Hana */ +export interface SnapshotRestoreParameters { + skipAttachAndMount?: boolean; + logPointInTimeForDBRecovery?: string; +} + /** Extended info class details */ export interface AzureWorkloadSQLRecoveryPointExtendedInfo { /** UTC time at which data directory info was captured */ @@ -2673,6 +2766,11 @@ export interface IaasVMRecoveryPoint extends RecoveryPoint { recoveryPointProperties?: RecoveryPointProperties; /** This flag denotes if any of the disks in the VM are using Private access network setting */ isPrivateAccessEnabledOnAnyDisk?: boolean; + /** + * Extended location of the VM recovery point, + * should be null if VM is in public cloud + */ + extendedLocation?: ExtendedLocation; } /** AzureFileShare Restore Request */ @@ -2717,6 +2815,18 @@ export interface AzureWorkloadRestoreRequest extends RestoreRequest { targetInfo?: TargetRestoreInfo; /** Defines whether the current recovery mode is file restore or database restore */ recoveryMode?: RecoveryMode; + /** Defines the Resource group of the Target VM */ + targetResourceGroupName?: string; + /** + * User Assigned managed identity details + * Currently used for snapshot. + */ + userAssignedManagedIdentityDetails?: UserAssignedManagedIdentityDetails; + /** + * Additional details for snapshot recovery + * Currently used for snapshot for SAP Hana. + */ + snapshotRestoreParameters?: SnapshotRestoreParameters; /** * This is the complete ARM Id of the target VM * For e.g. /subscriptions/{subId}/resourcegroups/{rg}/provider/Microsoft.Compute/virtualmachines/{vm} @@ -2822,6 +2932,8 @@ export interface AzureFileShareProtectionPolicy extends ProtectionPolicy { schedulePolicy?: SchedulePolicyUnion; /** Retention policy with the details on backup copy retention ranges. */ retentionPolicy?: RetentionPolicyUnion; + /** Retention policy with the details on hardened backup copy retention ranges. */ + vaultRetentionPolicy?: VaultRetentionPolicy; /** TimeZone optional input as string. For example: TimeZone = "Pacific Standard Time". */ timeZone?: string; } @@ -3320,6 +3432,72 @@ export interface AzureVmWorkloadProtectableItem isProtectable?: boolean; } +/** Request parameters for fetching cost info of rehydration */ +export interface FetchTieringCostInfoForRehydrationRequest + extends FetchTieringCostInfoRequest { + /** Polymorphic discriminator, which specifies the different types this object can be */ + objectType: "FetchTieringCostInfoForRehydrationRequest"; + /** Name of the protected item container */ + containerName: string; + /** Name of the protectedItemName */ + protectedItemName: string; + /** ID of the backup copy for rehydration cost info needs to be fetched. */ + recoveryPointId: string; + /** Rehydration Priority */ + rehydrationPriority: RehydrationPriority; +} + +/** Request parameters for tiering cost info for policy */ +export interface FetchTieringCostSavingsInfoForPolicyRequest + extends FetchTieringCostInfoRequest { + /** Polymorphic discriminator, which specifies the different types this object can be */ + objectType: "FetchTieringCostSavingsInfoForPolicyRequest"; + /** Name of the backup policy for which the cost savings information is requested */ + policyName: string; +} + +/** Request parameters for tiering cost info for protected item */ +export interface FetchTieringCostSavingsInfoForProtectedItemRequest + extends FetchTieringCostInfoRequest { + /** Polymorphic discriminator, which specifies the different types this object can be */ + objectType: "FetchTieringCostSavingsInfoForProtectedItemRequest"; + /** Name of the protected item container */ + containerName: string; + /** Name of the protectedItemName */ + protectedItemName: string; +} + +/** Request parameters for tiering cost info for vault */ +export interface FetchTieringCostSavingsInfoForVaultRequest + extends FetchTieringCostInfoRequest { + /** Polymorphic discriminator, which specifies the different types this object can be */ + objectType: "FetchTieringCostSavingsInfoForVaultRequest"; +} + +/** Response parameters for tiering cost info for rehydration */ +export interface TieringCostRehydrationInfo extends TieringCostInfo { + /** Polymorphic discriminator, which specifies the different types this object can be */ + objectType: "TieringCostRehydrationInfo"; + /** Rehydration size in bytes */ + rehydrationSizeInBytes: number; + /** Source tier to target tier rehydration cost per GB per month */ + retailRehydrationCostPerGBPerMonth: number; +} + +/** Response parameters for tiering cost info for savings */ +export interface TieringCostSavingInfo extends TieringCostInfo { + /** Polymorphic discriminator, which specifies the different types this object can be */ + objectType: "TieringCostSavingInfo"; + /** Source tier size reduction in bytes after moving all the recommended backup points to target tier */ + sourceTierSizeReductionInBytes: number; + /** Target tier size increase in bytes after moving all the recommended backup points to target tier */ + targetTierSizeIncreaseInBytes: number; + /** Source tier retail cost per GB per month */ + retailSourceTierCostPerGBPerMonth: number; + /** Target tier retail cost per GB per month */ + retailTargetTierCostPerGBPerMonth: number; +} + /** Azure IaaS VM workload-specific Health Details. */ export interface AzureIaaSVMHealthDetails extends ResourceHealthDetails {} @@ -3761,6 +3939,11 @@ export interface AzureWorkloadSQLPointInTimeRestoreWithRehydrateRequest recoveryPointRehydrationInfo?: RecoveryPointRehydrationInfo; } +/** Defines headers for FetchTieringCost_post operation. */ +export interface FetchTieringCostPostHeaders { + location?: string; +} + /** Known values of {@link StorageType} that the service accepts. */ export enum KnownStorageType { /** Invalid */ @@ -3977,6 +4160,24 @@ export enum KnownFabricName { */ export type FabricName = string; +/** Known values of {@link AcquireStorageAccountLock} that the service accepts. */ +export enum KnownAcquireStorageAccountLock { + /** Acquire */ + Acquire = "Acquire", + /** NotAcquire */ + NotAcquire = "NotAcquire" +} + +/** + * Defines values for AcquireStorageAccountLock. \ + * {@link KnownAcquireStorageAccountLock} can be used interchangeably with AcquireStorageAccountLock, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **Acquire** \ + * **NotAcquire** + */ +export type AcquireStorageAccountLock = string; + /** Known values of {@link SupportStatus} that the service accepts. */ export enum KnownSupportStatus { /** Invalid */ @@ -4860,7 +5061,13 @@ export enum KnownRecoveryMode { /** FileRecovery */ FileRecovery = "FileRecovery", /** WorkloadRecovery */ - WorkloadRecovery = "WorkloadRecovery" + WorkloadRecovery = "WorkloadRecovery", + /** SnapshotAttach */ + SnapshotAttach = "SnapshotAttach", + /** RecoveryUsingSnapshot */ + RecoveryUsingSnapshot = "RecoveryUsingSnapshot", + /** SnapshotAttachAndRecover */ + SnapshotAttachAndRecover = "SnapshotAttachAndRecover" } /** @@ -4870,7 +5077,10 @@ export enum KnownRecoveryMode { * ### Known values supported by the service * **Invalid** \ * **FileRecovery** \ - * **WorkloadRecovery** + * **WorkloadRecovery** \ + * **SnapshotAttach** \ + * **RecoveryUsingSnapshot** \ + * **SnapshotAttachAndRecover** */ export type RecoveryMode = string; @@ -5180,24 +5390,6 @@ export enum KnownOperationType { */ export type OperationType = string; -/** Known values of {@link AcquireStorageAccountLock} that the service accepts. */ -export enum KnownAcquireStorageAccountLock { - /** Acquire */ - Acquire = "Acquire", - /** NotAcquire */ - NotAcquire = "NotAcquire" -} - -/** - * Defines values for AcquireStorageAccountLock. \ - * {@link KnownAcquireStorageAccountLock} can be used interchangeably with AcquireStorageAccountLock, - * this enum contains the known values that the service supports. - * ### Known values supported by the service - * **Acquire** \ - * **NotAcquire** - */ -export type AcquireStorageAccountLock = string; - /** Known values of {@link InquiryStatus} that the service accepts. */ export enum KnownInquiryStatus { /** Invalid */ @@ -6067,7 +6259,12 @@ export type ProtectionContainersGetResponse = ProtectionContainerResource; /** Optional parameters. */ export interface ProtectionContainersRegisterOptionalParams - 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 register operation. */ export type ProtectionContainersRegisterResponse = ProtectionContainerResource; @@ -6269,6 +6466,32 @@ export interface ResourceGuardProxyUnlockDeleteOptionalParams /** Contains response data for the unlockDelete operation. */ export type ResourceGuardProxyUnlockDeleteResponse = UnlockDeleteResponse; +/** Optional parameters. */ +export interface FetchTieringCostPostOptionalParams + 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 post operation. */ +export type FetchTieringCostPostResponse = TieringCostInfoUnion; + +/** Optional parameters. */ +export interface GetTieringCostOperationResultGetOptionalParams + extends coreClient.OperationOptions {} + +/** Contains response data for the get operation. */ +export type GetTieringCostOperationResultGetResponse = TieringCostInfoUnion; + +/** Optional parameters. */ +export interface TieringCostOperationStatusGetOptionalParams + extends coreClient.OperationOptions {} + +/** Contains response data for the get operation. */ +export type TieringCostOperationStatusGetResponse = OperationStatus; + /** Optional parameters. */ export interface RecoveryServicesBackupClientOptionalParams extends coreClient.ServiceClientOptions { diff --git a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/models/mappers.ts b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/models/mappers.ts index 11e617379f2a..c3e503b5fb93 100644 --- a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/models/mappers.ts +++ b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/models/mappers.ts @@ -361,6 +361,18 @@ export const BackupStatusResponse: coreClient.CompositeMapper = { type: { name: "String" } + }, + protectedItemsCount: { + serializedName: "protectedItemsCount", + type: { + name: "Number" + } + }, + acquireStorageAccountLock: { + serializedName: "acquireStorageAccountLock", + type: { + name: "String" + } } } } @@ -1312,6 +1324,13 @@ export const ProtectedItem: coreClient.CompositeMapper = { type: { name: "Number" } + }, + vaultId: { + serializedName: "vaultId", + readOnly: true, + type: { + name: "String" + } } } } @@ -1554,6 +1573,29 @@ export const OperationWorkerResponse: coreClient.CompositeMapper = { } }; +export const ValidateOperationRequestResource: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "ValidateOperationRequestResource", + modelProperties: { + id: { + serializedName: "id", + required: true, + type: { + name: "String" + } + }, + properties: { + serializedName: "properties", + type: { + name: "Composite", + className: "ValidateOperationRequest" + } + } + } + } +}; + export const ValidateOperationRequest: coreClient.CompositeMapper = { type: { name: "Composite", @@ -2175,6 +2217,7 @@ export const ResourceGuardProxyBase: coreClient.CompositeMapper = { modelProperties: { resourceGuardResourceId: { serializedName: "resourceGuardResourceId", + required: true, type: { name: "String" } @@ -2269,6 +2312,64 @@ export const UnlockDeleteResponse: coreClient.CompositeMapper = { } }; +export const FetchTieringCostInfoRequest: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "FetchTieringCostInfoRequest", + uberParent: "FetchTieringCostInfoRequest", + polymorphicDiscriminator: { + serializedName: "objectType", + clientName: "objectType" + }, + modelProperties: { + sourceTierType: { + serializedName: "sourceTierType", + required: true, + type: { + name: "Enum", + allowedValues: ["Invalid", "InstantRP", "HardenedRP", "ArchivedRP"] + } + }, + targetTierType: { + serializedName: "targetTierType", + required: true, + type: { + name: "Enum", + allowedValues: ["Invalid", "InstantRP", "HardenedRP", "ArchivedRP"] + } + }, + objectType: { + serializedName: "objectType", + required: true, + type: { + name: "String" + } + } + } + } +}; + +export const TieringCostInfo: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "TieringCostInfo", + uberParent: "TieringCostInfo", + polymorphicDiscriminator: { + serializedName: "objectType", + clientName: "objectType" + }, + modelProperties: { + objectType: { + serializedName: "objectType", + required: true, + type: { + name: "String" + } + } + } + } +}; + export const KPIResourceHealthDetails: coreClient.CompositeMapper = { type: { name: "Composite", @@ -2512,6 +2613,13 @@ export const SubProtectionPolicy: coreClient.CompositeMapper = { name: "Dictionary", value: { type: { name: "Composite", className: "TieringPolicy" } } } + }, + snapshotBackupAdditionalDetails: { + serializedName: "snapshotBackupAdditionalDetails", + type: { + name: "Composite", + className: "SnapshotBackupAdditionalDetails" + } } } } @@ -2586,6 +2694,108 @@ export const TieringPolicy: coreClient.CompositeMapper = { } }; +export const SnapshotBackupAdditionalDetails: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "SnapshotBackupAdditionalDetails", + modelProperties: { + instantRpRetentionRangeInDays: { + serializedName: "instantRpRetentionRangeInDays", + type: { + name: "Number" + } + }, + instantRPDetails: { + serializedName: "instantRPDetails", + type: { + name: "String" + } + }, + userAssignedManagedIdentityDetails: { + serializedName: "userAssignedManagedIdentityDetails", + type: { + name: "Composite", + className: "UserAssignedManagedIdentityDetails" + } + } + } + } +}; + +export const UserAssignedManagedIdentityDetails: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "UserAssignedManagedIdentityDetails", + modelProperties: { + identityArmId: { + serializedName: "identityArmId", + type: { + name: "String" + } + }, + identityName: { + serializedName: "identityName", + type: { + name: "String" + } + }, + userAssignedIdentityProperties: { + serializedName: "userAssignedIdentityProperties", + 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 VaultRetentionPolicy: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "VaultRetentionPolicy", + modelProperties: { + vaultRetention: { + serializedName: "vaultRetention", + type: { + name: "Composite", + className: "RetentionPolicy" + } + }, + snapshotRetentionInDays: { + serializedName: "snapshotRetentionInDays", + required: true, + type: { + name: "Number" + } + } + } + } +}; + export const AzureIaaSVMProtectedItemExtendedInfo: coreClient.CompositeMapper = { type: { name: "Composite", @@ -3261,6 +3471,27 @@ export const TargetRestoreInfo: coreClient.CompositeMapper = { } }; +export const SnapshotRestoreParameters: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "SnapshotRestoreParameters", + modelProperties: { + skipAttachAndMount: { + serializedName: "skipAttachAndMount", + type: { + name: "Boolean" + } + }, + logPointInTimeForDBRecovery: { + serializedName: "logPointInTimeForDBRecovery", + type: { + name: "String" + } + } + } + } +}; + export const AzureWorkloadSQLRecoveryPointExtendedInfo: coreClient.CompositeMapper = { type: { name: "Composite", @@ -6771,6 +7002,13 @@ export const IaasVMRecoveryPoint: coreClient.CompositeMapper = { type: { name: "Boolean" } + }, + extendedLocation: { + serializedName: "extendedLocation", + type: { + name: "Composite", + className: "ExtendedLocation" + } } } } @@ -6876,6 +7114,26 @@ export const AzureWorkloadRestoreRequest: coreClient.CompositeMapper = { name: "String" } }, + targetResourceGroupName: { + serializedName: "targetResourceGroupName", + type: { + name: "String" + } + }, + userAssignedManagedIdentityDetails: { + serializedName: "userAssignedManagedIdentityDetails", + type: { + name: "Composite", + className: "UserAssignedManagedIdentityDetails" + } + }, + snapshotRestoreParameters: { + serializedName: "snapshotRestoreParameters", + type: { + name: "Composite", + className: "SnapshotRestoreParameters" + } + }, targetVirtualMachineId: { serializedName: "targetVirtualMachineId", type: { @@ -7129,6 +7387,13 @@ export const AzureFileShareProtectionPolicy: coreClient.CompositeMapper = { className: "RetentionPolicy" } }, + vaultRetentionPolicy: { + serializedName: "vaultRetentionPolicy", + type: { + name: "Composite", + className: "VaultRetentionPolicy" + } + }, timeZone: { serializedName: "timeZone", type: { @@ -8494,6 +8759,179 @@ export const AzureVmWorkloadProtectableItem: coreClient.CompositeMapper = { } }; +export const FetchTieringCostInfoForRehydrationRequest: coreClient.CompositeMapper = { + serializedName: "FetchTieringCostInfoForRehydrationRequest", + type: { + name: "Composite", + className: "FetchTieringCostInfoForRehydrationRequest", + uberParent: "FetchTieringCostInfoRequest", + polymorphicDiscriminator: + FetchTieringCostInfoRequest.type.polymorphicDiscriminator, + modelProperties: { + ...FetchTieringCostInfoRequest.type.modelProperties, + containerName: { + serializedName: "containerName", + required: true, + type: { + name: "String" + } + }, + protectedItemName: { + serializedName: "protectedItemName", + required: true, + type: { + name: "String" + } + }, + recoveryPointId: { + serializedName: "recoveryPointId", + required: true, + type: { + name: "String" + } + }, + rehydrationPriority: { + serializedName: "rehydrationPriority", + required: true, + type: { + name: "String" + } + } + } + } +}; + +export const FetchTieringCostSavingsInfoForPolicyRequest: coreClient.CompositeMapper = { + serializedName: "FetchTieringCostSavingsInfoForPolicyRequest", + type: { + name: "Composite", + className: "FetchTieringCostSavingsInfoForPolicyRequest", + uberParent: "FetchTieringCostInfoRequest", + polymorphicDiscriminator: + FetchTieringCostInfoRequest.type.polymorphicDiscriminator, + modelProperties: { + ...FetchTieringCostInfoRequest.type.modelProperties, + policyName: { + serializedName: "policyName", + required: true, + type: { + name: "String" + } + } + } + } +}; + +export const FetchTieringCostSavingsInfoForProtectedItemRequest: coreClient.CompositeMapper = { + serializedName: "FetchTieringCostSavingsInfoForProtectedItemRequest", + type: { + name: "Composite", + className: "FetchTieringCostSavingsInfoForProtectedItemRequest", + uberParent: "FetchTieringCostInfoRequest", + polymorphicDiscriminator: + FetchTieringCostInfoRequest.type.polymorphicDiscriminator, + modelProperties: { + ...FetchTieringCostInfoRequest.type.modelProperties, + containerName: { + serializedName: "containerName", + required: true, + type: { + name: "String" + } + }, + protectedItemName: { + serializedName: "protectedItemName", + required: true, + type: { + name: "String" + } + } + } + } +}; + +export const FetchTieringCostSavingsInfoForVaultRequest: coreClient.CompositeMapper = { + serializedName: "FetchTieringCostSavingsInfoForVaultRequest", + type: { + name: "Composite", + className: "FetchTieringCostSavingsInfoForVaultRequest", + uberParent: "FetchTieringCostInfoRequest", + polymorphicDiscriminator: + FetchTieringCostInfoRequest.type.polymorphicDiscriminator, + modelProperties: { + ...FetchTieringCostInfoRequest.type.modelProperties + } + } +}; + +export const TieringCostRehydrationInfo: coreClient.CompositeMapper = { + serializedName: "TieringCostRehydrationInfo", + type: { + name: "Composite", + className: "TieringCostRehydrationInfo", + uberParent: "TieringCostInfo", + polymorphicDiscriminator: TieringCostInfo.type.polymorphicDiscriminator, + modelProperties: { + ...TieringCostInfo.type.modelProperties, + rehydrationSizeInBytes: { + serializedName: "rehydrationSizeInBytes", + required: true, + type: { + name: "Number" + } + }, + retailRehydrationCostPerGBPerMonth: { + serializedName: "retailRehydrationCostPerGBPerMonth", + required: true, + type: { + name: "Number" + } + } + } + } +}; + +export const TieringCostSavingInfo: coreClient.CompositeMapper = { + serializedName: "TieringCostSavingInfo", + type: { + name: "Composite", + className: "TieringCostSavingInfo", + uberParent: "TieringCostInfo", + polymorphicDiscriminator: TieringCostInfo.type.polymorphicDiscriminator, + modelProperties: { + ...TieringCostInfo.type.modelProperties, + sourceTierSizeReductionInBytes: { + serializedName: "sourceTierSizeReductionInBytes", + required: true, + type: { + name: "Number" + } + }, + targetTierSizeIncreaseInBytes: { + serializedName: "targetTierSizeIncreaseInBytes", + required: true, + type: { + name: "Number" + } + }, + retailSourceTierCostPerGBPerMonth: { + serializedName: "retailSourceTierCostPerGBPerMonth", + required: true, + type: { + name: "Number" + } + }, + retailTargetTierCostPerGBPerMonth: { + serializedName: "retailTargetTierCostPerGBPerMonth", + required: true, + type: { + name: "Number" + } + } + } + } +}; + export const AzureIaaSVMHealthDetails: coreClient.CompositeMapper = { type: { name: "Composite", @@ -9484,6 +9922,21 @@ export const AzureWorkloadSQLPointInTimeRestoreWithRehydrateRequest: coreClient. } }; +export const FetchTieringCostPostHeaders: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "FetchTieringCostPostHeaders", + modelProperties: { + location: { + serializedName: "location", + type: { + name: "String" + } + } + } + } +}; + export let discriminators = { FeatureSupportRequest: FeatureSupportRequest, ProtectionIntent: ProtectionIntent, @@ -9503,6 +9956,8 @@ export let discriminators = { BackupRequest: BackupRequest, ILRRequest: ILRRequest, WorkloadProtectableItem: WorkloadProtectableItem, + FetchTieringCostInfoRequest: FetchTieringCostInfoRequest, + TieringCostInfo: TieringCostInfo, SchedulePolicy: SchedulePolicy, RetentionPolicy: RetentionPolicy, "FeatureSupportRequest.AzureBackupGoals": AzureBackupGoalFeatureSupportRequest, @@ -9565,6 +10020,12 @@ export let discriminators = { "WorkloadProtectableItem.AzureFileShare": AzureFileShareProtectableItem, "WorkloadProtectableItem.IaaSVMProtectableItem": IaaSVMProtectableItem, "WorkloadProtectableItem.AzureVmWorkloadProtectableItem": AzureVmWorkloadProtectableItem, + "FetchTieringCostInfoRequest.FetchTieringCostInfoForRehydrationRequest": FetchTieringCostInfoForRehydrationRequest, + "FetchTieringCostInfoRequest.FetchTieringCostSavingsInfoForPolicyRequest": FetchTieringCostSavingsInfoForPolicyRequest, + "FetchTieringCostInfoRequest.FetchTieringCostSavingsInfoForProtectedItemRequest": FetchTieringCostSavingsInfoForProtectedItemRequest, + "FetchTieringCostInfoRequest.FetchTieringCostSavingsInfoForVaultRequest": FetchTieringCostSavingsInfoForVaultRequest, + "TieringCostInfo.TieringCostRehydrationInfo": TieringCostRehydrationInfo, + "TieringCostInfo.TieringCostSavingInfo": TieringCostSavingInfo, "SchedulePolicy.LogSchedulePolicy": LogSchedulePolicy, "SchedulePolicy.LongTermSchedulePolicy": LongTermSchedulePolicy, "SchedulePolicy.SimpleSchedulePolicy": SimpleSchedulePolicy, diff --git a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/models/parameters.ts b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/models/parameters.ts index 1b3b73496e03..4c0c8b782033 100644 --- a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/models/parameters.ts +++ b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/models/parameters.ts @@ -26,14 +26,15 @@ import { ProtectedItemResource as ProtectedItemResourceMapper, RestoreRequestResource as RestoreRequestResourceMapper, ProtectionPolicyResource as ProtectionPolicyResourceMapper, - ValidateOperationRequest as ValidateOperationRequestMapper, + ValidateOperationRequestResource as ValidateOperationRequestResourceMapper, ProtectionContainerResource as ProtectionContainerResourceMapper, BackupRequestResource as BackupRequestResourceMapper, ILRRequestResource as ILRRequestResourceMapper, SecurityPinBase as SecurityPinBaseMapper, ListRecoveryPointsRecommendedForMoveRequest as ListRecoveryPointsRecommendedForMoveRequestMapper, ResourceGuardProxyBaseResource as ResourceGuardProxyBaseResourceMapper, - UnlockDeleteRequest as UnlockDeleteRequestMapper + UnlockDeleteRequest as UnlockDeleteRequestMapper, + FetchTieringCostInfoRequest as FetchTieringCostInfoRequestMapper } from "../models/mappers"; export const accept: OperationParameter = { @@ -63,7 +64,7 @@ export const $host: OperationURLParameter = { export const apiVersion: OperationQueryParameter = { parameterPath: "apiVersion", mapper: { - defaultValue: "2023-04-01", + defaultValue: "2023-06-01", isConstant: true, serializedName: "api-version", type: { @@ -331,7 +332,7 @@ export const jobName: OperationURLParameter = { export const parameters14: OperationParameter = { parameterPath: "parameters", - mapper: ValidateOperationRequestMapper + mapper: ValidateOperationRequestResourceMapper }; export const backupEngineName: OperationURLParameter = { @@ -390,3 +391,24 @@ export const parameters21: OperationParameter = { parameterPath: "parameters", mapper: UnlockDeleteRequestMapper }; + +export const parameters22: OperationParameter = { + parameterPath: "parameters", + mapper: FetchTieringCostInfoRequestMapper +}; + +export const vaultName1: OperationURLParameter = { + parameterPath: "vaultName", + mapper: { + constraints: { + Pattern: new RegExp("^[A-Za-z][-A-Za-z0-9]*[A-Za-z0-9]$"), + MaxLength: 50, + MinLength: 2 + }, + serializedName: "vaultName", + required: true, + type: { + name: "String" + } + } +}; diff --git a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/fetchTieringCost.ts b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/fetchTieringCost.ts new file mode 100644 index 000000000000..736905529810 --- /dev/null +++ b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/fetchTieringCost.ts @@ -0,0 +1,174 @@ +/* + * 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 { FetchTieringCost } from "../operationsInterfaces"; +import * as coreClient from "@azure/core-client"; +import * as Mappers from "../models/mappers"; +import * as Parameters from "../models/parameters"; +import { RecoveryServicesBackupClient } from "../recoveryServicesBackupClient"; +import { + SimplePollerLike, + OperationState, + createHttpPoller +} from "@azure/core-lro"; +import { createLroSpec } from "../lroImpl"; +import { + FetchTieringCostInfoRequestUnion, + FetchTieringCostPostOptionalParams, + FetchTieringCostPostResponse +} from "../models"; + +/** Class containing FetchTieringCost operations. */ +export class FetchTieringCostImpl implements FetchTieringCost { + private readonly client: RecoveryServicesBackupClient; + + /** + * Initialize a new instance of the class FetchTieringCost class. + * @param client Reference to the service client + */ + constructor(client: RecoveryServicesBackupClient) { + this.client = client; + } + + /** + * Provides the details of the tiering related sizes and cost. + * Status of the operation can be fetched using GetTieringCostOperationStatus API and result using + * GetTieringCostOperationResult API. + * @param resourceGroupName The name of the resource group where the recovery services vault is + * present. + * @param vaultName The name of the recovery services vault. + * @param parameters Fetch Tiering Cost Request + * @param options The options parameters. + */ + async beginPost( + resourceGroupName: string, + vaultName: string, + parameters: FetchTieringCostInfoRequestUnion, + options?: FetchTieringCostPostOptionalParams + ): Promise< + SimplePollerLike< + OperationState, + FetchTieringCostPostResponse + > + > { + const directSendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ): Promise => { + return this.client.sendOperationRequest(args, spec); + }; + const sendOperationFn = 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 = createLroSpec({ + sendOperationFn, + args: { resourceGroupName, vaultName, parameters, options }, + spec: postOperationSpec + }); + const poller = await createHttpPoller< + FetchTieringCostPostResponse, + OperationState + >(lro, { + restoreFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs + }); + await poller.poll(); + return poller; + } + + /** + * Provides the details of the tiering related sizes and cost. + * Status of the operation can be fetched using GetTieringCostOperationStatus API and result using + * GetTieringCostOperationResult API. + * @param resourceGroupName The name of the resource group where the recovery services vault is + * present. + * @param vaultName The name of the recovery services vault. + * @param parameters Fetch Tiering Cost Request + * @param options The options parameters. + */ + async beginPostAndWait( + resourceGroupName: string, + vaultName: string, + parameters: FetchTieringCostInfoRequestUnion, + options?: FetchTieringCostPostOptionalParams + ): Promise { + const poller = await this.beginPost( + resourceGroupName, + vaultName, + parameters, + options + ); + return poller.pollUntilDone(); + } +} +// Operation Specifications +const serializer = coreClient.createSerializer(Mappers, /* isXml */ false); + +const postOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupTieringCost/default/fetchTieringCost", + httpMethod: "POST", + responses: { + 200: { + bodyMapper: Mappers.TieringCostInfo + }, + 201: { + bodyMapper: Mappers.TieringCostInfo + }, + 202: { + bodyMapper: Mappers.TieringCostInfo + }, + 204: { + bodyMapper: Mappers.TieringCostInfo + }, + default: { + bodyMapper: Mappers.CloudError + } + }, + requestBody: Parameters.parameters22, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.resourceGroupName, + Parameters.subscriptionId, + Parameters.vaultName1 + ], + headerParameters: [Parameters.accept, Parameters.contentType], + mediaType: "json", + serializer +}; diff --git a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/getTieringCostOperationResult.ts b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/getTieringCostOperationResult.ts new file mode 100644 index 000000000000..fd1a16a4ec9f --- /dev/null +++ b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/getTieringCostOperationResult.ts @@ -0,0 +1,77 @@ +/* + * 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 { GetTieringCostOperationResult } from "../operationsInterfaces"; +import * as coreClient from "@azure/core-client"; +import * as Mappers from "../models/mappers"; +import * as Parameters from "../models/parameters"; +import { RecoveryServicesBackupClient } from "../recoveryServicesBackupClient"; +import { + GetTieringCostOperationResultGetOptionalParams, + GetTieringCostOperationResultGetResponse +} from "../models"; + +/** Class containing GetTieringCostOperationResult operations. */ +export class GetTieringCostOperationResultImpl + implements GetTieringCostOperationResult { + private readonly client: RecoveryServicesBackupClient; + + /** + * Initialize a new instance of the class GetTieringCostOperationResult class. + * @param client Reference to the service client + */ + constructor(client: RecoveryServicesBackupClient) { + this.client = client; + } + + /** + * Gets the result of async operation for tiering cost + * @param resourceGroupName The name of the resource group where the recovery services vault is + * present. + * @param vaultName The name of the recovery services vault. + * @param operationId + * @param options The options parameters. + */ + get( + resourceGroupName: string, + vaultName: string, + operationId: string, + options?: GetTieringCostOperationResultGetOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { resourceGroupName, vaultName, operationId, options }, + getOperationSpec + ); + } +} +// Operation Specifications +const serializer = coreClient.createSerializer(Mappers, /* isXml */ false); + +const getOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupTieringCost/default/operationResults/{operationId}", + httpMethod: "GET", + responses: { + 200: { + bodyMapper: Mappers.TieringCostInfo + }, + default: { + bodyMapper: Mappers.CloudError + } + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.resourceGroupName, + Parameters.subscriptionId, + Parameters.operationId, + Parameters.vaultName1 + ], + headerParameters: [Parameters.accept], + serializer +}; diff --git a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/index.ts b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/index.ts index 2437070aadd2..8739454d0e78 100644 --- a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/index.ts +++ b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/index.ts @@ -55,3 +55,6 @@ export * from "./securityPINs"; export * from "./recoveryPointsRecommendedForMove"; export * from "./resourceGuardProxies"; export * from "./resourceGuardProxy"; +export * from "./fetchTieringCost"; +export * from "./getTieringCostOperationResult"; +export * from "./tieringCostOperationStatus"; diff --git a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/operation.ts b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/operation.ts index 9d6bb4ef28c5..957d1e64ef4d 100644 --- a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/operation.ts +++ b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/operation.ts @@ -12,7 +12,7 @@ import * as Mappers from "../models/mappers"; import * as Parameters from "../models/parameters"; import { RecoveryServicesBackupClient } from "../recoveryServicesBackupClient"; import { - ValidateOperationRequestUnion, + ValidateOperationRequestResource, OperationValidateOptionalParams, OperationValidateResponse } from "../models"; @@ -40,7 +40,7 @@ export class OperationImpl implements Operation { validate( vaultName: string, resourceGroupName: string, - parameters: ValidateOperationRequestUnion, + parameters: ValidateOperationRequestResource, options?: OperationValidateOptionalParams ): Promise { return this.client.sendOperationRequest( diff --git a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/protectionContainers.ts b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/protectionContainers.ts index 8bb5592fff58..5c89618c4539 100644 --- a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/protectionContainers.ts +++ b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/protectionContainers.ts @@ -11,6 +11,12 @@ import * as coreClient from "@azure/core-client"; import * as Mappers from "../models/mappers"; import * as Parameters from "../models/parameters"; import { RecoveryServicesBackupClient } from "../recoveryServicesBackupClient"; +import { + SimplePollerLike, + OperationState, + createHttpPoller +} from "@azure/core-lro"; +import { createLroSpec } from "../lroImpl"; import { ProtectionContainersGetOptionalParams, ProtectionContainersGetResponse, @@ -69,16 +75,61 @@ export class ProtectionContainersImpl implements ProtectionContainers { * @param parameters Request body for operation * @param options The options parameters. */ - register( + async beginRegister( vaultName: string, resourceGroupName: string, fabricName: string, containerName: string, parameters: ProtectionContainerResource, options?: ProtectionContainersRegisterOptionalParams - ): Promise { - return this.client.sendOperationRequest( - { + ): Promise< + SimplePollerLike< + OperationState, + ProtectionContainersRegisterResponse + > + > { + const directSendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ): Promise => { + return this.client.sendOperationRequest(args, spec); + }; + const sendOperationFn = 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 = createLroSpec({ + sendOperationFn, + args: { vaultName, resourceGroupName, fabricName, @@ -86,8 +137,49 @@ export class ProtectionContainersImpl implements ProtectionContainers { parameters, options }, - registerOperationSpec + spec: registerOperationSpec + }); + const poller = await createHttpPoller< + ProtectionContainersRegisterResponse, + OperationState + >(lro, { + restoreFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs + }); + await poller.poll(); + return poller; + } + + /** + * Registers the container with Recovery Services vault. + * This is an asynchronous operation. To track the operation status, use location header to call get + * latest status of + * the operation. + * @param vaultName The name of the recovery services vault. + * @param resourceGroupName The name of the resource group where the recovery services vault is + * present. + * @param fabricName Fabric name associated with the container. + * @param containerName Name of the container to be registered. + * @param parameters Request body for operation + * @param options The options parameters. + */ + async beginRegisterAndWait( + vaultName: string, + resourceGroupName: string, + fabricName: string, + containerName: string, + parameters: ProtectionContainerResource, + options?: ProtectionContainersRegisterOptionalParams + ): Promise { + const poller = await this.beginRegister( + vaultName, + resourceGroupName, + fabricName, + containerName, + parameters, + options ); + return poller.pollUntilDone(); } /** @@ -196,7 +288,15 @@ const registerOperationSpec: coreClient.OperationSpec = { 200: { bodyMapper: Mappers.ProtectionContainerResource }, - 202: {}, + 201: { + bodyMapper: Mappers.ProtectionContainerResource + }, + 202: { + bodyMapper: Mappers.ProtectionContainerResource + }, + 204: { + bodyMapper: Mappers.ProtectionContainerResource + }, default: { bodyMapper: Mappers.CloudError } diff --git a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/tieringCostOperationStatus.ts b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/tieringCostOperationStatus.ts new file mode 100644 index 000000000000..e75bcf66677e --- /dev/null +++ b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/tieringCostOperationStatus.ts @@ -0,0 +1,77 @@ +/* + * 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 { TieringCostOperationStatus } from "../operationsInterfaces"; +import * as coreClient from "@azure/core-client"; +import * as Mappers from "../models/mappers"; +import * as Parameters from "../models/parameters"; +import { RecoveryServicesBackupClient } from "../recoveryServicesBackupClient"; +import { + TieringCostOperationStatusGetOptionalParams, + TieringCostOperationStatusGetResponse +} from "../models"; + +/** Class containing TieringCostOperationStatus operations. */ +export class TieringCostOperationStatusImpl + implements TieringCostOperationStatus { + private readonly client: RecoveryServicesBackupClient; + + /** + * Initialize a new instance of the class TieringCostOperationStatus class. + * @param client Reference to the service client + */ + constructor(client: RecoveryServicesBackupClient) { + this.client = client; + } + + /** + * Gets the status of async operations of tiering cost + * @param resourceGroupName The name of the resource group where the recovery services vault is + * present. + * @param vaultName The name of the recovery services vault. + * @param operationId + * @param options The options parameters. + */ + get( + resourceGroupName: string, + vaultName: string, + operationId: string, + options?: TieringCostOperationStatusGetOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { resourceGroupName, vaultName, operationId, options }, + getOperationSpec + ); + } +} +// Operation Specifications +const serializer = coreClient.createSerializer(Mappers, /* isXml */ false); + +const getOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupTieringCost/default/operationsStatus/{operationId}", + httpMethod: "GET", + responses: { + 200: { + bodyMapper: Mappers.OperationStatus + }, + default: { + bodyMapper: Mappers.CloudError + } + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.resourceGroupName, + Parameters.subscriptionId, + Parameters.operationId, + Parameters.vaultName1 + ], + headerParameters: [Parameters.accept], + serializer +}; diff --git a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/validateOperation.ts b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/validateOperation.ts index a35cda7aef47..876229faba14 100644 --- a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/validateOperation.ts +++ b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operations/validateOperation.ts @@ -18,7 +18,7 @@ import { } from "@azure/core-lro"; import { createLroSpec } from "../lroImpl"; import { - ValidateOperationRequestUnion, + ValidateOperationRequestResource, ValidateOperationTriggerOptionalParams } from "../models"; @@ -46,7 +46,7 @@ export class ValidateOperationImpl implements ValidateOperation { async beginTrigger( vaultName: string, resourceGroupName: string, - parameters: ValidateOperationRequestUnion, + parameters: ValidateOperationRequestResource, options?: ValidateOperationTriggerOptionalParams ): Promise, void>> { const directSendOperation = async ( @@ -113,7 +113,7 @@ export class ValidateOperationImpl implements ValidateOperation { async beginTriggerAndWait( vaultName: string, resourceGroupName: string, - parameters: ValidateOperationRequestUnion, + parameters: ValidateOperationRequestResource, options?: ValidateOperationTriggerOptionalParams ): Promise { const poller = await this.beginTrigger( diff --git a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/fetchTieringCost.ts b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/fetchTieringCost.ts new file mode 100644 index 000000000000..9a062f9adcbb --- /dev/null +++ b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/fetchTieringCost.ts @@ -0,0 +1,55 @@ +/* + * 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 { SimplePollerLike, OperationState } from "@azure/core-lro"; +import { + FetchTieringCostInfoRequestUnion, + FetchTieringCostPostOptionalParams, + FetchTieringCostPostResponse +} from "../models"; + +/** Interface representing a FetchTieringCost. */ +export interface FetchTieringCost { + /** + * Provides the details of the tiering related sizes and cost. + * Status of the operation can be fetched using GetTieringCostOperationStatus API and result using + * GetTieringCostOperationResult API. + * @param resourceGroupName The name of the resource group where the recovery services vault is + * present. + * @param vaultName The name of the recovery services vault. + * @param parameters Fetch Tiering Cost Request + * @param options The options parameters. + */ + beginPost( + resourceGroupName: string, + vaultName: string, + parameters: FetchTieringCostInfoRequestUnion, + options?: FetchTieringCostPostOptionalParams + ): Promise< + SimplePollerLike< + OperationState, + FetchTieringCostPostResponse + > + >; + /** + * Provides the details of the tiering related sizes and cost. + * Status of the operation can be fetched using GetTieringCostOperationStatus API and result using + * GetTieringCostOperationResult API. + * @param resourceGroupName The name of the resource group where the recovery services vault is + * present. + * @param vaultName The name of the recovery services vault. + * @param parameters Fetch Tiering Cost Request + * @param options The options parameters. + */ + beginPostAndWait( + resourceGroupName: string, + vaultName: string, + parameters: FetchTieringCostInfoRequestUnion, + options?: FetchTieringCostPostOptionalParams + ): Promise; +} diff --git a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/getTieringCostOperationResult.ts b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/getTieringCostOperationResult.ts new file mode 100644 index 000000000000..d9324f724f2e --- /dev/null +++ b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/getTieringCostOperationResult.ts @@ -0,0 +1,30 @@ +/* + * 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 { + GetTieringCostOperationResultGetOptionalParams, + GetTieringCostOperationResultGetResponse +} from "../models"; + +/** Interface representing a GetTieringCostOperationResult. */ +export interface GetTieringCostOperationResult { + /** + * Gets the result of async operation for tiering cost + * @param resourceGroupName The name of the resource group where the recovery services vault is + * present. + * @param vaultName The name of the recovery services vault. + * @param operationId + * @param options The options parameters. + */ + get( + resourceGroupName: string, + vaultName: string, + operationId: string, + options?: GetTieringCostOperationResultGetOptionalParams + ): Promise; +} diff --git a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/index.ts b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/index.ts index 2437070aadd2..8739454d0e78 100644 --- a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/index.ts +++ b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/index.ts @@ -55,3 +55,6 @@ export * from "./securityPINs"; export * from "./recoveryPointsRecommendedForMove"; export * from "./resourceGuardProxies"; export * from "./resourceGuardProxy"; +export * from "./fetchTieringCost"; +export * from "./getTieringCostOperationResult"; +export * from "./tieringCostOperationStatus"; diff --git a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/operation.ts b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/operation.ts index 4bc05196c2df..298ef323e695 100644 --- a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/operation.ts +++ b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/operation.ts @@ -7,7 +7,7 @@ */ import { - ValidateOperationRequestUnion, + ValidateOperationRequestResource, OperationValidateOptionalParams, OperationValidateResponse } from "../models"; @@ -25,7 +25,7 @@ export interface Operation { validate( vaultName: string, resourceGroupName: string, - parameters: ValidateOperationRequestUnion, + parameters: ValidateOperationRequestResource, options?: OperationValidateOptionalParams ): Promise; } diff --git a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/protectionContainers.ts b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/protectionContainers.ts index d0a76cfb3575..a732a5c7f9f2 100644 --- a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/protectionContainers.ts +++ b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/protectionContainers.ts @@ -6,6 +6,7 @@ * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ +import { SimplePollerLike, OperationState } from "@azure/core-lro"; import { ProtectionContainersGetOptionalParams, ProtectionContainersGetResponse, @@ -48,7 +49,33 @@ export interface ProtectionContainers { * @param parameters Request body for operation * @param options The options parameters. */ - register( + beginRegister( + vaultName: string, + resourceGroupName: string, + fabricName: string, + containerName: string, + parameters: ProtectionContainerResource, + options?: ProtectionContainersRegisterOptionalParams + ): Promise< + SimplePollerLike< + OperationState, + ProtectionContainersRegisterResponse + > + >; + /** + * Registers the container with Recovery Services vault. + * This is an asynchronous operation. To track the operation status, use location header to call get + * latest status of + * the operation. + * @param vaultName The name of the recovery services vault. + * @param resourceGroupName The name of the resource group where the recovery services vault is + * present. + * @param fabricName Fabric name associated with the container. + * @param containerName Name of the container to be registered. + * @param parameters Request body for operation + * @param options The options parameters. + */ + beginRegisterAndWait( vaultName: string, resourceGroupName: string, fabricName: string, diff --git a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/tieringCostOperationStatus.ts b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/tieringCostOperationStatus.ts new file mode 100644 index 000000000000..52e2e95bf699 --- /dev/null +++ b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/tieringCostOperationStatus.ts @@ -0,0 +1,30 @@ +/* + * 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 { + TieringCostOperationStatusGetOptionalParams, + TieringCostOperationStatusGetResponse +} from "../models"; + +/** Interface representing a TieringCostOperationStatus. */ +export interface TieringCostOperationStatus { + /** + * Gets the status of async operations of tiering cost + * @param resourceGroupName The name of the resource group where the recovery services vault is + * present. + * @param vaultName The name of the recovery services vault. + * @param operationId + * @param options The options parameters. + */ + get( + resourceGroupName: string, + vaultName: string, + operationId: string, + options?: TieringCostOperationStatusGetOptionalParams + ): Promise; +} diff --git a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/validateOperation.ts b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/validateOperation.ts index 94fe398c9348..7022069d8b52 100644 --- a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/validateOperation.ts +++ b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/operationsInterfaces/validateOperation.ts @@ -8,7 +8,7 @@ import { SimplePollerLike, OperationState } from "@azure/core-lro"; import { - ValidateOperationRequestUnion, + ValidateOperationRequestResource, ValidateOperationTriggerOptionalParams } from "../models"; @@ -26,7 +26,7 @@ export interface ValidateOperation { beginTrigger( vaultName: string, resourceGroupName: string, - parameters: ValidateOperationRequestUnion, + parameters: ValidateOperationRequestResource, options?: ValidateOperationTriggerOptionalParams ): Promise, void>>; /** @@ -41,7 +41,7 @@ export interface ValidateOperation { beginTriggerAndWait( vaultName: string, resourceGroupName: string, - parameters: ValidateOperationRequestUnion, + parameters: ValidateOperationRequestResource, options?: ValidateOperationTriggerOptionalParams ): Promise; } diff --git a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/recoveryServicesBackupClient.ts b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/recoveryServicesBackupClient.ts index c528c4a10709..637a0a5125a4 100644 --- a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/recoveryServicesBackupClient.ts +++ b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/src/recoveryServicesBackupClient.ts @@ -69,7 +69,10 @@ import { SecurityPINsImpl, RecoveryPointsRecommendedForMoveImpl, ResourceGuardProxiesImpl, - ResourceGuardProxyImpl + ResourceGuardProxyImpl, + FetchTieringCostImpl, + GetTieringCostOperationResultImpl, + TieringCostOperationStatusImpl } from "./operations"; import { BackupResourceStorageConfigsNonCRR, @@ -120,7 +123,10 @@ import { SecurityPINs, RecoveryPointsRecommendedForMove, ResourceGuardProxies, - ResourceGuardProxy + ResourceGuardProxy, + FetchTieringCost, + GetTieringCostOperationResult, + TieringCostOperationStatus } from "./operationsInterfaces"; import * as Parameters from "./models/parameters"; import * as Mappers from "./models/mappers"; @@ -168,7 +174,7 @@ export class RecoveryServicesBackupClient extends coreClient.ServiceClient { credential: credentials }; - const packageDetails = `azsdk-js-arm-recoveryservicesbackup/11.0.1`; + const packageDetails = `azsdk-js-arm-recoveryservicesbackup/12.0.0`; const userAgentPrefix = options.userAgentOptions && options.userAgentOptions.userAgentPrefix ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}` @@ -221,7 +227,7 @@ export class RecoveryServicesBackupClient extends coreClient.ServiceClient { // Assigning values to Constant parameters this.$host = options.$host || "https://management.azure.com"; - this.apiVersion = options.apiVersion || "2023-04-01"; + this.apiVersion = options.apiVersion || "2023-06-01"; this.backupResourceStorageConfigsNonCRR = new BackupResourceStorageConfigsNonCRRImpl( this ); @@ -297,6 +303,11 @@ export class RecoveryServicesBackupClient extends coreClient.ServiceClient { ); this.resourceGuardProxies = new ResourceGuardProxiesImpl(this); this.resourceGuardProxy = new ResourceGuardProxyImpl(this); + this.fetchTieringCost = new FetchTieringCostImpl(this); + this.getTieringCostOperationResult = new GetTieringCostOperationResultImpl( + this + ); + this.tieringCostOperationStatus = new TieringCostOperationStatusImpl(this); this.addCustomApiVersionPolicy(options.apiVersion); } @@ -693,6 +704,9 @@ export class RecoveryServicesBackupClient extends coreClient.ServiceClient { recoveryPointsRecommendedForMove: RecoveryPointsRecommendedForMove; resourceGuardProxies: ResourceGuardProxies; resourceGuardProxy: ResourceGuardProxy; + fetchTieringCost: FetchTieringCost; + getTieringCostOperationResult: GetTieringCostOperationResult; + tieringCostOperationStatus: TieringCostOperationStatus; } // Operation Specifications const serializer = coreClient.createSerializer(Mappers, /* isXml */ false); diff --git a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/test/sampleTest.ts b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/test/sampleTest.ts new file mode 100644 index 000000000000..25aeb3ebcc36 --- /dev/null +++ b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/test/sampleTest.ts @@ -0,0 +1,43 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is regenerated. + */ + +import { + Recorder, + RecorderStartOptions, + env +} from "@azure-tools/test-recorder"; +import { assert } from "chai"; +import { Context } from "mocha"; + +const replaceableVariables: Record = { + AZURE_CLIENT_ID: "azure_client_id", + AZURE_CLIENT_SECRET: "azure_client_secret", + AZURE_TENANT_ID: "88888888-8888-8888-8888-888888888888", + SUBSCRIPTION_ID: "azure_subscription_id" +}; + +const recorderOptions: RecorderStartOptions = { + envSetupForPlayback: replaceableVariables +}; + +describe("My test", () => { + let recorder: Recorder; + + beforeEach(async function(this: Context) { + recorder = new Recorder(this.currentTest); + await recorder.start(recorderOptions); + }); + + afterEach(async function() { + await recorder.stop(); + }); + + it("sample test", async function() { + console.log("Hi, I'm a test!"); + }); +}); diff --git a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/tsconfig.json b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/tsconfig.json index a7e9eaf1a49b..3e6ae96443f3 100644 --- a/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/tsconfig.json +++ b/sdk/recoveryservicesbackup/arm-recoveryservicesbackup/tsconfig.json @@ -15,17 +15,11 @@ ], "declaration": true, "outDir": "./dist-esm", - "importHelpers": true, - "paths": { - "@azure/arm-recoveryservicesbackup": [ - "./src/index" - ] - } + "importHelpers": true }, "include": [ "./src/**/*.ts", - "./test/**/*.ts", - "samples-dev/**/*.ts" + "./test/**/*.ts" ], "exclude": [ "node_modules"