diff --git a/sdk/netapp/arm-netapp/CHANGELOG.md b/sdk/netapp/arm-netapp/CHANGELOG.md index 6e6671efc07d..228ea1e248af 100644 --- a/sdk/netapp/arm-netapp/CHANGELOG.md +++ b/sdk/netapp/arm-netapp/CHANGELOG.md @@ -1,5 +1,78 @@ # Release History +## 21.1.0-beta.1 (2024-06-10) +Compared with version 21.0.0 + +**Features** + + - Added operation Accounts.beginChangeKeyVault + - Added operation Accounts.beginChangeKeyVaultAndWait + - Added operation Accounts.beginGetChangeKeyVaultInformation + - Added operation Accounts.beginGetChangeKeyVaultInformationAndWait + - Added operation Accounts.beginMigrateEncryptionKey + - Added operation Accounts.beginMigrateEncryptionKeyAndWait + - Added operation Volumes.beginCreateOnPremMigrationReplication + - Added operation Volumes.beginCreateOnPremMigrationReplicationAndWait + - Added operation Volumes.beginFinalizeOnPremMigration + - Added operation Volumes.beginFinalizeOnPremMigrationAndWait + - Added operation Volumes.beginPeerClusterForOnPremMigration + - Added operation Volumes.beginPeerClusterForOnPremMigrationAndWait + - Added operation Volumes.beginPerformReplicationTransfer + - Added operation Volumes.beginPerformReplicationTransferAndWait + - Added operation Volumes.beginSplitCloneFromParent + - Added operation Volumes.beginSplitCloneFromParentAndWait + - Added Interface AccountsChangeKeyVaultHeaders + - Added Interface AccountsChangeKeyVaultOptionalParams + - Added Interface AccountsGetChangeKeyVaultInformationHeaders + - Added Interface AccountsGetChangeKeyVaultInformationOptionalParams + - Added Interface AccountsMigrateEncryptionKeyHeaders + - Added Interface AccountsMigrateEncryptionKeyOptionalParams + - Added Interface ChangeKeyVault + - Added Interface ClusterPeerCommandResponse + - Added Interface EncryptionMigrationRequest + - Added Interface KeyVaultPrivateEndpoint + - Added Interface PeerClusterForVolumeMigrationRequest + - Added Interface RemotePath + - Added Interface SvmPeerCommandResponse + - Added Interface VolumesCreateOnPremMigrationReplicationHeaders + - Added Interface VolumesCreateOnPremMigrationReplicationOptionalParams + - Added Interface VolumesFinalizeOnPremMigrationHeaders + - Added Interface VolumesFinalizeOnPremMigrationOptionalParams + - Added Interface VolumesPeerClusterForOnPremMigrationHeaders + - Added Interface VolumesPeerClusterForOnPremMigrationOptionalParams + - Added Interface VolumesPerformReplicationTransferHeaders + - Added Interface VolumesPerformReplicationTransferOptionalParams + - Added Interface VolumesSplitCloneFromParentHeaders + - Added Interface VolumesSplitCloneFromParentOptionalParams + - Added Type Alias AcceptGrowCapacityPoolForShortTermCloneSplit + - Added Type Alias AccountsChangeKeyVaultResponse + - Added Type Alias AccountsGetChangeKeyVaultInformationResponse + - Added Type Alias AccountsMigrateEncryptionKeyResponse + - Added Type Alias VolumeLanguage + - Added Type Alias VolumesCreateOnPremMigrationReplicationResponse + - Added Type Alias VolumesFinalizeOnPremMigrationResponse + - Added Type Alias VolumesPeerClusterForOnPremMigrationResponse + - Added Type Alias VolumesPerformReplicationTransferResponse + - Added Type Alias VolumesSplitCloneFromParentResponse + - Interface FilePathAvailabilityRequest has a new optional parameter availabilityZone + - Interface NetAppAccount has a new optional parameter isMultiAdEnabled + - Interface NetAppAccount has a new optional parameter nfsV4IDDomain + - Interface NetAppAccountPatch has a new optional parameter isMultiAdEnabled + - Interface NetAppAccountPatch has a new optional parameter nfsV4IDDomain + - Interface NetAppResourceCheckFilePathAvailabilityOptionalParams has a new optional parameter availabilityZone + - Interface Replication has a new optional parameter replicationId + - Interface ReplicationObject has a new optional parameter remotePath + - Interface Volume has a new optional parameter acceptGrowCapacityPoolForShortTermCloneSplit + - Interface Volume has a new optional parameter inheritedSizeInBytes + - Interface Volume has a new optional parameter language + - Interface VolumeGroupVolumeProperties has a new optional parameter acceptGrowCapacityPoolForShortTermCloneSplit + - Interface VolumeGroupVolumeProperties has a new optional parameter inheritedSizeInBytes + - Interface VolumeGroupVolumeProperties has a new optional parameter language + - Interface VolumePatch has a new optional parameter protocolTypes + - Added Enum KnownAcceptGrowCapacityPoolForShortTermCloneSplit + - Added Enum KnownVolumeLanguage + + ## 21.0.0 (2024-05-14) **Features** diff --git a/sdk/netapp/arm-netapp/README.md b/sdk/netapp/arm-netapp/README.md index 0d9fb4d010e8..78ab29c62855 100644 --- a/sdk/netapp/arm-netapp/README.md +++ b/sdk/netapp/arm-netapp/README.md @@ -6,7 +6,7 @@ Microsoft NetApp Files Azure Resource Provider specification [Source code](https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/netapp/arm-netapp) | [Package (NPM)](https://www.npmjs.com/package/@azure/arm-netapp) | -[API reference documentation](https://docs.microsoft.com/javascript/api/@azure/arm-netapp) | +[API reference documentation](https://docs.microsoft.com/javascript/api/@azure/arm-netapp?view=azure-node-preview) | [Samples](https://github.com/Azure-Samples/azure-samples-js-management) ## Getting started diff --git a/sdk/netapp/arm-netapp/_meta.json b/sdk/netapp/arm-netapp/_meta.json index d3ac539075d7..83decf1bd1a8 100644 --- a/sdk/netapp/arm-netapp/_meta.json +++ b/sdk/netapp/arm-netapp/_meta.json @@ -1,8 +1,8 @@ { - "commit": "ec07fc78c6c25b68107f8ff419d137ffecced005", + "commit": "6d38dec057bde1ae17494ec59a9437d82206db95", "readme": "specification/netapp/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\\netapp\\resource-manager\\readme.md --use=@autorest/typescript@6.0.22 --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/netapp/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.9", - "use": "@autorest/typescript@6.0.22" + "release_tool": "@azure-tools/js-sdk-release-tools@2.7.10", + "use": "@autorest/typescript@^6.0.12" } \ No newline at end of file diff --git a/sdk/netapp/arm-netapp/package.json b/sdk/netapp/arm-netapp/package.json index 6a6ec4f88720..ba1900a093a8 100644 --- a/sdk/netapp/arm-netapp/package.json +++ b/sdk/netapp/arm-netapp/package.json @@ -3,7 +3,7 @@ "sdk-type": "mgmt", "author": "Microsoft Corporation", "description": "A generated SDK for NetAppManagementClient.", - "version": "21.0.0", + "version": "21.1.0-beta.1", "engines": { "node": ">=18.0.0" }, @@ -106,13 +106,5 @@ ] }, "autoPublish": true, - "homepage": "https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/netapp/arm-netapp", - "//sampleConfiguration": { - "productName": "", - "productSlugs": [ - "azure" - ], - "disableDocsMs": true, - "apiRefLink": "https://docs.microsoft.com/javascript/api/@azure/arm-netapp?view=azure-node-preview" - } -} + "homepage": "https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/netapp/arm-netapp" +} \ No newline at end of file diff --git a/sdk/netapp/arm-netapp/review/arm-netapp.api.md b/sdk/netapp/arm-netapp/review/arm-netapp.api.md index f3efa864046d..d85f394397b6 100644 --- a/sdk/netapp/arm-netapp/review/arm-netapp.api.md +++ b/sdk/netapp/arm-netapp/review/arm-netapp.api.md @@ -10,6 +10,9 @@ import { OperationState } from '@azure/core-lro'; import { PagedAsyncIterableIterator } from '@azure/core-paging'; import { SimplePollerLike } from '@azure/core-lro'; +// @public +export type AcceptGrowCapacityPoolForShortTermCloneSplit = string; + // @public export interface AccountEncryption { identity?: EncryptionIdentity; @@ -19,10 +22,16 @@ export interface AccountEncryption { // @public export interface Accounts { + beginChangeKeyVault(resourceGroupName: string, accountName: string, options?: AccountsChangeKeyVaultOptionalParams): Promise, AccountsChangeKeyVaultResponse>>; + beginChangeKeyVaultAndWait(resourceGroupName: string, accountName: string, options?: AccountsChangeKeyVaultOptionalParams): Promise; beginCreateOrUpdate(resourceGroupName: string, accountName: string, body: NetAppAccount, options?: AccountsCreateOrUpdateOptionalParams): Promise, AccountsCreateOrUpdateResponse>>; beginCreateOrUpdateAndWait(resourceGroupName: string, accountName: string, body: NetAppAccount, options?: AccountsCreateOrUpdateOptionalParams): Promise; beginDelete(resourceGroupName: string, accountName: string, options?: AccountsDeleteOptionalParams): Promise, void>>; beginDeleteAndWait(resourceGroupName: string, accountName: string, options?: AccountsDeleteOptionalParams): Promise; + beginGetChangeKeyVaultInformation(resourceGroupName: string, accountName: string, options?: AccountsGetChangeKeyVaultInformationOptionalParams): Promise, AccountsGetChangeKeyVaultInformationResponse>>; + beginGetChangeKeyVaultInformationAndWait(resourceGroupName: string, accountName: string, options?: AccountsGetChangeKeyVaultInformationOptionalParams): Promise; + beginMigrateEncryptionKey(resourceGroupName: string, accountName: string, options?: AccountsMigrateEncryptionKeyOptionalParams): Promise, AccountsMigrateEncryptionKeyResponse>>; + beginMigrateEncryptionKeyAndWait(resourceGroupName: string, accountName: string, options?: AccountsMigrateEncryptionKeyOptionalParams): Promise; beginRenewCredentials(resourceGroupName: string, accountName: string, options?: AccountsRenewCredentialsOptionalParams): Promise, void>>; beginRenewCredentialsAndWait(resourceGroupName: string, accountName: string, options?: AccountsRenewCredentialsOptionalParams): Promise; beginUpdate(resourceGroupName: string, accountName: string, body: NetAppAccountPatch, options?: AccountsUpdateOptionalParams): Promise, AccountsUpdateResponse>>; @@ -32,6 +41,22 @@ export interface Accounts { listBySubscription(options?: AccountsListBySubscriptionOptionalParams): PagedAsyncIterableIterator; } +// @public +export interface AccountsChangeKeyVaultHeaders { + // (undocumented) + location?: string; +} + +// @public +export interface AccountsChangeKeyVaultOptionalParams extends coreClient.OperationOptions { + body?: ChangeKeyVault; + resumeFrom?: string; + updateIntervalInMs?: number; +} + +// @public +export type AccountsChangeKeyVaultResponse = AccountsChangeKeyVaultHeaders; + // @public export interface AccountsCreateOrUpdateOptionalParams extends coreClient.OperationOptions { resumeFrom?: string; @@ -47,6 +72,21 @@ export interface AccountsDeleteOptionalParams extends coreClient.OperationOption updateIntervalInMs?: number; } +// @public +export interface AccountsGetChangeKeyVaultInformationHeaders { + // (undocumented) + location?: string; +} + +// @public +export interface AccountsGetChangeKeyVaultInformationOptionalParams extends coreClient.OperationOptions { + resumeFrom?: string; + updateIntervalInMs?: number; +} + +// @public +export type AccountsGetChangeKeyVaultInformationResponse = AccountsGetChangeKeyVaultInformationHeaders; + // @public export interface AccountsGetOptionalParams extends coreClient.OperationOptions { } @@ -82,6 +122,22 @@ export interface AccountsListOptionalParams extends coreClient.OperationOptions // @public export type AccountsListResponse = NetAppAccountList; +// @public +export interface AccountsMigrateEncryptionKeyHeaders { + // (undocumented) + location?: string; +} + +// @public +export interface AccountsMigrateEncryptionKeyOptionalParams extends coreClient.OperationOptions { + body?: EncryptionMigrationRequest; + resumeFrom?: string; + updateIntervalInMs?: number; +} + +// @public +export type AccountsMigrateEncryptionKeyResponse = AccountsMigrateEncryptionKeyHeaders; + // @public export interface AccountsRenewCredentialsOptionalParams extends coreClient.OperationOptions { resumeFrom?: string; @@ -567,6 +623,14 @@ export interface CapacityPoolPatch { readonly type?: string; } +// @public +export interface ChangeKeyVault { + keyName: string; + keyVaultPrivateEndpoints: KeyVaultPrivateEndpoint[]; + keyVaultResourceId: string; + keyVaultUri: string; +} + // @public export interface CheckAvailabilityResponse { isAvailable?: boolean; @@ -594,6 +658,11 @@ export interface CloudErrorBody { message?: string; } +// @public +export interface ClusterPeerCommandResponse { + peerAcceptCommand?: string; +} + // @public export type CoolAccessRetrievalPolicy = string; @@ -626,6 +695,12 @@ export interface EncryptionIdentity { // @public export type EncryptionKeySource = string; +// @public +export interface EncryptionMigrationRequest { + privateEndpointId: string; + virtualNetworkId: string; +} + // @public export type EncryptionType = string; @@ -676,6 +751,7 @@ export type FileAccessLogs = string; // @public export interface FilePathAvailabilityRequest { + availabilityZone?: string; name: string; subnetId: string; } @@ -706,6 +782,12 @@ export type InAvailabilityReasonType = string; // @public export type KeySource = string; +// @public +export interface KeyVaultPrivateEndpoint { + privateEndpointId?: string; + virtualNetworkId?: string; +} + // @public export interface KeyVaultProperties { keyName: string; @@ -718,6 +800,12 @@ export interface KeyVaultProperties { // @public export type KeyVaultStatus = string; +// @public +export enum KnownAcceptGrowCapacityPoolForShortTermCloneSplit { + Accepted = "Accepted", + Declined = "Declined" +} + // @public export enum KnownActiveDirectoryStatus { Created = "Created", @@ -936,6 +1024,79 @@ export enum KnownType { IndividualUserQuota = "IndividualUserQuota" } +// @public +export enum KnownVolumeLanguage { + Ar = "ar", + ArUtf8 = "ar.utf-8", + C = "c", + Cs = "cs", + CsUtf8 = "cs.utf-8", + CUtf8 = "c.utf-8", + Da = "da", + DaUtf8 = "da.utf-8", + De = "de", + DeUtf8 = "de.utf-8", + En = "en", + EnUs = "en-us", + EnUsUtf8 = "en-us.utf-8", + EnUtf8 = "en.utf-8", + Es = "es", + EsUtf8 = "es.utf-8", + Fi = "fi", + FiUtf8 = "fi.utf-8", + Fr = "fr", + FrUtf8 = "fr.utf-8", + He = "he", + HeUtf8 = "he.utf-8", + Hr = "hr", + HrUtf8 = "hr.utf-8", + Hu = "hu", + HuUtf8 = "hu.utf-8", + It = "it", + ItUtf8 = "it.utf-8", + Ja = "ja", + JaJp932 = "ja-jp.932", + JaJp932Utf8 = "ja-jp.932.utf-8", + JaJpPck = "ja-jp.pck", + JaJpPckUtf8 = "ja-jp.pck.utf-8", + JaJpPckV2 = "ja-jp.pck-v2", + JaJpPckV2Utf8 = "ja-jp.pck-v2.utf-8", + JaUtf8 = "ja.utf-8", + JaV1 = "ja-v1", + JaV1Utf8 = "ja-v1.utf-8", + Ko = "ko", + KoUtf8 = "ko.utf-8", + Nl = "nl", + NlUtf8 = "nl.utf-8", + No = "no", + NoUtf8 = "no.utf-8", + Pl = "pl", + PlUtf8 = "pl.utf-8", + Pt = "pt", + PtUtf8 = "pt.utf-8", + Ro = "ro", + RoUtf8 = "ro.utf-8", + Ru = "ru", + RuUtf8 = "ru.utf-8", + Sk = "sk", + SkUtf8 = "sk.utf-8", + Sl = "sl", + SlUtf8 = "sl.utf-8", + Sv = "sv", + SvUtf8 = "sv.utf-8", + Tr = "tr", + TrUtf8 = "tr.utf-8", + Utf8Mb4 = "utf8mb4", + Zh = "zh", + ZhGbk = "zh.gbk", + ZhGbkUtf8 = "zh.gbk.utf-8", + ZhTw = "zh-tw", + ZhTwBig5 = "zh-tw.big5", + ZhTwBig5Utf8 = "zh-tw.big5.utf-8", + ZhTwUtf8 = "zh-tw.utf-8", + ZhUtf8 = "zh.utf-8" +} + // @public export enum KnownVolumeStorageToNetworkProximity { AcrossT2 = "AcrossT2", @@ -1040,6 +1201,8 @@ export interface NetAppAccount extends TrackedResource { encryption?: AccountEncryption; readonly etag?: string; identity?: ManagedServiceIdentity; + readonly isMultiAdEnabled?: boolean; + nfsV4IDDomain?: string; readonly provisioningState?: string; } @@ -1056,8 +1219,10 @@ export interface NetAppAccountPatch { encryption?: AccountEncryption; readonly id?: string; identity?: ManagedServiceIdentity; + readonly isMultiAdEnabled?: boolean; location?: string; readonly name?: string; + nfsV4IDDomain?: string; readonly provisioningState?: string; tags?: { [propertyName: string]: string; @@ -1132,6 +1297,7 @@ export interface NetAppResource { // @public export interface NetAppResourceCheckFilePathAvailabilityOptionalParams extends coreClient.OperationOptions { + availabilityZone?: string; } // @public @@ -1282,6 +1448,12 @@ export interface OperationsListOptionalParams extends coreClient.OperationOption // @public export type OperationsListResponse = OperationListResult; +// @public +export interface PeerClusterForVolumeMigrationRequest { + peerAddresses: string[]; + remotePath?: RemotePath; +} + // @public export interface PlacementKeyValuePairs { key: string; @@ -1413,17 +1585,26 @@ export interface RelocateVolumeRequest { creationToken?: string; } +// @public +export interface RemotePath { + externalHostName: string; + serverName: string; + volumeName: string; +} + // @public export interface Replication { endpointType?: EndpointType; remoteVolumeRegion?: string; remoteVolumeResourceId: string; + readonly replicationId?: string; replicationSchedule?: ReplicationSchedule; } // @public export interface ReplicationObject { endpointType?: EndpointType; + remotePath?: RemotePath; remoteVolumeRegion?: string; remoteVolumeResourceId: string; readonly replicationId?: string; @@ -1795,6 +1976,11 @@ export interface SubvolumesUpdateOptionalParams extends coreClient.OperationOpti // @public export type SubvolumesUpdateResponse = SubvolumeInfo; +// @public +export interface SvmPeerCommandResponse { + svmPeeringCommand?: string; +} + // @public export interface SystemData { createdAt?: Date; @@ -1832,6 +2018,7 @@ export interface UserAssignedIdentity { // @public export interface Volume extends TrackedResource { + acceptGrowCapacityPoolForShortTermCloneSplit?: AcceptGrowCapacityPoolForShortTermCloneSplit; readonly actualThroughputMibps?: number; avsDataStore?: AvsDataStore; backupId?: string; @@ -1854,11 +2041,13 @@ export interface Volume extends TrackedResource { exportPolicy?: VolumePropertiesExportPolicy; readonly fileAccessLogs?: FileAccessLogs; readonly fileSystemId?: string; + readonly inheritedSizeInBytes?: number; isDefaultQuotaEnabled?: boolean; isLargeVolume?: boolean; isRestoring?: boolean; kerberosEnabled?: boolean; keyVaultPrivateEndpointResourceId?: string; + language?: VolumeLanguage; ldapEnabled?: boolean; readonly maximumNumberOfFiles?: number; readonly mountTargets?: MountTargetProperties[]; @@ -1981,6 +2170,7 @@ export type VolumeGroupsListByNetAppAccountResponse = VolumeGroupList; // @public export interface VolumeGroupVolumeProperties { + acceptGrowCapacityPoolForShortTermCloneSplit?: AcceptGrowCapacityPoolForShortTermCloneSplit; readonly actualThroughputMibps?: number; avsDataStore?: AvsDataStore; backupId?: string; @@ -2003,11 +2193,13 @@ export interface VolumeGroupVolumeProperties { readonly fileAccessLogs?: FileAccessLogs; readonly fileSystemId?: string; readonly id?: string; + readonly inheritedSizeInBytes?: number; isDefaultQuotaEnabled?: boolean; isLargeVolume?: boolean; isRestoring?: boolean; kerberosEnabled?: boolean; keyVaultPrivateEndpointResourceId?: string; + language?: VolumeLanguage; ldapEnabled?: boolean; readonly maximumNumberOfFiles?: number; readonly mountTargets?: MountTargetProperties[]; @@ -2044,6 +2236,9 @@ export interface VolumeGroupVolumeProperties { zones?: string[]; } +// @public +export type VolumeLanguage = string; + // @public export interface VolumeList { nextLink?: string; @@ -2063,6 +2258,7 @@ export interface VolumePatch { isDefaultQuotaEnabled?: boolean; location?: string; readonly name?: string; + protocolTypes?: string[]; serviceLevel?: ServiceLevel; smbAccessBasedEnumeration?: SmbAccessBasedEnumeration; smbNonBrowsable?: SmbNonBrowsable; @@ -2193,16 +2389,24 @@ export interface Volumes { beginBreakFileLocksAndWait(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesBreakFileLocksOptionalParams): Promise; beginBreakReplication(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesBreakReplicationOptionalParams): Promise, void>>; beginBreakReplicationAndWait(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesBreakReplicationOptionalParams): Promise; + beginCreateOnPremMigrationReplication(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesCreateOnPremMigrationReplicationOptionalParams): Promise, VolumesCreateOnPremMigrationReplicationResponse>>; + beginCreateOnPremMigrationReplicationAndWait(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesCreateOnPremMigrationReplicationOptionalParams): Promise; beginCreateOrUpdate(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, body: Volume, options?: VolumesCreateOrUpdateOptionalParams): Promise, VolumesCreateOrUpdateResponse>>; beginCreateOrUpdateAndWait(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, body: Volume, options?: VolumesCreateOrUpdateOptionalParams): Promise; beginDelete(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesDeleteOptionalParams): Promise, void>>; beginDeleteAndWait(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesDeleteOptionalParams): Promise; beginDeleteReplication(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesDeleteReplicationOptionalParams): Promise, void>>; beginDeleteReplicationAndWait(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesDeleteReplicationOptionalParams): Promise; + beginFinalizeOnPremMigration(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesFinalizeOnPremMigrationOptionalParams): Promise, VolumesFinalizeOnPremMigrationResponse>>; + beginFinalizeOnPremMigrationAndWait(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesFinalizeOnPremMigrationOptionalParams): Promise; beginFinalizeRelocation(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesFinalizeRelocationOptionalParams): Promise, void>>; beginFinalizeRelocationAndWait(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesFinalizeRelocationOptionalParams): Promise; beginListGetGroupIdListForLdapUser(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, body: GetGroupIdListForLdapUserRequest, options?: VolumesListGetGroupIdListForLdapUserOptionalParams): Promise, VolumesListGetGroupIdListForLdapUserResponse>>; beginListGetGroupIdListForLdapUserAndWait(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, body: GetGroupIdListForLdapUserRequest, options?: VolumesListGetGroupIdListForLdapUserOptionalParams): Promise; + beginPeerClusterForOnPremMigration(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, body: PeerClusterForVolumeMigrationRequest, options?: VolumesPeerClusterForOnPremMigrationOptionalParams): Promise, VolumesPeerClusterForOnPremMigrationResponse>>; + beginPeerClusterForOnPremMigrationAndWait(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, body: PeerClusterForVolumeMigrationRequest, options?: VolumesPeerClusterForOnPremMigrationOptionalParams): Promise; + beginPerformReplicationTransfer(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesPerformReplicationTransferOptionalParams): Promise, VolumesPerformReplicationTransferResponse>>; + beginPerformReplicationTransferAndWait(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesPerformReplicationTransferOptionalParams): Promise; beginPoolChange(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, body: PoolChangeRequest, options?: VolumesPoolChangeOptionalParams): Promise, void>>; beginPoolChangeAndWait(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, body: PoolChangeRequest, options?: VolumesPoolChangeOptionalParams): Promise; beginPopulateAvailabilityZone(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesPopulateAvailabilityZoneOptionalParams): Promise, VolumesPopulateAvailabilityZoneResponse>>; @@ -2221,6 +2425,8 @@ export interface Volumes { beginRevertAndWait(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, body: VolumeRevert, options?: VolumesRevertOptionalParams): Promise; beginRevertRelocation(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesRevertRelocationOptionalParams): Promise, void>>; beginRevertRelocationAndWait(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesRevertRelocationOptionalParams): Promise; + beginSplitCloneFromParent(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesSplitCloneFromParentOptionalParams): Promise, VolumesSplitCloneFromParentResponse>>; + beginSplitCloneFromParentAndWait(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesSplitCloneFromParentOptionalParams): Promise; beginUpdate(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, body: VolumePatch, options?: VolumesUpdateOptionalParams): Promise, VolumesUpdateResponse>>; beginUpdateAndWait(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, body: VolumePatch, options?: VolumesUpdateOptionalParams): Promise; get(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesGetOptionalParams): Promise; @@ -2255,6 +2461,21 @@ export interface VolumesBreakReplicationOptionalParams extends coreClient.Operat updateIntervalInMs?: number; } +// @public +export interface VolumesCreateOnPremMigrationReplicationHeaders { + // (undocumented) + location?: string; +} + +// @public +export interface VolumesCreateOnPremMigrationReplicationOptionalParams extends coreClient.OperationOptions { + resumeFrom?: string; + updateIntervalInMs?: number; +} + +// @public +export type VolumesCreateOnPremMigrationReplicationResponse = SvmPeerCommandResponse; + // @public export interface VolumesCreateOrUpdateOptionalParams extends coreClient.OperationOptions { resumeFrom?: string; @@ -2277,6 +2498,21 @@ export interface VolumesDeleteReplicationOptionalParams extends coreClient.Opera updateIntervalInMs?: number; } +// @public +export interface VolumesFinalizeOnPremMigrationHeaders { + // (undocumented) + location?: string; +} + +// @public +export interface VolumesFinalizeOnPremMigrationOptionalParams extends coreClient.OperationOptions { + resumeFrom?: string; + updateIntervalInMs?: number; +} + +// @public +export type VolumesFinalizeOnPremMigrationResponse = VolumesFinalizeOnPremMigrationHeaders; + // @public export interface VolumesFinalizeRelocationOptionalParams extends coreClient.OperationOptions { resumeFrom?: string; @@ -2331,6 +2567,36 @@ export interface VolumeSnapshotProperties { snapshotPolicyId?: string; } +// @public +export interface VolumesPeerClusterForOnPremMigrationHeaders { + // (undocumented) + location?: string; +} + +// @public +export interface VolumesPeerClusterForOnPremMigrationOptionalParams extends coreClient.OperationOptions { + resumeFrom?: string; + updateIntervalInMs?: number; +} + +// @public +export type VolumesPeerClusterForOnPremMigrationResponse = ClusterPeerCommandResponse; + +// @public +export interface VolumesPerformReplicationTransferHeaders { + // (undocumented) + location?: string; +} + +// @public +export interface VolumesPerformReplicationTransferOptionalParams extends coreClient.OperationOptions { + resumeFrom?: string; + updateIntervalInMs?: number; +} + +// @public +export type VolumesPerformReplicationTransferResponse = VolumesPerformReplicationTransferHeaders; + // @public export interface VolumesPoolChangeOptionalParams extends coreClient.OperationOptions { resumeFrom?: string; @@ -2411,6 +2677,21 @@ export interface VolumesRevertRelocationOptionalParams extends coreClient.Operat updateIntervalInMs?: number; } +// @public +export interface VolumesSplitCloneFromParentHeaders { + // (undocumented) + location?: string; +} + +// @public +export interface VolumesSplitCloneFromParentOptionalParams extends coreClient.OperationOptions { + resumeFrom?: string; + updateIntervalInMs?: number; +} + +// @public +export type VolumesSplitCloneFromParentResponse = VolumesSplitCloneFromParentHeaders; + // @public export type VolumeStorageToNetworkProximity = string; diff --git a/sdk/netapp/arm-netapp/src/models/index.ts b/sdk/netapp/arm-netapp/src/models/index.ts index 39c41135df01..1694f5a85b4e 100644 --- a/sdk/netapp/arm-netapp/src/models/index.ts +++ b/sdk/netapp/arm-netapp/src/models/index.ts @@ -173,6 +173,8 @@ export interface FilePathAvailabilityRequest { name: string; /** The Azure Resource URI for a delegated subnet. Must have the delegation Microsoft.NetApp/volumes */ subnetId: string; + /** The Azure Resource logical availability zone which is used within zone mapping lookup for the subscription and region. The lookup will retrieve the physical zone where volume is placed. */ + availabilityZone?: string; } /** Quota availability request content. */ @@ -490,6 +492,41 @@ export interface NetAppAccountPatch { * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly disableShowmount?: boolean; + /** Domain for NFSv4 user ID mapping. This property will be set for all NetApp accounts in the subscription and region and only affect non ldap NFSv4 volumes. */ + nfsV4IDDomain?: string; + /** + * This will have true value only if account is Multiple AD enabled. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly isMultiAdEnabled?: boolean; +} + +/** Encryption migration request */ +export interface EncryptionMigrationRequest { + /** Identifier for the virtual network */ + virtualNetworkId: string; + /** Identifier of the private endpoint to reach the Azure Key Vault */ + privateEndpointId: string; +} + +/** Change key vault request */ +export interface ChangeKeyVault { + /** The URI of the key vault/managed HSM that should be used for encryption. */ + keyVaultUri: string; + /** The name of the key that should be used for encryption. */ + keyName: string; + /** Azure resource ID of the key vault/managed HSM that should be used for encryption. */ + keyVaultResourceId: string; + /** Pairs of virtual network ID and private endpoint ID. Every virtual network that has volumes encrypted with customer-managed keys needs its own key vault private endpoint. */ + keyVaultPrivateEndpoints: KeyVaultPrivateEndpoint[]; +} + +/** Pairs of virtual network ID and private endpoint ID. Every virtual network that has volumes encrypted with customer-managed keys needs its own key vault private endpoint. */ +export interface KeyVaultPrivateEndpoint { + /** Identifier for the virtual network id */ + virtualNetworkId?: string; + /** Identifier of the private endpoint to reach the Azure Key Vault */ + privateEndpointId?: string; } /** List of capacity pool resources */ @@ -521,7 +558,7 @@ export interface CapacityPoolPatch { readonly type?: string; /** Resource tags */ tags?: { [propertyName: string]: string }; - /** Provisioned size of the pool (in bytes). Allowed values are in 1TiB chunks (value must be multiply of 1099511627776). */ + /** Provisioned size of the pool (in bytes). Allowed values are in 1TiB chunks (value must be multiply of 4398046511104). */ size?: number; /** The qos type of the pool */ qosType?: QosType; @@ -628,12 +665,24 @@ export interface ReplicationObject { endpointType?: EndpointType; /** Schedule */ replicationSchedule?: ReplicationSchedule; - /** The resource ID of the remote volume. */ + /** The resource ID of the remote volume. Required for cross region and cross zone replication */ remoteVolumeResourceId: string; + /** The full path to a volume that is to be migrated into ANF. Required for Migration volumes */ + remotePath?: RemotePath; /** The remote region for the other end of the Volume Replication. */ remoteVolumeRegion?: string; } +/** The full path to a volume that is to be migrated into ANF. Required for Migration volumes */ +export interface RemotePath { + /** The Path to a ONTAP Host */ + externalHostName: string; + /** The name of a server on the ONTAP Host */ + serverName: string; + /** The name of a volume on the server */ + volumeName: string; +} + /** Volume Snapshot Properties */ export interface VolumeSnapshotProperties { /** Snapshot Policy ResourceId */ @@ -686,6 +735,8 @@ export interface VolumePatch { usageThreshold?: number; /** Set of export policy rules */ exportPolicy?: VolumePatchPropertiesExportPolicy; + /** Set of protocol types, default NFSv3, CIFS for SMB protocol */ + protocolTypes?: string[]; /** Maximum throughput in MiB/s that can be achieved by this volume and this will be accepted as input only for manual qosType volume */ throughputMibps?: number; /** DataProtection type volumes include an object containing details of the replication */ @@ -791,6 +842,11 @@ export interface ListReplications { /** Replication properties */ export interface Replication { + /** + * UUID v4 used to identify the replication. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly replicationId?: string; /** Indicates whether the local volume is the source or destination for the Volume Replication */ endpointType?: EndpointType; /** Schedule */ @@ -807,6 +863,26 @@ export interface AuthorizeRequest { remoteVolumeResourceId?: string; } +/** Source cluster properties for a cluster peer request */ +export interface PeerClusterForVolumeMigrationRequest { + /** A list of IC-LIF IPs that can be used to connect to the on-prem cluster */ + peerAddresses: string[]; + /** The full path to a volume that is to be migrated into ANF. Required for Migration volumes */ + remotePath?: RemotePath; +} + +/** Information about cluster peering process */ +export interface ClusterPeerCommandResponse { + /** A command that needs to be run on the external ONTAP to accept cluster peering. Will only be present if clusterPeeringStatus is pending */ + peerAcceptCommand?: string; +} + +/** Information about SVM peering process */ +export interface SvmPeerCommandResponse { + /** A command that needs to be run on the external ONTAP to accept SVM peering. Will only be present if svmPeeringStatus is pending */ + svmPeeringCommand?: string; +} + /** Pool change request */ export interface PoolChangeRequest { /** Resource id of the pool to move volume to */ @@ -1174,10 +1250,12 @@ export interface VolumeGroupVolumeProperties { * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly mountTargets?: MountTargetProperties[]; - /** What type of volume is this. For destination volumes in Cross Region Replication, set type to DataProtection */ + /** What type of volume is this. For destination volumes in Cross Region Replication, set type to DataProtection. For creating clone volume, set type to ShortTermClone */ volumeType?: string; /** DataProtection type volumes include an object containing details of the replication */ dataProtection?: VolumePropertiesDataProtection; + /** While auto splitting the short term clone volume, if the parent pool does not have enough space to accommodate the volume after split, it will be automatically resized, which will lead to increased billing. To accept capacity pool size auto grow and create a short term clone volume, set the property as accepted. */ + acceptGrowCapacityPoolForShortTermCloneSplit?: AcceptGrowCapacityPoolForShortTermCloneSplit; /** Restoring */ isRestoring?: boolean; /** If enabled (true) the volume will contain a read-only snapshot directory which provides access to each of the volume's snapshots (defaults to true). */ @@ -1285,6 +1363,13 @@ export interface VolumeGroupVolumeProperties { * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly originatingResourceId?: string; + /** + * Space shared by short term clone volume with parent volume in bytes. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly inheritedSizeInBytes?: number; + /** Language supported for volume. */ + language?: VolumeLanguage; } /** List of Subvolumes */ @@ -1713,6 +1798,13 @@ export interface NetAppAccount extends TrackedResource { * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly disableShowmount?: boolean; + /** Domain for NFSv4 user ID mapping. This property will be set for all NetApp accounts in the subscription and region and only affect non ldap NFSv4 volumes. */ + nfsV4IDDomain?: string; + /** + * This will have true value only if account is Multiple AD enabled. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly isMultiAdEnabled?: boolean; } /** Capacity pool resource */ @@ -1813,10 +1905,12 @@ export interface Volume extends TrackedResource { * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly mountTargets?: MountTargetProperties[]; - /** What type of volume is this. For destination volumes in Cross Region Replication, set type to DataProtection */ + /** What type of volume is this. For destination volumes in Cross Region Replication, set type to DataProtection. For creating clone volume, set type to ShortTermClone */ volumeType?: string; /** DataProtection type volumes include an object containing details of the replication */ dataProtection?: VolumePropertiesDataProtection; + /** While auto splitting the short term clone volume, if the parent pool does not have enough space to accommodate the volume after split, it will be automatically resized, which will lead to increased billing. To accept capacity pool size auto grow and create a short term clone volume, set the property as accepted. */ + acceptGrowCapacityPoolForShortTermCloneSplit?: AcceptGrowCapacityPoolForShortTermCloneSplit; /** Restoring */ isRestoring?: boolean; /** If enabled (true) the volume will contain a read-only snapshot directory which provides access to each of the volume's snapshots (defaults to true). */ @@ -1924,6 +2018,13 @@ export interface Volume extends TrackedResource { * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly originatingResourceId?: string; + /** + * Space shared by short term clone volume with parent volume in bytes. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly inheritedSizeInBytes?: number; + /** Language supported for volume. */ + language?: VolumeLanguage; } /** Snapshot policy information */ @@ -2016,6 +2117,21 @@ export interface NetAppResourceUpdateNetworkSiblingSetHeaders { location?: string; } +/** Defines headers for Accounts_migrateEncryptionKey operation. */ +export interface AccountsMigrateEncryptionKeyHeaders { + location?: string; +} + +/** Defines headers for Accounts_getChangeKeyVaultInformation operation. */ +export interface AccountsGetChangeKeyVaultInformationHeaders { + location?: string; +} + +/** Defines headers for Accounts_changeKeyVault operation. */ +export interface AccountsChangeKeyVaultHeaders { + location?: string; +} + /** Defines headers for Volumes_populateAvailabilityZone operation. */ export interface VolumesPopulateAvailabilityZoneHeaders { location?: string; @@ -2026,6 +2142,11 @@ export interface VolumesResetCifsPasswordHeaders { location?: string; } +/** Defines headers for Volumes_splitCloneFromParent operation. */ +export interface VolumesSplitCloneFromParentHeaders { + location?: string; +} + /** Defines headers for Volumes_breakFileLocks operation. */ export interface VolumesBreakFileLocksHeaders { location?: string; @@ -2036,6 +2157,26 @@ export interface VolumesListGetGroupIdListForLdapUserHeaders { location?: string; } +/** Defines headers for Volumes_peerClusterForOnPremMigration operation. */ +export interface VolumesPeerClusterForOnPremMigrationHeaders { + location?: string; +} + +/** Defines headers for Volumes_createOnPremMigrationReplication operation. */ +export interface VolumesCreateOnPremMigrationReplicationHeaders { + location?: string; +} + +/** Defines headers for Volumes_finalizeOnPremMigration operation. */ +export interface VolumesFinalizeOnPremMigrationHeaders { + location?: string; +} + +/** Defines headers for Volumes_performReplicationTransfer operation. */ +export interface VolumesPerformReplicationTransferHeaders { + location?: string; +} + /** Defines headers for Backups_update operation. */ export interface BackupsUpdateHeaders { location?: string; @@ -2497,6 +2638,24 @@ export enum KnownReplicationSchedule { */ export type ReplicationSchedule = string; +/** Known values of {@link AcceptGrowCapacityPoolForShortTermCloneSplit} that the service accepts. */ +export enum KnownAcceptGrowCapacityPoolForShortTermCloneSplit { + /** Auto grow capacity pool for short term clone split is accepted. */ + Accepted = "Accepted", + /** Auto grow capacity pool for short term clone split is declined. Short term clone volume creation will not be allowed, to create short term clone volume accept auto grow capacity pool. */ + Declined = "Declined", +} + +/** + * Defines values for AcceptGrowCapacityPoolForShortTermCloneSplit. \ + * {@link KnownAcceptGrowCapacityPoolForShortTermCloneSplit} can be used interchangeably with AcceptGrowCapacityPoolForShortTermCloneSplit, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **Accepted**: Auto grow capacity pool for short term clone split is accepted. \ + * **Declined**: Auto grow capacity pool for short term clone split is declined. Short term clone volume creation will not be allowed, to create short term clone volume accept auto grow capacity pool. + */ +export type AcceptGrowCapacityPoolForShortTermCloneSplit = string; + /** Known values of {@link SecurityStyle} that the service accepts. */ export enum KnownSecurityStyle { /** Ntfs */ @@ -2644,6 +2803,225 @@ export enum KnownEnableSubvolumes { */ export type EnableSubvolumes = string; +/** Known values of {@link VolumeLanguage} that the service accepts. */ +export enum KnownVolumeLanguage { + /** Posix with UTF-8 */ + CUtf8 = "c.utf-8", + /** UTF-8 with 4 byte character support */ + Utf8Mb4 = "utf8mb4", + /** Arabic - Deprecated */ + Ar = "ar", + /** Arabic with UTF-8 */ + ArUtf8 = "ar.utf-8", + /** Croatian - Deprecated */ + Hr = "hr", + /** Croatian with UTF-8 */ + HrUtf8 = "hr.utf-8", + /** Czech - Deprecated */ + Cs = "cs", + /** Czech with UTF-8 */ + CsUtf8 = "cs.utf-8", + /** Danish - Deprecated */ + Da = "da", + /** Danish with UTF-8 */ + DaUtf8 = "da.utf-8", + /** Dutch - Deprecated */ + Nl = "nl", + /** Dutch with UTF-8 */ + NlUtf8 = "nl.utf-8", + /** English - Deprecated */ + En = "en", + /** English with UTF-8 */ + EnUtf8 = "en.utf-8", + /** Finnish - Deprecated */ + Fi = "fi", + /** Finnish with UTF-8 */ + FiUtf8 = "fi.utf-8", + /** French - Deprecated */ + Fr = "fr", + /** French with UTF-8 */ + FrUtf8 = "fr.utf-8", + /** German - Deprecated */ + De = "de", + /** German with UTF-8 */ + DeUtf8 = "de.utf-8", + /** Hebrew - Deprecated */ + He = "he", + /** Hebrew with UTF-8 */ + HeUtf8 = "he.utf-8", + /** Hungarian - Deprecated */ + Hu = "hu", + /** Hungarian with UTF-8 */ + HuUtf8 = "hu.utf-8", + /** Italian - Deprecated */ + It = "it", + /** Italian with UTF-8 */ + ItUtf8 = "it.utf-8", + /** Japanese euc-j - Deprecated */ + Ja = "ja", + /** Japanese euc-j with UTF-8 */ + JaUtf8 = "ja.utf-8", + /** Japanese euc-j - Deprecated */ + JaV1 = "ja-v1", + /** Japanese euc-j with UTF-8 */ + JaV1Utf8 = "ja-v1.utf-8", + /** Japanese pck */ + JaJpPck = "ja-jp.pck", + /** Japanese pck with UTF-8 - Deprecated */ + JaJpPckUtf8 = "ja-jp.pck.utf-8", + /** Japanese cp932 */ + JaJp932 = "ja-jp.932", + /** Japanese cp932 with UTF-8 - Deprecated */ + JaJp932Utf8 = "ja-jp.932.utf-8", + /** Japanese pck - sjis */ + JaJpPckV2 = "ja-jp.pck-v2", + /** Japanese pck - sjis with UTF-8 - Deprecated */ + JaJpPckV2Utf8 = "ja-jp.pck-v2.utf-8", + /** Korean - Deprecated */ + Ko = "ko", + /** Korean with UTF-8 */ + KoUtf8 = "ko.utf-8", + /** Norwegian - Deprecated */ + No = "no", + /** Norwegian with UTF-8 */ + NoUtf8 = "no.utf-8", + /** Polish - Deprecated */ + Pl = "pl", + /** Polish with UTF-8 */ + PlUtf8 = "pl.utf-8", + /** Portuguese - Deprecated */ + Pt = "pt", + /** Portuguese with UTF-8 */ + PtUtf8 = "pt.utf-8", + /** Posix - Deprecated */ + C = "c", + /** Romanian - Deprecated */ + Ro = "ro", + /** Romanian with UTF-8 */ + RoUtf8 = "ro.utf-8", + /** Russian - Deprecated */ + Ru = "ru", + /** Russian with UTF-8 */ + RuUtf8 = "ru.utf-8", + /** Simplified Chinese - Deprecated */ + Zh = "zh", + /** Simplified Chinese with UTF-8 */ + ZhUtf8 = "zh.utf-8", + /** Simplified gbk Chinese */ + ZhGbk = "zh.gbk", + /** Simplified gbk Chinese with UTF-8 - Deprecated */ + ZhGbkUtf8 = "zh.gbk.utf-8", + /** Traditional Chinese BIG 5 */ + ZhTwBig5 = "zh-tw.big5", + /** Traditional Chinese BIG 5 with UTF-8 - Deprecated */ + ZhTwBig5Utf8 = "zh-tw.big5.utf-8", + /** Traditional Chinese EUC-TW */ + ZhTw = "zh-tw", + /** Traditional Chinese EUC-TW with UTF-8 - Deprecated */ + ZhTwUtf8 = "zh-tw.utf-8", + /** Slovak - Deprecated */ + Sk = "sk", + /** Slovak with UTF-8 */ + SkUtf8 = "sk.utf-8", + /** Slovenian - Deprecated */ + Sl = "sl", + /** Slovenian with UTF-8 */ + SlUtf8 = "sl.utf-8", + /** Spanish - Deprecated */ + Es = "es", + /** Spanish with UTF-8 */ + EsUtf8 = "es.utf-8", + /** Swedish - Deprecated */ + Sv = "sv", + /** Swedish with UTF-8 */ + SvUtf8 = "sv.utf-8", + /** Turkish - Deprecated */ + Tr = "tr", + /** Turkish with UTF-8 */ + TrUtf8 = "tr.utf-8", + /** US English - Deprecated */ + EnUs = "en-us", + /** US English with UTF-8 */ + EnUsUtf8 = "en-us.utf-8", +} + +/** + * Defines values for VolumeLanguage. \ + * {@link KnownVolumeLanguage} can be used interchangeably with VolumeLanguage, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **c.utf-8**: Posix with UTF-8 \ + * **utf8mb4**: UTF-8 with 4 byte character support \ + * **ar**: Arabic - Deprecated \ + * **ar.utf-8**: Arabic with UTF-8 \ + * **hr**: Croatian - Deprecated \ + * **hr.utf-8**: Croatian with UTF-8 \ + * **cs**: Czech - Deprecated \ + * **cs.utf-8**: Czech with UTF-8 \ + * **da**: Danish - Deprecated \ + * **da.utf-8**: Danish with UTF-8 \ + * **nl**: Dutch - Deprecated \ + * **nl.utf-8**: Dutch with UTF-8 \ + * **en**: English - Deprecated \ + * **en.utf-8**: English with UTF-8 \ + * **fi**: Finnish - Deprecated \ + * **fi.utf-8**: Finnish with UTF-8 \ + * **fr**: French - Deprecated \ + * **fr.utf-8**: French with UTF-8 \ + * **de**: German - Deprecated \ + * **de.utf-8**: German with UTF-8 \ + * **he**: Hebrew - Deprecated \ + * **he.utf-8**: Hebrew with UTF-8 \ + * **hu**: Hungarian - Deprecated \ + * **hu.utf-8**: Hungarian with UTF-8 \ + * **it**: Italian - Deprecated \ + * **it.utf-8**: Italian with UTF-8 \ + * **ja**: Japanese euc-j - Deprecated \ + * **ja.utf-8**: Japanese euc-j with UTF-8 \ + * **ja-v1**: Japanese euc-j - Deprecated \ + * **ja-v1.utf-8**: Japanese euc-j with UTF-8 \ + * **ja-jp.pck**: Japanese pck \ + * **ja-jp.pck.utf-8**: Japanese pck with UTF-8 - Deprecated \ + * **ja-jp.932**: Japanese cp932 \ + * **ja-jp.932.utf-8**: Japanese cp932 with UTF-8 - Deprecated \ + * **ja-jp.pck-v2**: Japanese pck - sjis \ + * **ja-jp.pck-v2.utf-8**: Japanese pck - sjis with UTF-8 - Deprecated \ + * **ko**: Korean - Deprecated \ + * **ko.utf-8**: Korean with UTF-8 \ + * **no**: Norwegian - Deprecated \ + * **no.utf-8**: Norwegian with UTF-8 \ + * **pl**: Polish - Deprecated \ + * **pl.utf-8**: Polish with UTF-8 \ + * **pt**: Portuguese - Deprecated \ + * **pt.utf-8**: Portuguese with UTF-8 \ + * **c**: Posix - Deprecated \ + * **ro**: Romanian - Deprecated \ + * **ro.utf-8**: Romanian with UTF-8 \ + * **ru**: Russian - Deprecated \ + * **ru.utf-8**: Russian with UTF-8 \ + * **zh**: Simplified Chinese - Deprecated \ + * **zh.utf-8**: Simplified Chinese with UTF-8 \ + * **zh.gbk**: Simplified gbk Chinese \ + * **zh.gbk.utf-8**: Simplified gbk Chinese with UTF-8 - Deprecated \ + * **zh-tw.big5**: Traditional Chinese BIG 5 \ + * **zh-tw.big5.utf-8**: Traditional Chinese BIG 5 with UTF-8 - Deprecated \ + * **zh-tw**: Traditional Chinese EUC-TW \ + * **zh-tw.utf-8**: Traditional Chinese EUC-TW with UTF-8 - Deprecated \ + * **sk**: Slovak - Deprecated \ + * **sk.utf-8**: Slovak with UTF-8 \ + * **sl**: Slovenian - Deprecated \ + * **sl.utf-8**: Slovenian with UTF-8 \ + * **es**: Spanish - Deprecated \ + * **es.utf-8**: Spanish with UTF-8 \ + * **sv**: Swedish - Deprecated \ + * **sv.utf-8**: Swedish with UTF-8 \ + * **tr**: Turkish - Deprecated \ + * **tr.utf-8**: Turkish with UTF-8 \ + * **en-us**: US English - Deprecated \ + * **en-us.utf-8**: US English with UTF-8 + */ +export type VolumeLanguage = string; + /** Known values of {@link RelationshipStatus} that the service accepts. */ export enum KnownRelationshipStatus { /** Idle */ @@ -2775,7 +3153,10 @@ export type NetAppResourceCheckNameAvailabilityResponse = /** Optional parameters. */ export interface NetAppResourceCheckFilePathAvailabilityOptionalParams - extends coreClient.OperationOptions {} + extends coreClient.OperationOptions { + /** The Azure Resource logical availability zone which is used within zone mapping lookup for the subscription and region. The lookup will retrieve the physical zone where volume is placed. */ + availabilityZone?: string; +} /** Contains response data for the checkFilePathAvailability operation. */ export type NetAppResourceCheckFilePathAvailabilityResponse = @@ -2913,6 +3294,48 @@ export interface AccountsRenewCredentialsOptionalParams resumeFrom?: string; } +/** Optional parameters. */ +export interface AccountsMigrateEncryptionKeyOptionalParams + extends coreClient.OperationOptions { + /** The required parameters to perform encryption migration. */ + body?: EncryptionMigrationRequest; + /** 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 migrateEncryptionKey operation. */ +export type AccountsMigrateEncryptionKeyResponse = + AccountsMigrateEncryptionKeyHeaders; + +/** Optional parameters. */ +export interface AccountsGetChangeKeyVaultInformationOptionalParams + 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 getChangeKeyVaultInformation operation. */ +export type AccountsGetChangeKeyVaultInformationResponse = + AccountsGetChangeKeyVaultInformationHeaders; + +/** Optional parameters. */ +export interface AccountsChangeKeyVaultOptionalParams + extends coreClient.OperationOptions { + /** The required parameters to perform encryption migration. */ + body?: ChangeKeyVault; + /** 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 changeKeyVault operation. */ +export type AccountsChangeKeyVaultResponse = AccountsChangeKeyVaultHeaders; + /** Optional parameters. */ export interface AccountsListBySubscriptionNextOptionalParams extends coreClient.OperationOptions {} @@ -3058,6 +3481,19 @@ export interface VolumesResetCifsPasswordOptionalParams /** Contains response data for the resetCifsPassword operation. */ export type VolumesResetCifsPasswordResponse = VolumesResetCifsPasswordHeaders; +/** Optional parameters. */ +export interface VolumesSplitCloneFromParentOptionalParams + 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 splitCloneFromParent operation. */ +export type VolumesSplitCloneFromParentResponse = + VolumesSplitCloneFromParentHeaders; + /** Optional parameters. */ export interface VolumesBreakFileLocksOptionalParams extends coreClient.OperationOptions { @@ -3152,6 +3588,58 @@ export interface VolumesReInitializeReplicationOptionalParams resumeFrom?: string; } +/** Optional parameters. */ +export interface VolumesPeerClusterForOnPremMigrationOptionalParams + 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 peerClusterForOnPremMigration operation. */ +export type VolumesPeerClusterForOnPremMigrationResponse = + ClusterPeerCommandResponse; + +/** Optional parameters. */ +export interface VolumesCreateOnPremMigrationReplicationOptionalParams + 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 createOnPremMigrationReplication operation. */ +export type VolumesCreateOnPremMigrationReplicationResponse = + SvmPeerCommandResponse; + +/** Optional parameters. */ +export interface VolumesFinalizeOnPremMigrationOptionalParams + 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 finalizeOnPremMigration operation. */ +export type VolumesFinalizeOnPremMigrationResponse = + VolumesFinalizeOnPremMigrationHeaders; + +/** Optional parameters. */ +export interface VolumesPerformReplicationTransferOptionalParams + 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 performReplicationTransfer operation. */ +export type VolumesPerformReplicationTransferResponse = + VolumesPerformReplicationTransferHeaders; + /** Optional parameters. */ export interface VolumesPoolChangeOptionalParams extends coreClient.OperationOptions { diff --git a/sdk/netapp/arm-netapp/src/models/mappers.ts b/sdk/netapp/arm-netapp/src/models/mappers.ts index 17be2eae2475..a2fc2331e720 100644 --- a/sdk/netapp/arm-netapp/src/models/mappers.ts +++ b/sdk/netapp/arm-netapp/src/models/mappers.ts @@ -465,6 +465,13 @@ export const FilePathAvailabilityRequest: coreClient.CompositeMapper = { name: "String", }, }, + availabilityZone: { + serializedName: "availabilityZone", + nullable: true, + type: { + name: "String", + }, + }, }, }, }; @@ -1354,6 +1361,112 @@ export const NetAppAccountPatch: coreClient.CompositeMapper = { name: "Boolean", }, }, + nfsV4IDDomain: { + constraints: { + Pattern: new RegExp("^[a-zA-Z0-9][a-zA-Z0-9.-]{0,253}[a-zA-Z0-9]$"), + MaxLength: 255, + }, + serializedName: "properties.nfsV4IDDomain", + nullable: true, + type: { + name: "String", + }, + }, + isMultiAdEnabled: { + serializedName: "properties.isMultiAdEnabled", + readOnly: true, + nullable: true, + type: { + name: "Boolean", + }, + }, + }, + }, +}; + +export const EncryptionMigrationRequest: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "EncryptionMigrationRequest", + modelProperties: { + virtualNetworkId: { + serializedName: "virtualNetworkId", + required: true, + type: { + name: "String", + }, + }, + privateEndpointId: { + serializedName: "privateEndpointId", + required: true, + type: { + name: "String", + }, + }, + }, + }, +}; + +export const ChangeKeyVault: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "ChangeKeyVault", + modelProperties: { + keyVaultUri: { + serializedName: "keyVaultUri", + required: true, + type: { + name: "String", + }, + }, + keyName: { + serializedName: "keyName", + required: true, + type: { + name: "String", + }, + }, + keyVaultResourceId: { + serializedName: "keyVaultResourceId", + required: true, + type: { + name: "String", + }, + }, + keyVaultPrivateEndpoints: { + serializedName: "keyVaultPrivateEndpoints", + required: true, + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "KeyVaultPrivateEndpoint", + }, + }, + }, + }, + }, + }, +}; + +export const KeyVaultPrivateEndpoint: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "KeyVaultPrivateEndpoint", + modelProperties: { + virtualNetworkId: { + serializedName: "virtualNetworkId", + type: { + name: "String", + }, + }, + privateEndpointId: { + serializedName: "privateEndpointId", + type: { + name: "String", + }, + }, }, }, }; @@ -1747,6 +1860,13 @@ export const ReplicationObject: coreClient.CompositeMapper = { name: "String", }, }, + remotePath: { + serializedName: "remotePath", + type: { + name: "Composite", + className: "RemotePath", + }, + }, remoteVolumeRegion: { serializedName: "remoteVolumeRegion", type: { @@ -1757,6 +1877,36 @@ export const ReplicationObject: coreClient.CompositeMapper = { }, }; +export const RemotePath: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "RemotePath", + modelProperties: { + externalHostName: { + serializedName: "externalHostName", + required: true, + type: { + name: "String", + }, + }, + serverName: { + serializedName: "serverName", + required: true, + type: { + name: "String", + }, + }, + volumeName: { + serializedName: "volumeName", + required: true, + type: { + name: "String", + }, + }, + }, + }, +}; + export const VolumeSnapshotProperties: coreClient.CompositeMapper = { type: { name: "Composite", @@ -1881,6 +2031,17 @@ export const VolumePatch: coreClient.CompositeMapper = { className: "VolumePatchPropertiesExportPolicy", }, }, + protocolTypes: { + serializedName: "properties.protocolTypes", + type: { + name: "Sequence", + element: { + type: { + name: "String", + }, + }, + }, + }, throughputMibps: { serializedName: "properties.throughputMibps", type: { @@ -2192,6 +2353,20 @@ export const Replication: coreClient.CompositeMapper = { name: "Composite", className: "Replication", modelProperties: { + replicationId: { + constraints: { + Pattern: new RegExp( + "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$", + ), + MaxLength: 36, + MinLength: 36, + }, + serializedName: "replicationId", + readOnly: true, + type: { + name: "String", + }, + }, endpointType: { serializedName: "endpointType", type: { @@ -2236,6 +2411,68 @@ export const AuthorizeRequest: coreClient.CompositeMapper = { }, }; +export const PeerClusterForVolumeMigrationRequest: coreClient.CompositeMapper = + { + type: { + name: "Composite", + className: "PeerClusterForVolumeMigrationRequest", + modelProperties: { + peerAddresses: { + constraints: { + MinItems: 1, + }, + serializedName: "peerAddresses", + required: true, + type: { + name: "Sequence", + element: { + type: { + name: "String", + }, + }, + }, + }, + remotePath: { + serializedName: "remotePath", + type: { + name: "Composite", + className: "RemotePath", + }, + }, + }, + }, + }; + +export const ClusterPeerCommandResponse: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "ClusterPeerCommandResponse", + modelProperties: { + peerAcceptCommand: { + serializedName: "peerAcceptCommand", + type: { + name: "String", + }, + }, + }, + }, +}; + +export const SvmPeerCommandResponse: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "SvmPeerCommandResponse", + modelProperties: { + svmPeeringCommand: { + serializedName: "svmPeeringCommand", + type: { + name: "String", + }, + }, + }, + }, +}; + export const PoolChangeRequest: coreClient.CompositeMapper = { type: { name: "Composite", @@ -3197,6 +3434,13 @@ export const VolumeGroupVolumeProperties: coreClient.CompositeMapper = { className: "VolumePropertiesDataProtection", }, }, + acceptGrowCapacityPoolForShortTermCloneSplit: { + serializedName: + "properties.acceptGrowCapacityPoolForShortTermCloneSplit", + type: { + name: "String", + }, + }, isRestoring: { serializedName: "properties.isRestoring", type: { @@ -3295,7 +3539,7 @@ export const VolumeGroupVolumeProperties: coreClient.CompositeMapper = { coolnessPeriod: { constraints: { InclusiveMaximum: 183, - InclusiveMinimum: 7, + InclusiveMinimum: 2, }, serializedName: "properties.coolnessPeriod", type: { @@ -3463,6 +3707,21 @@ export const VolumeGroupVolumeProperties: coreClient.CompositeMapper = { name: "String", }, }, + inheritedSizeInBytes: { + serializedName: "properties.inheritedSizeInBytes", + readOnly: true, + nullable: true, + type: { + name: "Number", + }, + }, + language: { + serializedName: "properties.language", + nullable: true, + type: { + name: "String", + }, + }, }, }, }; @@ -4424,6 +4683,25 @@ export const NetAppAccount: coreClient.CompositeMapper = { name: "Boolean", }, }, + nfsV4IDDomain: { + constraints: { + Pattern: new RegExp("^[a-zA-Z0-9][a-zA-Z0-9.-]{0,253}[a-zA-Z0-9]$"), + MaxLength: 255, + }, + serializedName: "properties.nfsV4IDDomain", + nullable: true, + type: { + name: "String", + }, + }, + isMultiAdEnabled: { + serializedName: "properties.isMultiAdEnabled", + readOnly: true, + nullable: true, + type: { + name: "Boolean", + }, + }, }, }, }; @@ -4703,6 +4981,13 @@ export const Volume: coreClient.CompositeMapper = { className: "VolumePropertiesDataProtection", }, }, + acceptGrowCapacityPoolForShortTermCloneSplit: { + serializedName: + "properties.acceptGrowCapacityPoolForShortTermCloneSplit", + type: { + name: "String", + }, + }, isRestoring: { serializedName: "properties.isRestoring", type: { @@ -4801,7 +5086,7 @@ export const Volume: coreClient.CompositeMapper = { coolnessPeriod: { constraints: { InclusiveMaximum: 183, - InclusiveMinimum: 7, + InclusiveMinimum: 2, }, serializedName: "properties.coolnessPeriod", type: { @@ -4969,6 +5254,21 @@ export const Volume: coreClient.CompositeMapper = { name: "String", }, }, + inheritedSizeInBytes: { + serializedName: "properties.inheritedSizeInBytes", + readOnly: true, + nullable: true, + type: { + name: "Number", + }, + }, + language: { + serializedName: "properties.language", + nullable: true, + type: { + name: "String", + }, + }, }, }, }; @@ -5183,6 +5483,52 @@ export const NetAppResourceUpdateNetworkSiblingSetHeaders: coreClient.CompositeM }, }; +export const AccountsMigrateEncryptionKeyHeaders: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "AccountsMigrateEncryptionKeyHeaders", + modelProperties: { + location: { + serializedName: "location", + type: { + name: "String", + }, + }, + }, + }, +}; + +export const AccountsGetChangeKeyVaultInformationHeaders: coreClient.CompositeMapper = + { + type: { + name: "Composite", + className: "AccountsGetChangeKeyVaultInformationHeaders", + modelProperties: { + location: { + serializedName: "location", + type: { + name: "String", + }, + }, + }, + }, + }; + +export const AccountsChangeKeyVaultHeaders: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "AccountsChangeKeyVaultHeaders", + modelProperties: { + location: { + serializedName: "location", + type: { + name: "String", + }, + }, + }, + }, +}; + export const VolumesPopulateAvailabilityZoneHeaders: coreClient.CompositeMapper = { type: { @@ -5214,6 +5560,21 @@ export const VolumesResetCifsPasswordHeaders: coreClient.CompositeMapper = { }, }; +export const VolumesSplitCloneFromParentHeaders: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "VolumesSplitCloneFromParentHeaders", + modelProperties: { + location: { + serializedName: "location", + type: { + name: "String", + }, + }, + }, + }, +}; + export const VolumesBreakFileLocksHeaders: coreClient.CompositeMapper = { type: { name: "Composite", @@ -5245,6 +5606,70 @@ export const VolumesListGetGroupIdListForLdapUserHeaders: coreClient.CompositeMa }, }; +export const VolumesPeerClusterForOnPremMigrationHeaders: coreClient.CompositeMapper = + { + type: { + name: "Composite", + className: "VolumesPeerClusterForOnPremMigrationHeaders", + modelProperties: { + location: { + serializedName: "location", + type: { + name: "String", + }, + }, + }, + }, + }; + +export const VolumesCreateOnPremMigrationReplicationHeaders: coreClient.CompositeMapper = + { + type: { + name: "Composite", + className: "VolumesCreateOnPremMigrationReplicationHeaders", + modelProperties: { + location: { + serializedName: "location", + type: { + name: "String", + }, + }, + }, + }, + }; + +export const VolumesFinalizeOnPremMigrationHeaders: coreClient.CompositeMapper = + { + type: { + name: "Composite", + className: "VolumesFinalizeOnPremMigrationHeaders", + modelProperties: { + location: { + serializedName: "location", + type: { + name: "String", + }, + }, + }, + }, + }; + +export const VolumesPerformReplicationTransferHeaders: coreClient.CompositeMapper = + { + type: { + name: "Composite", + className: "VolumesPerformReplicationTransferHeaders", + modelProperties: { + location: { + serializedName: "location", + type: { + name: "String", + }, + }, + }, + }, + }; + export const BackupsUpdateHeaders: coreClient.CompositeMapper = { type: { name: "Composite", diff --git a/sdk/netapp/arm-netapp/src/models/parameters.ts b/sdk/netapp/arm-netapp/src/models/parameters.ts index 4191a83a0235..52682e03f38c 100644 --- a/sdk/netapp/arm-netapp/src/models/parameters.ts +++ b/sdk/netapp/arm-netapp/src/models/parameters.ts @@ -19,6 +19,8 @@ import { UpdateNetworkSiblingSetRequest as UpdateNetworkSiblingSetRequestMapper, NetAppAccount as NetAppAccountMapper, NetAppAccountPatch as NetAppAccountPatchMapper, + EncryptionMigrationRequest as EncryptionMigrationRequestMapper, + ChangeKeyVault as ChangeKeyVaultMapper, CapacityPool as CapacityPoolMapper, CapacityPoolPatch as CapacityPoolPatchMapper, Volume as VolumeMapper, @@ -29,6 +31,7 @@ import { BreakReplicationRequest as BreakReplicationRequestMapper, ReestablishReplicationRequest as ReestablishReplicationRequestMapper, AuthorizeRequest as AuthorizeRequestMapper, + PeerClusterForVolumeMigrationRequest as PeerClusterForVolumeMigrationRequestMapper, PoolChangeRequest as PoolChangeRequestMapper, RelocateVolumeRequest as RelocateVolumeRequestMapper, Snapshot as SnapshotMapper, @@ -77,7 +80,7 @@ export const $host: OperationURLParameter = { export const apiVersion: OperationQueryParameter = { parameterPath: "apiVersion", mapper: { - defaultValue: "2023-11-01", + defaultValue: "2023-11-01-preview", isConstant: true, serializedName: "api-version", type: { @@ -148,6 +151,11 @@ export const subnetId: OperationParameter = { mapper: FilePathAvailabilityRequestMapper, }; +export const availabilityZone: OperationParameter = { + parameterPath: ["options", "availabilityZone"], + mapper: FilePathAvailabilityRequestMapper, +}; + export const name2: OperationParameter = { parameterPath: "name", mapper: QuotaAvailabilityRequestMapper, @@ -255,6 +263,16 @@ export const body6: OperationParameter = { mapper: NetAppAccountPatchMapper, }; +export const body7: OperationParameter = { + parameterPath: ["options", "body"], + mapper: EncryptionMigrationRequestMapper, +}; + +export const body8: OperationParameter = { + parameterPath: ["options", "body"], + mapper: ChangeKeyVaultMapper, +}; + export const poolName: OperationURLParameter = { parameterPath: "poolName", mapper: { @@ -271,12 +289,12 @@ export const poolName: OperationURLParameter = { }, }; -export const body7: OperationParameter = { +export const body9: OperationParameter = { parameterPath: "body", mapper: CapacityPoolMapper, }; -export const body8: OperationParameter = { +export const body10: OperationParameter = { parameterPath: "body", mapper: CapacityPoolPatchMapper, }; @@ -297,12 +315,12 @@ export const volumeName: OperationURLParameter = { }, }; -export const body9: OperationParameter = { +export const body11: OperationParameter = { parameterPath: "body", mapper: VolumeMapper, }; -export const body10: OperationParameter = { +export const body12: OperationParameter = { parameterPath: "body", mapper: VolumePatchMapper, }; @@ -317,42 +335,47 @@ export const forceDelete: OperationQueryParameter = { }, }; -export const body11: OperationParameter = { +export const body13: OperationParameter = { parameterPath: "body", mapper: VolumeRevertMapper, }; -export const body12: OperationParameter = { +export const body14: OperationParameter = { parameterPath: ["options", "body"], mapper: BreakFileLocksRequestMapper, }; -export const body13: OperationParameter = { +export const body15: OperationParameter = { parameterPath: "body", mapper: GetGroupIdListForLdapUserRequestMapper, }; -export const body14: OperationParameter = { +export const body16: OperationParameter = { parameterPath: ["options", "body"], mapper: BreakReplicationRequestMapper, }; -export const body15: OperationParameter = { +export const body17: OperationParameter = { parameterPath: "body", mapper: ReestablishReplicationRequestMapper, }; -export const body16: OperationParameter = { +export const body18: OperationParameter = { parameterPath: "body", mapper: AuthorizeRequestMapper, }; -export const body17: OperationParameter = { +export const body19: OperationParameter = { + parameterPath: "body", + mapper: PeerClusterForVolumeMigrationRequestMapper, +}; + +export const body20: OperationParameter = { parameterPath: "body", mapper: PoolChangeRequestMapper, }; -export const body18: OperationParameter = { +export const body21: OperationParameter = { parameterPath: ["options", "body"], mapper: RelocateVolumeRequestMapper, }; @@ -368,12 +391,12 @@ export const snapshotName: OperationURLParameter = { }, }; -export const body19: OperationParameter = { +export const body22: OperationParameter = { parameterPath: "body", mapper: SnapshotMapper, }; -export const body20: OperationParameter = { +export const body23: OperationParameter = { parameterPath: "body", mapper: { serializedName: "body", @@ -385,7 +408,7 @@ export const body20: OperationParameter = { }, }; -export const body21: OperationParameter = { +export const body24: OperationParameter = { parameterPath: "body", mapper: SnapshotRestoreFilesMapper, }; @@ -401,12 +424,12 @@ export const snapshotPolicyName: OperationURLParameter = { }, }; -export const body22: OperationParameter = { +export const body25: OperationParameter = { parameterPath: "body", mapper: SnapshotPolicyMapper, }; -export const body23: OperationParameter = { +export const body26: OperationParameter = { parameterPath: "body", mapper: SnapshotPolicyPatchMapper, }; @@ -422,12 +445,12 @@ export const backupPolicyName: OperationURLParameter = { }, }; -export const body24: OperationParameter = { +export const body27: OperationParameter = { parameterPath: "body", mapper: BackupPolicyMapper, }; -export const body25: OperationParameter = { +export const body28: OperationParameter = { parameterPath: "body", mapper: BackupPolicyPatchMapper, }; @@ -443,12 +466,12 @@ export const volumeQuotaRuleName: OperationURLParameter = { }, }; -export const body26: OperationParameter = { +export const body29: OperationParameter = { parameterPath: "body", mapper: VolumeQuotaRuleMapper, }; -export const body27: OperationParameter = { +export const body30: OperationParameter = { parameterPath: "body", mapper: VolumeQuotaRulePatchMapper, }; @@ -469,7 +492,7 @@ export const volumeGroupName: OperationURLParameter = { }, }; -export const body28: OperationParameter = { +export const body31: OperationParameter = { parameterPath: "body", mapper: VolumeGroupDetailsMapper, }; @@ -490,12 +513,12 @@ export const subvolumeName: OperationURLParameter = { }, }; -export const body29: OperationParameter = { +export const body32: OperationParameter = { parameterPath: "body", mapper: SubvolumeInfoMapper, }; -export const body30: OperationParameter = { +export const body33: OperationParameter = { parameterPath: "body", mapper: SubvolumePatchRequestMapper, }; @@ -538,32 +561,32 @@ export const backupName: OperationURLParameter = { }, }; -export const body31: OperationParameter = { +export const body34: OperationParameter = { parameterPath: "body", mapper: BackupMapper, }; -export const body32: OperationParameter = { +export const body35: OperationParameter = { parameterPath: ["options", "body"], mapper: BackupPatchMapper, }; -export const body33: OperationParameter = { +export const body36: OperationParameter = { parameterPath: "body", mapper: BackupVaultMapper, }; -export const body34: OperationParameter = { +export const body37: OperationParameter = { parameterPath: "body", mapper: BackupVaultPatchMapper, }; -export const body35: OperationParameter = { +export const body38: OperationParameter = { parameterPath: "body", mapper: BackupRestoreFilesMapper, }; -export const body36: OperationParameter = { +export const body39: OperationParameter = { parameterPath: "body", mapper: BackupsMigrationRequestMapper, }; diff --git a/sdk/netapp/arm-netapp/src/netAppManagementClient.ts b/sdk/netapp/arm-netapp/src/netAppManagementClient.ts index ba5a2602de74..9f3f105e6c98 100644 --- a/sdk/netapp/arm-netapp/src/netAppManagementClient.ts +++ b/sdk/netapp/arm-netapp/src/netAppManagementClient.ts @@ -88,7 +88,7 @@ export class NetAppManagementClient extends coreClient.ServiceClient { credential: credentials, }; - const packageDetails = `azsdk-js-arm-netapp/21.0.0`; + const packageDetails = `azsdk-js-arm-netapp/21.1.0-beta.1`; const userAgentPrefix = options.userAgentOptions && options.userAgentOptions.userAgentPrefix ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}` @@ -142,7 +142,7 @@ export class NetAppManagementClient extends coreClient.ServiceClient { // Assigning values to Constant parameters this.$host = options.$host || "https://management.azure.com"; - this.apiVersion = options.apiVersion || "2023-11-01"; + this.apiVersion = options.apiVersion || "2023-11-01-preview"; this.operations = new OperationsImpl(this); this.netAppResource = new NetAppResourceImpl(this); this.netAppResourceQuotaLimits = new NetAppResourceQuotaLimitsImpl(this); diff --git a/sdk/netapp/arm-netapp/src/operations/accounts.ts b/sdk/netapp/arm-netapp/src/operations/accounts.ts index c56dd8ecaca3..568605b30b8b 100644 --- a/sdk/netapp/arm-netapp/src/operations/accounts.ts +++ b/sdk/netapp/arm-netapp/src/operations/accounts.ts @@ -36,6 +36,12 @@ import { AccountsUpdateOptionalParams, AccountsUpdateResponse, AccountsRenewCredentialsOptionalParams, + AccountsMigrateEncryptionKeyOptionalParams, + AccountsMigrateEncryptionKeyResponse, + AccountsGetChangeKeyVaultInformationOptionalParams, + AccountsGetChangeKeyVaultInformationResponse, + AccountsChangeKeyVaultOptionalParams, + AccountsChangeKeyVaultResponse, AccountsListBySubscriptionNextResponse, AccountsListNextResponse, } from "../models"; @@ -572,6 +578,286 @@ export class AccountsImpl implements Accounts { return poller.pollUntilDone(); } + /** + * Migrates all volumes in a VNet to a different encryption key source (Microsoft-managed key or Azure + * Key Vault). Operation fails if targeted volumes share encryption sibling set with volumes from + * another account. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param options The options parameters. + */ + async beginMigrateEncryptionKey( + resourceGroupName: string, + accountName: string, + options?: AccountsMigrateEncryptionKeyOptionalParams, + ): Promise< + SimplePollerLike< + OperationState, + AccountsMigrateEncryptionKeyResponse + > + > { + 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, accountName, options }, + spec: migrateEncryptionKeyOperationSpec, + }); + const poller = await createHttpPoller< + AccountsMigrateEncryptionKeyResponse, + OperationState + >(lro, { + restoreFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs, + resourceLocationConfig: "location", + }); + await poller.poll(); + return poller; + } + + /** + * Migrates all volumes in a VNet to a different encryption key source (Microsoft-managed key or Azure + * Key Vault). Operation fails if targeted volumes share encryption sibling set with volumes from + * another account. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param options The options parameters. + */ + async beginMigrateEncryptionKeyAndWait( + resourceGroupName: string, + accountName: string, + options?: AccountsMigrateEncryptionKeyOptionalParams, + ): Promise { + const poller = await this.beginMigrateEncryptionKey( + resourceGroupName, + accountName, + options, + ); + return poller.pollUntilDone(); + } + + /** + * Contains data from encryption.keyVaultProperties as well as information about which private endpoint + * is used by each encryption sibling set. Response from this endpoint can be modified and used as + * request body for POST request. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param options The options parameters. + */ + async beginGetChangeKeyVaultInformation( + resourceGroupName: string, + accountName: string, + options?: AccountsGetChangeKeyVaultInformationOptionalParams, + ): Promise< + SimplePollerLike< + OperationState, + AccountsGetChangeKeyVaultInformationResponse + > + > { + 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, accountName, options }, + spec: getChangeKeyVaultInformationOperationSpec, + }); + const poller = await createHttpPoller< + AccountsGetChangeKeyVaultInformationResponse, + OperationState + >(lro, { + restoreFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs, + resourceLocationConfig: "location", + }); + await poller.poll(); + return poller; + } + + /** + * Contains data from encryption.keyVaultProperties as well as information about which private endpoint + * is used by each encryption sibling set. Response from this endpoint can be modified and used as + * request body for POST request. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param options The options parameters. + */ + async beginGetChangeKeyVaultInformationAndWait( + resourceGroupName: string, + accountName: string, + options?: AccountsGetChangeKeyVaultInformationOptionalParams, + ): Promise { + const poller = await this.beginGetChangeKeyVaultInformation( + resourceGroupName, + accountName, + options, + ); + return poller.pollUntilDone(); + } + + /** + * Affects existing volumes that are encrypted with Key Vault/Managed HSM, and new volumes. Supports + * MHSM to Key Vault, Key Vault to MHSM, MHSM to MHSM and Key Vault to Key Vault. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param options The options parameters. + */ + async beginChangeKeyVault( + resourceGroupName: string, + accountName: string, + options?: AccountsChangeKeyVaultOptionalParams, + ): Promise< + SimplePollerLike< + OperationState, + AccountsChangeKeyVaultResponse + > + > { + 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, accountName, options }, + spec: changeKeyVaultOperationSpec, + }); + const poller = await createHttpPoller< + AccountsChangeKeyVaultResponse, + OperationState + >(lro, { + restoreFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs, + resourceLocationConfig: "location", + }); + await poller.poll(); + return poller; + } + + /** + * Affects existing volumes that are encrypted with Key Vault/Managed HSM, and new volumes. Supports + * MHSM to Key Vault, Key Vault to MHSM, MHSM to MHSM and Key Vault to Key Vault. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param options The options parameters. + */ + async beginChangeKeyVaultAndWait( + resourceGroupName: string, + accountName: string, + options?: AccountsChangeKeyVaultOptionalParams, + ): Promise { + const poller = await this.beginChangeKeyVault( + resourceGroupName, + accountName, + options, + ); + return poller.pollUntilDone(); + } + /** * ListBySubscriptionNext * @param nextLink The nextLink from the previous successful call to the ListBySubscription method. @@ -772,6 +1058,100 @@ const renewCredentialsOperationSpec: coreClient.OperationSpec = { headerParameters: [Parameters.accept], serializer, }; +const migrateEncryptionKeyOperationSpec: coreClient.OperationSpec = { + path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/migrateEncryption", + httpMethod: "POST", + responses: { + 200: { + headersMapper: Mappers.AccountsMigrateEncryptionKeyHeaders, + }, + 201: { + headersMapper: Mappers.AccountsMigrateEncryptionKeyHeaders, + }, + 202: { + headersMapper: Mappers.AccountsMigrateEncryptionKeyHeaders, + }, + 204: { + headersMapper: Mappers.AccountsMigrateEncryptionKeyHeaders, + }, + default: { + bodyMapper: Mappers.ErrorResponse, + }, + }, + requestBody: Parameters.body7, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.accountName, + ], + headerParameters: [Parameters.accept, Parameters.contentType], + mediaType: "json", + serializer, +}; +const getChangeKeyVaultInformationOperationSpec: coreClient.OperationSpec = { + path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/getKeyVaultStatus", + httpMethod: "POST", + responses: { + 200: { + headersMapper: Mappers.AccountsGetChangeKeyVaultInformationHeaders, + }, + 201: { + headersMapper: Mappers.AccountsGetChangeKeyVaultInformationHeaders, + }, + 202: { + headersMapper: Mappers.AccountsGetChangeKeyVaultInformationHeaders, + }, + 204: { + headersMapper: Mappers.AccountsGetChangeKeyVaultInformationHeaders, + }, + default: { + bodyMapper: Mappers.ErrorResponse, + }, + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.accountName, + ], + headerParameters: [Parameters.accept], + serializer, +}; +const changeKeyVaultOperationSpec: coreClient.OperationSpec = { + path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/changeKeyVault", + httpMethod: "POST", + responses: { + 200: { + headersMapper: Mappers.AccountsChangeKeyVaultHeaders, + }, + 201: { + headersMapper: Mappers.AccountsChangeKeyVaultHeaders, + }, + 202: { + headersMapper: Mappers.AccountsChangeKeyVaultHeaders, + }, + 204: { + headersMapper: Mappers.AccountsChangeKeyVaultHeaders, + }, + default: { + bodyMapper: Mappers.ErrorResponse, + }, + }, + requestBody: Parameters.body8, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.accountName, + ], + headerParameters: [Parameters.accept, Parameters.contentType], + mediaType: "json", + serializer, +}; const listBySubscriptionNextOperationSpec: coreClient.OperationSpec = { path: "{nextLink}", httpMethod: "GET", diff --git a/sdk/netapp/arm-netapp/src/operations/backupPolicies.ts b/sdk/netapp/arm-netapp/src/operations/backupPolicies.ts index 992e0e5c4fa1..f03e39a45549 100644 --- a/sdk/netapp/arm-netapp/src/operations/backupPolicies.ts +++ b/sdk/netapp/arm-netapp/src/operations/backupPolicies.ts @@ -492,7 +492,7 @@ const createOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body24, + requestBody: Parameters.body27, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, @@ -525,7 +525,7 @@ const updateOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body25, + requestBody: Parameters.body28, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, diff --git a/sdk/netapp/arm-netapp/src/operations/backupVaults.ts b/sdk/netapp/arm-netapp/src/operations/backupVaults.ts index 0a75be27eac1..5a29719bb963 100644 --- a/sdk/netapp/arm-netapp/src/operations/backupVaults.ts +++ b/sdk/netapp/arm-netapp/src/operations/backupVaults.ts @@ -549,7 +549,7 @@ const createOrUpdateOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body33, + requestBody: Parameters.body36, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, @@ -582,7 +582,7 @@ const updateOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body34, + requestBody: Parameters.body37, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, diff --git a/sdk/netapp/arm-netapp/src/operations/backups.ts b/sdk/netapp/arm-netapp/src/operations/backups.ts index 2ed72e6a6570..feeb55819bc0 100644 --- a/sdk/netapp/arm-netapp/src/operations/backups.ts +++ b/sdk/netapp/arm-netapp/src/operations/backups.ts @@ -686,7 +686,7 @@ const createOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body31, + requestBody: Parameters.body34, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, @@ -720,7 +720,7 @@ const updateOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body32, + requestBody: Parameters.body35, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, diff --git a/sdk/netapp/arm-netapp/src/operations/backupsUnderAccount.ts b/sdk/netapp/arm-netapp/src/operations/backupsUnderAccount.ts index 77520dbb5728..9a6e79388abf 100644 --- a/sdk/netapp/arm-netapp/src/operations/backupsUnderAccount.ts +++ b/sdk/netapp/arm-netapp/src/operations/backupsUnderAccount.ts @@ -153,7 +153,7 @@ const migrateBackupsOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body36, + requestBody: Parameters.body39, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, diff --git a/sdk/netapp/arm-netapp/src/operations/backupsUnderBackupVault.ts b/sdk/netapp/arm-netapp/src/operations/backupsUnderBackupVault.ts index 1a9c8faa611b..80a53419d030 100644 --- a/sdk/netapp/arm-netapp/src/operations/backupsUnderBackupVault.ts +++ b/sdk/netapp/arm-netapp/src/operations/backupsUnderBackupVault.ts @@ -170,7 +170,7 @@ const restoreFilesOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body35, + requestBody: Parameters.body38, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, diff --git a/sdk/netapp/arm-netapp/src/operations/backupsUnderVolume.ts b/sdk/netapp/arm-netapp/src/operations/backupsUnderVolume.ts index 7448cb83c677..0e6093ff7f8a 100644 --- a/sdk/netapp/arm-netapp/src/operations/backupsUnderVolume.ts +++ b/sdk/netapp/arm-netapp/src/operations/backupsUnderVolume.ts @@ -170,7 +170,7 @@ const migrateBackupsOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body36, + requestBody: Parameters.body39, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, diff --git a/sdk/netapp/arm-netapp/src/operations/netAppResource.ts b/sdk/netapp/arm-netapp/src/operations/netAppResource.ts index 1af82c48813d..ad0682b9e948 100644 --- a/sdk/netapp/arm-netapp/src/operations/netAppResource.ts +++ b/sdk/netapp/arm-netapp/src/operations/netAppResource.ts @@ -310,7 +310,11 @@ const checkFilePathAvailabilityOperationSpec: coreClient.OperationSpec = { }, }, requestBody: { - parameterPath: { name: ["name"], subnetId: ["subnetId"] }, + parameterPath: { + name: ["name"], + subnetId: ["subnetId"], + availabilityZone: ["options", "availabilityZone"], + }, mapper: { ...Mappers.FilePathAvailabilityRequest, required: true }, }, queryParameters: [Parameters.apiVersion], diff --git a/sdk/netapp/arm-netapp/src/operations/pools.ts b/sdk/netapp/arm-netapp/src/operations/pools.ts index 93650c768d2a..b23012fc3037 100644 --- a/sdk/netapp/arm-netapp/src/operations/pools.ts +++ b/sdk/netapp/arm-netapp/src/operations/pools.ts @@ -529,7 +529,7 @@ const createOrUpdateOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body7, + requestBody: Parameters.body9, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, @@ -562,7 +562,7 @@ const updateOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body8, + requestBody: Parameters.body10, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, diff --git a/sdk/netapp/arm-netapp/src/operations/snapshotPolicies.ts b/sdk/netapp/arm-netapp/src/operations/snapshotPolicies.ts index 3a87e033d785..ba7815a17685 100644 --- a/sdk/netapp/arm-netapp/src/operations/snapshotPolicies.ts +++ b/sdk/netapp/arm-netapp/src/operations/snapshotPolicies.ts @@ -434,7 +434,7 @@ const createOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body22, + requestBody: Parameters.body25, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, @@ -467,7 +467,7 @@ const updateOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body23, + requestBody: Parameters.body26, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, diff --git a/sdk/netapp/arm-netapp/src/operations/snapshots.ts b/sdk/netapp/arm-netapp/src/operations/snapshots.ts index 59f879981f82..1d33ee55467d 100644 --- a/sdk/netapp/arm-netapp/src/operations/snapshots.ts +++ b/sdk/netapp/arm-netapp/src/operations/snapshots.ts @@ -699,7 +699,7 @@ const createOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body19, + requestBody: Parameters.body22, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, @@ -734,7 +734,7 @@ const updateOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body20, + requestBody: Parameters.body23, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, @@ -786,7 +786,7 @@ const restoreFilesOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body21, + requestBody: Parameters.body24, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, diff --git a/sdk/netapp/arm-netapp/src/operations/subvolumes.ts b/sdk/netapp/arm-netapp/src/operations/subvolumes.ts index 254d24e63d00..ae43c2d2dde2 100644 --- a/sdk/netapp/arm-netapp/src/operations/subvolumes.ts +++ b/sdk/netapp/arm-netapp/src/operations/subvolumes.ts @@ -755,7 +755,7 @@ const createOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body29, + requestBody: Parameters.body32, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, @@ -790,7 +790,7 @@ const updateOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body30, + requestBody: Parameters.body33, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, diff --git a/sdk/netapp/arm-netapp/src/operations/volumeGroups.ts b/sdk/netapp/arm-netapp/src/operations/volumeGroups.ts index 091c74772ab0..746dd5909214 100644 --- a/sdk/netapp/arm-netapp/src/operations/volumeGroups.ts +++ b/sdk/netapp/arm-netapp/src/operations/volumeGroups.ts @@ -396,7 +396,7 @@ const createOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body28, + requestBody: Parameters.body31, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, diff --git a/sdk/netapp/arm-netapp/src/operations/volumeQuotaRules.ts b/sdk/netapp/arm-netapp/src/operations/volumeQuotaRules.ts index 9c4f0daabd4f..a4feae80ae5b 100644 --- a/sdk/netapp/arm-netapp/src/operations/volumeQuotaRules.ts +++ b/sdk/netapp/arm-netapp/src/operations/volumeQuotaRules.ts @@ -588,7 +588,7 @@ const createOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body26, + requestBody: Parameters.body29, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, @@ -623,7 +623,7 @@ const updateOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body27, + requestBody: Parameters.body30, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, diff --git a/sdk/netapp/arm-netapp/src/operations/volumes.ts b/sdk/netapp/arm-netapp/src/operations/volumes.ts index ffb8f52085ab..360ef14118d0 100644 --- a/sdk/netapp/arm-netapp/src/operations/volumes.ts +++ b/sdk/netapp/arm-netapp/src/operations/volumes.ts @@ -41,6 +41,8 @@ import { VolumesRevertOptionalParams, VolumesResetCifsPasswordOptionalParams, VolumesResetCifsPasswordResponse, + VolumesSplitCloneFromParentOptionalParams, + VolumesSplitCloneFromParentResponse, VolumesBreakFileLocksOptionalParams, GetGroupIdListForLdapUserRequest, VolumesListGetGroupIdListForLdapUserOptionalParams, @@ -55,6 +57,15 @@ import { AuthorizeRequest, VolumesAuthorizeReplicationOptionalParams, VolumesReInitializeReplicationOptionalParams, + PeerClusterForVolumeMigrationRequest, + VolumesPeerClusterForOnPremMigrationOptionalParams, + VolumesPeerClusterForOnPremMigrationResponse, + VolumesCreateOnPremMigrationReplicationOptionalParams, + VolumesCreateOnPremMigrationReplicationResponse, + VolumesFinalizeOnPremMigrationOptionalParams, + VolumesFinalizeOnPremMigrationResponse, + VolumesPerformReplicationTransferOptionalParams, + VolumesPerformReplicationTransferResponse, PoolChangeRequest, VolumesPoolChangeOptionalParams, VolumesRelocateOptionalParams, @@ -910,6 +921,106 @@ export class VolumesImpl implements Volumes { return poller.pollUntilDone(); } + /** + * Split operation to convert clone volume to an independent volume. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param options The options parameters. + */ + async beginSplitCloneFromParent( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesSplitCloneFromParentOptionalParams, + ): Promise< + SimplePollerLike< + OperationState, + VolumesSplitCloneFromParentResponse + > + > { + 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, accountName, poolName, volumeName, options }, + spec: splitCloneFromParentOperationSpec, + }); + const poller = await createHttpPoller< + VolumesSplitCloneFromParentResponse, + OperationState + >(lro, { + restoreFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs, + resourceLocationConfig: "location", + }); + await poller.poll(); + return poller; + } + + /** + * Split operation to convert clone volume to an independent volume. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param options The options parameters. + */ + async beginSplitCloneFromParentAndWait( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesSplitCloneFromParentOptionalParams, + ): Promise { + const poller = await this.beginSplitCloneFromParent( + resourceGroupName, + accountName, + poolName, + volumeName, + options, + ); + return poller.pollUntilDone(); + } + /** * Break all the file locks on a volume * @param resourceGroupName The name of the resource group. The name is case insensitive. @@ -1334,46 +1445,436 @@ export class VolumesImpl implements Volumes { } /** - * List all replications for a specified volume + * List all replications for a specified volume + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param options The options parameters. + */ + private _listReplications( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesListReplicationsOptionalParams, + ): Promise { + return this.client.sendOperationRequest( + { resourceGroupName, accountName, poolName, volumeName, options }, + listReplicationsOperationSpec, + ); + } + + /** + * Resync the connection on the destination volume. If the operation is ran on the source volume it + * will reverse-resync the connection and sync from destination to source. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param options The options parameters. + */ + async beginResyncReplication( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesResyncReplicationOptionalParams, + ): Promise, void>> { + 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, accountName, poolName, volumeName, options }, + spec: resyncReplicationOperationSpec, + }); + const poller = await createHttpPoller>(lro, { + restoreFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs, + resourceLocationConfig: "location", + }); + await poller.poll(); + return poller; + } + + /** + * Resync the connection on the destination volume. If the operation is ran on the source volume it + * will reverse-resync the connection and sync from destination to source. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param options The options parameters. + */ + async beginResyncReplicationAndWait( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesResyncReplicationOptionalParams, + ): Promise { + const poller = await this.beginResyncReplication( + resourceGroupName, + accountName, + poolName, + volumeName, + options, + ); + return poller.pollUntilDone(); + } + + /** + * Delete the replication connection on the destination volume, and send release to the source + * replication + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param options The options parameters. + */ + async beginDeleteReplication( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesDeleteReplicationOptionalParams, + ): Promise, void>> { + 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, accountName, poolName, volumeName, options }, + spec: deleteReplicationOperationSpec, + }); + const poller = await createHttpPoller>(lro, { + restoreFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs, + resourceLocationConfig: "location", + }); + await poller.poll(); + return poller; + } + + /** + * Delete the replication connection on the destination volume, and send release to the source + * replication + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param options The options parameters. + */ + async beginDeleteReplicationAndWait( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesDeleteReplicationOptionalParams, + ): Promise { + const poller = await this.beginDeleteReplication( + resourceGroupName, + accountName, + poolName, + volumeName, + options, + ); + return poller.pollUntilDone(); + } + + /** + * Authorize the replication connection on the source volume + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param body Authorize request object supplied in the body of the operation. + * @param options The options parameters. + */ + async beginAuthorizeReplication( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + body: AuthorizeRequest, + options?: VolumesAuthorizeReplicationOptionalParams, + ): Promise, void>> { + 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, + accountName, + poolName, + volumeName, + body, + options, + }, + spec: authorizeReplicationOperationSpec, + }); + const poller = await createHttpPoller>(lro, { + restoreFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs, + resourceLocationConfig: "location", + }); + await poller.poll(); + return poller; + } + + /** + * Authorize the replication connection on the source volume + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param body Authorize request object supplied in the body of the operation. + * @param options The options parameters. + */ + async beginAuthorizeReplicationAndWait( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + body: AuthorizeRequest, + options?: VolumesAuthorizeReplicationOptionalParams, + ): Promise { + const poller = await this.beginAuthorizeReplication( + resourceGroupName, + accountName, + poolName, + volumeName, + body, + options, + ); + return poller.pollUntilDone(); + } + + /** + * Re-Initializes the replication connection on the destination volume + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param options The options parameters. + */ + async beginReInitializeReplication( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesReInitializeReplicationOptionalParams, + ): Promise, void>> { + 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, accountName, poolName, volumeName, options }, + spec: reInitializeReplicationOperationSpec, + }); + const poller = await createHttpPoller>(lro, { + restoreFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs, + resourceLocationConfig: "location", + }); + await poller.poll(); + return poller; + } + + /** + * Re-Initializes the replication connection on the destination volume * @param resourceGroupName The name of the resource group. The name is case insensitive. * @param accountName The name of the NetApp account * @param poolName The name of the capacity pool * @param volumeName The name of the volume * @param options The options parameters. */ - private _listReplications( + async beginReInitializeReplicationAndWait( resourceGroupName: string, accountName: string, poolName: string, volumeName: string, - options?: VolumesListReplicationsOptionalParams, - ): Promise { - return this.client.sendOperationRequest( - { resourceGroupName, accountName, poolName, volumeName, options }, - listReplicationsOperationSpec, + options?: VolumesReInitializeReplicationOptionalParams, + ): Promise { + const poller = await this.beginReInitializeReplication( + resourceGroupName, + accountName, + poolName, + volumeName, + options, ); + return poller.pollUntilDone(); } /** - * Resync the connection on the destination volume. If the operation is ran on the source volume it - * will reverse-resync the connection and sync from destination to source. + * Starts peering the cluster for this migration volume * @param resourceGroupName The name of the resource group. The name is case insensitive. * @param accountName The name of the NetApp account * @param poolName The name of the capacity pool * @param volumeName The name of the volume + * @param body Cluster peer request object supplied in the body of the operation. * @param options The options parameters. */ - async beginResyncReplication( + async beginPeerClusterForOnPremMigration( resourceGroupName: string, accountName: string, poolName: string, volumeName: string, - options?: VolumesResyncReplicationOptionalParams, - ): Promise, void>> { + body: PeerClusterForVolumeMigrationRequest, + options?: VolumesPeerClusterForOnPremMigrationOptionalParams, + ): Promise< + SimplePollerLike< + OperationState, + VolumesPeerClusterForOnPremMigrationResponse + > + > { const directSendOperation = async ( args: coreClient.OperationArguments, spec: coreClient.OperationSpec, - ): Promise => { + ): Promise => { return this.client.sendOperationRequest(args, spec); }; const sendOperationFn = async ( @@ -1410,10 +1911,20 @@ export class VolumesImpl implements Volumes { const lro = createLroSpec({ sendOperationFn, - args: { resourceGroupName, accountName, poolName, volumeName, options }, - spec: resyncReplicationOperationSpec, + args: { + resourceGroupName, + accountName, + poolName, + volumeName, + body, + options, + }, + spec: peerClusterForOnPremMigrationOperationSpec, }); - const poller = await createHttpPoller>(lro, { + const poller = await createHttpPoller< + VolumesPeerClusterForOnPremMigrationResponse, + OperationState + >(lro, { restoreFrom: options?.resumeFrom, intervalInMs: options?.updateIntervalInMs, resourceLocationConfig: "location", @@ -1423,51 +1934,58 @@ export class VolumesImpl implements Volumes { } /** - * Resync the connection on the destination volume. If the operation is ran on the source volume it - * will reverse-resync the connection and sync from destination to source. + * Starts peering the cluster for this migration volume * @param resourceGroupName The name of the resource group. The name is case insensitive. * @param accountName The name of the NetApp account * @param poolName The name of the capacity pool * @param volumeName The name of the volume + * @param body Cluster peer request object supplied in the body of the operation. * @param options The options parameters. */ - async beginResyncReplicationAndWait( + async beginPeerClusterForOnPremMigrationAndWait( resourceGroupName: string, accountName: string, poolName: string, volumeName: string, - options?: VolumesResyncReplicationOptionalParams, - ): Promise { - const poller = await this.beginResyncReplication( + body: PeerClusterForVolumeMigrationRequest, + options?: VolumesPeerClusterForOnPremMigrationOptionalParams, + ): Promise { + const poller = await this.beginPeerClusterForOnPremMigration( resourceGroupName, accountName, poolName, volumeName, + body, options, ); return poller.pollUntilDone(); } /** - * Delete the replication connection on the destination volume, and send release to the source - * replication + * Starts SVM peering and returns a command to be run on the external ONTAP to accept it. Once the + * SVMs have been peered a SnapMirror will be created * @param resourceGroupName The name of the resource group. The name is case insensitive. * @param accountName The name of the NetApp account * @param poolName The name of the capacity pool * @param volumeName The name of the volume * @param options The options parameters. */ - async beginDeleteReplication( + async beginCreateOnPremMigrationReplication( resourceGroupName: string, accountName: string, poolName: string, volumeName: string, - options?: VolumesDeleteReplicationOptionalParams, - ): Promise, void>> { + options?: VolumesCreateOnPremMigrationReplicationOptionalParams, + ): Promise< + SimplePollerLike< + OperationState, + VolumesCreateOnPremMigrationReplicationResponse + > + > { const directSendOperation = async ( args: coreClient.OperationArguments, spec: coreClient.OperationSpec, - ): Promise => { + ): Promise => { return this.client.sendOperationRequest(args, spec); }; const sendOperationFn = async ( @@ -1505,9 +2023,12 @@ export class VolumesImpl implements Volumes { const lro = createLroSpec({ sendOperationFn, args: { resourceGroupName, accountName, poolName, volumeName, options }, - spec: deleteReplicationOperationSpec, + spec: createOnPremMigrationReplicationOperationSpec, }); - const poller = await createHttpPoller>(lro, { + const poller = await createHttpPoller< + VolumesCreateOnPremMigrationReplicationResponse, + OperationState + >(lro, { restoreFrom: options?.resumeFrom, intervalInMs: options?.updateIntervalInMs, resourceLocationConfig: "location", @@ -1517,22 +2038,22 @@ export class VolumesImpl implements Volumes { } /** - * Delete the replication connection on the destination volume, and send release to the source - * replication + * Starts SVM peering and returns a command to be run on the external ONTAP to accept it. Once the + * SVMs have been peered a SnapMirror will be created * @param resourceGroupName The name of the resource group. The name is case insensitive. * @param accountName The name of the NetApp account * @param poolName The name of the capacity pool * @param volumeName The name of the volume * @param options The options parameters. */ - async beginDeleteReplicationAndWait( + async beginCreateOnPremMigrationReplicationAndWait( resourceGroupName: string, accountName: string, poolName: string, volumeName: string, - options?: VolumesDeleteReplicationOptionalParams, - ): Promise { - const poller = await this.beginDeleteReplication( + options?: VolumesCreateOnPremMigrationReplicationOptionalParams, + ): Promise { + const poller = await this.beginCreateOnPremMigrationReplication( resourceGroupName, accountName, poolName, @@ -1543,26 +2064,30 @@ export class VolumesImpl implements Volumes { } /** - * Authorize the replication connection on the source volume + * Finalizes the migration of a volume by performing a final sync on the replication, breaking and + * releasing the replication, and breaking the cluster peering if no other migration is active. * @param resourceGroupName The name of the resource group. The name is case insensitive. * @param accountName The name of the NetApp account * @param poolName The name of the capacity pool * @param volumeName The name of the volume - * @param body Authorize request object supplied in the body of the operation. * @param options The options parameters. */ - async beginAuthorizeReplication( + async beginFinalizeOnPremMigration( resourceGroupName: string, accountName: string, poolName: string, volumeName: string, - body: AuthorizeRequest, - options?: VolumesAuthorizeReplicationOptionalParams, - ): Promise, void>> { + options?: VolumesFinalizeOnPremMigrationOptionalParams, + ): Promise< + SimplePollerLike< + OperationState, + VolumesFinalizeOnPremMigrationResponse + > + > { const directSendOperation = async ( args: coreClient.OperationArguments, spec: coreClient.OperationSpec, - ): Promise => { + ): Promise => { return this.client.sendOperationRequest(args, spec); }; const sendOperationFn = async ( @@ -1599,17 +2124,13 @@ export class VolumesImpl implements Volumes { const lro = createLroSpec({ sendOperationFn, - args: { - resourceGroupName, - accountName, - poolName, - volumeName, - body, - options, - }, - spec: authorizeReplicationOperationSpec, + args: { resourceGroupName, accountName, poolName, volumeName, options }, + spec: finalizeOnPremMigrationOperationSpec, }); - const poller = await createHttpPoller>(lro, { + const poller = await createHttpPoller< + VolumesFinalizeOnPremMigrationResponse, + OperationState + >(lro, { restoreFrom: options?.resumeFrom, intervalInMs: options?.updateIntervalInMs, resourceLocationConfig: "location", @@ -1619,52 +2140,55 @@ export class VolumesImpl implements Volumes { } /** - * Authorize the replication connection on the source volume + * Finalizes the migration of a volume by performing a final sync on the replication, breaking and + * releasing the replication, and breaking the cluster peering if no other migration is active. * @param resourceGroupName The name of the resource group. The name is case insensitive. * @param accountName The name of the NetApp account * @param poolName The name of the capacity pool * @param volumeName The name of the volume - * @param body Authorize request object supplied in the body of the operation. * @param options The options parameters. */ - async beginAuthorizeReplicationAndWait( + async beginFinalizeOnPremMigrationAndWait( resourceGroupName: string, accountName: string, poolName: string, volumeName: string, - body: AuthorizeRequest, - options?: VolumesAuthorizeReplicationOptionalParams, - ): Promise { - const poller = await this.beginAuthorizeReplication( + options?: VolumesFinalizeOnPremMigrationOptionalParams, + ): Promise { + const poller = await this.beginFinalizeOnPremMigration( resourceGroupName, accountName, poolName, volumeName, - body, options, ); return poller.pollUntilDone(); } /** - * Re-Initializes the replication connection on the destination volume + * Performs an adhoc replication transfer on a volume with volumeType Migration * @param resourceGroupName The name of the resource group. The name is case insensitive. * @param accountName The name of the NetApp account * @param poolName The name of the capacity pool * @param volumeName The name of the volume * @param options The options parameters. */ - async beginReInitializeReplication( + async beginPerformReplicationTransfer( resourceGroupName: string, accountName: string, poolName: string, volumeName: string, - options?: VolumesReInitializeReplicationOptionalParams, - ): Promise, void>> { + options?: VolumesPerformReplicationTransferOptionalParams, + ): Promise< + SimplePollerLike< + OperationState, + VolumesPerformReplicationTransferResponse + > + > { const directSendOperation = async ( args: coreClient.OperationArguments, spec: coreClient.OperationSpec, - ): Promise => { + ): Promise => { return this.client.sendOperationRequest(args, spec); }; const sendOperationFn = async ( @@ -1702,9 +2226,12 @@ export class VolumesImpl implements Volumes { const lro = createLroSpec({ sendOperationFn, args: { resourceGroupName, accountName, poolName, volumeName, options }, - spec: reInitializeReplicationOperationSpec, + spec: performReplicationTransferOperationSpec, }); - const poller = await createHttpPoller>(lro, { + const poller = await createHttpPoller< + VolumesPerformReplicationTransferResponse, + OperationState + >(lro, { restoreFrom: options?.resumeFrom, intervalInMs: options?.updateIntervalInMs, resourceLocationConfig: "location", @@ -1714,21 +2241,21 @@ export class VolumesImpl implements Volumes { } /** - * Re-Initializes the replication connection on the destination volume + * Performs an adhoc replication transfer on a volume with volumeType Migration * @param resourceGroupName The name of the resource group. The name is case insensitive. * @param accountName The name of the NetApp account * @param poolName The name of the capacity pool * @param volumeName The name of the volume * @param options The options parameters. */ - async beginReInitializeReplicationAndWait( + async beginPerformReplicationTransferAndWait( resourceGroupName: string, accountName: string, poolName: string, volumeName: string, - options?: VolumesReInitializeReplicationOptionalParams, - ): Promise { - const poller = await this.beginReInitializeReplication( + options?: VolumesPerformReplicationTransferOptionalParams, + ): Promise { + const poller = await this.beginPerformReplicationTransfer( resourceGroupName, accountName, poolName, @@ -2206,7 +2733,7 @@ const createOrUpdateOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body9, + requestBody: Parameters.body11, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, @@ -2240,7 +2767,7 @@ const updateOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body10, + requestBody: Parameters.body12, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, @@ -2322,7 +2849,7 @@ const revertOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body11, + requestBody: Parameters.body13, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, @@ -2368,6 +2895,38 @@ const resetCifsPasswordOperationSpec: coreClient.OperationSpec = { headerParameters: [Parameters.accept], serializer, }; +const splitCloneFromParentOperationSpec: coreClient.OperationSpec = { + path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/splitCloneFromParent", + httpMethod: "POST", + responses: { + 200: { + headersMapper: Mappers.VolumesSplitCloneFromParentHeaders, + }, + 201: { + headersMapper: Mappers.VolumesSplitCloneFromParentHeaders, + }, + 202: { + headersMapper: Mappers.VolumesSplitCloneFromParentHeaders, + }, + 204: { + headersMapper: Mappers.VolumesSplitCloneFromParentHeaders, + }, + default: { + bodyMapper: Mappers.ErrorResponse, + }, + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.accountName, + Parameters.poolName, + Parameters.volumeName, + ], + headerParameters: [Parameters.accept], + serializer, +}; const breakFileLocksOperationSpec: coreClient.OperationSpec = { path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/breakFileLocks", httpMethod: "POST", @@ -2380,7 +2939,7 @@ const breakFileLocksOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body12, + requestBody: Parameters.body14, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, @@ -2414,7 +2973,7 @@ const listGetGroupIdListForLdapUserOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body13, + requestBody: Parameters.body15, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, @@ -2440,7 +2999,7 @@ const breakReplicationOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body14, + requestBody: Parameters.body16, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, @@ -2466,7 +3025,7 @@ const reestablishReplicationOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body15, + requestBody: Parameters.body17, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, @@ -2586,7 +3145,7 @@ const authorizeReplicationOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body16, + requestBody: Parameters.body18, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, @@ -2624,6 +3183,137 @@ const reInitializeReplicationOperationSpec: coreClient.OperationSpec = { headerParameters: [Parameters.accept], serializer, }; +const peerClusterForOnPremMigrationOperationSpec: coreClient.OperationSpec = { + path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/peerClusterForOnPremMigration", + httpMethod: "POST", + responses: { + 200: { + bodyMapper: Mappers.ClusterPeerCommandResponse, + }, + 201: { + bodyMapper: Mappers.ClusterPeerCommandResponse, + }, + 202: { + bodyMapper: Mappers.ClusterPeerCommandResponse, + }, + 204: { + bodyMapper: Mappers.ClusterPeerCommandResponse, + }, + default: { + bodyMapper: Mappers.ErrorResponse, + }, + }, + requestBody: Parameters.body19, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.accountName, + Parameters.poolName, + Parameters.volumeName, + ], + headerParameters: [Parameters.accept, Parameters.contentType], + mediaType: "json", + serializer, +}; +const createOnPremMigrationReplicationOperationSpec: coreClient.OperationSpec = + { + path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/createOnPremMigrationReplication", + httpMethod: "POST", + responses: { + 200: { + bodyMapper: Mappers.SvmPeerCommandResponse, + }, + 201: { + bodyMapper: Mappers.SvmPeerCommandResponse, + }, + 202: { + bodyMapper: Mappers.SvmPeerCommandResponse, + }, + 204: { + bodyMapper: Mappers.SvmPeerCommandResponse, + }, + default: { + bodyMapper: Mappers.ErrorResponse, + }, + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.accountName, + Parameters.poolName, + Parameters.volumeName, + ], + headerParameters: [Parameters.accept], + serializer, + }; +const finalizeOnPremMigrationOperationSpec: coreClient.OperationSpec = { + path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/finalizeOnPremMigration", + httpMethod: "POST", + responses: { + 200: { + headersMapper: Mappers.VolumesFinalizeOnPremMigrationHeaders, + }, + 201: { + headersMapper: Mappers.VolumesFinalizeOnPremMigrationHeaders, + }, + 202: { + headersMapper: Mappers.VolumesFinalizeOnPremMigrationHeaders, + }, + 204: { + headersMapper: Mappers.VolumesFinalizeOnPremMigrationHeaders, + }, + default: { + bodyMapper: Mappers.ErrorResponse, + }, + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.accountName, + Parameters.poolName, + Parameters.volumeName, + ], + headerParameters: [Parameters.accept], + serializer, +}; +const performReplicationTransferOperationSpec: coreClient.OperationSpec = { + path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/performReplicationTransfer", + httpMethod: "POST", + responses: { + 200: { + headersMapper: Mappers.VolumesPerformReplicationTransferHeaders, + }, + 201: { + headersMapper: Mappers.VolumesPerformReplicationTransferHeaders, + }, + 202: { + headersMapper: Mappers.VolumesPerformReplicationTransferHeaders, + }, + 204: { + headersMapper: Mappers.VolumesPerformReplicationTransferHeaders, + }, + default: { + bodyMapper: Mappers.ErrorResponse, + }, + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.accountName, + Parameters.poolName, + Parameters.volumeName, + ], + headerParameters: [Parameters.accept], + serializer, +}; const poolChangeOperationSpec: coreClient.OperationSpec = { path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/poolChange", httpMethod: "POST", @@ -2636,7 +3326,7 @@ const poolChangeOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body17, + requestBody: Parameters.body20, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, @@ -2662,7 +3352,7 @@ const relocateOperationSpec: coreClient.OperationSpec = { bodyMapper: Mappers.ErrorResponse, }, }, - requestBody: Parameters.body18, + requestBody: Parameters.body21, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, diff --git a/sdk/netapp/arm-netapp/src/operationsInterfaces/accounts.ts b/sdk/netapp/arm-netapp/src/operationsInterfaces/accounts.ts index da771b6e975d..f7a57dc394a5 100644 --- a/sdk/netapp/arm-netapp/src/operationsInterfaces/accounts.ts +++ b/sdk/netapp/arm-netapp/src/operationsInterfaces/accounts.ts @@ -21,6 +21,12 @@ import { AccountsUpdateOptionalParams, AccountsUpdateResponse, AccountsRenewCredentialsOptionalParams, + AccountsMigrateEncryptionKeyOptionalParams, + AccountsMigrateEncryptionKeyResponse, + AccountsGetChangeKeyVaultInformationOptionalParams, + AccountsGetChangeKeyVaultInformationResponse, + AccountsChangeKeyVaultOptionalParams, + AccountsChangeKeyVaultResponse, } from "../models"; /// @@ -163,4 +169,95 @@ export interface Accounts { accountName: string, options?: AccountsRenewCredentialsOptionalParams, ): Promise; + /** + * Migrates all volumes in a VNet to a different encryption key source (Microsoft-managed key or Azure + * Key Vault). Operation fails if targeted volumes share encryption sibling set with volumes from + * another account. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param options The options parameters. + */ + beginMigrateEncryptionKey( + resourceGroupName: string, + accountName: string, + options?: AccountsMigrateEncryptionKeyOptionalParams, + ): Promise< + SimplePollerLike< + OperationState, + AccountsMigrateEncryptionKeyResponse + > + >; + /** + * Migrates all volumes in a VNet to a different encryption key source (Microsoft-managed key or Azure + * Key Vault). Operation fails if targeted volumes share encryption sibling set with volumes from + * another account. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param options The options parameters. + */ + beginMigrateEncryptionKeyAndWait( + resourceGroupName: string, + accountName: string, + options?: AccountsMigrateEncryptionKeyOptionalParams, + ): Promise; + /** + * Contains data from encryption.keyVaultProperties as well as information about which private endpoint + * is used by each encryption sibling set. Response from this endpoint can be modified and used as + * request body for POST request. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param options The options parameters. + */ + beginGetChangeKeyVaultInformation( + resourceGroupName: string, + accountName: string, + options?: AccountsGetChangeKeyVaultInformationOptionalParams, + ): Promise< + SimplePollerLike< + OperationState, + AccountsGetChangeKeyVaultInformationResponse + > + >; + /** + * Contains data from encryption.keyVaultProperties as well as information about which private endpoint + * is used by each encryption sibling set. Response from this endpoint can be modified and used as + * request body for POST request. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param options The options parameters. + */ + beginGetChangeKeyVaultInformationAndWait( + resourceGroupName: string, + accountName: string, + options?: AccountsGetChangeKeyVaultInformationOptionalParams, + ): Promise; + /** + * Affects existing volumes that are encrypted with Key Vault/Managed HSM, and new volumes. Supports + * MHSM to Key Vault, Key Vault to MHSM, MHSM to MHSM and Key Vault to Key Vault. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param options The options parameters. + */ + beginChangeKeyVault( + resourceGroupName: string, + accountName: string, + options?: AccountsChangeKeyVaultOptionalParams, + ): Promise< + SimplePollerLike< + OperationState, + AccountsChangeKeyVaultResponse + > + >; + /** + * Affects existing volumes that are encrypted with Key Vault/Managed HSM, and new volumes. Supports + * MHSM to Key Vault, Key Vault to MHSM, MHSM to MHSM and Key Vault to Key Vault. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param options The options parameters. + */ + beginChangeKeyVaultAndWait( + resourceGroupName: string, + accountName: string, + options?: AccountsChangeKeyVaultOptionalParams, + ): Promise; } diff --git a/sdk/netapp/arm-netapp/src/operationsInterfaces/volumes.ts b/sdk/netapp/arm-netapp/src/operationsInterfaces/volumes.ts index cfbeb257dc2c..87c96d490866 100644 --- a/sdk/netapp/arm-netapp/src/operationsInterfaces/volumes.ts +++ b/sdk/netapp/arm-netapp/src/operationsInterfaces/volumes.ts @@ -27,6 +27,8 @@ import { VolumesRevertOptionalParams, VolumesResetCifsPasswordOptionalParams, VolumesResetCifsPasswordResponse, + VolumesSplitCloneFromParentOptionalParams, + VolumesSplitCloneFromParentResponse, VolumesBreakFileLocksOptionalParams, GetGroupIdListForLdapUserRequest, VolumesListGetGroupIdListForLdapUserOptionalParams, @@ -41,6 +43,15 @@ import { AuthorizeRequest, VolumesAuthorizeReplicationOptionalParams, VolumesReInitializeReplicationOptionalParams, + PeerClusterForVolumeMigrationRequest, + VolumesPeerClusterForOnPremMigrationOptionalParams, + VolumesPeerClusterForOnPremMigrationResponse, + VolumesCreateOnPremMigrationReplicationOptionalParams, + VolumesCreateOnPremMigrationReplicationResponse, + VolumesFinalizeOnPremMigrationOptionalParams, + VolumesFinalizeOnPremMigrationResponse, + VolumesPerformReplicationTransferOptionalParams, + VolumesPerformReplicationTransferResponse, PoolChangeRequest, VolumesPoolChangeOptionalParams, VolumesRelocateOptionalParams, @@ -306,6 +317,41 @@ export interface Volumes { volumeName: string, options?: VolumesResetCifsPasswordOptionalParams, ): Promise; + /** + * Split operation to convert clone volume to an independent volume. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param options The options parameters. + */ + beginSplitCloneFromParent( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesSplitCloneFromParentOptionalParams, + ): Promise< + SimplePollerLike< + OperationState, + VolumesSplitCloneFromParentResponse + > + >; + /** + * Split operation to convert clone volume to an independent volume. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param options The options parameters. + */ + beginSplitCloneFromParentAndWait( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesSplitCloneFromParentOptionalParams, + ): Promise; /** * Break all the file locks on a volume * @param resourceGroupName The name of the resource group. The name is case insensitive. @@ -584,6 +630,154 @@ export interface Volumes { volumeName: string, options?: VolumesReInitializeReplicationOptionalParams, ): Promise; + /** + * Starts peering the cluster for this migration volume + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param body Cluster peer request object supplied in the body of the operation. + * @param options The options parameters. + */ + beginPeerClusterForOnPremMigration( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + body: PeerClusterForVolumeMigrationRequest, + options?: VolumesPeerClusterForOnPremMigrationOptionalParams, + ): Promise< + SimplePollerLike< + OperationState, + VolumesPeerClusterForOnPremMigrationResponse + > + >; + /** + * Starts peering the cluster for this migration volume + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param body Cluster peer request object supplied in the body of the operation. + * @param options The options parameters. + */ + beginPeerClusterForOnPremMigrationAndWait( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + body: PeerClusterForVolumeMigrationRequest, + options?: VolumesPeerClusterForOnPremMigrationOptionalParams, + ): Promise; + /** + * Starts SVM peering and returns a command to be run on the external ONTAP to accept it. Once the + * SVMs have been peered a SnapMirror will be created + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param options The options parameters. + */ + beginCreateOnPremMigrationReplication( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesCreateOnPremMigrationReplicationOptionalParams, + ): Promise< + SimplePollerLike< + OperationState, + VolumesCreateOnPremMigrationReplicationResponse + > + >; + /** + * Starts SVM peering and returns a command to be run on the external ONTAP to accept it. Once the + * SVMs have been peered a SnapMirror will be created + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param options The options parameters. + */ + beginCreateOnPremMigrationReplicationAndWait( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesCreateOnPremMigrationReplicationOptionalParams, + ): Promise; + /** + * Finalizes the migration of a volume by performing a final sync on the replication, breaking and + * releasing the replication, and breaking the cluster peering if no other migration is active. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param options The options parameters. + */ + beginFinalizeOnPremMigration( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesFinalizeOnPremMigrationOptionalParams, + ): Promise< + SimplePollerLike< + OperationState, + VolumesFinalizeOnPremMigrationResponse + > + >; + /** + * Finalizes the migration of a volume by performing a final sync on the replication, breaking and + * releasing the replication, and breaking the cluster peering if no other migration is active. + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param options The options parameters. + */ + beginFinalizeOnPremMigrationAndWait( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesFinalizeOnPremMigrationOptionalParams, + ): Promise; + /** + * Performs an adhoc replication transfer on a volume with volumeType Migration + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param options The options parameters. + */ + beginPerformReplicationTransfer( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesPerformReplicationTransferOptionalParams, + ): Promise< + SimplePollerLike< + OperationState, + VolumesPerformReplicationTransferResponse + > + >; + /** + * Performs an adhoc replication transfer on a volume with volumeType Migration + * @param resourceGroupName The name of the resource group. The name is case insensitive. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param options The options parameters. + */ + beginPerformReplicationTransferAndWait( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesPerformReplicationTransferOptionalParams, + ): Promise; /** * Moves volume to another pool * @param resourceGroupName The name of the resource group. The name is case insensitive. diff --git a/sdk/netapp/arm-netapp/test/sampleTest.ts b/sdk/netapp/arm-netapp/test/sampleTest.ts new file mode 100644 index 000000000000..d64be981b694 --- /dev/null +++ b/sdk/netapp/arm-netapp/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/netapp/arm-netapp/tsconfig.json b/sdk/netapp/arm-netapp/tsconfig.json index 1772b5822344..3e6ae96443f3 100644 --- a/sdk/netapp/arm-netapp/tsconfig.json +++ b/sdk/netapp/arm-netapp/tsconfig.json @@ -15,17 +15,11 @@ ], "declaration": true, "outDir": "./dist-esm", - "importHelpers": true, - "paths": { - "@azure/arm-netapp": [ - "./src/index" - ] - } + "importHelpers": true }, "include": [ "./src/**/*.ts", - "./test/**/*.ts", - "samples-dev/**/*.ts" + "./test/**/*.ts" ], "exclude": [ "node_modules"