diff --git a/sdk/netapp/arm-netapp/CHANGELOG.md b/sdk/netapp/arm-netapp/CHANGELOG.md index 928b52bd0736..ffd9ce6fbaac 100644 --- a/sdk/netapp/arm-netapp/CHANGELOG.md +++ b/sdk/netapp/arm-netapp/CHANGELOG.md @@ -1,15 +1,62 @@ # Release History + +## 16.0.0 (2022-05-25) + +**Features** -## 15.1.2 (Unreleased) - -### Features Added - -### Breaking Changes - -### Bugs Fixed + - Added operation group VolumeQuotaRules + - Added operation Volumes.beginFinalizeRelocation + - Added operation Volumes.beginFinalizeRelocationAndWait + - Added operation Volumes.beginRelocate + - Added operation Volumes.beginRelocateAndWait + - Added operation Volumes.beginResetCifsPassword + - Added operation Volumes.beginResetCifsPasswordAndWait + - Added operation Volumes.beginRevertRelocation + - Added operation Volumes.beginRevertRelocationAndWait + - Added operation Volumes.listReplications + - Added Interface ListReplications + - Added Interface Replication + - Added Interface VolumeQuotaRulePatch + - Added Interface VolumeQuotaRulesCreateOptionalParams + - Added Interface VolumeQuotaRulesDeleteOptionalParams + - Added Interface VolumeQuotaRulesGetOptionalParams + - Added Interface VolumeQuotaRulesList + - Added Interface VolumeQuotaRulesListByVolumeOptionalParams + - Added Interface VolumeQuotaRulesUpdateOptionalParams + - Added Interface VolumeRelocationProperties + - Added Interface VolumesFinalizeRelocationOptionalParams + - Added Interface VolumesListReplicationsOptionalParams + - Added Interface VolumesRelocateOptionalParams + - Added Interface VolumesResetCifsPasswordOptionalParams + - Added Interface VolumesRevertRelocationOptionalParams + - Added Type Alias BackupPolicy + - Added Type Alias CapacityPool + - Added Type Alias EncryptionKeySource + - Added Type Alias NetAppAccount + - Added Type Alias ProvisioningState + - Added Type Alias SnapshotPolicy + - Added Type Alias TrackedResource + - Added Type Alias Type + - Added Type Alias Volume + - Added Type Alias VolumeQuotaRule + - Added Type Alias VolumeQuotaRulesCreateResponse + - Added Type Alias VolumeQuotaRulesGetResponse + - Added Type Alias VolumeQuotaRulesListByVolumeResponse + - Added Type Alias VolumeQuotaRulesUpdateResponse + - Added Type Alias VolumesListReplicationsResponse + - Interface Resource has a new optional parameter systemData + - Interface VolumeGroupVolumeProperties has a new optional parameter encrypted + - Class NetAppManagementClient has a new parameter volumeQuotaRules + - Added Enum KnownEncryptionKeySource + - Added Enum KnownType -### Other Changes +**Breaking Changes** + - Interface VolumeGroup no longer has parameter tags + - Interface VolumeGroupDetails no longer has parameter tags + - Type Alias SubscriptionQuotaItem no longer has parameter systemData + - Type Alias SubvolumeInfo no longer has parameter systemData + ## 15.1.1 (2022-04-27) **Features** diff --git a/sdk/netapp/arm-netapp/_meta.json b/sdk/netapp/arm-netapp/_meta.json index 333312c53cf5..043d442b7a95 100644 --- a/sdk/netapp/arm-netapp/_meta.json +++ b/sdk/netapp/arm-netapp/_meta.json @@ -1,8 +1,8 @@ { - "commit": "f9a6cb686bcc0f1b23761db19f2491c5c4df95cb", - "readme": "specification\\netapp\\resource-manager\\readme.md", - "autorest_command": "autorest --version=3.7.3 --typescript --modelerfour.lenient-model-deduplication --head-as-boolean=true --license-header=MICROSOFT_MIT_NO_VERSION --generate-test --typescript-sdks-folder=D:\\work\\azure-sdk-for-js ..\\azure-rest-api-specs\\specification\\netapp\\resource-manager\\readme.md --use=@autorest/typescript@6.0.0-alpha.19.20220408.1 --generate-sample=true", + "commit": "3689312678e716ec8615d0a01de3178cf56ed245", + "readme": "specification/netapp/resource-manager/readme.md", + "autorest_command": "autorest --version=3.7.3 --typescript --modelerfour.lenient-model-deduplication --head-as-boolean=true --license-header=MICROSOFT_MIT_NO_VERSION --generate-test --typescript-sdks-folder=/mnt/vss/_work/1/s/azure-sdk-for-js ../azure-rest-api-specs/specification/netapp/resource-manager/readme.md --use=@autorest/typescript@6.0.0-alpha.19.20220425.1", "repository_url": "https://github.com/Azure/azure-rest-api-specs.git", - "release_tool": "@azure-tools/js-sdk-release-tools@2.2.6", - "use": "@autorest/typescript@6.0.0-alpha.19.20220408.1" -} + "release_tool": "@azure-tools/js-sdk-release-tools@2.3.1", + "use": "@autorest/typescript@6.0.0-alpha.19.20220425.1" +} \ No newline at end of file diff --git a/sdk/netapp/arm-netapp/package.json b/sdk/netapp/arm-netapp/package.json index 225d9a51e582..a84820db8adb 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": "15.1.2", + "version": "16.0.0", "engines": { "node": ">=12.0.0" }, @@ -40,9 +40,11 @@ "uglify-js": "^3.4.9", "rimraf": "^3.0.0", "@azure/identity": "^2.0.1", - "@azure-tools/test-recorder": "^1.0.0", + "@azure-tools/test-recorder": "^2.0.0", + "@azure-tools/test-credential": "^1.0.0", "mocha": "^7.1.1", - "cross-env": "^7.0.2" + "cross-env": "^7.0.2", + "@azure/dev-tool": "^1.0.0" }, "homepage": "https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/netapp/arm-netapp", "repository": { @@ -93,7 +95,7 @@ "unit-test:node": "cross-env TEST_MODE=playback npm run integration-test:node", "unit-test:browser": "echo skipped", "integration-test": "npm run integration-test:node && npm run integration-test:browser", - "integration-test:node": "mocha -r esm --require ts-node/register --timeout 1200000 --full-trace test/*.ts --reporter ../../../common/tools/mocha-multi-reporter.js", + "integration-test:node": "dev-tool run test:node-ts-input -- --timeout 1200000 'test/*.ts'", "integration-test:browser": "echo skipped", "docs": "echo skipped" }, @@ -106,13 +108,5 @@ } ] }, - "autoPublish": true, - "//sampleConfiguration": { - "productName": "", - "productSlugs": [ - "azure" - ], - "disableDocsMs": true, - "apiRefLink": "https://docs.microsoft.com/javascript/api/@azure/arm-netapp?view=azure-node-preview" - } -} + "autoPublish": true +} \ 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 c780220e6668..ffd2626737eb 100644 --- a/sdk/netapp/arm-netapp/review/arm-netapp.api.md +++ b/sdk/netapp/arm-netapp/review/arm-netapp.api.md @@ -244,25 +244,17 @@ export interface BackupPoliciesUpdateOptionalParams extends coreClient.Operation export type BackupPoliciesUpdateResponse = BackupPolicy; // @public -export interface BackupPolicy { +export type BackupPolicy = TrackedResource & { + readonly etag?: string; readonly backupPolicyId?: string; + readonly provisioningState?: string; dailyBackupsToKeep?: number; - enabled?: boolean; - readonly etag?: string; - readonly id?: string; - location: string; + weeklyBackupsToKeep?: number; monthlyBackupsToKeep?: number; - readonly name?: string; - readonly provisioningState?: string; - readonly systemData?: SystemData; - tags?: { - [propertyName: string]: string; - }; - readonly type?: string; - readonly volumeBackups?: VolumeBackups[]; readonly volumesAssigned?: number; - weeklyBackupsToKeep?: number; -} + enabled?: boolean; + readonly volumeBackups?: VolumeBackups[]; +}; // @public export interface BackupPolicyDetails { @@ -395,26 +387,18 @@ export interface BreakReplicationRequest { } // @public -export interface CapacityPool { - coolAccess?: boolean; - encryptionType?: EncryptionType; +export type CapacityPool = TrackedResource & { readonly etag?: string; - readonly id?: string; - location: string; - readonly name?: string; readonly poolId?: string; - readonly provisioningState?: string; - qosType?: QosType; - serviceLevel: ServiceLevel; size: number; - readonly systemData?: SystemData; - tags?: { - [propertyName: string]: string; - }; + serviceLevel: ServiceLevel; + readonly provisioningState?: string; readonly totalThroughputMibps?: number; - readonly type?: string; readonly utilizedThroughputMibps?: number; -} + qosType?: QosType; + coolAccess?: boolean; + encryptionType?: EncryptionType; +}; // @public export interface CapacityPoolList { @@ -482,6 +466,9 @@ export interface Dimension { // @public export type EnableSubvolumes = string; +// @public +export type EncryptionKeySource = string; + // @public export type EncryptionType = string; @@ -600,6 +587,11 @@ export enum KnownEnableSubvolumes { Enabled = "Enabled" } +// @public +export enum KnownEncryptionKeySource { + MicrosoftNetApp = "Microsoft.NetApp" +} + // @public export enum KnownEncryptionType { Double = "Double", @@ -684,6 +676,14 @@ export enum KnownServiceLevel { Ultra = "Ultra" } +// @public +export enum KnownType { + DefaultGroupQuota = "DefaultGroupQuota", + DefaultUserQuota = "DefaultUserQuota", + IndividualGroupQuota = "IndividualGroupQuota", + IndividualUserQuota = "IndividualUserQuota" +} + // @public export enum KnownVolumeStorageToNetworkProximity { Default = "Default", @@ -698,6 +698,11 @@ export interface LdapSearchScopeOpt { userDN?: string; } +// @public +export interface ListReplications { + value?: Replication[]; +} + // @public export interface LogSpecification { displayName?: string; @@ -763,20 +768,12 @@ export interface MountTargetProperties { } // @public -export interface NetAppAccount { - activeDirectories?: ActiveDirectory[]; - encryption?: AccountEncryption; +export type NetAppAccount = TrackedResource & { readonly etag?: string; - readonly id?: string; - location: string; - readonly name?: string; readonly provisioningState?: string; - readonly systemData?: SystemData; - tags?: { - [propertyName: string]: string; - }; - readonly type?: string; -} + activeDirectories?: ActiveDirectory[]; + encryption?: AccountEncryption; +}; // @public export interface NetAppAccountList { @@ -834,6 +831,8 @@ export class NetAppManagementClient extends coreClient.ServiceClient { // (undocumented) volumeGroups: VolumeGroups; // (undocumented) + volumeQuotaRules: VolumeQuotaRules; + // (undocumented) volumes: Volumes; } @@ -996,6 +995,9 @@ export interface PoolsUpdateOptionalParams extends coreClient.OperationOptions { // @public export type PoolsUpdateResponse = CapacityPool; +// @public +export type ProvisioningState = "Accepted" | "Creating" | "Patching" | "Deleting" | "Moving" | "Failed" | "Succeeded"; + // @public export type ProxyResource = Resource & {}; @@ -1012,6 +1014,14 @@ export interface QuotaAvailabilityRequest { // @public export type RelationshipStatus = string; +// @public +export interface Replication { + endpointType?: EndpointType; + remoteVolumeRegion?: string; + remoteVolumeResourceId: string; + replicationSchedule?: ReplicationSchedule; +} + // @public export interface ReplicationObject { endpointType?: EndpointType; @@ -1037,6 +1047,7 @@ export interface ReplicationStatus { export interface Resource { readonly id?: string; readonly name?: string; + readonly systemData?: SystemData; readonly type?: string; } @@ -1148,23 +1159,15 @@ export interface SnapshotPoliciesUpdateOptionalParams extends coreClient.Operati export type SnapshotPoliciesUpdateResponse = SnapshotPolicy; // @public -export interface SnapshotPolicy { - dailySchedule?: DailySchedule; - enabled?: boolean; +export type SnapshotPolicy = TrackedResource & { readonly etag?: string; hourlySchedule?: HourlySchedule; - readonly id?: string; - location: string; + dailySchedule?: DailySchedule; + weeklySchedule?: WeeklySchedule; monthlySchedule?: MonthlySchedule; - readonly name?: string; + enabled?: boolean; readonly provisioningState?: string; - readonly systemData?: SystemData; - tags?: { - [propertyName: string]: string; - }; - readonly type?: string; - weeklySchedule?: WeeklySchedule; -} +}; // @public export interface SnapshotPolicyDetails { @@ -1276,7 +1279,6 @@ export type SnapshotsUpdateResponse = Snapshot; // @public export type SubscriptionQuotaItem = ProxyResource & { - readonly systemData?: SystemData; readonly current?: number; readonly default?: number; }; @@ -1288,7 +1290,6 @@ export interface SubscriptionQuotaItemList { // @public export type SubvolumeInfo = ProxyResource & { - readonly systemData?: SystemData; path?: string; size?: number; parentPath?: string; @@ -1402,6 +1403,17 @@ export interface SystemData { lastModifiedByType?: CreatedByType; } +// @public +export type TrackedResource = Resource & { + tags?: { + [propertyName: string]: string; + }; + location: string; +}; + +// @public +export type Type = string; + // @public export interface Vault { readonly id?: string; @@ -1429,59 +1441,53 @@ export interface VaultsListOptionalParams extends coreClient.OperationOptions { export type VaultsListResponse = VaultList; // @public -export interface Volume { - avsDataStore?: AvsDataStore; +export type Volume = TrackedResource & { + readonly etag?: string; + zones?: string[]; + readonly fileSystemId?: string; + creationToken: string; + serviceLevel?: ServiceLevel; + usageThreshold: number; + exportPolicy?: VolumePropertiesExportPolicy; + protocolTypes?: string[]; + readonly provisioningState?: string; + snapshotId?: string; backupId?: string; readonly baremetalTenantId?: string; - capacityPoolResourceId?: string; - readonly cloneProgress?: number; - coolAccess?: boolean; - coolnessPeriod?: number; - creationToken: string; + subnetId: string; + networkFeatures?: NetworkFeatures; + readonly networkSiblingSetId?: string; + readonly storageToNetworkProximity?: VolumeStorageToNetworkProximity; + readonly mountTargets?: MountTargetProperties[]; + volumeType?: string; dataProtection?: VolumePropertiesDataProtection; - defaultGroupQuotaInKiBs?: number; - defaultUserQuotaInKiBs?: number; - enableSubvolumes?: EnableSubvolumes; - encryptionKeySource?: string; - readonly etag?: string; - exportPolicy?: VolumePropertiesExportPolicy; - readonly fileSystemId?: string; - readonly id?: string; - isDefaultQuotaEnabled?: boolean; isRestoring?: boolean; + snapshotDirectoryVisible?: boolean; kerberosEnabled?: boolean; - ldapEnabled?: boolean; - location: string; - readonly maximumNumberOfFiles?: number; - readonly mountTargets?: MountTargetProperties[]; - readonly name?: string; - networkFeatures?: NetworkFeatures; - readonly networkSiblingSetId?: string; - placementRules?: PlacementKeyValuePairs[]; - protocolTypes?: string[]; - readonly provisioningState?: string; - proximityPlacementGroup?: string; securityStyle?: SecurityStyle; - serviceLevel?: ServiceLevel; - smbContinuouslyAvailable?: boolean; smbEncryption?: boolean; - snapshotDirectoryVisible?: boolean; - snapshotId?: string; - readonly storageToNetworkProximity?: VolumeStorageToNetworkProximity; - subnetId: string; - readonly systemData?: SystemData; - readonly t2Network?: string; - tags?: { - [propertyName: string]: string; - }; + smbContinuouslyAvailable?: boolean; throughputMibps?: number; - readonly type?: string; + encryptionKeySource?: EncryptionKeySource; + ldapEnabled?: boolean; + coolAccess?: boolean; + coolnessPeriod?: number; unixPermissions?: string; - usageThreshold: number; + readonly cloneProgress?: number; + avsDataStore?: AvsDataStore; + isDefaultQuotaEnabled?: boolean; + defaultUserQuotaInKiBs?: number; + defaultGroupQuotaInKiBs?: number; + readonly maximumNumberOfFiles?: number; readonly volumeGroupName?: string; + capacityPoolResourceId?: string; + proximityPlacementGroup?: string; + readonly t2Network?: string; volumeSpecName?: string; - volumeType?: string; -} + readonly encrypted?: boolean; + placementRules?: PlacementKeyValuePairs[]; + enableSubvolumes?: EnableSubvolumes; +}; // @public export interface VolumeBackupProperties { @@ -1505,9 +1511,6 @@ export interface VolumeGroup { location?: string; readonly name?: string; readonly provisioningState?: string; - tags?: { - [propertyName: string]: string; - }; readonly type?: string; } @@ -1518,9 +1521,6 @@ export interface VolumeGroupDetails { location?: string; readonly name?: string; readonly provisioningState?: string; - tags?: { - [propertyName: string]: string; - }; readonly type?: string; volumes?: VolumeGroupVolumeProperties[]; } @@ -1593,7 +1593,8 @@ export interface VolumeGroupVolumeProperties { defaultGroupQuotaInKiBs?: number; defaultUserQuotaInKiBs?: number; enableSubvolumes?: EnableSubvolumes; - encryptionKeySource?: string; + readonly encrypted?: boolean; + encryptionKeySource?: EncryptionKeySource; exportPolicy?: VolumePropertiesExportPolicy; readonly fileSystemId?: string; readonly id?: string; @@ -1680,6 +1681,84 @@ export interface VolumePropertiesExportPolicy { rules?: ExportPolicyRule[]; } +// @public +export type VolumeQuotaRule = TrackedResource & { + readonly provisioningState?: ProvisioningState; + quotaSizeInKiBs?: number; + quotaType?: Type; + quotaTarget?: string; +}; + +// @public +export interface VolumeQuotaRulePatch { + readonly provisioningState?: ProvisioningState; + quotaSizeInKiBs?: number; + quotaTarget?: string; + quotaType?: Type; +} + +// @public +export interface VolumeQuotaRules { + beginCreate(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, volumeQuotaRuleName: string, body: VolumeQuotaRule, options?: VolumeQuotaRulesCreateOptionalParams): Promise, VolumeQuotaRulesCreateResponse>>; + beginCreateAndWait(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, volumeQuotaRuleName: string, body: VolumeQuotaRule, options?: VolumeQuotaRulesCreateOptionalParams): Promise; + beginDelete(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, volumeQuotaRuleName: string, options?: VolumeQuotaRulesDeleteOptionalParams): Promise, void>>; + beginDeleteAndWait(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, volumeQuotaRuleName: string, options?: VolumeQuotaRulesDeleteOptionalParams): Promise; + beginUpdate(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, volumeQuotaRuleName: string, body: VolumeQuotaRulePatch, options?: VolumeQuotaRulesUpdateOptionalParams): Promise, VolumeQuotaRulesUpdateResponse>>; + beginUpdateAndWait(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, volumeQuotaRuleName: string, body: VolumeQuotaRulePatch, options?: VolumeQuotaRulesUpdateOptionalParams): Promise; + get(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, volumeQuotaRuleName: string, options?: VolumeQuotaRulesGetOptionalParams): Promise; + listByVolume(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumeQuotaRulesListByVolumeOptionalParams): PagedAsyncIterableIterator; +} + +// @public +export interface VolumeQuotaRulesCreateOptionalParams extends coreClient.OperationOptions { + resumeFrom?: string; + updateIntervalInMs?: number; +} + +// @public +export type VolumeQuotaRulesCreateResponse = VolumeQuotaRule; + +// @public +export interface VolumeQuotaRulesDeleteOptionalParams extends coreClient.OperationOptions { + resumeFrom?: string; + updateIntervalInMs?: number; +} + +// @public +export interface VolumeQuotaRulesGetOptionalParams extends coreClient.OperationOptions { +} + +// @public +export type VolumeQuotaRulesGetResponse = VolumeQuotaRule; + +// @public +export interface VolumeQuotaRulesList { + value?: VolumeQuotaRule[]; +} + +// @public +export interface VolumeQuotaRulesListByVolumeOptionalParams extends coreClient.OperationOptions { +} + +// @public +export type VolumeQuotaRulesListByVolumeResponse = VolumeQuotaRulesList; + +// @public +export interface VolumeQuotaRulesUpdateOptionalParams extends coreClient.OperationOptions { + resumeFrom?: string; + updateIntervalInMs?: number; +} + +// @public +export type VolumeQuotaRulesUpdateResponse = VolumeQuotaRule; + +// @public +export interface VolumeRelocationProperties { + oldBareMetalTenantId?: string; + oldVolumeId?: string; + relocationRequested?: boolean; +} + // @public export interface VolumeRevert { snapshotId?: string; @@ -1697,18 +1776,27 @@ export interface Volumes { 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; + 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; 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; beginReInitializeReplication(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesReInitializeReplicationOptionalParams): Promise, void>>; beginReInitializeReplicationAndWait(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesReInitializeReplicationOptionalParams): Promise; + beginRelocate(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesRelocateOptionalParams): Promise, void>>; + beginRelocateAndWait(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesRelocateOptionalParams): Promise; + beginResetCifsPassword(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesResetCifsPasswordOptionalParams): Promise, void>>; + beginResetCifsPasswordAndWait(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesResetCifsPasswordOptionalParams): Promise; beginResyncReplication(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesResyncReplicationOptionalParams): Promise, void>>; beginResyncReplicationAndWait(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesResyncReplicationOptionalParams): Promise; beginRevert(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, body: VolumeRevert, options?: VolumesRevertOptionalParams): Promise, void>>; 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; 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; list(resourceGroupName: string, accountName: string, poolName: string, options?: VolumesListOptionalParams): PagedAsyncIterableIterator; + listReplications(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesListReplicationsOptionalParams): Promise; replicationStatus(resourceGroupName: string, accountName: string, poolName: string, volumeName: string, options?: VolumesReplicationStatusOptionalParams): Promise; } @@ -1747,6 +1835,12 @@ export interface VolumesDeleteReplicationOptionalParams extends coreClient.Opera updateIntervalInMs?: number; } +// @public +export interface VolumesFinalizeRelocationOptionalParams extends coreClient.OperationOptions { + resumeFrom?: string; + updateIntervalInMs?: number; +} + // @public export interface VolumesGetOptionalParams extends coreClient.OperationOptions { } @@ -1765,6 +1859,13 @@ export type VolumesListNextResponse = VolumeList; export interface VolumesListOptionalParams extends coreClient.OperationOptions { } +// @public +export interface VolumesListReplicationsOptionalParams extends coreClient.OperationOptions { +} + +// @public +export type VolumesListReplicationsResponse = ListReplications; + // @public export type VolumesListResponse = VolumeList; @@ -1785,6 +1886,12 @@ export interface VolumesReInitializeReplicationOptionalParams extends coreClient updateIntervalInMs?: number; } +// @public +export interface VolumesRelocateOptionalParams extends coreClient.OperationOptions { + resumeFrom?: string; + updateIntervalInMs?: number; +} + // @public export interface VolumesReplicationStatusOptionalParams extends coreClient.OperationOptions { } @@ -1792,6 +1899,12 @@ export interface VolumesReplicationStatusOptionalParams extends coreClient.Opera // @public export type VolumesReplicationStatusResponse = ReplicationStatus; +// @public +export interface VolumesResetCifsPasswordOptionalParams extends coreClient.OperationOptions { + resumeFrom?: string; + updateIntervalInMs?: number; +} + // @public export interface VolumesResyncReplicationOptionalParams extends coreClient.OperationOptions { resumeFrom?: string; @@ -1804,6 +1917,12 @@ export interface VolumesRevertOptionalParams extends coreClient.OperationOptions updateIntervalInMs?: number; } +// @public +export interface VolumesRevertRelocationOptionalParams extends coreClient.OperationOptions { + resumeFrom?: string; + updateIntervalInMs?: number; +} + // @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 2d7d17e641a1..dd8af0151183 100644 --- a/sdk/netapp/arm-netapp/src/models/index.ts +++ b/sdk/netapp/arm-netapp/src/models/index.ts @@ -142,22 +142,6 @@ export interface SubscriptionQuotaItemList { value?: SubscriptionQuotaItem[]; } -/** Metadata pertaining to creation and last modification of the resource. */ -export interface SystemData { - /** The identity that created the resource. */ - createdBy?: string; - /** The type of identity that created the resource. */ - createdByType?: CreatedByType; - /** The timestamp of resource creation (UTC). */ - createdAt?: Date; - /** The identity that last modified the resource. */ - lastModifiedBy?: string; - /** The type of identity that last modified the resource. */ - lastModifiedByType?: CreatedByType; - /** The timestamp of resource last modification (UTC) */ - lastModifiedAt?: Date; -} - /** Common fields that are returned in the response for all Azure Resource Manager resources */ export interface Resource { /** @@ -175,6 +159,27 @@ export interface Resource { * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly type?: string; + /** + * Azure Resource Manager metadata containing createdBy and modifiedBy information. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly systemData?: SystemData; +} + +/** Metadata pertaining to creation and last modification of the resource. */ +export interface SystemData { + /** The identity that created the resource. */ + createdBy?: string; + /** The type of identity that created the resource. */ + createdByType?: CreatedByType; + /** The timestamp of resource creation (UTC). */ + createdAt?: Date; + /** The identity that last modified the resource. */ + lastModifiedBy?: string; + /** The type of identity that last modified the resource. */ + lastModifiedByType?: CreatedByType; + /** The timestamp of resource last modification (UTC) */ + lastModifiedAt?: Date; } /** List of NetApp account resources */ @@ -185,48 +190,6 @@ export interface NetAppAccountList { nextLink?: string; } -/** NetApp account resource */ -export interface NetAppAccount { - /** Resource location */ - location: string; - /** - * Resource Id - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly id?: string; - /** - * Resource name - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly name?: string; - /** - * A unique read-only string that changes whenever the resource is updated. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly etag?: string; - /** - * Resource type - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly type?: string; - /** Resource tags */ - tags?: { [propertyName: string]: string }; - /** - * The system meta data relating to this resource. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly systemData?: SystemData; - /** - * Azure lifecycle management - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly provisioningState?: string; - /** Active Directories */ - activeDirectories?: ActiveDirectory[]; - /** Encryption settings */ - encryption?: AccountEncryption; -} - /** Active Directory */ export interface ActiveDirectory { /** Id of the Active Directory */ @@ -351,69 +314,6 @@ export interface CapacityPoolList { nextLink?: string; } -/** Capacity pool resource */ -export interface CapacityPool { - /** Resource location */ - location: string; - /** - * Resource Id - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly id?: string; - /** - * Resource name - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly name?: string; - /** - * A unique read-only string that changes whenever the resource is updated. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly etag?: string; - /** - * Resource type - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly type?: string; - /** Resource tags */ - tags?: { [propertyName: string]: string }; - /** - * The system meta data relating to this resource. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly systemData?: SystemData; - /** - * UUID v4 used to identify the Pool - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly poolId?: string; - /** Provisioned size of the pool (in bytes). Allowed values are in 1TiB chunks (value must be multiply of 4398046511104). */ - size: number; - /** The service level of the file system */ - serviceLevel: ServiceLevel; - /** - * Azure lifecycle management - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly provisioningState?: string; - /** - * Total throughput of pool in Mibps - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly totalThroughputMibps?: number; - /** - * Utilized throughput of pool in Mibps - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly utilizedThroughputMibps?: number; - /** The qos type of the pool */ - qosType?: QosType; - /** If enabled (true) the pool can contain cool Access enabled volumes. */ - coolAccess?: boolean; - /** Encryption type of the capacity pool, set encryption type for data at rest for this pool and all volumes in it. This value can only be set when creating new pool. */ - encryptionType?: EncryptionType; -} - /** Capacity pool patch resource */ export interface CapacityPoolPatch { /** Resource location */ @@ -449,265 +349,118 @@ export interface VolumeList { nextLink?: string; } -/** Volume resource */ -export interface Volume { +/** Set of export policy rules */ +export interface VolumePropertiesExportPolicy { + /** Export policy rule */ + rules?: ExportPolicyRule[]; +} + +/** Volume Export Policy Rule */ +export interface ExportPolicyRule { + /** Order index */ + ruleIndex?: number; + /** Read only access */ + unixReadOnly?: boolean; + /** Read and write access */ + unixReadWrite?: boolean; + /** Kerberos5 Read only access. To be use with swagger version 2020-05-01 or later */ + kerberos5ReadOnly?: boolean; + /** Kerberos5 Read and write access. To be use with swagger version 2020-05-01 or later */ + kerberos5ReadWrite?: boolean; + /** Kerberos5i Read only access. To be use with swagger version 2020-05-01 or later */ + kerberos5IReadOnly?: boolean; + /** Kerberos5i Read and write access. To be use with swagger version 2020-05-01 or later */ + kerberos5IReadWrite?: boolean; + /** Kerberos5p Read only access. To be use with swagger version 2020-05-01 or later */ + kerberos5PReadOnly?: boolean; + /** Kerberos5p Read and write access. To be use with swagger version 2020-05-01 or later */ + kerberos5PReadWrite?: boolean; + /** Allows CIFS protocol */ + cifs?: boolean; + /** Allows NFSv3 protocol. Enable only for NFSv3 type volumes */ + nfsv3?: boolean; + /** Allows NFSv4.1 protocol. Enable only for NFSv4.1 type volumes */ + nfsv41?: boolean; + /** Client ingress specification as comma separated string with IPv4 CIDRs, IPv4 host addresses and host names */ + allowedClients?: string; + /** Has root access to volume */ + hasRootAccess?: boolean; + /** This parameter specifies who is authorized to change the ownership of a file. restricted - Only root user can change the ownership of the file. unrestricted - Non-root users can change ownership of files that they own. */ + chownMode?: ChownMode; +} + +/** Mount target properties */ +export interface MountTargetProperties { + /** + * UUID v4 used to identify the MountTarget + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly mountTargetId?: string; + /** UUID v4 used to identify the MountTarget */ + fileSystemId: string; + /** + * The mount target's IPv4 address + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly ipAddress?: string; + /** The SMB server's Fully Qualified Domain Name, FQDN */ + smbServerFqdn?: string; +} + +/** DataProtection type volumes include an object containing details of the replication */ +export interface VolumePropertiesDataProtection { + /** Backup Properties */ + backup?: VolumeBackupProperties; + /** Replication properties */ + replication?: ReplicationObject; + /** Snapshot properties. */ + snapshot?: VolumeSnapshotProperties; +} + +/** Volume Backup Properties */ +export interface VolumeBackupProperties { + /** Backup Policy Resource ID */ + backupPolicyId?: string; + /** Policy Enforced */ + policyEnforced?: boolean; + /** Vault Resource ID */ + vaultId?: string; + /** Backup Enabled */ + backupEnabled?: boolean; +} + +/** Replication properties */ +export interface ReplicationObject { + /** Id */ + replicationId?: string; + /** Indicates whether the local volume is the source or destination for the Volume Replication */ + endpointType?: EndpointType; + /** Schedule */ + replicationSchedule?: ReplicationSchedule; + /** The resource ID of the remote volume. */ + remoteVolumeResourceId: string; + /** The remote region for the other end of the Volume Replication. */ + remoteVolumeRegion?: string; +} + +/** Volume Snapshot Properties */ +export interface VolumeSnapshotProperties { + /** Snapshot Policy ResourceId */ + snapshotPolicyId?: string; +} + +/** Application specific parameters for the placement of volumes in the volume group */ +export interface PlacementKeyValuePairs { + /** Key for an application specific parameter for the placement of volumes in the volume group */ + key: string; + /** Value for an application specific parameter for the placement of volumes in the volume group */ + value: string; +} + +/** Volume patch resource */ +export interface VolumePatch { /** Resource location */ - location: string; - /** - * Resource Id - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly id?: string; - /** - * Resource name - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly name?: string; - /** - * A unique read-only string that changes whenever the resource is updated. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly etag?: string; - /** - * Resource type - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly type?: string; - /** Resource tags */ - tags?: { [propertyName: string]: string }; - /** - * The system meta data relating to this resource. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly systemData?: SystemData; - /** - * Unique FileSystem Identifier. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly fileSystemId?: string; - /** A unique file path for the volume. Used when creating mount targets */ - creationToken: string; - /** The service level of the file system */ - serviceLevel?: ServiceLevel; - /** Maximum storage quota allowed for a file system in bytes. This is a soft quota used for alerting only. Minimum size is 100 GiB. Upper limit is 100TiB. Specified in bytes. */ - usageThreshold: number; - /** Set of export policy rules */ - exportPolicy?: VolumePropertiesExportPolicy; - /** Set of protocol types, default NFSv3, CIFS for SMB protocol */ - protocolTypes?: string[]; - /** - * Azure lifecycle management - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly provisioningState?: string; - /** UUID v4 or resource identifier used to identify the Snapshot. */ - snapshotId?: string; - /** UUID v4 or resource identifier used to identify the Backup. */ - backupId?: string; - /** - * Unique Baremetal Tenant Identifier. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly baremetalTenantId?: string; - /** The Azure Resource URI for a delegated subnet. Must have the delegation Microsoft.NetApp/volumes */ - subnetId: string; - /** Basic network, or Standard features available to the volume. */ - networkFeatures?: NetworkFeatures; - /** - * Network Sibling Set ID for the the group of volumes sharing networking resources. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly networkSiblingSetId?: string; - /** - * Provides storage to network proximity information for the volume. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly storageToNetworkProximity?: VolumeStorageToNetworkProximity; - /** - * List of mount targets - * 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 */ - volumeType?: string; - /** DataProtection type volumes include an object containing details of the replication */ - dataProtection?: VolumePropertiesDataProtection; - /** 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 (default to true). */ - snapshotDirectoryVisible?: boolean; - /** Describe if a volume is KerberosEnabled. To be use with swagger version 2020-05-01 or later */ - kerberosEnabled?: boolean; - /** The security style of volume, default unix, defaults to ntfs for dual protocol or CIFS protocol */ - securityStyle?: SecurityStyle; - /** Enables encryption for in-flight smb3 data. Only applicable for SMB/DualProtocol volume. To be used with swagger version 2020-08-01 or later */ - smbEncryption?: boolean; - /** Enables continuously available share property for smb volume. Only applicable for SMB volume */ - smbContinuouslyAvailable?: boolean; - /** Maximum throughput in Mibps that can be achieved by this volume and this will be accepted as input only for manual qosType volume */ - throughputMibps?: number; - /** Encryption Key Source. Possible values are: 'Microsoft.NetApp' */ - encryptionKeySource?: string; - /** Specifies whether LDAP is enabled or not for a given NFS volume. */ - ldapEnabled?: boolean; - /** Specifies whether Cool Access(tiering) is enabled for the volume. */ - coolAccess?: boolean; - /** Specifies the number of days after which data that is not accessed by clients will be tiered. */ - coolnessPeriod?: number; - /** UNIX permissions for NFS volume accepted in octal 4 digit format. First digit selects the set user ID(4), set group ID (2) and sticky (1) attributes. Second digit selects permission for the owner of the file: read (4), write (2) and execute (1). Third selects permissions for other users in the same group. the fourth for other users not in the group. 0755 - gives read/write/execute permissions to owner and read/execute to group and other users. */ - unixPermissions?: string; - /** - * When a volume is being restored from another volume's snapshot, will show the percentage completion of this cloning process. When this value is empty/null there is no cloning process currently happening on this volume. This value will update every 5 minutes during cloning. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly cloneProgress?: number; - /** Specifies whether the volume is enabled for Azure VMware Solution (AVS) datastore purpose */ - avsDataStore?: AvsDataStore; - /** Specifies if default quota is enabled for the volume. */ - isDefaultQuotaEnabled?: boolean; - /** Default user quota for volume in KiBs. If isDefaultQuotaEnabled is set, the minimum value of 4 KiBs applies . */ - defaultUserQuotaInKiBs?: number; - /** Default group quota for volume in KiBs. If isDefaultQuotaEnabled is set, the minimum value of 4 KiBs applies. */ - defaultGroupQuotaInKiBs?: number; - /** - * Maximum number of files allowed. Needs a service request in order to be changed. Only allowed to be changed if volume quota is more than 4TiB. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly maximumNumberOfFiles?: number; - /** - * Volume Group Name - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly volumeGroupName?: string; - /** Pool Resource Id used in case of creating a volume through volume group */ - capacityPoolResourceId?: string; - /** Proximity placement group associated with the volume */ - proximityPlacementGroup?: string; - /** - * T2 network information - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly t2Network?: string; - /** Volume spec name is the application specific designation or identifier for the particular volume in a volume group for e.g. data, log */ - volumeSpecName?: string; - /** Application specific placement rules for the particular volume */ - placementRules?: PlacementKeyValuePairs[]; - /** Flag indicating whether subvolume operations are enabled on the volume */ - enableSubvolumes?: EnableSubvolumes; -} - -/** Set of export policy rules */ -export interface VolumePropertiesExportPolicy { - /** Export policy rule */ - rules?: ExportPolicyRule[]; -} - -/** Volume Export Policy Rule */ -export interface ExportPolicyRule { - /** Order index */ - ruleIndex?: number; - /** Read only access */ - unixReadOnly?: boolean; - /** Read and write access */ - unixReadWrite?: boolean; - /** Kerberos5 Read only access. To be use with swagger version 2020-05-01 or later */ - kerberos5ReadOnly?: boolean; - /** Kerberos5 Read and write access. To be use with swagger version 2020-05-01 or later */ - kerberos5ReadWrite?: boolean; - /** Kerberos5i Read only access. To be use with swagger version 2020-05-01 or later */ - kerberos5IReadOnly?: boolean; - /** Kerberos5i Read and write access. To be use with swagger version 2020-05-01 or later */ - kerberos5IReadWrite?: boolean; - /** Kerberos5p Read only access. To be use with swagger version 2020-05-01 or later */ - kerberos5PReadOnly?: boolean; - /** Kerberos5p Read and write access. To be use with swagger version 2020-05-01 or later */ - kerberos5PReadWrite?: boolean; - /** Allows CIFS protocol */ - cifs?: boolean; - /** Allows NFSv3 protocol. Enable only for NFSv3 type volumes */ - nfsv3?: boolean; - /** Allows NFSv4.1 protocol. Enable only for NFSv4.1 type volumes */ - nfsv41?: boolean; - /** Client ingress specification as comma separated string with IPv4 CIDRs, IPv4 host addresses and host names */ - allowedClients?: string; - /** Has root access to volume */ - hasRootAccess?: boolean; - /** This parameter specifies who is authorized to change the ownership of a file. restricted - Only root user can change the ownership of the file. unrestricted - Non-root users can change ownership of files that they own. */ - chownMode?: ChownMode; -} - -/** Mount target properties */ -export interface MountTargetProperties { - /** - * UUID v4 used to identify the MountTarget - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly mountTargetId?: string; - /** UUID v4 used to identify the MountTarget */ - fileSystemId: string; - /** - * The mount target's IPv4 address - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly ipAddress?: string; - /** The SMB server's Fully Qualified Domain Name, FQDN */ - smbServerFqdn?: string; -} - -/** DataProtection type volumes include an object containing details of the replication */ -export interface VolumePropertiesDataProtection { - /** Backup Properties */ - backup?: VolumeBackupProperties; - /** Replication properties */ - replication?: ReplicationObject; - /** Snapshot properties. */ - snapshot?: VolumeSnapshotProperties; -} - -/** Volume Backup Properties */ -export interface VolumeBackupProperties { - /** Backup Policy Resource ID */ - backupPolicyId?: string; - /** Policy Enforced */ - policyEnforced?: boolean; - /** Vault Resource ID */ - vaultId?: string; - /** Backup Enabled */ - backupEnabled?: boolean; -} - -/** Replication properties */ -export interface ReplicationObject { - /** Id */ - replicationId?: string; - /** Indicates whether the local volume is the source or destination for the Volume Replication */ - endpointType?: EndpointType; - /** Schedule */ - replicationSchedule?: ReplicationSchedule; - /** The resource ID of the remote volume. */ - remoteVolumeResourceId: string; - /** The remote region for the other end of the Volume Replication. */ - remoteVolumeRegion?: string; -} - -/** Volume Snapshot Properties */ -export interface VolumeSnapshotProperties { - /** Snapshot Policy ResourceId */ - snapshotPolicyId?: string; -} - -/** Application specific parameters for the placement of volumes in the volume group */ -export interface PlacementKeyValuePairs { - /** Key for an application specific parameter for the placement of volumes in the volume group */ - key: string; - /** Value for an application specific parameter for the placement of volumes in the volume group */ - value: string; -} - -/** Volume patch resource */ -export interface VolumePatch { - /** Resource location */ - location?: string; + location?: string; /** * Resource Id * NOTE: This property will not be serialized. It can only be populated by the server. @@ -785,6 +538,24 @@ export interface ReplicationStatus { errorMessage?: string; } +/** List Replications */ +export interface ListReplications { + /** A list of replications */ + value?: Replication[]; +} + +/** Replication properties */ +export interface Replication { + /** Indicates whether the local volume is the source or destination for the Volume Replication */ + endpointType?: EndpointType; + /** Schedule */ + replicationSchedule?: ReplicationSchedule; + /** The resource ID of the remote volume. */ + remoteVolumeResourceId: string; + /** The remote region for the other end of the Volume Replication. */ + remoteVolumeRegion?: string; +} + /** Authorize request */ export interface AuthorizeRequest { /** Resource id of the remote volume */ @@ -853,54 +624,6 @@ export interface SnapshotPoliciesList { value?: SnapshotPolicy[]; } -/** Snapshot policy information */ -export interface SnapshotPolicy { - /** Resource location */ - location: string; - /** - * Resource Id - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly id?: string; - /** - * Resource name - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly name?: string; - /** - * A unique read-only string that changes whenever the resource is updated. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly etag?: string; - /** - * Resource type - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly type?: string; - /** Resource tags */ - tags?: { [propertyName: string]: string }; - /** - * The system meta data relating to this resource. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly systemData?: SystemData; - /** Schedule for hourly snapshots */ - hourlySchedule?: HourlySchedule; - /** Schedule for daily snapshots */ - dailySchedule?: DailySchedule; - /** Schedule for weekly snapshots */ - weeklySchedule?: WeeklySchedule; - /** Schedule for monthly snapshots */ - monthlySchedule?: MonthlySchedule; - /** The property to decide policy is enabled or not */ - enabled?: boolean; - /** - * Azure lifecycle management - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly provisioningState?: string; -} - /** Hourly Schedule properties */ export interface HourlySchedule { /** Hourly snapshot count to keep */ @@ -1190,81 +913,355 @@ export interface BackupPoliciesList { value?: BackupPolicy[]; } -/** Backup policy information */ -export interface BackupPolicy { +/** Volume details using the backup policy */ +export interface VolumeBackups { + /** Volume name */ + volumeName?: string; + /** Total count of backups for volume */ + backupsCount?: number; + /** Policy enabled */ + policyEnabled?: boolean; +} + +/** Backup policy Details for create and update */ +export interface BackupPolicyPatch { + /** Resource location */ + location?: string; + /** + * Resource Id + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly id?: string; + /** + * Resource name + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly name?: string; + /** + * Resource type + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly type?: string; + /** Resource tags */ + tags?: { [propertyName: string]: string }; + /** + * Backup Policy Resource ID + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly backupPolicyId?: string; + /** + * Azure lifecycle management + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly provisioningState?: string; + /** Daily backups count to keep */ + dailyBackupsToKeep?: number; + /** Weekly backups count to keep */ + weeklyBackupsToKeep?: number; + /** Monthly backups count to keep */ + monthlyBackupsToKeep?: number; + /** + * Volumes using current backup policy + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly volumesAssigned?: number; + /** The property to decide policy is enabled or not */ + enabled?: boolean; + /** + * A list of volumes assigned to this policy + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly volumeBackups?: VolumeBackups[]; +} + +/** List of Volume Quota Rules */ +export interface VolumeQuotaRulesList { + /** A list of Volume Quota Rules */ + value?: VolumeQuotaRule[]; +} + +/** Patchable Quota Rule of a Volume */ +export interface VolumeQuotaRulePatch { + /** + * Gets the status of the VolumeQuotaRule at the time the operation was called. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly provisioningState?: ProvisioningState; + /** Size of quota */ + quotaSizeInKiBs?: number; + /** Type of quota */ + quotaType?: Type; + /** UserID/GroupID/SID based on the quota target type. UserID and groupID can be found by running ‘id’ or ‘getent’ command for the user or group and SID can be found by running */ + quotaTarget?: string; +} + +/** List of Vaults */ +export interface VaultList { + /** A list of vaults */ + value?: Vault[]; +} + +/** Vault information */ +export interface Vault { /** Resource location */ location: string; /** - * Resource Id + * Resource Id + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly id?: string; + /** + * Resource name + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly name?: string; + /** + * Resource type + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly type?: string; + /** Vault Name */ + vaultName?: string; +} + +/** List of volume group resources */ +export interface VolumeGroupList { + /** List of volume Groups */ + value?: VolumeGroup[]; +} + +/** Volume group resource */ +export interface VolumeGroup { + /** Resource location */ + location?: string; + /** + * Resource Id + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly id?: string; + /** + * Resource name + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly name?: string; + /** + * Resource type + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly type?: string; + /** + * Azure lifecycle management + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly provisioningState?: string; + /** Volume group details */ + groupMetaData?: VolumeGroupMetaData; +} + +/** Volume group properties */ +export interface VolumeGroupMetaData { + /** Group Description */ + groupDescription?: string; + /** Application Type */ + applicationType?: ApplicationType; + /** Application specific identifier */ + applicationIdentifier?: string; + /** Application specific placement rules for the volume group */ + globalPlacementRules?: PlacementKeyValuePairs[]; + /** Application specific identifier of deployment rules for the volume group */ + deploymentSpecId?: string; + /** + * Number of volumes in volume group + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly volumesCount?: number; +} + +/** Volume group resource for create */ +export interface VolumeGroupDetails { + /** Resource location */ + location?: string; + /** + * Resource Id + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly id?: string; + /** + * Resource name + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly name?: string; + /** + * Resource type + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly type?: string; + /** + * Azure lifecycle management + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly provisioningState?: string; + /** Volume group details */ + groupMetaData?: VolumeGroupMetaData; + /** List of volumes from group */ + volumes?: VolumeGroupVolumeProperties[]; +} + +/** Volume resource */ +export interface VolumeGroupVolumeProperties { + /** + * Resource Id + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly id?: string; + /** Resource name */ + name?: string; + /** + * Resource type + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly type?: string; + /** Resource tags */ + tags?: { [propertyName: string]: string }; + /** + * Unique FileSystem Identifier. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly fileSystemId?: string; + /** A unique file path for the volume. Used when creating mount targets */ + creationToken: string; + /** The service level of the file system */ + serviceLevel?: ServiceLevel; + /** Maximum storage quota allowed for a file system in bytes. This is a soft quota used for alerting only. Minimum size is 100 GiB. Upper limit is 100TiB. Specified in bytes. */ + usageThreshold: number; + /** Set of export policy rules */ + exportPolicy?: VolumePropertiesExportPolicy; + /** Set of protocol types, default NFSv3, CIFS for SMB protocol */ + protocolTypes?: string[]; + /** + * Azure lifecycle management * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly id?: string; + readonly provisioningState?: string; + /** UUID v4 or resource identifier used to identify the Snapshot. */ + snapshotId?: string; + /** UUID v4 or resource identifier used to identify the Backup. */ + backupId?: string; /** - * Resource name + * Unique Baremetal Tenant Identifier. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly name?: string; + readonly baremetalTenantId?: string; + /** The Azure Resource URI for a delegated subnet. Must have the delegation Microsoft.NetApp/volumes */ + subnetId: string; + /** Basic network, or Standard features available to the volume. */ + networkFeatures?: NetworkFeatures; /** - * A unique read-only string that changes whenever the resource is updated. + * Network Sibling Set ID for the the group of volumes sharing networking resources. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly etag?: string; + readonly networkSiblingSetId?: string; /** - * Resource type + * Provides storage to network proximity information for the volume. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly type?: string; - /** Resource tags */ - tags?: { [propertyName: string]: string }; + readonly storageToNetworkProximity?: VolumeStorageToNetworkProximity; /** - * The system meta data relating to this resource. + * List of mount targets * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly systemData?: SystemData; + readonly mountTargets?: MountTargetProperties[]; + /** What type of volume is this. For destination volumes in Cross Region Replication, set type to DataProtection */ + volumeType?: string; + /** DataProtection type volumes include an object containing details of the replication */ + dataProtection?: VolumePropertiesDataProtection; + /** 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 (default to true). */ + snapshotDirectoryVisible?: boolean; + /** Describe if a volume is KerberosEnabled. To be use with swagger version 2020-05-01 or later */ + kerberosEnabled?: boolean; + /** The security style of volume, default unix, defaults to ntfs for dual protocol or CIFS protocol */ + securityStyle?: SecurityStyle; + /** Enables encryption for in-flight smb3 data. Only applicable for SMB/DualProtocol volume. To be used with swagger version 2020-08-01 or later */ + smbEncryption?: boolean; + /** Enables continuously available share property for smb volume. Only applicable for SMB volume */ + smbContinuouslyAvailable?: boolean; + /** Maximum throughput in Mibps that can be achieved by this volume and this will be accepted as input only for manual qosType volume */ + throughputMibps?: number; + /** Source of key used to encrypt data in volume. Possible values (case-insensitive) are: 'Microsoft.NetApp' */ + encryptionKeySource?: EncryptionKeySource; + /** Specifies whether LDAP is enabled or not for a given NFS volume. */ + ldapEnabled?: boolean; + /** Specifies whether Cool Access(tiering) is enabled for the volume. */ + coolAccess?: boolean; + /** Specifies the number of days after which data that is not accessed by clients will be tiered. */ + coolnessPeriod?: number; + /** UNIX permissions for NFS volume accepted in octal 4 digit format. First digit selects the set user ID(4), set group ID (2) and sticky (1) attributes. Second digit selects permission for the owner of the file: read (4), write (2) and execute (1). Third selects permissions for other users in the same group. the fourth for other users not in the group. 0755 - gives read/write/execute permissions to owner and read/execute to group and other users. */ + unixPermissions?: string; /** - * Backup Policy Resource ID + * When a volume is being restored from another volume's snapshot, will show the percentage completion of this cloning process. When this value is empty/null there is no cloning process currently happening on this volume. This value will update every 5 minutes during cloning. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly backupPolicyId?: string; + readonly cloneProgress?: number; + /** Specifies whether the volume is enabled for Azure VMware Solution (AVS) datastore purpose */ + avsDataStore?: AvsDataStore; + /** Specifies if default quota is enabled for the volume. */ + isDefaultQuotaEnabled?: boolean; + /** Default user quota for volume in KiBs. If isDefaultQuotaEnabled is set, the minimum value of 4 KiBs applies . */ + defaultUserQuotaInKiBs?: number; + /** Default group quota for volume in KiBs. If isDefaultQuotaEnabled is set, the minimum value of 4 KiBs applies. */ + defaultGroupQuotaInKiBs?: number; /** - * Azure lifecycle management + * Maximum number of files allowed. Needs a service request in order to be changed. Only allowed to be changed if volume quota is more than 4TiB. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly provisioningState?: string; - /** Daily backups count to keep */ - dailyBackupsToKeep?: number; - /** Weekly backups count to keep */ - weeklyBackupsToKeep?: number; - /** Monthly backups count to keep */ - monthlyBackupsToKeep?: number; + readonly maximumNumberOfFiles?: number; /** - * Volumes using current backup policy + * Volume Group Name * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly volumesAssigned?: number; - /** The property to decide policy is enabled or not */ - enabled?: boolean; + readonly volumeGroupName?: string; + /** Pool Resource Id used in case of creating a volume through volume group */ + capacityPoolResourceId?: string; + /** Proximity placement group associated with the volume */ + proximityPlacementGroup?: string; /** - * A list of volumes assigned to this policy + * T2 network information * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly volumeBackups?: VolumeBackups[]; + readonly t2Network?: string; + /** Volume spec name is the application specific designation or identifier for the particular volume in a volume group for e.g. data, log */ + volumeSpecName?: string; + /** + * Specifies if the volume is encrypted or not. Only available on volumes created or updated after 2022-01-01. + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly encrypted?: boolean; + /** Application specific placement rules for the particular volume */ + placementRules?: PlacementKeyValuePairs[]; + /** Flag indicating whether subvolume operations are enabled on the volume */ + enableSubvolumes?: EnableSubvolumes; } -/** Volume details using the backup policy */ -export interface VolumeBackups { - /** Volume name */ - volumeName?: string; - /** Total count of backups for volume */ - backupsCount?: number; - /** Policy enabled */ - policyEnabled?: boolean; +/** List of Subvolumes */ +export interface SubvolumesList { + /** A list of Subvolumes */ + value?: SubvolumeInfo[]; + /** URL to get the next set of results. */ + nextLink?: string; } -/** Backup policy Details for create and update */ -export interface BackupPolicyPatch { - /** Resource location */ - location?: string; +/** Subvolume Patch Request properties */ +export interface SubvolumePatchRequest { + /** Truncate subvolume to the provided size in bytes */ + size?: number; + /** path to the subvolume */ + path?: string; +} + +/** Result of the post subvolume and action is to get metadata of the subvolume. */ +export interface SubvolumeModel { /** * Resource Id * NOTE: This property will not be serialized. It can only be populated by the server. @@ -1280,46 +1277,56 @@ export interface BackupPolicyPatch { * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly type?: string; - /** Resource tags */ - tags?: { [propertyName: string]: string }; - /** - * Backup Policy Resource ID - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly backupPolicyId?: string; - /** - * Azure lifecycle management - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly provisioningState?: string; - /** Daily backups count to keep */ - dailyBackupsToKeep?: number; - /** Weekly backups count to keep */ - weeklyBackupsToKeep?: number; - /** Monthly backups count to keep */ - monthlyBackupsToKeep?: number; + /** Path to the subvolume */ + path?: string; + /** Path to the parent subvolume */ + parentPath?: string; + /** Size of subvolume */ + size?: number; + /** Bytes used */ + bytesUsed?: number; + /** Permissions of the subvolume */ + permissions?: string; + /** Creation time and date */ + creationTimeStamp?: Date; + /** Most recent access time and date */ + accessedTimeStamp?: Date; + /** Most recent modification time and date */ + modifiedTimeStamp?: Date; + /** Most recent change time and date */ + changedTimeStamp?: Date; + /** Azure lifecycle management */ + provisioningState?: string; +} + +/** Identity for the resource. */ +export interface ResourceIdentity { /** - * Volumes using current backup policy + * Object id of the identity resource * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly volumesAssigned?: number; - /** The property to decide policy is enabled or not */ - enabled?: boolean; + readonly principalId?: string; /** - * A list of volumes assigned to this policy + * The tenant id of the resource * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly volumeBackups?: VolumeBackups[]; + readonly tenantId?: string; + /** Type of Identity. Supported values are: 'None', 'SystemAssigned' */ + type?: string; } -/** List of Vaults */ -export interface VaultList { - /** A list of vaults */ - value?: Vault[]; +/** Volume relocation properties */ +export interface VolumeRelocationProperties { + /** The id of the old volume that is being relocated */ + oldVolumeId?: string; + /** The id of the bare metal tenant owned by the existing volume */ + oldBareMetalTenantId?: string; + /** Has relocation been requested for this volume */ + relocationRequested?: boolean; } -/** Vault information */ -export interface Vault { +/** Mount Target */ +export interface MountTarget { /** Resource location */ location: string; /** @@ -1337,18 +1344,26 @@ export interface Vault { * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly type?: string; - /** Vault Name */ - vaultName?: string; -} - -/** List of volume group resources */ -export interface VolumeGroupList { - /** List of volume Groups */ - value?: VolumeGroup[]; + /** Resource tags */ + tags?: { [propertyName: string]: string }; + /** + * UUID v4 used to identify the MountTarget + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly mountTargetId?: string; + /** UUID v4 used to identify the MountTarget */ + fileSystemId: string; + /** + * The mount target's IPv4 address + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly ipAddress?: string; + /** The SMB server's Fully Qualified Domain Name, FQDN */ + smbServerFqdn?: string; } -/** Volume group resource */ -export interface VolumeGroup { +/** Snapshot policy properties */ +export interface SnapshotPolicyDetails { /** Resource location */ location?: string; /** @@ -1368,36 +1383,25 @@ export interface VolumeGroup { readonly type?: string; /** Resource tags */ tags?: { [propertyName: string]: string }; + /** Schedule for hourly snapshots */ + hourlySchedule?: HourlySchedule; + /** Schedule for daily snapshots */ + dailySchedule?: DailySchedule; + /** Schedule for weekly snapshots */ + weeklySchedule?: WeeklySchedule; + /** Schedule for monthly snapshots */ + monthlySchedule?: MonthlySchedule; + /** The property to decide policy is enabled or not */ + enabled?: boolean; /** - * Azure lifecycle management - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly provisioningState?: string; - /** Volume group details */ - groupMetaData?: VolumeGroupMetaData; -} - -/** Volume group properties */ -export interface VolumeGroupMetaData { - /** Group Description */ - groupDescription?: string; - /** Application Type */ - applicationType?: ApplicationType; - /** Application specific identifier */ - applicationIdentifier?: string; - /** Application specific placement rules for the volume group */ - globalPlacementRules?: PlacementKeyValuePairs[]; - /** Application specific identifier of deployment rules for the volume group */ - deploymentSpecId?: string; - /** - * Number of volumes in volume group + * Azure lifecycle management * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly volumesCount?: number; + readonly provisioningState?: string; } -/** Volume group resource for create */ -export interface VolumeGroupDetails { +/** Backup policy properties */ +export interface BackupPolicyDetails { /** Resource location */ location?: string; /** @@ -1417,278 +1421,270 @@ export interface VolumeGroupDetails { readonly type?: string; /** Resource tags */ tags?: { [propertyName: string]: string }; + /** + * Backup Policy Resource ID + * NOTE: This property will not be serialized. It can only be populated by the server. + */ + readonly backupPolicyId?: string; /** * Azure lifecycle management * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly provisioningState?: string; - /** Volume group details */ - groupMetaData?: VolumeGroupMetaData; - /** List of volumes from group */ - volumes?: VolumeGroupVolumeProperties[]; -} - -/** Volume resource */ -export interface VolumeGroupVolumeProperties { + /** Daily backups count to keep */ + dailyBackupsToKeep?: number; + /** Weekly backups count to keep */ + weeklyBackupsToKeep?: number; + /** Monthly backups count to keep */ + monthlyBackupsToKeep?: number; /** - * Resource Id + * Volumes using current backup policy * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly id?: string; - /** Resource name */ - name?: string; + readonly volumesAssigned?: number; + /** The property to decide policy is enabled or not */ + enabled?: boolean; /** - * Resource type + * A list of volumes assigned to this policy * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly type?: string; - /** Resource tags */ + readonly volumeBackups?: VolumeBackups[]; +} + +/** The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location */ +export type ProxyResource = Resource & {}; + +/** The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location' */ +export type TrackedResource = Resource & { + /** Resource tags. */ tags?: { [propertyName: string]: string }; + /** The geo-location where the resource lives */ + location: string; +}; + +/** Information regarding Subscription Quota Item. */ +export type SubscriptionQuotaItem = ProxyResource & { /** - * Unique FileSystem Identifier. + * The current quota value. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly fileSystemId?: string; - /** A unique file path for the volume. Used when creating mount targets */ - creationToken: string; - /** The service level of the file system */ - serviceLevel?: ServiceLevel; - /** Maximum storage quota allowed for a file system in bytes. This is a soft quota used for alerting only. Minimum size is 100 GiB. Upper limit is 100TiB. Specified in bytes. */ - usageThreshold: number; - /** Set of export policy rules */ - exportPolicy?: VolumePropertiesExportPolicy; - /** Set of protocol types, default NFSv3, CIFS for SMB protocol */ - protocolTypes?: string[]; + readonly current?: number; /** - * Azure lifecycle management + * The default quota value. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly provisioningState?: string; - /** UUID v4 or resource identifier used to identify the Snapshot. */ - snapshotId?: string; - /** UUID v4 or resource identifier used to identify the Backup. */ - backupId?: string; + readonly default?: number; +}; + +/** Subvolume Information properties */ +export type SubvolumeInfo = ProxyResource & { + /** Path to the subvolume */ + path?: string; + /** Truncate subvolume to the provided size in bytes */ + size?: number; + /** parent path to the subvolume */ + parentPath?: string; /** - * Unique Baremetal Tenant Identifier. + * Azure lifecycle management * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly baremetalTenantId?: string; - /** The Azure Resource URI for a delegated subnet. Must have the delegation Microsoft.NetApp/volumes */ - subnetId: string; - /** Basic network, or Standard features available to the volume. */ - networkFeatures?: NetworkFeatures; + readonly provisioningState?: string; +}; + +/** NetApp account resource */ +export type NetAppAccount = TrackedResource & { /** - * Network Sibling Set ID for the the group of volumes sharing networking resources. + * A unique read-only string that changes whenever the resource is updated. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly networkSiblingSetId?: string; + readonly etag?: string; /** - * Provides storage to network proximity information for the volume. + * Azure lifecycle management * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly storageToNetworkProximity?: VolumeStorageToNetworkProximity; + readonly provisioningState?: string; + /** Active Directories */ + activeDirectories?: ActiveDirectory[]; + /** Encryption settings */ + encryption?: AccountEncryption; +}; + +/** Capacity pool resource */ +export type CapacityPool = TrackedResource & { /** - * List of mount targets + * A unique read-only string that changes whenever the resource is updated. * 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 */ - volumeType?: string; - /** DataProtection type volumes include an object containing details of the replication */ - dataProtection?: VolumePropertiesDataProtection; - /** 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 (default to true). */ - snapshotDirectoryVisible?: boolean; - /** Describe if a volume is KerberosEnabled. To be use with swagger version 2020-05-01 or later */ - kerberosEnabled?: boolean; - /** The security style of volume, default unix, defaults to ntfs for dual protocol or CIFS protocol */ - securityStyle?: SecurityStyle; - /** Enables encryption for in-flight smb3 data. Only applicable for SMB/DualProtocol volume. To be used with swagger version 2020-08-01 or later */ - smbEncryption?: boolean; - /** Enables continuously available share property for smb volume. Only applicable for SMB volume */ - smbContinuouslyAvailable?: boolean; - /** Maximum throughput in Mibps that can be achieved by this volume and this will be accepted as input only for manual qosType volume */ - throughputMibps?: number; - /** Encryption Key Source. Possible values are: 'Microsoft.NetApp' */ - encryptionKeySource?: string; - /** Specifies whether LDAP is enabled or not for a given NFS volume. */ - ldapEnabled?: boolean; - /** Specifies whether Cool Access(tiering) is enabled for the volume. */ - coolAccess?: boolean; - /** Specifies the number of days after which data that is not accessed by clients will be tiered. */ - coolnessPeriod?: number; - /** UNIX permissions for NFS volume accepted in octal 4 digit format. First digit selects the set user ID(4), set group ID (2) and sticky (1) attributes. Second digit selects permission for the owner of the file: read (4), write (2) and execute (1). Third selects permissions for other users in the same group. the fourth for other users not in the group. 0755 - gives read/write/execute permissions to owner and read/execute to group and other users. */ - unixPermissions?: string; + readonly etag?: string; /** - * When a volume is being restored from another volume's snapshot, will show the percentage completion of this cloning process. When this value is empty/null there is no cloning process currently happening on this volume. This value will update every 5 minutes during cloning. + * UUID v4 used to identify the Pool * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly cloneProgress?: number; - /** Specifies whether the volume is enabled for Azure VMware Solution (AVS) datastore purpose */ - avsDataStore?: AvsDataStore; - /** Specifies if default quota is enabled for the volume. */ - isDefaultQuotaEnabled?: boolean; - /** Default user quota for volume in KiBs. If isDefaultQuotaEnabled is set, the minimum value of 4 KiBs applies . */ - defaultUserQuotaInKiBs?: number; - /** Default group quota for volume in KiBs. If isDefaultQuotaEnabled is set, the minimum value of 4 KiBs applies. */ - defaultGroupQuotaInKiBs?: number; + readonly poolId?: string; + /** Provisioned size of the pool (in bytes). Allowed values are in 1TiB chunks (value must be multiply of 4398046511104). */ + size: number; + /** The service level of the file system */ + serviceLevel: ServiceLevel; /** - * Maximum number of files allowed. Needs a service request in order to be changed. Only allowed to be changed if volume quota is more than 4TiB. + * Azure lifecycle management * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly maximumNumberOfFiles?: number; + readonly provisioningState?: string; /** - * Volume Group Name + * Total throughput of pool in Mibps * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly volumeGroupName?: string; - /** Pool Resource Id used in case of creating a volume through volume group */ - capacityPoolResourceId?: string; - /** Proximity placement group associated with the volume */ - proximityPlacementGroup?: string; + readonly totalThroughputMibps?: number; /** - * T2 network information + * Utilized throughput of pool in Mibps * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly t2Network?: string; - /** Volume spec name is the application specific designation or identifier for the particular volume in a volume group for e.g. data, log */ - volumeSpecName?: string; - /** Application specific placement rules for the particular volume */ - placementRules?: PlacementKeyValuePairs[]; - /** Flag indicating whether subvolume operations are enabled on the volume */ - enableSubvolumes?: EnableSubvolumes; -} - -/** List of Subvolumes */ -export interface SubvolumesList { - /** A list of Subvolumes */ - value?: SubvolumeInfo[]; - /** URL to get the next set of results. */ - nextLink?: string; -} - -/** Subvolume Patch Request properties */ -export interface SubvolumePatchRequest { - /** Truncate subvolume to the provided size in bytes */ - size?: number; - /** path to the subvolume */ - path?: string; -} + readonly utilizedThroughputMibps?: number; + /** The qos type of the pool */ + qosType?: QosType; + /** If enabled (true) the pool can contain cool Access enabled volumes. */ + coolAccess?: boolean; + /** Encryption type of the capacity pool, set encryption type for data at rest for this pool and all volumes in it. This value can only be set when creating new pool. */ + encryptionType?: EncryptionType; +}; -/** Result of the post subvolume and action is to get metadata of the subvolume. */ -export interface SubvolumeModel { +/** Volume resource */ +export type Volume = TrackedResource & { /** - * Resource Id + * A unique read-only string that changes whenever the resource is updated. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly id?: string; + readonly etag?: string; + /** Availability Zone */ + zones?: string[]; /** - * Resource name + * Unique FileSystem Identifier. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly name?: string; + readonly fileSystemId?: string; + /** A unique file path for the volume. Used when creating mount targets */ + creationToken: string; + /** The service level of the file system */ + serviceLevel?: ServiceLevel; + /** Maximum storage quota allowed for a file system in bytes. This is a soft quota used for alerting only. Minimum size is 100 GiB. Upper limit is 100TiB. Specified in bytes. */ + usageThreshold: number; + /** Set of export policy rules */ + exportPolicy?: VolumePropertiesExportPolicy; + /** Set of protocol types, default NFSv3, CIFS for SMB protocol */ + protocolTypes?: string[]; /** - * Resource type + * Azure lifecycle management * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly type?: string; - /** Path to the subvolume */ - path?: string; - /** Path to the parent subvolume */ - parentPath?: string; - /** Size of subvolume */ - size?: number; - /** Bytes used */ - bytesUsed?: number; - /** Permissions of the subvolume */ - permissions?: string; - /** Creation time and date */ - creationTimeStamp?: Date; - /** Most recent access time and date */ - accessedTimeStamp?: Date; - /** Most recent modification time and date */ - modifiedTimeStamp?: Date; - /** Most recent change time and date */ - changedTimeStamp?: Date; - /** Azure lifecycle management */ - provisioningState?: string; -} - -/** Identity for the resource. */ -export interface ResourceIdentity { + readonly provisioningState?: string; + /** UUID v4 or resource identifier used to identify the Snapshot. */ + snapshotId?: string; + /** UUID v4 or resource identifier used to identify the Backup. */ + backupId?: string; /** - * Object id of the identity resource + * Unique Baremetal Tenant Identifier. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly principalId?: string; + readonly baremetalTenantId?: string; + /** The Azure Resource URI for a delegated subnet. Must have the delegation Microsoft.NetApp/volumes */ + subnetId: string; + /** Basic network, or Standard features available to the volume. */ + networkFeatures?: NetworkFeatures; /** - * The tenant id of the resource + * Network Sibling Set ID for the the group of volumes sharing networking resources. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly tenantId?: string; - /** Type of Identity. Supported values are: 'None', 'SystemAssigned' */ - type?: string; -} - -/** Mount Target */ -export interface MountTarget { - /** Resource location */ - location: string; + readonly networkSiblingSetId?: string; /** - * Resource Id + * Provides storage to network proximity information for the volume. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly id?: string; + readonly storageToNetworkProximity?: VolumeStorageToNetworkProximity; /** - * Resource name + * List of mount targets * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly name?: string; + readonly mountTargets?: MountTargetProperties[]; + /** What type of volume is this. For destination volumes in Cross Region Replication, set type to DataProtection */ + volumeType?: string; + /** DataProtection type volumes include an object containing details of the replication */ + dataProtection?: VolumePropertiesDataProtection; + /** 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 (default to true). */ + snapshotDirectoryVisible?: boolean; + /** Describe if a volume is KerberosEnabled. To be use with swagger version 2020-05-01 or later */ + kerberosEnabled?: boolean; + /** The security style of volume, default unix, defaults to ntfs for dual protocol or CIFS protocol */ + securityStyle?: SecurityStyle; + /** Enables encryption for in-flight smb3 data. Only applicable for SMB/DualProtocol volume. To be used with swagger version 2020-08-01 or later */ + smbEncryption?: boolean; + /** Enables continuously available share property for smb volume. Only applicable for SMB volume */ + smbContinuouslyAvailable?: boolean; + /** Maximum throughput in Mibps that can be achieved by this volume and this will be accepted as input only for manual qosType volume */ + throughputMibps?: number; + /** Source of key used to encrypt data in volume. Possible values (case-insensitive) are: 'Microsoft.NetApp' */ + encryptionKeySource?: EncryptionKeySource; + /** Specifies whether LDAP is enabled or not for a given NFS volume. */ + ldapEnabled?: boolean; + /** Specifies whether Cool Access(tiering) is enabled for the volume. */ + coolAccess?: boolean; + /** Specifies the number of days after which data that is not accessed by clients will be tiered. */ + coolnessPeriod?: number; + /** UNIX permissions for NFS volume accepted in octal 4 digit format. First digit selects the set user ID(4), set group ID (2) and sticky (1) attributes. Second digit selects permission for the owner of the file: read (4), write (2) and execute (1). Third selects permissions for other users in the same group. the fourth for other users not in the group. 0755 - gives read/write/execute permissions to owner and read/execute to group and other users. */ + unixPermissions?: string; /** - * Resource type + * When a volume is being restored from another volume's snapshot, will show the percentage completion of this cloning process. When this value is empty/null there is no cloning process currently happening on this volume. This value will update every 5 minutes during cloning. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly type?: string; - /** Resource tags */ - tags?: { [propertyName: string]: string }; + readonly cloneProgress?: number; + /** Specifies whether the volume is enabled for Azure VMware Solution (AVS) datastore purpose */ + avsDataStore?: AvsDataStore; + /** Specifies if default quota is enabled for the volume. */ + isDefaultQuotaEnabled?: boolean; + /** Default user quota for volume in KiBs. If isDefaultQuotaEnabled is set, the minimum value of 4 KiBs applies . */ + defaultUserQuotaInKiBs?: number; + /** Default group quota for volume in KiBs. If isDefaultQuotaEnabled is set, the minimum value of 4 KiBs applies. */ + defaultGroupQuotaInKiBs?: number; /** - * UUID v4 used to identify the MountTarget + * Maximum number of files allowed. Needs a service request in order to be changed. Only allowed to be changed if volume quota is more than 4TiB. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly mountTargetId?: string; - /** UUID v4 used to identify the MountTarget */ - fileSystemId: string; + readonly maximumNumberOfFiles?: number; /** - * The mount target's IPv4 address + * Volume Group Name * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly ipAddress?: string; - /** The SMB server's Fully Qualified Domain Name, FQDN */ - smbServerFqdn?: string; -} - -/** Snapshot policy properties */ -export interface SnapshotPolicyDetails { - /** Resource location */ - location?: string; + readonly volumeGroupName?: string; + /** Pool Resource Id used in case of creating a volume through volume group */ + capacityPoolResourceId?: string; + /** Proximity placement group associated with the volume */ + proximityPlacementGroup?: string; /** - * Resource Id + * T2 network information * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly id?: string; + readonly t2Network?: string; + /** Volume spec name is the application specific designation or identifier for the particular volume in a volume group for e.g. data, log */ + volumeSpecName?: string; /** - * Resource name + * Specifies if the volume is encrypted or not. Only available on volumes created or updated after 2022-01-01. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly name?: string; + readonly encrypted?: boolean; + /** Application specific placement rules for the particular volume */ + placementRules?: PlacementKeyValuePairs[]; + /** Flag indicating whether subvolume operations are enabled on the volume */ + enableSubvolumes?: EnableSubvolumes; +}; + +/** Snapshot policy information */ +export type SnapshotPolicy = TrackedResource & { /** - * Resource type + * A unique read-only string that changes whenever the resource is updated. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly type?: string; - /** Resource tags */ - tags?: { [propertyName: string]: string }; + readonly etag?: string; /** Schedule for hourly snapshots */ hourlySchedule?: HourlySchedule; /** Schedule for daily snapshots */ @@ -1704,29 +1700,15 @@ export interface SnapshotPolicyDetails { * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly provisioningState?: string; -} +}; -/** Backup policy properties */ -export interface BackupPolicyDetails { - /** Resource location */ - location?: string; - /** - * Resource Id - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly id?: string; - /** - * Resource name - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly name?: string; +/** Backup policy information */ +export type BackupPolicy = TrackedResource & { /** - * Resource type + * A unique read-only string that changes whenever the resource is updated. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly type?: string; - /** Resource tags */ - tags?: { [propertyName: string]: string }; + readonly etag?: string; /** * Backup Policy Resource ID * NOTE: This property will not be serialized. It can only be populated by the server. @@ -1755,48 +1737,21 @@ export interface BackupPolicyDetails { * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly volumeBackups?: VolumeBackups[]; -} - -/** The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location */ -export type ProxyResource = Resource & {}; - -/** Information regarding Subscription Quota Item. */ -export type SubscriptionQuotaItem = ProxyResource & { - /** - * The system meta data relating to this resource. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly systemData?: SystemData; - /** - * The current quota value. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly current?: number; - /** - * The default quota value. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly default?: number; }; -/** Subvolume Information properties */ -export type SubvolumeInfo = ProxyResource & { - /** - * The system meta data relating to this resource. - * NOTE: This property will not be serialized. It can only be populated by the server. - */ - readonly systemData?: SystemData; - /** Path to the subvolume */ - path?: string; - /** Truncate subvolume to the provided size in bytes */ - size?: number; - /** parent path to the subvolume */ - parentPath?: string; +/** Quota Rule of a Volume */ +export type VolumeQuotaRule = TrackedResource & { /** - * Azure lifecycle management + * Gets the status of the VolumeQuotaRule at the time the operation was called. * NOTE: This property will not be serialized. It can only be populated by the server. */ - readonly provisioningState?: string; + readonly provisioningState?: ProvisioningState; + /** Size of quota */ + quotaSizeInKiBs?: number; + /** Type of quota */ + quotaType?: Type; + /** UserID/GroupID/SID based on the quota target type. UserID and groupID can be found by running ‘id’ or ‘getent’ command for the user or group and SID can be found by running */ + quotaTarget?: string; }; /** Known values of {@link MetricAggregationType} that the service accepts. */ @@ -2081,6 +2036,21 @@ export enum KnownSecurityStyle { */ export type SecurityStyle = string; +/** Known values of {@link EncryptionKeySource} that the service accepts. */ +export enum KnownEncryptionKeySource { + /** Microsoft-managed key encryption */ + MicrosoftNetApp = "Microsoft.NetApp" +} + +/** + * Defines values for EncryptionKeySource. \ + * {@link KnownEncryptionKeySource} can be used interchangeably with EncryptionKeySource, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **Microsoft.NetApp**: Microsoft-managed key encryption + */ +export type EncryptionKeySource = string; + /** Known values of {@link AvsDataStore} that the service accepts. */ export enum KnownAvsDataStore { /** avsDataStore is enabled */ @@ -2169,6 +2139,30 @@ export enum KnownBackupType { */ export type BackupType = string; +/** Known values of {@link Type} that the service accepts. */ +export enum KnownType { + /** Default user quota */ + DefaultUserQuota = "DefaultUserQuota", + /** Default group quota */ + DefaultGroupQuota = "DefaultGroupQuota", + /** Individual user quota */ + IndividualUserQuota = "IndividualUserQuota", + /** Individual group quota */ + IndividualGroupQuota = "IndividualGroupQuota" +} + +/** + * Defines values for Type. \ + * {@link KnownType} can be used interchangeably with Type, + * this enum contains the known values that the service supports. + * ### Known values supported by the service + * **DefaultUserQuota**: Default user quota \ + * **DefaultGroupQuota**: Default group quota \ + * **IndividualUserQuota**: Individual user quota \ + * **IndividualGroupQuota**: Individual group quota + */ +export type Type = string; + /** Known values of {@link ApplicationType} that the service accepts. */ export enum KnownApplicationType { SAPHana = "SAP-HANA" @@ -2182,6 +2176,15 @@ export enum KnownApplicationType { * **SAP-HANA** */ export type ApplicationType = string; +/** Defines values for ProvisioningState. */ +export type ProvisioningState = + | "Accepted" + | "Creating" + | "Patching" + | "Deleting" + | "Moving" + | "Failed" + | "Succeeded"; /** Optional parameters. */ export interface OperationsListOptionalParams @@ -2400,6 +2403,15 @@ export interface VolumesRevertOptionalParams resumeFrom?: string; } +/** Optional parameters. */ +export interface VolumesResetCifsPasswordOptionalParams + 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; +} + /** Optional parameters. */ export interface VolumesBreakReplicationOptionalParams extends coreClient.OperationOptions { @@ -2418,6 +2430,13 @@ export interface VolumesReplicationStatusOptionalParams /** Contains response data for the replicationStatus operation. */ export type VolumesReplicationStatusResponse = ReplicationStatus; +/** Optional parameters. */ +export interface VolumesListReplicationsOptionalParams + extends coreClient.OperationOptions {} + +/** Contains response data for the listReplications operation. */ +export type VolumesListReplicationsResponse = ListReplications; + /** Optional parameters. */ export interface VolumesResyncReplicationOptionalParams extends coreClient.OperationOptions { @@ -2463,6 +2482,33 @@ export interface VolumesPoolChangeOptionalParams resumeFrom?: string; } +/** Optional parameters. */ +export interface VolumesRelocateOptionalParams + 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; +} + +/** Optional parameters. */ +export interface VolumesFinalizeRelocationOptionalParams + 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; +} + +/** Optional parameters. */ +export interface VolumesRevertRelocationOptionalParams + 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; +} + /** Optional parameters. */ export interface VolumesListNextOptionalParams extends coreClient.OperationOptions {} @@ -2707,6 +2753,53 @@ export interface BackupPoliciesDeleteOptionalParams resumeFrom?: string; } +/** Optional parameters. */ +export interface VolumeQuotaRulesListByVolumeOptionalParams + extends coreClient.OperationOptions {} + +/** Contains response data for the listByVolume operation. */ +export type VolumeQuotaRulesListByVolumeResponse = VolumeQuotaRulesList; + +/** Optional parameters. */ +export interface VolumeQuotaRulesGetOptionalParams + extends coreClient.OperationOptions {} + +/** Contains response data for the get operation. */ +export type VolumeQuotaRulesGetResponse = VolumeQuotaRule; + +/** Optional parameters. */ +export interface VolumeQuotaRulesCreateOptionalParams + 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 create operation. */ +export type VolumeQuotaRulesCreateResponse = VolumeQuotaRule; + +/** Optional parameters. */ +export interface VolumeQuotaRulesUpdateOptionalParams + extends coreClient.OperationOptions { + /** Delay to wait until next poll, in milliseconds. */ + updateIntervalInMs?: number; + /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */ + resumeFrom?: string; +} + +/** Contains response data for the update operation. */ +export type VolumeQuotaRulesUpdateResponse = VolumeQuotaRule; + +/** Optional parameters. */ +export interface VolumeQuotaRulesDeleteOptionalParams + 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; +} + /** Optional parameters. */ export interface VaultsListOptionalParams extends coreClient.OperationOptions {} diff --git a/sdk/netapp/arm-netapp/src/models/mappers.ts b/sdk/netapp/arm-netapp/src/models/mappers.ts index 0a570455a866..59b2f6f9981e 100644 --- a/sdk/netapp/arm-netapp/src/models/mappers.ts +++ b/sdk/netapp/arm-netapp/src/models/mappers.ts @@ -424,51 +424,6 @@ export const SubscriptionQuotaItemList: coreClient.CompositeMapper = { } }; -export const SystemData: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "SystemData", - modelProperties: { - createdBy: { - serializedName: "createdBy", - type: { - name: "String" - } - }, - createdByType: { - serializedName: "createdByType", - type: { - name: "String" - } - }, - createdAt: { - serializedName: "createdAt", - type: { - name: "DateTime" - } - }, - lastModifiedBy: { - serializedName: "lastModifiedBy", - type: { - name: "String" - } - }, - lastModifiedByType: { - serializedName: "lastModifiedByType", - type: { - name: "String" - } - }, - lastModifiedAt: { - serializedName: "lastModifiedAt", - type: { - name: "DateTime" - } - } - } - } -}; - export const Resource: coreClient.CompositeMapper = { type: { name: "Composite", @@ -494,116 +449,84 @@ export const Resource: coreClient.CompositeMapper = { type: { name: "String" } - } - } - } -}; - -export const NetAppAccountList: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "NetAppAccountList", - modelProperties: { - value: { - serializedName: "value", - type: { - name: "Sequence", - element: { - type: { - name: "Composite", - className: "NetAppAccount" - } - } - } }, - nextLink: { - serializedName: "nextLink", + systemData: { + serializedName: "systemData", type: { - name: "String" + name: "Composite", + className: "SystemData" } } } } }; -export const NetAppAccount: coreClient.CompositeMapper = { +export const SystemData: coreClient.CompositeMapper = { type: { name: "Composite", - className: "NetAppAccount", + className: "SystemData", modelProperties: { - location: { - serializedName: "location", - required: true, + createdBy: { + serializedName: "createdBy", type: { name: "String" } }, - id: { - serializedName: "id", - readOnly: true, + createdByType: { + serializedName: "createdByType", type: { name: "String" } }, - name: { - serializedName: "name", - readOnly: true, + createdAt: { + serializedName: "createdAt", type: { - name: "String" + name: "DateTime" } }, - etag: { - serializedName: "etag", - readOnly: true, + lastModifiedBy: { + serializedName: "lastModifiedBy", type: { name: "String" } }, - type: { - serializedName: "type", - readOnly: true, + lastModifiedByType: { + serializedName: "lastModifiedByType", type: { name: "String" } }, - tags: { - serializedName: "tags", - type: { - name: "Dictionary", - value: { type: { name: "String" } } - } - }, - systemData: { - serializedName: "systemData", - type: { - name: "Composite", - className: "SystemData" - } - }, - provisioningState: { - serializedName: "properties.provisioningState", - readOnly: true, + lastModifiedAt: { + serializedName: "lastModifiedAt", type: { - name: "String" + name: "DateTime" } - }, - activeDirectories: { - serializedName: "properties.activeDirectories", + } + } + } +}; + +export const NetAppAccountList: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "NetAppAccountList", + modelProperties: { + value: { + serializedName: "value", type: { name: "Sequence", element: { type: { name: "Composite", - className: "ActiveDirectory" + className: "NetAppAccount" } } } }, - encryption: { - serializedName: "properties.encryption", + nextLink: { + serializedName: "nextLink", type: { - name: "Composite", - className: "AccountEncryption" + name: "String" } } } @@ -985,14 +908,13 @@ export const CapacityPoolList: coreClient.CompositeMapper = { } }; -export const CapacityPool: coreClient.CompositeMapper = { +export const CapacityPoolPatch: coreClient.CompositeMapper = { type: { name: "Composite", - className: "CapacityPool", + className: "CapacityPoolPatch", modelProperties: { location: { serializedName: "location", - required: true, type: { name: "String" } @@ -1011,13 +933,6 @@ export const CapacityPool: coreClient.CompositeMapper = { name: "String" } }, - etag: { - serializedName: "etag", - readOnly: true, - type: { - name: "String" - } - }, type: { serializedName: "type", readOnly: true, @@ -1032,60 +947,9 @@ export const CapacityPool: coreClient.CompositeMapper = { value: { type: { name: "String" } } } }, - systemData: { - serializedName: "systemData", - type: { - name: "Composite", - className: "SystemData" - } - }, - poolId: { - 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: "properties.poolId", - readOnly: true, - type: { - name: "String" - } - }, size: { defaultValue: 4398046511104, serializedName: "properties.size", - required: true, - type: { - name: "Number" - } - }, - serviceLevel: { - defaultValue: "Premium", - serializedName: "properties.serviceLevel", - required: true, - type: { - name: "String" - } - }, - provisioningState: { - serializedName: "properties.provisioningState", - readOnly: true, - type: { - name: "String" - } - }, - totalThroughputMibps: { - serializedName: "properties.totalThroughputMibps", - readOnly: true, - type: { - name: "Number" - } - }, - utilizedThroughputMibps: { - serializedName: "properties.utilizedThroughputMibps", - readOnly: true, type: { name: "Number" } @@ -1095,18 +959,30 @@ export const CapacityPool: coreClient.CompositeMapper = { type: { name: "String" } - }, - coolAccess: { - defaultValue: false, - serializedName: "properties.coolAccess", + } + } + } +}; + +export const VolumeList: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "VolumeList", + modelProperties: { + value: { + serializedName: "value", type: { - name: "Boolean" + name: "Sequence", + element: { + type: { + name: "Composite", + className: "Volume" + } + } } }, - encryptionType: { - defaultValue: "Single", - serializedName: "properties.encryptionType", - nullable: true, + nextLink: { + serializedName: "nextLink", type: { name: "String" } @@ -1115,412 +991,400 @@ export const CapacityPool: coreClient.CompositeMapper = { } }; -export const CapacityPoolPatch: coreClient.CompositeMapper = { +export const VolumePropertiesExportPolicy: coreClient.CompositeMapper = { type: { name: "Composite", - className: "CapacityPoolPatch", + className: "VolumePropertiesExportPolicy", modelProperties: { - location: { - serializedName: "location", - type: { - name: "String" - } - }, - id: { - serializedName: "id", - readOnly: true, - type: { - name: "String" - } - }, - name: { - serializedName: "name", - readOnly: true, - type: { - name: "String" - } - }, - type: { - serializedName: "type", - readOnly: true, - type: { - name: "String" - } - }, - tags: { - serializedName: "tags", - type: { - name: "Dictionary", - value: { type: { name: "String" } } - } - }, - size: { - defaultValue: 4398046511104, - serializedName: "properties.size", - type: { - name: "Number" - } - }, - qosType: { - serializedName: "properties.qosType", - type: { - name: "String" - } - } - } - } -}; - -export const VolumeList: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "VolumeList", - modelProperties: { - value: { - serializedName: "value", + rules: { + serializedName: "rules", type: { name: "Sequence", element: { type: { name: "Composite", - className: "Volume" + className: "ExportPolicyRule" } } } - }, - nextLink: { - serializedName: "nextLink", - type: { - name: "String" - } } } } }; -export const Volume: coreClient.CompositeMapper = { +export const ExportPolicyRule: coreClient.CompositeMapper = { type: { name: "Composite", - className: "Volume", + className: "ExportPolicyRule", modelProperties: { - location: { - serializedName: "location", - required: true, + ruleIndex: { + serializedName: "ruleIndex", type: { - name: "String" + name: "Number" } }, - id: { - serializedName: "id", - readOnly: true, + unixReadOnly: { + serializedName: "unixReadOnly", type: { - name: "String" + name: "Boolean" } }, - name: { - serializedName: "name", - readOnly: true, + unixReadWrite: { + serializedName: "unixReadWrite", type: { - name: "String" + name: "Boolean" } }, - etag: { - serializedName: "etag", - readOnly: true, + kerberos5ReadOnly: { + defaultValue: false, + serializedName: "kerberos5ReadOnly", type: { - name: "String" + name: "Boolean" } }, - type: { - serializedName: "type", - readOnly: true, + kerberos5ReadWrite: { + defaultValue: false, + serializedName: "kerberos5ReadWrite", type: { - name: "String" + name: "Boolean" } }, - tags: { - serializedName: "tags", + kerberos5IReadOnly: { + defaultValue: false, + serializedName: "kerberos5iReadOnly", type: { - name: "Dictionary", - value: { type: { name: "String" } } + name: "Boolean" } }, - systemData: { - serializedName: "systemData", + kerberos5IReadWrite: { + defaultValue: false, + serializedName: "kerberos5iReadWrite", type: { - name: "Composite", - className: "SystemData" + name: "Boolean" } }, - fileSystemId: { - 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: "properties.fileSystemId", - readOnly: true, + kerberos5PReadOnly: { + defaultValue: false, + serializedName: "kerberos5pReadOnly", type: { - name: "String" + name: "Boolean" } }, - creationToken: { - constraints: { - Pattern: new RegExp("^[a-zA-Z][a-zA-Z0-9\\-]{0,79}$"), - MaxLength: 80, - MinLength: 1 - }, - serializedName: "properties.creationToken", - required: true, + kerberos5PReadWrite: { + defaultValue: false, + serializedName: "kerberos5pReadWrite", type: { - name: "String" + name: "Boolean" } }, - serviceLevel: { - defaultValue: "Premium", - serializedName: "properties.serviceLevel", + cifs: { + serializedName: "cifs", type: { - name: "String" + name: "Boolean" } }, - usageThreshold: { - defaultValue: 107374182400, - constraints: { - InclusiveMaximum: 109951162777600, - InclusiveMinimum: 107374182400 - }, - serializedName: "properties.usageThreshold", - required: true, + nfsv3: { + serializedName: "nfsv3", type: { - name: "Number" + name: "Boolean" } }, - exportPolicy: { - serializedName: "properties.exportPolicy", + nfsv41: { + serializedName: "nfsv41", type: { - name: "Composite", - className: "VolumePropertiesExportPolicy" + name: "Boolean" } }, - protocolTypes: { - serializedName: "properties.protocolTypes", + allowedClients: { + serializedName: "allowedClients", type: { - name: "Sequence", - element: { - type: { - name: "String" - } - } + name: "String" } }, - provisioningState: { - serializedName: "properties.provisioningState", - readOnly: true, + hasRootAccess: { + defaultValue: true, + serializedName: "hasRootAccess", type: { - name: "String" + name: "Boolean" } }, - snapshotId: { + chownMode: { + defaultValue: "Restricted", + serializedName: "chownMode", + type: { + name: "String" + } + } + } + } +}; + +export const MountTargetProperties: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "MountTargetProperties", + modelProperties: { + mountTargetId: { 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}|(\\\\?([^\\/]*[\\/])*)([^\\/]+)$" + "^[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: "properties.snapshotId", - nullable: true, + serializedName: "mountTargetId", + readOnly: true, type: { name: "String" } }, - backupId: { + fileSystemId: { 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}|(\\\\?([^\\/]*[\\/])*)([^\\/]+)$" + "^[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: "properties.backupId", - nullable: true, + serializedName: "fileSystemId", + required: true, type: { name: "String" } }, - baremetalTenantId: { - serializedName: "properties.baremetalTenantId", + ipAddress: { + serializedName: "ipAddress", readOnly: true, type: { name: "String" } }, - subnetId: { - serializedName: "properties.subnetId", - required: true, + smbServerFqdn: { + serializedName: "smbServerFqdn", type: { name: "String" } + } + } + } +}; + +export const VolumePropertiesDataProtection: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "VolumePropertiesDataProtection", + modelProperties: { + backup: { + serializedName: "backup", + type: { + name: "Composite", + className: "VolumeBackupProperties" + } }, - networkFeatures: { - defaultValue: "Basic", - serializedName: "properties.networkFeatures", + replication: { + serializedName: "replication", type: { - name: "String" + name: "Composite", + className: "ReplicationObject" } }, - networkSiblingSetId: { - 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: "properties.networkSiblingSetId", - readOnly: true, + snapshot: { + serializedName: "snapshot", type: { - name: "String" + name: "Composite", + className: "VolumeSnapshotProperties" } - }, - storageToNetworkProximity: { - serializedName: "properties.storageToNetworkProximity", - readOnly: true, + } + } + } +}; + +export const VolumeBackupProperties: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "VolumeBackupProperties", + modelProperties: { + backupPolicyId: { + serializedName: "backupPolicyId", type: { name: "String" } }, - mountTargets: { - serializedName: "properties.mountTargets", - readOnly: true, + policyEnforced: { + serializedName: "policyEnforced", type: { - name: "Sequence", - element: { - type: { - name: "Composite", - className: "MountTargetProperties" - } - } + name: "Boolean" } }, - volumeType: { - serializedName: "properties.volumeType", + vaultId: { + serializedName: "vaultId", type: { name: "String" } }, - dataProtection: { - serializedName: "properties.dataProtection", + backupEnabled: { + serializedName: "backupEnabled", type: { - name: "Composite", - className: "VolumePropertiesDataProtection" + name: "Boolean" + } + } + } + } +}; + +export const ReplicationObject: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "ReplicationObject", + modelProperties: { + replicationId: { + serializedName: "replicationId", + type: { + name: "String" } }, - isRestoring: { - serializedName: "properties.isRestoring", + endpointType: { + serializedName: "endpointType", type: { - name: "Boolean" + name: "String" } }, - snapshotDirectoryVisible: { - defaultValue: true, - serializedName: "properties.snapshotDirectoryVisible", + replicationSchedule: { + serializedName: "replicationSchedule", type: { - name: "Boolean" + name: "String" } }, - kerberosEnabled: { - defaultValue: false, - serializedName: "properties.kerberosEnabled", + remoteVolumeResourceId: { + serializedName: "remoteVolumeResourceId", + required: true, type: { - name: "Boolean" + name: "String" } }, - securityStyle: { - defaultValue: "unix", - serializedName: "properties.securityStyle", + remoteVolumeRegion: { + serializedName: "remoteVolumeRegion", + type: { + name: "String" + } + } + } + } +}; + +export const VolumeSnapshotProperties: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "VolumeSnapshotProperties", + modelProperties: { + snapshotPolicyId: { + serializedName: "snapshotPolicyId", + type: { + name: "String" + } + } + } + } +}; + +export const PlacementKeyValuePairs: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "PlacementKeyValuePairs", + modelProperties: { + key: { + serializedName: "key", + required: true, type: { name: "String" } }, - smbEncryption: { - defaultValue: false, - serializedName: "properties.smbEncryption", + value: { + serializedName: "value", + required: true, type: { - name: "Boolean" + name: "String" + } + } + } + } +}; + +export const VolumePatch: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "VolumePatch", + modelProperties: { + location: { + serializedName: "location", + type: { + name: "String" } }, - smbContinuouslyAvailable: { - defaultValue: false, - serializedName: "properties.smbContinuouslyAvailable", + id: { + serializedName: "id", + readOnly: true, type: { - name: "Boolean" + name: "String" } }, - throughputMibps: { - defaultValue: 0, - serializedName: "properties.throughputMibps", + name: { + serializedName: "name", + readOnly: true, type: { - name: "Number" + name: "String" } }, - encryptionKeySource: { - serializedName: "properties.encryptionKeySource", + type: { + serializedName: "type", + readOnly: true, type: { name: "String" } }, - ldapEnabled: { - defaultValue: false, - serializedName: "properties.ldapEnabled", + tags: { + serializedName: "tags", type: { - name: "Boolean" + name: "Dictionary", + value: { type: { name: "String" } } } }, - coolAccess: { - defaultValue: false, - serializedName: "properties.coolAccess", + serviceLevel: { + defaultValue: "Premium", + serializedName: "properties.serviceLevel", type: { - name: "Boolean" + name: "String" } }, - coolnessPeriod: { + usageThreshold: { + defaultValue: 107374182400, constraints: { - InclusiveMaximum: 63, - InclusiveMinimum: 7 + InclusiveMaximum: 109951162777600, + InclusiveMinimum: 107374182400 }, - serializedName: "properties.coolnessPeriod", + serializedName: "properties.usageThreshold", type: { name: "Number" } }, - unixPermissions: { - defaultValue: "0770", - constraints: { - MaxLength: 4, - MinLength: 4 - }, - serializedName: "properties.unixPermissions", - nullable: true, + exportPolicy: { + serializedName: "properties.exportPolicy", type: { - name: "String" + name: "Composite", + className: "VolumePatchPropertiesExportPolicy" } }, - cloneProgress: { - serializedName: "properties.cloneProgress", - readOnly: true, - nullable: true, + throughputMibps: { + serializedName: "properties.throughputMibps", type: { name: "Number" } }, - avsDataStore: { - defaultValue: "Disabled", - serializedName: "properties.avsDataStore", + dataProtection: { + serializedName: "properties.dataProtection", type: { - name: "String" + name: "Composite", + className: "VolumePatchPropertiesDataProtection" } }, isDefaultQuotaEnabled: { @@ -1544,238 +1408,181 @@ export const Volume: coreClient.CompositeMapper = { name: "Number" } }, - maximumNumberOfFiles: { - serializedName: "properties.maximumNumberOfFiles", - readOnly: true, - type: { - name: "Number" - } - }, - volumeGroupName: { - serializedName: "properties.volumeGroupName", - readOnly: true, + unixPermissions: { + constraints: { + MaxLength: 4, + MinLength: 4 + }, + serializedName: "properties.unixPermissions", + nullable: true, type: { name: "String" } - }, - capacityPoolResourceId: { - serializedName: "properties.capacityPoolResourceId", - type: { - name: "String" - } - }, - proximityPlacementGroup: { - serializedName: "properties.proximityPlacementGroup", - type: { - name: "String" - } - }, - t2Network: { - serializedName: "properties.t2Network", - readOnly: true, - type: { - name: "String" - } - }, - volumeSpecName: { - serializedName: "properties.volumeSpecName", - type: { - name: "String" - } - }, - placementRules: { - serializedName: "properties.placementRules", + } + } + } +}; + +export const VolumePatchPropertiesExportPolicy: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "VolumePatchPropertiesExportPolicy", + modelProperties: { + rules: { + serializedName: "rules", type: { name: "Sequence", element: { type: { name: "Composite", - className: "PlacementKeyValuePairs" + className: "ExportPolicyRule" } } } + } + } + } +}; + +export const VolumePatchPropertiesDataProtection: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "VolumePatchPropertiesDataProtection", + modelProperties: { + backup: { + serializedName: "backup", + type: { + name: "Composite", + className: "VolumeBackupProperties" + } }, - enableSubvolumes: { - defaultValue: "Disabled", - serializedName: "properties.enableSubvolumes", + snapshot: { + serializedName: "snapshot", type: { - name: "String" + name: "Composite", + className: "VolumeSnapshotProperties" } } } } }; -export const VolumePropertiesExportPolicy: coreClient.CompositeMapper = { +export const VolumeRevert: coreClient.CompositeMapper = { type: { name: "Composite", - className: "VolumePropertiesExportPolicy", + className: "VolumeRevert", modelProperties: { - rules: { - serializedName: "rules", + snapshotId: { + serializedName: "snapshotId", type: { - name: "Sequence", - element: { - type: { - name: "Composite", - className: "ExportPolicyRule" - } - } + name: "String" } } } } }; -export const ExportPolicyRule: coreClient.CompositeMapper = { +export const BreakReplicationRequest: coreClient.CompositeMapper = { type: { name: "Composite", - className: "ExportPolicyRule", + className: "BreakReplicationRequest", modelProperties: { - ruleIndex: { - serializedName: "ruleIndex", - type: { - name: "Number" - } - }, - unixReadOnly: { - serializedName: "unixReadOnly", - type: { - name: "Boolean" - } - }, - unixReadWrite: { - serializedName: "unixReadWrite", - type: { - name: "Boolean" - } - }, - kerberos5ReadOnly: { - defaultValue: false, - serializedName: "kerberos5ReadOnly", - type: { - name: "Boolean" - } - }, - kerberos5ReadWrite: { - defaultValue: false, - serializedName: "kerberos5ReadWrite", - type: { - name: "Boolean" - } - }, - kerberos5IReadOnly: { - defaultValue: false, - serializedName: "kerberos5iReadOnly", - type: { - name: "Boolean" - } - }, - kerberos5IReadWrite: { - defaultValue: false, - serializedName: "kerberos5iReadWrite", - type: { - name: "Boolean" - } - }, - kerberos5PReadOnly: { - defaultValue: false, - serializedName: "kerberos5pReadOnly", - type: { - name: "Boolean" - } - }, - kerberos5PReadWrite: { - defaultValue: false, - serializedName: "kerberos5pReadWrite", + forceBreakReplication: { + serializedName: "forceBreakReplication", type: { name: "Boolean" } - }, - cifs: { - serializedName: "cifs", + } + } + } +}; + +export const ReplicationStatus: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "ReplicationStatus", + modelProperties: { + healthy: { + serializedName: "healthy", type: { name: "Boolean" } }, - nfsv3: { - serializedName: "nfsv3", + relationshipStatus: { + serializedName: "relationshipStatus", type: { - name: "Boolean" + name: "String" } }, - nfsv41: { - serializedName: "nfsv41", + mirrorState: { + serializedName: "mirrorState", type: { - name: "Boolean" + name: "String" } }, - allowedClients: { - serializedName: "allowedClients", + totalProgress: { + serializedName: "totalProgress", type: { name: "String" } }, - hasRootAccess: { - defaultValue: true, - serializedName: "hasRootAccess", + errorMessage: { + serializedName: "errorMessage", type: { - name: "Boolean" + name: "String" } - }, - chownMode: { - defaultValue: "Restricted", - serializedName: "chownMode", + } + } + } +}; + +export const ListReplications: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "ListReplications", + modelProperties: { + value: { + serializedName: "value", type: { - name: "String" + name: "Sequence", + element: { + type: { + name: "Composite", + className: "Replication" + } + } } } } } }; -export const MountTargetProperties: coreClient.CompositeMapper = { +export const Replication: coreClient.CompositeMapper = { type: { name: "Composite", - className: "MountTargetProperties", + className: "Replication", modelProperties: { - mountTargetId: { - 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: "mountTargetId", - readOnly: true, + endpointType: { + serializedName: "endpointType", type: { name: "String" } }, - fileSystemId: { - 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: "fileSystemId", - required: true, + replicationSchedule: { + serializedName: "replicationSchedule", type: { name: "String" } }, - ipAddress: { - serializedName: "ipAddress", - readOnly: true, + remoteVolumeResourceId: { + serializedName: "remoteVolumeResourceId", + required: true, type: { name: "String" } }, - smbServerFqdn: { - serializedName: "smbServerFqdn", + remoteVolumeRegion: { + serializedName: "remoteVolumeRegion", type: { name: "String" } @@ -1784,116 +1591,29 @@ export const MountTargetProperties: coreClient.CompositeMapper = { } }; -export const VolumePropertiesDataProtection: coreClient.CompositeMapper = { +export const AuthorizeRequest: coreClient.CompositeMapper = { type: { name: "Composite", - className: "VolumePropertiesDataProtection", + className: "AuthorizeRequest", modelProperties: { - backup: { - serializedName: "backup", - type: { - name: "Composite", - className: "VolumeBackupProperties" - } - }, - replication: { - serializedName: "replication", - type: { - name: "Composite", - className: "ReplicationObject" - } - }, - snapshot: { - serializedName: "snapshot", + remoteVolumeResourceId: { + serializedName: "remoteVolumeResourceId", type: { - name: "Composite", - className: "VolumeSnapshotProperties" + name: "String" } } } } }; -export const VolumeBackupProperties: coreClient.CompositeMapper = { +export const PoolChangeRequest: coreClient.CompositeMapper = { type: { name: "Composite", - className: "VolumeBackupProperties", + className: "PoolChangeRequest", modelProperties: { - backupPolicyId: { - serializedName: "backupPolicyId", - type: { - name: "String" - } - }, - policyEnforced: { - serializedName: "policyEnforced", - type: { - name: "Boolean" - } - }, - vaultId: { - serializedName: "vaultId", - type: { - name: "String" - } - }, - backupEnabled: { - serializedName: "backupEnabled", - type: { - name: "Boolean" - } - } - } - } -}; - -export const ReplicationObject: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "ReplicationObject", - modelProperties: { - replicationId: { - serializedName: "replicationId", - type: { - name: "String" - } - }, - endpointType: { - serializedName: "endpointType", - type: { - name: "String" - } - }, - replicationSchedule: { - serializedName: "replicationSchedule", - type: { - name: "String" - } - }, - remoteVolumeResourceId: { - serializedName: "remoteVolumeResourceId", - required: true, - type: { - name: "String" - } - }, - remoteVolumeRegion: { - serializedName: "remoteVolumeRegion", - type: { - name: "String" - } - } - } - } -}; - -export const VolumeSnapshotProperties: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "VolumeSnapshotProperties", - modelProperties: { - snapshotPolicyId: { - serializedName: "snapshotPolicyId", + newPoolResourceId: { + serializedName: "newPoolResourceId", + required: true, type: { name: "String" } @@ -1902,36 +1622,35 @@ export const VolumeSnapshotProperties: coreClient.CompositeMapper = { } }; -export const PlacementKeyValuePairs: coreClient.CompositeMapper = { +export const SnapshotsList: coreClient.CompositeMapper = { type: { name: "Composite", - className: "PlacementKeyValuePairs", + className: "SnapshotsList", modelProperties: { - key: { - serializedName: "key", - required: true, - type: { - name: "String" - } - }, value: { serializedName: "value", - required: true, type: { - name: "String" + name: "Sequence", + element: { + type: { + name: "Composite", + className: "Snapshot" + } + } } } } } }; -export const VolumePatch: coreClient.CompositeMapper = { +export const Snapshot: coreClient.CompositeMapper = { type: { name: "Composite", - className: "VolumePatch", + className: "Snapshot", modelProperties: { location: { serializedName: "location", + required: true, type: { name: "String" } @@ -1957,80 +1676,65 @@ export const VolumePatch: coreClient.CompositeMapper = { name: "String" } }, - tags: { - serializedName: "tags", - type: { - name: "Dictionary", - value: { type: { name: "String" } } - } - }, - serviceLevel: { - defaultValue: "Premium", - serializedName: "properties.serviceLevel", - type: { - name: "String" - } - }, - usageThreshold: { - defaultValue: 107374182400, + snapshotId: { constraints: { - InclusiveMaximum: 109951162777600, - InclusiveMinimum: 107374182400 + 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: "properties.usageThreshold", - type: { - name: "Number" - } - }, - exportPolicy: { - serializedName: "properties.exportPolicy", - type: { - name: "Composite", - className: "VolumePatchPropertiesExportPolicy" - } - }, - throughputMibps: { - defaultValue: 0, - serializedName: "properties.throughputMibps", - type: { - name: "Number" - } - }, - dataProtection: { - serializedName: "properties.dataProtection", + serializedName: "properties.snapshotId", + readOnly: true, type: { - name: "Composite", - className: "VolumePatchPropertiesDataProtection" + name: "String" } }, - isDefaultQuotaEnabled: { - defaultValue: false, - serializedName: "properties.isDefaultQuotaEnabled", + created: { + serializedName: "properties.created", + readOnly: true, type: { - name: "Boolean" + name: "DateTime" } }, - defaultUserQuotaInKiBs: { - defaultValue: 0, - serializedName: "properties.defaultUserQuotaInKiBs", + provisioningState: { + serializedName: "properties.provisioningState", + readOnly: true, type: { - name: "Number" + name: "String" } - }, - defaultGroupQuotaInKiBs: { - defaultValue: 0, - serializedName: "properties.defaultGroupQuotaInKiBs", + } + } + } +}; + +export const SnapshotRestoreFiles: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "SnapshotRestoreFiles", + modelProperties: { + filePaths: { + constraints: { + MinItems: 1, + MaxItems: 10 + }, + serializedName: "filePaths", + required: true, type: { - name: "Number" + name: "Sequence", + element: { + constraints: { + MaxLength: 1024, + MinLength: 1 + }, + type: { + name: "String" + } + } } }, - unixPermissions: { - constraints: { - MaxLength: 4, - MinLength: 4 - }, - serializedName: "properties.unixPermissions", - nullable: true, + destinationPath: { + serializedName: "destinationPath", type: { name: "String" } @@ -2039,19 +1743,19 @@ export const VolumePatch: coreClient.CompositeMapper = { } }; -export const VolumePatchPropertiesExportPolicy: coreClient.CompositeMapper = { +export const SnapshotPoliciesList: coreClient.CompositeMapper = { type: { name: "Composite", - className: "VolumePatchPropertiesExportPolicy", + className: "SnapshotPoliciesList", modelProperties: { - rules: { - serializedName: "rules", + value: { + serializedName: "value", type: { name: "Sequence", element: { type: { name: "Composite", - className: "ExportPolicyRule" + className: "SnapshotPolicy" } } } @@ -2060,158 +1764,151 @@ export const VolumePatchPropertiesExportPolicy: coreClient.CompositeMapper = { } }; -export const VolumePatchPropertiesDataProtection: coreClient.CompositeMapper = { +export const HourlySchedule: coreClient.CompositeMapper = { type: { name: "Composite", - className: "VolumePatchPropertiesDataProtection", + className: "HourlySchedule", modelProperties: { - backup: { - serializedName: "backup", + snapshotsToKeep: { + serializedName: "snapshotsToKeep", type: { - name: "Composite", - className: "VolumeBackupProperties" + name: "Number" } }, - snapshot: { - serializedName: "snapshot", + minute: { + serializedName: "minute", type: { - name: "Composite", - className: "VolumeSnapshotProperties" + name: "Number" } - } - } - } -}; - -export const VolumeRevert: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "VolumeRevert", - modelProperties: { - snapshotId: { - serializedName: "snapshotId", + }, + usedBytes: { + serializedName: "usedBytes", type: { - name: "String" + name: "Number" } } } } }; -export const BreakReplicationRequest: coreClient.CompositeMapper = { +export const DailySchedule: coreClient.CompositeMapper = { type: { name: "Composite", - className: "BreakReplicationRequest", + className: "DailySchedule", modelProperties: { - forceBreakReplication: { - serializedName: "forceBreakReplication", + snapshotsToKeep: { + serializedName: "snapshotsToKeep", type: { - name: "Boolean" + name: "Number" + } + }, + hour: { + serializedName: "hour", + type: { + name: "Number" + } + }, + minute: { + serializedName: "minute", + type: { + name: "Number" + } + }, + usedBytes: { + serializedName: "usedBytes", + type: { + name: "Number" } } } } }; -export const ReplicationStatus: coreClient.CompositeMapper = { +export const WeeklySchedule: coreClient.CompositeMapper = { type: { name: "Composite", - className: "ReplicationStatus", + className: "WeeklySchedule", modelProperties: { - healthy: { - serializedName: "healthy", + snapshotsToKeep: { + serializedName: "snapshotsToKeep", type: { - name: "Boolean" + name: "Number" } }, - relationshipStatus: { - serializedName: "relationshipStatus", + day: { + serializedName: "day", type: { name: "String" } }, - mirrorState: { - serializedName: "mirrorState", + hour: { + serializedName: "hour", type: { - name: "String" + name: "Number" } }, - totalProgress: { - serializedName: "totalProgress", + minute: { + serializedName: "minute", type: { - name: "String" + name: "Number" } }, - errorMessage: { - serializedName: "errorMessage", + usedBytes: { + serializedName: "usedBytes", type: { - name: "String" + name: "Number" } } } } }; -export const AuthorizeRequest: coreClient.CompositeMapper = { +export const MonthlySchedule: coreClient.CompositeMapper = { type: { name: "Composite", - className: "AuthorizeRequest", + className: "MonthlySchedule", modelProperties: { - remoteVolumeResourceId: { - serializedName: "remoteVolumeResourceId", + snapshotsToKeep: { + serializedName: "snapshotsToKeep", type: { - name: "String" + name: "Number" } - } - } - } -}; - -export const PoolChangeRequest: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "PoolChangeRequest", - modelProperties: { - newPoolResourceId: { - serializedName: "newPoolResourceId", - required: true, + }, + daysOfMonth: { + serializedName: "daysOfMonth", type: { name: "String" } - } - } - } -}; - -export const SnapshotsList: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "SnapshotsList", - modelProperties: { - value: { - serializedName: "value", + }, + hour: { + serializedName: "hour", type: { - name: "Sequence", - element: { - type: { - name: "Composite", - className: "Snapshot" - } - } + name: "Number" + } + }, + minute: { + serializedName: "minute", + type: { + name: "Number" + } + }, + usedBytes: { + serializedName: "usedBytes", + type: { + name: "Number" } } } } }; -export const Snapshot: coreClient.CompositeMapper = { +export const SnapshotPolicyPatch: coreClient.CompositeMapper = { type: { name: "Composite", - className: "Snapshot", + className: "SnapshotPolicyPatch", modelProperties: { location: { serializedName: "location", - required: true, type: { name: "String" } @@ -2237,65 +1934,50 @@ export const Snapshot: coreClient.CompositeMapper = { name: "String" } }, - snapshotId: { - 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: "properties.snapshotId", - readOnly: true, + tags: { + serializedName: "tags", type: { - name: "String" + name: "Dictionary", + value: { type: { name: "String" } } } }, - created: { - serializedName: "properties.created", - readOnly: true, + hourlySchedule: { + serializedName: "properties.hourlySchedule", type: { - name: "DateTime" + name: "Composite", + className: "HourlySchedule" } }, - provisioningState: { - serializedName: "properties.provisioningState", - readOnly: true, + dailySchedule: { + serializedName: "properties.dailySchedule", type: { - name: "String" + name: "Composite", + className: "DailySchedule" } - } - } - } -}; - -export const SnapshotRestoreFiles: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "SnapshotRestoreFiles", - modelProperties: { - filePaths: { - constraints: { - MinItems: 1, - MaxItems: 10 - }, - serializedName: "filePaths", - required: true, + }, + weeklySchedule: { + serializedName: "properties.weeklySchedule", type: { - name: "Sequence", - element: { - constraints: { - MaxLength: 1024, - MinLength: 1 - }, - type: { - name: "String" - } - } + name: "Composite", + className: "WeeklySchedule" } }, - destinationPath: { - serializedName: "destinationPath", + monthlySchedule: { + serializedName: "properties.monthlySchedule", + type: { + name: "Composite", + className: "MonthlySchedule" + } + }, + enabled: { + serializedName: "properties.enabled", + type: { + name: "Boolean" + } + }, + provisioningState: { + serializedName: "properties.provisioningState", + readOnly: true, type: { name: "String" } @@ -2304,10 +1986,10 @@ export const SnapshotRestoreFiles: coreClient.CompositeMapper = { } }; -export const SnapshotPoliciesList: coreClient.CompositeMapper = { +export const SnapshotPolicyVolumeList: coreClient.CompositeMapper = { type: { name: "Composite", - className: "SnapshotPoliciesList", + className: "SnapshotPolicyVolumeList", modelProperties: { value: { serializedName: "value", @@ -2316,7 +1998,7 @@ export const SnapshotPoliciesList: coreClient.CompositeMapper = { element: { type: { name: "Composite", - className: "SnapshotPolicy" + className: "Volume" } } } @@ -2325,331 +2007,338 @@ export const SnapshotPoliciesList: coreClient.CompositeMapper = { } }; -export const SnapshotPolicy: coreClient.CompositeMapper = { +export const BackupStatus: coreClient.CompositeMapper = { type: { name: "Composite", - className: "SnapshotPolicy", + className: "BackupStatus", modelProperties: { - location: { - serializedName: "location", - required: true, + healthy: { + serializedName: "healthy", + readOnly: true, type: { - name: "String" + name: "Boolean" } }, - id: { - serializedName: "id", + relationshipStatus: { + serializedName: "relationshipStatus", readOnly: true, type: { name: "String" } }, - name: { - serializedName: "name", + mirrorState: { + serializedName: "mirrorState", readOnly: true, type: { name: "String" } }, - etag: { - serializedName: "etag", + unhealthyReason: { + serializedName: "unhealthyReason", readOnly: true, type: { name: "String" } }, - type: { - serializedName: "type", + errorMessage: { + serializedName: "errorMessage", readOnly: true, type: { name: "String" } }, - tags: { - serializedName: "tags", + lastTransferSize: { + serializedName: "lastTransferSize", + readOnly: true, type: { - name: "Dictionary", - value: { type: { name: "String" } } + name: "Number" } }, - systemData: { - serializedName: "systemData", + lastTransferType: { + serializedName: "lastTransferType", + readOnly: true, type: { - name: "Composite", - className: "SystemData" + name: "String" } }, - hourlySchedule: { - serializedName: "properties.hourlySchedule", + totalTransferBytes: { + serializedName: "totalTransferBytes", + readOnly: true, type: { - name: "Composite", - className: "HourlySchedule" + name: "Number" } - }, - dailySchedule: { - serializedName: "properties.dailySchedule", + } + } + } +}; + +export const RestoreStatus: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "RestoreStatus", + modelProperties: { + healthy: { + serializedName: "healthy", + readOnly: true, type: { - name: "Composite", - className: "DailySchedule" + name: "Boolean" } }, - weeklySchedule: { - serializedName: "properties.weeklySchedule", + relationshipStatus: { + serializedName: "relationshipStatus", + readOnly: true, type: { - name: "Composite", - className: "WeeklySchedule" + name: "String" } }, - monthlySchedule: { - serializedName: "properties.monthlySchedule", + mirrorState: { + serializedName: "mirrorState", + readOnly: true, type: { - name: "Composite", - className: "MonthlySchedule" + name: "String" } }, - enabled: { - serializedName: "properties.enabled", + unhealthyReason: { + serializedName: "unhealthyReason", + readOnly: true, type: { - name: "Boolean" + name: "String" } }, - provisioningState: { - serializedName: "properties.provisioningState", + errorMessage: { + serializedName: "errorMessage", readOnly: true, type: { name: "String" } + }, + totalTransferBytes: { + serializedName: "totalTransferBytes", + readOnly: true, + type: { + name: "Number" + } } } } }; -export const HourlySchedule: coreClient.CompositeMapper = { +export const BackupsList: coreClient.CompositeMapper = { type: { name: "Composite", - className: "HourlySchedule", + className: "BackupsList", modelProperties: { - snapshotsToKeep: { - serializedName: "snapshotsToKeep", - type: { - name: "Number" - } - }, - minute: { - serializedName: "minute", - type: { - name: "Number" - } - }, - usedBytes: { - serializedName: "usedBytes", + value: { + serializedName: "value", type: { - name: "Number" + name: "Sequence", + element: { + type: { + name: "Composite", + className: "Backup" + } + } } } } } }; -export const DailySchedule: coreClient.CompositeMapper = { +export const Backup: coreClient.CompositeMapper = { type: { name: "Composite", - className: "DailySchedule", + className: "Backup", modelProperties: { - snapshotsToKeep: { - serializedName: "snapshotsToKeep", + location: { + serializedName: "location", + required: true, type: { - name: "Number" + name: "String" } }, - hour: { - serializedName: "hour", + id: { + serializedName: "id", + readOnly: true, type: { - name: "Number" + name: "String" } }, - minute: { - serializedName: "minute", + name: { + serializedName: "name", + readOnly: true, type: { - name: "Number" + name: "String" } }, - usedBytes: { - serializedName: "usedBytes", - type: { - name: "Number" - } - } - } - } -}; - -export const WeeklySchedule: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "WeeklySchedule", - modelProperties: { - snapshotsToKeep: { - serializedName: "snapshotsToKeep", + type: { + serializedName: "type", + readOnly: true, type: { - name: "Number" + name: "String" } }, - day: { - serializedName: "day", + backupId: { + 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: "properties.backupId", + readOnly: true, type: { name: "String" } }, - hour: { - serializedName: "hour", + creationDate: { + serializedName: "properties.creationDate", + readOnly: true, type: { - name: "Number" + name: "DateTime" } }, - minute: { - serializedName: "minute", + provisioningState: { + serializedName: "properties.provisioningState", + readOnly: true, type: { - name: "Number" + name: "String" } }, - usedBytes: { - serializedName: "usedBytes", + size: { + serializedName: "properties.size", + readOnly: true, type: { name: "Number" } - } - } - } -}; - -export const MonthlySchedule: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "MonthlySchedule", - modelProperties: { - snapshotsToKeep: { - serializedName: "snapshotsToKeep", + }, + label: { + serializedName: "properties.label", type: { - name: "Number" + name: "String" } }, - daysOfMonth: { - serializedName: "daysOfMonth", + backupType: { + serializedName: "properties.backupType", + readOnly: true, type: { name: "String" } }, - hour: { - serializedName: "hour", + failureReason: { + serializedName: "properties.failureReason", + readOnly: true, type: { - name: "Number" + name: "String" } }, - minute: { - serializedName: "minute", + volumeName: { + serializedName: "properties.volumeName", + readOnly: true, type: { - name: "Number" + name: "String" } }, - usedBytes: { - serializedName: "usedBytes", + useExistingSnapshot: { + defaultValue: false, + serializedName: "properties.useExistingSnapshot", type: { - name: "Number" + name: "Boolean" } } } } }; -export const SnapshotPolicyPatch: coreClient.CompositeMapper = { +export const BackupPatch: coreClient.CompositeMapper = { type: { name: "Composite", - className: "SnapshotPolicyPatch", + className: "BackupPatch", modelProperties: { - location: { - serializedName: "location", + tags: { + serializedName: "tags", type: { - name: "String" + name: "Dictionary", + value: { type: { name: "String" } } } }, - id: { - serializedName: "id", + backupId: { + 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: "properties.backupId", readOnly: true, type: { name: "String" } }, - name: { - serializedName: "name", + creationDate: { + serializedName: "properties.creationDate", readOnly: true, type: { - name: "String" + name: "DateTime" } }, - type: { - serializedName: "type", + provisioningState: { + serializedName: "properties.provisioningState", readOnly: true, type: { name: "String" } }, - tags: { - serializedName: "tags", + size: { + serializedName: "properties.size", + readOnly: true, type: { - name: "Dictionary", - value: { type: { name: "String" } } + name: "Number" } }, - hourlySchedule: { - serializedName: "properties.hourlySchedule", + label: { + serializedName: "properties.label", type: { - name: "Composite", - className: "HourlySchedule" + name: "String" } }, - dailySchedule: { - serializedName: "properties.dailySchedule", + backupType: { + serializedName: "properties.backupType", + readOnly: true, type: { - name: "Composite", - className: "DailySchedule" + name: "String" } }, - weeklySchedule: { - serializedName: "properties.weeklySchedule", + failureReason: { + serializedName: "properties.failureReason", + readOnly: true, type: { - name: "Composite", - className: "WeeklySchedule" + name: "String" } }, - monthlySchedule: { - serializedName: "properties.monthlySchedule", + volumeName: { + serializedName: "properties.volumeName", + readOnly: true, type: { - name: "Composite", - className: "MonthlySchedule" + name: "String" } }, - enabled: { - serializedName: "properties.enabled", + useExistingSnapshot: { + defaultValue: false, + serializedName: "properties.useExistingSnapshot", type: { name: "Boolean" } - }, - provisioningState: { - serializedName: "properties.provisioningState", - readOnly: true, - type: { - name: "String" - } } } } }; -export const SnapshotPolicyVolumeList: coreClient.CompositeMapper = { +export const BackupPoliciesList: coreClient.CompositeMapper = { type: { name: "Composite", - className: "SnapshotPolicyVolumeList", + className: "BackupPoliciesList", modelProperties: { value: { serializedName: "value", @@ -2658,7 +2347,7 @@ export const SnapshotPolicyVolumeList: coreClient.CompositeMapper = { element: { type: { name: "Composite", - className: "Volume" + className: "BackupPolicy" } } } @@ -2667,126 +2356,202 @@ export const SnapshotPolicyVolumeList: coreClient.CompositeMapper = { } }; -export const BackupStatus: coreClient.CompositeMapper = { +export const VolumeBackups: coreClient.CompositeMapper = { type: { name: "Composite", - className: "BackupStatus", + className: "VolumeBackups", modelProperties: { - healthy: { - serializedName: "healthy", - readOnly: true, + volumeName: { + serializedName: "volumeName", + type: { + name: "String" + } + }, + backupsCount: { + serializedName: "backupsCount", + type: { + name: "Number" + } + }, + policyEnabled: { + serializedName: "policyEnabled", type: { name: "Boolean" } + } + } + } +}; + +export const BackupPolicyPatch: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "BackupPolicyPatch", + modelProperties: { + location: { + serializedName: "location", + type: { + name: "String" + } }, - relationshipStatus: { - serializedName: "relationshipStatus", + id: { + serializedName: "id", readOnly: true, type: { name: "String" } }, - mirrorState: { - serializedName: "mirrorState", + name: { + serializedName: "name", readOnly: true, type: { name: "String" } }, - unhealthyReason: { - serializedName: "unhealthyReason", + type: { + serializedName: "type", readOnly: true, type: { name: "String" } }, - errorMessage: { - serializedName: "errorMessage", + tags: { + serializedName: "tags", + type: { + name: "Dictionary", + value: { type: { name: "String" } } + } + }, + backupPolicyId: { + serializedName: "properties.backupPolicyId", readOnly: true, type: { name: "String" } }, - lastTransferSize: { - serializedName: "lastTransferSize", + provisioningState: { + serializedName: "properties.provisioningState", readOnly: true, + type: { + name: "String" + } + }, + dailyBackupsToKeep: { + serializedName: "properties.dailyBackupsToKeep", type: { name: "Number" } }, - lastTransferType: { - serializedName: "lastTransferType", - readOnly: true, + weeklyBackupsToKeep: { + serializedName: "properties.weeklyBackupsToKeep", type: { - name: "String" + name: "Number" } }, - totalTransferBytes: { - serializedName: "totalTransferBytes", + monthlyBackupsToKeep: { + serializedName: "properties.monthlyBackupsToKeep", + type: { + name: "Number" + } + }, + volumesAssigned: { + serializedName: "properties.volumesAssigned", readOnly: true, type: { name: "Number" } + }, + enabled: { + serializedName: "properties.enabled", + type: { + name: "Boolean" + } + }, + volumeBackups: { + serializedName: "properties.volumeBackups", + readOnly: true, + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "VolumeBackups" + } + } + } } } } }; -export const RestoreStatus: coreClient.CompositeMapper = { +export const VolumeQuotaRulesList: coreClient.CompositeMapper = { type: { name: "Composite", - className: "RestoreStatus", + className: "VolumeQuotaRulesList", modelProperties: { - healthy: { - serializedName: "healthy", - readOnly: true, + value: { + serializedName: "value", type: { - name: "Boolean" + name: "Sequence", + element: { + type: { + name: "Composite", + className: "VolumeQuotaRule" + } + } } - }, - relationshipStatus: { - serializedName: "relationshipStatus", + } + } + } +}; + +export const VolumeQuotaRulePatch: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "VolumeQuotaRulePatch", + modelProperties: { + provisioningState: { + serializedName: "properties.provisioningState", readOnly: true, type: { - name: "String" + name: "Enum", + allowedValues: [ + "Accepted", + "Creating", + "Patching", + "Deleting", + "Moving", + "Failed", + "Succeeded" + ] } }, - mirrorState: { - serializedName: "mirrorState", - readOnly: true, + quotaSizeInKiBs: { + serializedName: "properties.quotaSizeInKiBs", type: { - name: "String" + name: "Number" } }, - unhealthyReason: { - serializedName: "unhealthyReason", - readOnly: true, + quotaType: { + serializedName: "properties.quotaType", type: { name: "String" } }, - errorMessage: { - serializedName: "errorMessage", - readOnly: true, + quotaTarget: { + serializedName: "properties.quotaTarget", type: { name: "String" } - }, - totalTransferBytes: { - serializedName: "totalTransferBytes", - readOnly: true, - type: { - name: "Number" - } } } } }; -export const BackupsList: coreClient.CompositeMapper = { +export const VaultList: coreClient.CompositeMapper = { type: { name: "Composite", - className: "BackupsList", + className: "VaultList", modelProperties: { value: { serializedName: "value", @@ -2795,7 +2560,7 @@ export const BackupsList: coreClient.CompositeMapper = { element: { type: { name: "Composite", - className: "Backup" + className: "Vault" } } } @@ -2804,10 +2569,10 @@ export const BackupsList: coreClient.CompositeMapper = { } }; -export const Backup: coreClient.CompositeMapper = { +export const Vault: coreClient.CompositeMapper = { type: { name: "Composite", - className: "Backup", + className: "Vault", modelProperties: { location: { serializedName: "location", @@ -2837,193 +2602,146 @@ export const Backup: coreClient.CompositeMapper = { name: "String" } }, - backupId: { - 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: "properties.backupId", - readOnly: true, + vaultName: { + serializedName: "properties.vaultName", type: { name: "String" } - }, - creationDate: { - serializedName: "properties.creationDate", - readOnly: true, + } + } + } +}; + +export const VolumeGroupList: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "VolumeGroupList", + modelProperties: { + value: { + serializedName: "value", type: { - name: "DateTime" + name: "Sequence", + element: { + type: { + name: "Composite", + className: "VolumeGroup" + } + } } - }, - provisioningState: { - serializedName: "properties.provisioningState", - readOnly: true, + } + } + } +}; + +export const VolumeGroup: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "VolumeGroup", + modelProperties: { + location: { + serializedName: "location", type: { name: "String" } }, - size: { - serializedName: "properties.size", + id: { + serializedName: "id", readOnly: true, type: { - name: "Number" + name: "String" } }, - label: { - serializedName: "properties.label", - type: { - name: "String" - } - }, - backupType: { - serializedName: "properties.backupType", + name: { + serializedName: "name", readOnly: true, type: { name: "String" } }, - failureReason: { - serializedName: "properties.failureReason", + type: { + serializedName: "type", readOnly: true, type: { name: "String" } }, - volumeName: { - serializedName: "properties.volumeName", + provisioningState: { + serializedName: "properties.provisioningState", readOnly: true, type: { name: "String" } }, - useExistingSnapshot: { - defaultValue: false, - serializedName: "properties.useExistingSnapshot", + groupMetaData: { + serializedName: "properties.groupMetaData", type: { - name: "Boolean" + name: "Composite", + className: "VolumeGroupMetaData" } } } } }; -export const BackupPatch: coreClient.CompositeMapper = { +export const VolumeGroupMetaData: coreClient.CompositeMapper = { type: { name: "Composite", - className: "BackupPatch", + className: "VolumeGroupMetaData", modelProperties: { - tags: { - serializedName: "tags", - type: { - name: "Dictionary", - value: { type: { name: "String" } } - } - }, - backupId: { - 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: "properties.backupId", - readOnly: true, + groupDescription: { + serializedName: "groupDescription", type: { name: "String" } }, - creationDate: { - serializedName: "properties.creationDate", - readOnly: true, - type: { - name: "DateTime" - } - }, - provisioningState: { - serializedName: "properties.provisioningState", - readOnly: true, + applicationType: { + serializedName: "applicationType", type: { name: "String" } }, - size: { - serializedName: "properties.size", - readOnly: true, - type: { - name: "Number" - } - }, - label: { - serializedName: "properties.label", + applicationIdentifier: { + serializedName: "applicationIdentifier", type: { name: "String" } }, - backupType: { - serializedName: "properties.backupType", - readOnly: true, + globalPlacementRules: { + serializedName: "globalPlacementRules", type: { - name: "String" + name: "Sequence", + element: { + type: { + name: "Composite", + className: "PlacementKeyValuePairs" + } + } } }, - failureReason: { - serializedName: "properties.failureReason", - readOnly: true, + deploymentSpecId: { + serializedName: "deploymentSpecId", type: { name: "String" } }, - volumeName: { - serializedName: "properties.volumeName", + volumesCount: { + serializedName: "volumesCount", readOnly: true, type: { - name: "String" - } - }, - useExistingSnapshot: { - defaultValue: false, - serializedName: "properties.useExistingSnapshot", - type: { - name: "Boolean" - } - } - } - } -}; - -export const BackupPoliciesList: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "BackupPoliciesList", - modelProperties: { - value: { - serializedName: "value", - type: { - name: "Sequence", - element: { - type: { - name: "Composite", - className: "BackupPolicy" - } - } + name: "Number" } } } } }; -export const BackupPolicy: coreClient.CompositeMapper = { +export const VolumeGroupDetails: coreClient.CompositeMapper = { type: { name: "Composite", - className: "BackupPolicy", + className: "VolumeGroupDetails", modelProperties: { location: { serializedName: "location", - required: true, type: { name: "String" } @@ -3042,13 +2760,6 @@ export const BackupPolicy: coreClient.CompositeMapper = { name: "String" } }, - etag: { - serializedName: "etag", - readOnly: true, - type: { - name: "String" - } - }, type: { serializedName: "type", readOnly: true, @@ -3056,27 +2767,6 @@ export const BackupPolicy: coreClient.CompositeMapper = { name: "String" } }, - tags: { - serializedName: "tags", - type: { - name: "Dictionary", - value: { type: { name: "String" } } - } - }, - systemData: { - serializedName: "systemData", - type: { - name: "Composite", - className: "SystemData" - } - }, - backupPolicyId: { - serializedName: "properties.backupPolicyId", - readOnly: true, - type: { - name: "String" - } - }, provisioningState: { serializedName: "properties.provisioningState", readOnly: true, @@ -3084,46 +2774,21 @@ export const BackupPolicy: coreClient.CompositeMapper = { name: "String" } }, - dailyBackupsToKeep: { - serializedName: "properties.dailyBackupsToKeep", - type: { - name: "Number" - } - }, - weeklyBackupsToKeep: { - serializedName: "properties.weeklyBackupsToKeep", - type: { - name: "Number" - } - }, - monthlyBackupsToKeep: { - serializedName: "properties.monthlyBackupsToKeep", - type: { - name: "Number" - } - }, - volumesAssigned: { - serializedName: "properties.volumesAssigned", - readOnly: true, - type: { - name: "Number" - } - }, - enabled: { - serializedName: "properties.enabled", + groupMetaData: { + serializedName: "properties.groupMetaData", type: { - name: "Boolean" + name: "Composite", + className: "VolumeGroupMetaData" } }, - volumeBackups: { - serializedName: "properties.volumeBackups", - readOnly: true, + volumes: { + serializedName: "properties.volumes", type: { name: "Sequence", element: { type: { name: "Composite", - className: "VolumeBackups" + className: "VolumeGroupVolumeProperties" } } } @@ -3132,44 +2797,11 @@ export const BackupPolicy: coreClient.CompositeMapper = { } }; -export const VolumeBackups: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "VolumeBackups", - modelProperties: { - volumeName: { - serializedName: "volumeName", - type: { - name: "String" - } - }, - backupsCount: { - serializedName: "backupsCount", - type: { - name: "Number" - } - }, - policyEnabled: { - serializedName: "policyEnabled", - type: { - name: "Boolean" - } - } - } - } -}; - -export const BackupPolicyPatch: coreClient.CompositeMapper = { +export const VolumeGroupVolumeProperties: coreClient.CompositeMapper = { type: { name: "Composite", - className: "BackupPolicyPatch", + className: "VolumeGroupVolumeProperties", modelProperties: { - location: { - serializedName: "location", - type: { - name: "String" - } - }, id: { serializedName: "id", readOnly: true, @@ -3179,7 +2811,6 @@ export const BackupPolicyPatch: coreClient.CompositeMapper = { }, name: { serializedName: "name", - readOnly: true, type: { name: "String" } @@ -3198,72 +2829,371 @@ export const BackupPolicyPatch: coreClient.CompositeMapper = { value: { type: { name: "String" } } } }, - backupPolicyId: { - serializedName: "properties.backupPolicyId", + fileSystemId: { + 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: "properties.fileSystemId", readOnly: true, type: { name: "String" } }, - provisioningState: { - serializedName: "properties.provisioningState", - readOnly: true, + creationToken: { + constraints: { + Pattern: new RegExp("^[a-zA-Z][a-zA-Z0-9\\-]{0,79}$"), + MaxLength: 80, + MinLength: 1 + }, + serializedName: "properties.creationToken", + required: true, type: { name: "String" } }, - dailyBackupsToKeep: { - serializedName: "properties.dailyBackupsToKeep", + serviceLevel: { + defaultValue: "Premium", + serializedName: "properties.serviceLevel", + type: { + name: "String" + } + }, + usageThreshold: { + defaultValue: 107374182400, + constraints: { + InclusiveMaximum: 109951162777600, + InclusiveMinimum: 107374182400 + }, + serializedName: "properties.usageThreshold", + required: true, type: { name: "Number" } }, - weeklyBackupsToKeep: { - serializedName: "properties.weeklyBackupsToKeep", + exportPolicy: { + serializedName: "properties.exportPolicy", + type: { + name: "Composite", + className: "VolumePropertiesExportPolicy" + } + }, + protocolTypes: { + serializedName: "properties.protocolTypes", + type: { + name: "Sequence", + element: { + type: { + name: "String" + } + } + } + }, + provisioningState: { + serializedName: "properties.provisioningState", + readOnly: true, + type: { + name: "String" + } + }, + snapshotId: { + 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: "properties.snapshotId", + nullable: true, + type: { + name: "String" + } + }, + backupId: { + 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: "properties.backupId", + nullable: true, + type: { + name: "String" + } + }, + baremetalTenantId: { + serializedName: "properties.baremetalTenantId", + readOnly: true, + type: { + name: "String" + } + }, + subnetId: { + serializedName: "properties.subnetId", + required: true, + type: { + name: "String" + } + }, + networkFeatures: { + defaultValue: "Basic", + serializedName: "properties.networkFeatures", + type: { + name: "String" + } + }, + networkSiblingSetId: { + 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: "properties.networkSiblingSetId", + readOnly: true, + type: { + name: "String" + } + }, + storageToNetworkProximity: { + serializedName: "properties.storageToNetworkProximity", + readOnly: true, + type: { + name: "String" + } + }, + mountTargets: { + serializedName: "properties.mountTargets", + readOnly: true, + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "MountTargetProperties" + } + } + } + }, + volumeType: { + serializedName: "properties.volumeType", + type: { + name: "String" + } + }, + dataProtection: { + serializedName: "properties.dataProtection", + type: { + name: "Composite", + className: "VolumePropertiesDataProtection" + } + }, + isRestoring: { + serializedName: "properties.isRestoring", + type: { + name: "Boolean" + } + }, + snapshotDirectoryVisible: { + defaultValue: true, + serializedName: "properties.snapshotDirectoryVisible", + type: { + name: "Boolean" + } + }, + kerberosEnabled: { + defaultValue: false, + serializedName: "properties.kerberosEnabled", + type: { + name: "Boolean" + } + }, + securityStyle: { + defaultValue: "unix", + serializedName: "properties.securityStyle", + type: { + name: "String" + } + }, + smbEncryption: { + defaultValue: false, + serializedName: "properties.smbEncryption", + type: { + name: "Boolean" + } + }, + smbContinuouslyAvailable: { + defaultValue: false, + serializedName: "properties.smbContinuouslyAvailable", + type: { + name: "Boolean" + } + }, + throughputMibps: { + serializedName: "properties.throughputMibps", + type: { + name: "Number" + } + }, + encryptionKeySource: { + defaultValue: "Microsoft.NetApp", + serializedName: "properties.encryptionKeySource", + type: { + name: "String" + } + }, + ldapEnabled: { + defaultValue: false, + serializedName: "properties.ldapEnabled", + type: { + name: "Boolean" + } + }, + coolAccess: { + defaultValue: false, + serializedName: "properties.coolAccess", + type: { + name: "Boolean" + } + }, + coolnessPeriod: { + constraints: { + InclusiveMaximum: 63, + InclusiveMinimum: 7 + }, + serializedName: "properties.coolnessPeriod", + type: { + name: "Number" + } + }, + unixPermissions: { + defaultValue: "0770", + constraints: { + MaxLength: 4, + MinLength: 4 + }, + serializedName: "properties.unixPermissions", + nullable: true, + type: { + name: "String" + } + }, + cloneProgress: { + serializedName: "properties.cloneProgress", + readOnly: true, + nullable: true, + type: { + name: "Number" + } + }, + avsDataStore: { + defaultValue: "Disabled", + serializedName: "properties.avsDataStore", + type: { + name: "String" + } + }, + isDefaultQuotaEnabled: { + defaultValue: false, + serializedName: "properties.isDefaultQuotaEnabled", + type: { + name: "Boolean" + } + }, + defaultUserQuotaInKiBs: { + defaultValue: 0, + serializedName: "properties.defaultUserQuotaInKiBs", + type: { + name: "Number" + } + }, + defaultGroupQuotaInKiBs: { + defaultValue: 0, + serializedName: "properties.defaultGroupQuotaInKiBs", + type: { + name: "Number" + } + }, + maximumNumberOfFiles: { + serializedName: "properties.maximumNumberOfFiles", + readOnly: true, + type: { + name: "Number" + } + }, + volumeGroupName: { + serializedName: "properties.volumeGroupName", + readOnly: true, + type: { + name: "String" + } + }, + capacityPoolResourceId: { + serializedName: "properties.capacityPoolResourceId", + type: { + name: "String" + } + }, + proximityPlacementGroup: { + serializedName: "properties.proximityPlacementGroup", type: { - name: "Number" + name: "String" } }, - monthlyBackupsToKeep: { - serializedName: "properties.monthlyBackupsToKeep", + t2Network: { + serializedName: "properties.t2Network", + readOnly: true, type: { - name: "Number" + name: "String" } }, - volumesAssigned: { - serializedName: "properties.volumesAssigned", - readOnly: true, + volumeSpecName: { + serializedName: "properties.volumeSpecName", type: { - name: "Number" + name: "String" } }, - enabled: { - serializedName: "properties.enabled", + encrypted: { + serializedName: "properties.encrypted", + readOnly: true, type: { name: "Boolean" } }, - volumeBackups: { - serializedName: "properties.volumeBackups", - readOnly: true, + placementRules: { + serializedName: "properties.placementRules", type: { name: "Sequence", element: { type: { name: "Composite", - className: "VolumeBackups" + className: "PlacementKeyValuePairs" } } } + }, + enableSubvolumes: { + defaultValue: "Disabled", + serializedName: "properties.enableSubvolumes", + type: { + name: "String" + } } } } }; -export const VaultList: coreClient.CompositeMapper = { +export const SubvolumesList: coreClient.CompositeMapper = { type: { name: "Composite", - className: "VaultList", + className: "SubvolumesList", modelProperties: { value: { serializedName: "value", @@ -3272,19 +3202,193 @@ export const VaultList: coreClient.CompositeMapper = { element: { type: { name: "Composite", - className: "Vault" + className: "SubvolumeInfo" } } } + }, + nextLink: { + serializedName: "nextLink", + type: { + name: "String" + } } } } }; -export const Vault: coreClient.CompositeMapper = { +export const SubvolumePatchRequest: coreClient.CompositeMapper = { type: { name: "Composite", - className: "Vault", + className: "SubvolumePatchRequest", + modelProperties: { + size: { + serializedName: "properties.size", + nullable: true, + type: { + name: "Number" + } + }, + path: { + serializedName: "properties.path", + type: { + name: "String" + } + } + } + } +}; + +export const SubvolumeModel: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "SubvolumeModel", + modelProperties: { + id: { + serializedName: "id", + readOnly: true, + type: { + name: "String" + } + }, + name: { + serializedName: "name", + readOnly: true, + type: { + name: "String" + } + }, + type: { + serializedName: "type", + readOnly: true, + type: { + name: "String" + } + }, + path: { + serializedName: "properties.path", + type: { + name: "String" + } + }, + parentPath: { + serializedName: "properties.parentPath", + type: { + name: "String" + } + }, + size: { + serializedName: "properties.size", + type: { + name: "Number" + } + }, + bytesUsed: { + serializedName: "properties.bytesUsed", + type: { + name: "Number" + } + }, + permissions: { + serializedName: "properties.permissions", + type: { + name: "String" + } + }, + creationTimeStamp: { + serializedName: "properties.creationTimeStamp", + type: { + name: "DateTime" + } + }, + accessedTimeStamp: { + serializedName: "properties.accessedTimeStamp", + type: { + name: "DateTime" + } + }, + modifiedTimeStamp: { + serializedName: "properties.modifiedTimeStamp", + type: { + name: "DateTime" + } + }, + changedTimeStamp: { + serializedName: "properties.changedTimeStamp", + type: { + name: "DateTime" + } + }, + provisioningState: { + serializedName: "properties.provisioningState", + type: { + name: "String" + } + } + } + } +}; + +export const ResourceIdentity: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "ResourceIdentity", + modelProperties: { + principalId: { + serializedName: "principalId", + readOnly: true, + type: { + name: "String" + } + }, + tenantId: { + serializedName: "tenantId", + readOnly: true, + type: { + name: "String" + } + }, + type: { + serializedName: "type", + type: { + name: "String" + } + } + } + } +}; + +export const VolumeRelocationProperties: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "VolumeRelocationProperties", + modelProperties: { + oldVolumeId: { + serializedName: "oldVolumeId", + type: { + name: "String" + } + }, + oldBareMetalTenantId: { + serializedName: "oldBareMetalTenantId", + type: { + name: "String" + } + }, + relocationRequested: { + serializedName: "relocationRequested", + type: { + name: "Boolean" + } + } + } + } +}; + +export const MountTarget: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "MountTarget", modelProperties: { location: { serializedName: "location", @@ -3314,8 +3418,50 @@ export const Vault: coreClient.CompositeMapper = { name: "String" } }, - vaultName: { - serializedName: "properties.vaultName", + tags: { + serializedName: "tags", + type: { + name: "Dictionary", + value: { type: { name: "String" } } + } + }, + mountTargetId: { + 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: "properties.mountTargetId", + readOnly: true, + type: { + name: "String" + } + }, + fileSystemId: { + 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: "properties.fileSystemId", + required: true, + type: { + name: "String" + } + }, + ipAddress: { + serializedName: "properties.ipAddress", + readOnly: true, + type: { + name: "String" + } + }, + smbServerFqdn: { + serializedName: "properties.smbServerFqdn", type: { name: "String" } @@ -3324,31 +3470,10 @@ export const Vault: coreClient.CompositeMapper = { } }; -export const VolumeGroupList: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "VolumeGroupList", - modelProperties: { - value: { - serializedName: "value", - type: { - name: "Sequence", - element: { - type: { - name: "Composite", - className: "VolumeGroup" - } - } - } - } - } - } -}; - -export const VolumeGroup: coreClient.CompositeMapper = { +export const SnapshotPolicyDetails: coreClient.CompositeMapper = { type: { name: "Composite", - className: "VolumeGroup", + className: "SnapshotPolicyDetails", modelProperties: { location: { serializedName: "location", @@ -3384,80 +3509,55 @@ export const VolumeGroup: coreClient.CompositeMapper = { value: { type: { name: "String" } } } }, - provisioningState: { - serializedName: "properties.provisioningState", - readOnly: true, - type: { - name: "String" - } - }, - groupMetaData: { - serializedName: "properties.groupMetaData", + hourlySchedule: { + serializedName: "properties.hourlySchedule", type: { name: "Composite", - className: "VolumeGroupMetaData" - } - } - } - } -}; - -export const VolumeGroupMetaData: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "VolumeGroupMetaData", - modelProperties: { - groupDescription: { - serializedName: "groupDescription", - type: { - name: "String" + className: "HourlySchedule" } }, - applicationType: { - serializedName: "applicationType", + dailySchedule: { + serializedName: "properties.dailySchedule", type: { - name: "String" + name: "Composite", + className: "DailySchedule" } }, - applicationIdentifier: { - serializedName: "applicationIdentifier", + weeklySchedule: { + serializedName: "properties.weeklySchedule", type: { - name: "String" + name: "Composite", + className: "WeeklySchedule" } }, - globalPlacementRules: { - serializedName: "globalPlacementRules", + monthlySchedule: { + serializedName: "properties.monthlySchedule", type: { - name: "Sequence", - element: { - type: { - name: "Composite", - className: "PlacementKeyValuePairs" - } - } + name: "Composite", + className: "MonthlySchedule" } }, - deploymentSpecId: { - serializedName: "deploymentSpecId", + enabled: { + serializedName: "properties.enabled", type: { - name: "String" + name: "Boolean" } }, - volumesCount: { - serializedName: "volumesCount", + provisioningState: { + serializedName: "properties.provisioningState", readOnly: true, type: { - name: "Number" + name: "String" } } } } }; -export const VolumeGroupDetails: coreClient.CompositeMapper = { +export const BackupPolicyDetails: coreClient.CompositeMapper = { type: { name: "Composite", - className: "VolumeGroupDetails", + className: "BackupPolicyDetails", modelProperties: { location: { serializedName: "location", @@ -3493,6 +3593,13 @@ export const VolumeGroupDetails: coreClient.CompositeMapper = { value: { type: { name: "String" } } } }, + backupPolicyId: { + serializedName: "properties.backupPolicyId", + readOnly: true, + type: { + name: "String" + } + }, provisioningState: { serializedName: "properties.provisioningState", readOnly: true, @@ -3500,21 +3607,46 @@ export const VolumeGroupDetails: coreClient.CompositeMapper = { name: "String" } }, - groupMetaData: { - serializedName: "properties.groupMetaData", + dailyBackupsToKeep: { + serializedName: "properties.dailyBackupsToKeep", type: { - name: "Composite", - className: "VolumeGroupMetaData" + name: "Number" } }, - volumes: { - serializedName: "properties.volumes", + weeklyBackupsToKeep: { + serializedName: "properties.weeklyBackupsToKeep", + type: { + name: "Number" + } + }, + monthlyBackupsToKeep: { + serializedName: "properties.monthlyBackupsToKeep", + type: { + name: "Number" + } + }, + volumesAssigned: { + serializedName: "properties.volumesAssigned", + readOnly: true, + type: { + name: "Number" + } + }, + enabled: { + serializedName: "properties.enabled", + type: { + name: "Boolean" + } + }, + volumeBackups: { + serializedName: "properties.volumeBackups", + readOnly: true, type: { name: "Sequence", element: { type: { name: "Composite", - className: "VolumeGroupVolumeProperties" + className: "VolumeBackups" } } } @@ -3523,31 +3655,22 @@ export const VolumeGroupDetails: coreClient.CompositeMapper = { } }; -export const VolumeGroupVolumeProperties: coreClient.CompositeMapper = { +export const ProxyResource: coreClient.CompositeMapper = { type: { name: "Composite", - className: "VolumeGroupVolumeProperties", + className: "ProxyResource", modelProperties: { - id: { - serializedName: "id", - readOnly: true, - type: { - name: "String" - } - }, - name: { - serializedName: "name", - type: { - name: "String" - } - }, - type: { - serializedName: "type", - readOnly: true, - type: { - name: "String" - } - }, + ...Resource.type.modelProperties + } + } +}; + +export const TrackedResource: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "TrackedResource", + modelProperties: { + ...Resource.type.modelProperties, tags: { serializedName: "tags", type: { @@ -3555,233 +3678,191 @@ export const VolumeGroupVolumeProperties: coreClient.CompositeMapper = { value: { type: { name: "String" } } } }, - fileSystemId: { - 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: "properties.fileSystemId", - readOnly: true, - type: { - name: "String" - } - }, - creationToken: { - constraints: { - Pattern: new RegExp("^[a-zA-Z][a-zA-Z0-9\\-]{0,79}$"), - MaxLength: 80, - MinLength: 1 - }, - serializedName: "properties.creationToken", + location: { + serializedName: "location", required: true, type: { name: "String" } - }, - serviceLevel: { - defaultValue: "Premium", - serializedName: "properties.serviceLevel", - type: { - name: "String" - } - }, - usageThreshold: { - defaultValue: 107374182400, - constraints: { - InclusiveMaximum: 109951162777600, - InclusiveMinimum: 107374182400 - }, - serializedName: "properties.usageThreshold", - required: true, + } + } + } +}; + +export const SubscriptionQuotaItem: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "SubscriptionQuotaItem", + modelProperties: { + ...ProxyResource.type.modelProperties, + current: { + serializedName: "properties.current", + readOnly: true, type: { name: "Number" } }, - exportPolicy: { - serializedName: "properties.exportPolicy", - type: { - name: "Composite", - className: "VolumePropertiesExportPolicy" - } - }, - protocolTypes: { - serializedName: "properties.protocolTypes", + default: { + serializedName: "properties.default", + readOnly: true, type: { - name: "Sequence", - element: { - type: { - name: "String" - } - } + name: "Number" } - }, - provisioningState: { - serializedName: "properties.provisioningState", - readOnly: true, + } + } + } +}; + +export const SubvolumeInfo: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "SubvolumeInfo", + modelProperties: { + ...ProxyResource.type.modelProperties, + path: { + serializedName: "properties.path", type: { name: "String" } }, - snapshotId: { - 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: "properties.snapshotId", + size: { + serializedName: "properties.size", nullable: true, type: { - name: "String" + name: "Number" } }, - backupId: { - 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: "properties.backupId", + parentPath: { + serializedName: "properties.parentPath", nullable: true, type: { name: "String" } }, - baremetalTenantId: { - serializedName: "properties.baremetalTenantId", + provisioningState: { + serializedName: "properties.provisioningState", readOnly: true, type: { name: "String" } - }, - subnetId: { - serializedName: "properties.subnetId", - required: true, - type: { - name: "String" - } - }, - networkFeatures: { - defaultValue: "Basic", - serializedName: "properties.networkFeatures", - type: { - name: "String" - } - }, - networkSiblingSetId: { - 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: "properties.networkSiblingSetId", + } + } + } +}; + +export const NetAppAccount: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "NetAppAccount", + modelProperties: { + ...TrackedResource.type.modelProperties, + etag: { + serializedName: "etag", readOnly: true, type: { name: "String" } }, - storageToNetworkProximity: { - serializedName: "properties.storageToNetworkProximity", + provisioningState: { + serializedName: "properties.provisioningState", readOnly: true, type: { name: "String" } }, - mountTargets: { - serializedName: "properties.mountTargets", - readOnly: true, + activeDirectories: { + serializedName: "properties.activeDirectories", type: { name: "Sequence", element: { type: { name: "Composite", - className: "MountTargetProperties" + className: "ActiveDirectory" } } } }, - volumeType: { - serializedName: "properties.volumeType", - type: { - name: "String" - } - }, - dataProtection: { - serializedName: "properties.dataProtection", + encryption: { + serializedName: "properties.encryption", type: { name: "Composite", - className: "VolumePropertiesDataProtection" + className: "AccountEncryption" } - }, - isRestoring: { - serializedName: "properties.isRestoring", + } + } + } +}; + +export const CapacityPool: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "CapacityPool", + modelProperties: { + ...TrackedResource.type.modelProperties, + etag: { + serializedName: "etag", + readOnly: true, type: { - name: "Boolean" + name: "String" } }, - snapshotDirectoryVisible: { - defaultValue: true, - serializedName: "properties.snapshotDirectoryVisible", + poolId: { + 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: "properties.poolId", + readOnly: true, type: { - name: "Boolean" + name: "String" } }, - kerberosEnabled: { - defaultValue: false, - serializedName: "properties.kerberosEnabled", + size: { + defaultValue: 4398046511104, + serializedName: "properties.size", + required: true, type: { - name: "Boolean" + name: "Number" } }, - securityStyle: { - defaultValue: "unix", - serializedName: "properties.securityStyle", + serviceLevel: { + defaultValue: "Premium", + serializedName: "properties.serviceLevel", + required: true, type: { name: "String" } }, - smbEncryption: { - defaultValue: false, - serializedName: "properties.smbEncryption", + provisioningState: { + serializedName: "properties.provisioningState", + readOnly: true, type: { - name: "Boolean" + name: "String" } }, - smbContinuouslyAvailable: { - defaultValue: false, - serializedName: "properties.smbContinuouslyAvailable", + totalThroughputMibps: { + serializedName: "properties.totalThroughputMibps", + readOnly: true, type: { - name: "Boolean" + name: "Number" } }, - throughputMibps: { - defaultValue: 0, - serializedName: "properties.throughputMibps", + utilizedThroughputMibps: { + serializedName: "properties.utilizedThroughputMibps", + readOnly: true, type: { name: "Number" } }, - encryptionKeySource: { - serializedName: "properties.encryptionKeySource", + qosType: { + serializedName: "properties.qosType", type: { name: "String" } }, - ldapEnabled: { - defaultValue: false, - serializedName: "properties.ldapEnabled", - type: { - name: "Boolean" - } - }, coolAccess: { defaultValue: false, serializedName: "properties.coolAccess", @@ -3789,371 +3870,399 @@ export const VolumeGroupVolumeProperties: coreClient.CompositeMapper = { name: "Boolean" } }, - coolnessPeriod: { - constraints: { - InclusiveMaximum: 63, - InclusiveMinimum: 7 - }, - serializedName: "properties.coolnessPeriod", + encryptionType: { + defaultValue: "Single", + serializedName: "properties.encryptionType", + nullable: true, type: { - name: "Number" + name: "String" } - }, - unixPermissions: { - defaultValue: "0770", - constraints: { - MaxLength: 4, - MinLength: 4 - }, - serializedName: "properties.unixPermissions", - nullable: true, + } + } + } +}; + +export const Volume: coreClient.CompositeMapper = { + type: { + name: "Composite", + className: "Volume", + modelProperties: { + ...TrackedResource.type.modelProperties, + etag: { + serializedName: "etag", + readOnly: true, type: { name: "String" } }, - cloneProgress: { - serializedName: "properties.cloneProgress", + zones: { + serializedName: "zones", + type: { + name: "Sequence", + element: { + constraints: { + MaxLength: 255, + MinLength: 1 + }, + type: { + name: "String" + } + } + } + }, + fileSystemId: { + 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: "properties.fileSystemId", readOnly: true, - nullable: true, type: { - name: "Number" + name: "String" } }, - avsDataStore: { - defaultValue: "Disabled", - serializedName: "properties.avsDataStore", + creationToken: { + constraints: { + Pattern: new RegExp("^[a-zA-Z][a-zA-Z0-9\\-]{0,79}$"), + MaxLength: 80, + MinLength: 1 + }, + serializedName: "properties.creationToken", + required: true, type: { name: "String" } }, - isDefaultQuotaEnabled: { - defaultValue: false, - serializedName: "properties.isDefaultQuotaEnabled", + serviceLevel: { + defaultValue: "Premium", + serializedName: "properties.serviceLevel", type: { - name: "Boolean" + name: "String" } }, - defaultUserQuotaInKiBs: { - defaultValue: 0, - serializedName: "properties.defaultUserQuotaInKiBs", + usageThreshold: { + defaultValue: 107374182400, + constraints: { + InclusiveMaximum: 109951162777600, + InclusiveMinimum: 107374182400 + }, + serializedName: "properties.usageThreshold", + required: true, type: { name: "Number" } }, - defaultGroupQuotaInKiBs: { - defaultValue: 0, - serializedName: "properties.defaultGroupQuotaInKiBs", + exportPolicy: { + serializedName: "properties.exportPolicy", type: { - name: "Number" + name: "Composite", + className: "VolumePropertiesExportPolicy" } }, - maximumNumberOfFiles: { - serializedName: "properties.maximumNumberOfFiles", - readOnly: true, + protocolTypes: { + serializedName: "properties.protocolTypes", type: { - name: "Number" + name: "Sequence", + element: { + type: { + name: "String" + } + } } }, - volumeGroupName: { - serializedName: "properties.volumeGroupName", + provisioningState: { + serializedName: "properties.provisioningState", readOnly: true, type: { name: "String" } }, - capacityPoolResourceId: { - serializedName: "properties.capacityPoolResourceId", + snapshotId: { + 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: "properties.snapshotId", + nullable: true, type: { name: "String" } }, - proximityPlacementGroup: { - serializedName: "properties.proximityPlacementGroup", + backupId: { + 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: "properties.backupId", + nullable: true, type: { name: "String" } }, - t2Network: { - serializedName: "properties.t2Network", + baremetalTenantId: { + serializedName: "properties.baremetalTenantId", readOnly: true, type: { name: "String" } }, - volumeSpecName: { - serializedName: "properties.volumeSpecName", + subnetId: { + serializedName: "properties.subnetId", + required: true, type: { name: "String" } }, - placementRules: { - serializedName: "properties.placementRules", + networkFeatures: { + defaultValue: "Basic", + serializedName: "properties.networkFeatures", type: { - name: "Sequence", - element: { - type: { - name: "Composite", - className: "PlacementKeyValuePairs" - } - } + name: "String" } }, - enableSubvolumes: { - defaultValue: "Disabled", - serializedName: "properties.enableSubvolumes", + networkSiblingSetId: { + 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: "properties.networkSiblingSetId", + readOnly: true, type: { name: "String" } - } - } - } -}; - -export const SubvolumesList: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "SubvolumesList", - modelProperties: { - value: { - serializedName: "value", + }, + storageToNetworkProximity: { + serializedName: "properties.storageToNetworkProximity", + readOnly: true, + type: { + name: "String" + } + }, + mountTargets: { + serializedName: "properties.mountTargets", + readOnly: true, type: { name: "Sequence", element: { type: { name: "Composite", - className: "SubvolumeInfo" + className: "MountTargetProperties" } } } }, - nextLink: { - serializedName: "nextLink", + volumeType: { + serializedName: "properties.volumeType", type: { name: "String" } - } - } - } -}; - -export const SubvolumePatchRequest: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "SubvolumePatchRequest", - modelProperties: { - size: { - serializedName: "properties.size", - nullable: true, - type: { - name: "Number" - } }, - path: { - serializedName: "properties.path", + dataProtection: { + serializedName: "properties.dataProtection", type: { - name: "String" + name: "Composite", + className: "VolumePropertiesDataProtection" } - } - } - } -}; - -export const SubvolumeModel: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "SubvolumeModel", - modelProperties: { - id: { - serializedName: "id", - readOnly: true, + }, + isRestoring: { + serializedName: "properties.isRestoring", type: { - name: "String" + name: "Boolean" } }, - name: { - serializedName: "name", - readOnly: true, + snapshotDirectoryVisible: { + defaultValue: true, + serializedName: "properties.snapshotDirectoryVisible", type: { - name: "String" + name: "Boolean" } }, - type: { - serializedName: "type", - readOnly: true, + kerberosEnabled: { + defaultValue: false, + serializedName: "properties.kerberosEnabled", type: { - name: "String" + name: "Boolean" } }, - path: { - serializedName: "properties.path", + securityStyle: { + defaultValue: "unix", + serializedName: "properties.securityStyle", type: { name: "String" } }, - parentPath: { - serializedName: "properties.parentPath", + smbEncryption: { + defaultValue: false, + serializedName: "properties.smbEncryption", type: { - name: "String" + name: "Boolean" } }, - size: { - serializedName: "properties.size", + smbContinuouslyAvailable: { + defaultValue: false, + serializedName: "properties.smbContinuouslyAvailable", type: { - name: "Number" + name: "Boolean" } }, - bytesUsed: { - serializedName: "properties.bytesUsed", + throughputMibps: { + serializedName: "properties.throughputMibps", type: { name: "Number" } }, - permissions: { - serializedName: "properties.permissions", + encryptionKeySource: { + defaultValue: "Microsoft.NetApp", + serializedName: "properties.encryptionKeySource", type: { name: "String" } }, - creationTimeStamp: { - serializedName: "properties.creationTimeStamp", - type: { - name: "DateTime" - } - }, - accessedTimeStamp: { - serializedName: "properties.accessedTimeStamp", - type: { - name: "DateTime" - } - }, - modifiedTimeStamp: { - serializedName: "properties.modifiedTimeStamp", + ldapEnabled: { + defaultValue: false, + serializedName: "properties.ldapEnabled", type: { - name: "DateTime" + name: "Boolean" } }, - changedTimeStamp: { - serializedName: "properties.changedTimeStamp", + coolAccess: { + defaultValue: false, + serializedName: "properties.coolAccess", type: { - name: "DateTime" + name: "Boolean" } }, - provisioningState: { - serializedName: "properties.provisioningState", + coolnessPeriod: { + constraints: { + InclusiveMaximum: 63, + InclusiveMinimum: 7 + }, + serializedName: "properties.coolnessPeriod", type: { - name: "String" - } - } - } - } -}; - -export const ResourceIdentity: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "ResourceIdentity", - modelProperties: { - principalId: { - serializedName: "principalId", - readOnly: true, + name: "Number" + } + }, + unixPermissions: { + defaultValue: "0770", + constraints: { + MaxLength: 4, + MinLength: 4 + }, + serializedName: "properties.unixPermissions", + nullable: true, type: { name: "String" } }, - tenantId: { - serializedName: "tenantId", + cloneProgress: { + serializedName: "properties.cloneProgress", readOnly: true, + nullable: true, type: { - name: "String" + name: "Number" } }, - type: { - serializedName: "type", + avsDataStore: { + defaultValue: "Disabled", + serializedName: "properties.avsDataStore", type: { name: "String" } - } - } - } -}; - -export const MountTarget: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "MountTarget", - modelProperties: { - location: { - serializedName: "location", - required: true, + }, + isDefaultQuotaEnabled: { + defaultValue: false, + serializedName: "properties.isDefaultQuotaEnabled", type: { - name: "String" + name: "Boolean" } }, - id: { - serializedName: "id", + defaultUserQuotaInKiBs: { + defaultValue: 0, + serializedName: "properties.defaultUserQuotaInKiBs", + type: { + name: "Number" + } + }, + defaultGroupQuotaInKiBs: { + defaultValue: 0, + serializedName: "properties.defaultGroupQuotaInKiBs", + type: { + name: "Number" + } + }, + maximumNumberOfFiles: { + serializedName: "properties.maximumNumberOfFiles", readOnly: true, type: { - name: "String" + name: "Number" } }, - name: { - serializedName: "name", + volumeGroupName: { + serializedName: "properties.volumeGroupName", readOnly: true, type: { name: "String" } }, - type: { - serializedName: "type", - readOnly: true, + capacityPoolResourceId: { + serializedName: "properties.capacityPoolResourceId", type: { name: "String" } }, - tags: { - serializedName: "tags", + proximityPlacementGroup: { + serializedName: "properties.proximityPlacementGroup", type: { - name: "Dictionary", - value: { type: { name: "String" } } + name: "String" } }, - mountTargetId: { - 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: "properties.mountTargetId", + t2Network: { + serializedName: "properties.t2Network", readOnly: true, type: { name: "String" } }, - fileSystemId: { - 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: "properties.fileSystemId", - required: true, + volumeSpecName: { + serializedName: "properties.volumeSpecName", type: { name: "String" } }, - ipAddress: { - serializedName: "properties.ipAddress", + encrypted: { + serializedName: "properties.encrypted", readOnly: true, type: { - name: "String" + name: "Boolean" } }, - smbServerFqdn: { - serializedName: "properties.smbServerFqdn", + placementRules: { + serializedName: "properties.placementRules", + type: { + name: "Sequence", + element: { + type: { + name: "Composite", + className: "PlacementKeyValuePairs" + } + } + } + }, + enableSubvolumes: { + defaultValue: "Disabled", + serializedName: "properties.enableSubvolumes", type: { name: "String" } @@ -4162,45 +4271,19 @@ export const MountTarget: coreClient.CompositeMapper = { } }; -export const SnapshotPolicyDetails: coreClient.CompositeMapper = { +export const SnapshotPolicy: coreClient.CompositeMapper = { type: { name: "Composite", - className: "SnapshotPolicyDetails", + className: "SnapshotPolicy", modelProperties: { - location: { - serializedName: "location", - type: { - name: "String" - } - }, - id: { - serializedName: "id", - readOnly: true, - type: { - name: "String" - } - }, - name: { - serializedName: "name", - readOnly: true, - type: { - name: "String" - } - }, - type: { - serializedName: "type", + ...TrackedResource.type.modelProperties, + etag: { + serializedName: "etag", readOnly: true, type: { name: "String" } }, - tags: { - serializedName: "tags", - type: { - name: "Dictionary", - value: { type: { name: "String" } } - } - }, hourlySchedule: { serializedName: "properties.hourlySchedule", type: { @@ -4246,45 +4329,19 @@ export const SnapshotPolicyDetails: coreClient.CompositeMapper = { } }; -export const BackupPolicyDetails: coreClient.CompositeMapper = { +export const BackupPolicy: coreClient.CompositeMapper = { type: { name: "Composite", - className: "BackupPolicyDetails", + className: "BackupPolicy", modelProperties: { - location: { - serializedName: "location", - type: { - name: "String" - } - }, - id: { - serializedName: "id", - readOnly: true, - type: { - name: "String" - } - }, - name: { - serializedName: "name", - readOnly: true, - type: { - name: "String" - } - }, - type: { - serializedName: "type", + ...TrackedResource.type.modelProperties, + etag: { + serializedName: "etag", readOnly: true, type: { name: "String" } }, - tags: { - serializedName: "tags", - type: { - name: "Dictionary", - value: { type: { name: "String" } } - } - }, backupPolicyId: { serializedName: "properties.backupPolicyId", readOnly: true, @@ -4347,83 +4404,42 @@ export const BackupPolicyDetails: coreClient.CompositeMapper = { } }; -export const ProxyResource: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "ProxyResource", - modelProperties: { - ...Resource.type.modelProperties - } - } -}; - -export const SubscriptionQuotaItem: coreClient.CompositeMapper = { +export const VolumeQuotaRule: coreClient.CompositeMapper = { type: { name: "Composite", - className: "SubscriptionQuotaItem", + className: "VolumeQuotaRule", modelProperties: { - ...ProxyResource.type.modelProperties, - systemData: { - serializedName: "systemData", - type: { - name: "Composite", - className: "SystemData" - } - }, - current: { - serializedName: "properties.current", - readOnly: true, - type: { - name: "Number" - } - }, - default: { - serializedName: "properties.default", + ...TrackedResource.type.modelProperties, + provisioningState: { + serializedName: "properties.provisioningState", readOnly: true, type: { - name: "Number" - } - } - } - } -}; - -export const SubvolumeInfo: coreClient.CompositeMapper = { - type: { - name: "Composite", - className: "SubvolumeInfo", - modelProperties: { - ...ProxyResource.type.modelProperties, - systemData: { - serializedName: "systemData", - type: { - name: "Composite", - className: "SystemData" - } - }, - path: { - serializedName: "properties.path", - type: { - name: "String" + name: "Enum", + allowedValues: [ + "Accepted", + "Creating", + "Patching", + "Deleting", + "Moving", + "Failed", + "Succeeded" + ] } }, - size: { - serializedName: "properties.size", - nullable: true, + quotaSizeInKiBs: { + serializedName: "properties.quotaSizeInKiBs", type: { name: "Number" } }, - parentPath: { - serializedName: "properties.parentPath", - nullable: true, + quotaType: { + serializedName: "properties.quotaType", type: { name: "String" } }, - provisioningState: { - serializedName: "properties.provisioningState", - readOnly: true, + quotaTarget: { + serializedName: "properties.quotaTarget", type: { name: "String" } diff --git a/sdk/netapp/arm-netapp/src/models/parameters.ts b/sdk/netapp/arm-netapp/src/models/parameters.ts index c56539b94245..503268c071ca 100644 --- a/sdk/netapp/arm-netapp/src/models/parameters.ts +++ b/sdk/netapp/arm-netapp/src/models/parameters.ts @@ -33,6 +33,8 @@ import { BackupPatch as BackupPatchMapper, BackupPolicy as BackupPolicyMapper, BackupPolicyPatch as BackupPolicyPatchMapper, + VolumeQuotaRule as VolumeQuotaRuleMapper, + VolumeQuotaRulePatch as VolumeQuotaRulePatchMapper, VolumeGroupDetails as VolumeGroupDetailsMapper, SubvolumeInfo as SubvolumeInfoMapper, SubvolumePatchRequest as SubvolumePatchRequestMapper @@ -65,7 +67,7 @@ export const $host: OperationURLParameter = { export const apiVersion: OperationQueryParameter = { parameterPath: "apiVersion", mapper: { - defaultValue: "2021-10-01", + defaultValue: "2022-01-01", isConstant: true, serializedName: "api-version", type: { @@ -386,6 +388,27 @@ export const body21: OperationParameter = { mapper: BackupPolicyPatchMapper }; +export const volumeQuotaRuleName: OperationURLParameter = { + parameterPath: "volumeQuotaRuleName", + mapper: { + serializedName: "volumeQuotaRuleName", + required: true, + type: { + name: "String" + } + } +}; + +export const body22: OperationParameter = { + parameterPath: "body", + mapper: VolumeQuotaRuleMapper +}; + +export const body23: OperationParameter = { + parameterPath: "body", + mapper: VolumeQuotaRulePatchMapper +}; + export const volumeGroupName: OperationURLParameter = { parameterPath: "volumeGroupName", mapper: { @@ -402,7 +425,7 @@ export const volumeGroupName: OperationURLParameter = { } }; -export const body22: OperationParameter = { +export const body24: OperationParameter = { parameterPath: "body", mapper: VolumeGroupDetailsMapper }; @@ -423,12 +446,12 @@ export const subvolumeName: OperationURLParameter = { } }; -export const body23: OperationParameter = { +export const body25: OperationParameter = { parameterPath: "body", mapper: SubvolumeInfoMapper }; -export const body24: OperationParameter = { +export const body26: OperationParameter = { parameterPath: "body", mapper: SubvolumePatchRequestMapper }; diff --git a/sdk/netapp/arm-netapp/src/netAppManagementClient.ts b/sdk/netapp/arm-netapp/src/netAppManagementClient.ts index 62c90bf9ee51..3bbbdeefd2cc 100644 --- a/sdk/netapp/arm-netapp/src/netAppManagementClient.ts +++ b/sdk/netapp/arm-netapp/src/netAppManagementClient.ts @@ -8,6 +8,11 @@ import * as coreClient from "@azure/core-client"; import * as coreRestPipeline from "@azure/core-rest-pipeline"; +import { + PipelineRequest, + PipelineResponse, + SendRequest +} from "@azure/core-rest-pipeline"; import * as coreAuth from "@azure/core-auth"; import { OperationsImpl, @@ -21,6 +26,7 @@ import { BackupsImpl, AccountBackupsImpl, BackupPoliciesImpl, + VolumeQuotaRulesImpl, VaultsImpl, VolumeGroupsImpl, SubvolumesImpl @@ -37,6 +43,7 @@ import { Backups, AccountBackups, BackupPolicies, + VolumeQuotaRules, Vaults, VolumeGroups, Subvolumes @@ -76,7 +83,7 @@ export class NetAppManagementClient extends coreClient.ServiceClient { credential: credentials }; - const packageDetails = `azsdk-js-arm-netapp/15.1.2`; + const packageDetails = `azsdk-js-arm-netapp/16.0.0`; const userAgentPrefix = options.userAgentOptions && options.userAgentOptions.userAgentPrefix ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}` @@ -123,7 +130,7 @@ export class NetAppManagementClient extends coreClient.ServiceClient { // Assigning values to Constant parameters this.$host = options.$host || "https://management.azure.com"; - this.apiVersion = options.apiVersion || "2021-10-01"; + this.apiVersion = options.apiVersion || "2022-01-01"; this.operations = new OperationsImpl(this); this.netAppResource = new NetAppResourceImpl(this); this.netAppResourceQuotaLimits = new NetAppResourceQuotaLimitsImpl(this); @@ -135,9 +142,39 @@ export class NetAppManagementClient extends coreClient.ServiceClient { this.backups = new BackupsImpl(this); this.accountBackups = new AccountBackupsImpl(this); this.backupPolicies = new BackupPoliciesImpl(this); + this.volumeQuotaRules = new VolumeQuotaRulesImpl(this); this.vaults = new VaultsImpl(this); this.volumeGroups = new VolumeGroupsImpl(this); this.subvolumes = new SubvolumesImpl(this); + this.addCustomApiVersionPolicy(options.apiVersion); + } + + /** A function that adds a policy that sets the api-version (or equivalent) to reflect the library version. */ + private addCustomApiVersionPolicy(apiVersion?: string) { + if (!apiVersion) { + return; + } + const apiVersionPolicy = { + name: "CustomApiVersionPolicy", + async sendRequest( + request: PipelineRequest, + next: SendRequest + ): Promise { + const param = request.url.split("?"); + if (param.length > 1) { + const newParams = param[1].split("&").map((item) => { + if (item.indexOf("api-version") > -1) { + return item.replace(/(?<==).*$/, apiVersion); + } else { + return item; + } + }); + request.url = param[0] + "?" + newParams.join("&"); + } + return next(request); + } + }; + this.pipeline.addPolicy(apiVersionPolicy); } operations: Operations; @@ -151,6 +188,7 @@ export class NetAppManagementClient extends coreClient.ServiceClient { backups: Backups; accountBackups: AccountBackups; backupPolicies: BackupPolicies; + volumeQuotaRules: VolumeQuotaRules; vaults: Vaults; volumeGroups: VolumeGroups; subvolumes: Subvolumes; diff --git a/sdk/netapp/arm-netapp/src/operations/index.ts b/sdk/netapp/arm-netapp/src/operations/index.ts index cec2cd1de8a7..f5a72741af4e 100644 --- a/sdk/netapp/arm-netapp/src/operations/index.ts +++ b/sdk/netapp/arm-netapp/src/operations/index.ts @@ -17,6 +17,7 @@ export * from "./snapshotPolicies"; export * from "./backups"; export * from "./accountBackups"; export * from "./backupPolicies"; +export * from "./volumeQuotaRules"; export * from "./vaults"; export * from "./volumeGroups"; export * from "./subvolumes"; diff --git a/sdk/netapp/arm-netapp/src/operations/subvolumes.ts b/sdk/netapp/arm-netapp/src/operations/subvolumes.ts index ebbdf7db39ac..eb52fba5c144 100644 --- a/sdk/netapp/arm-netapp/src/operations/subvolumes.ts +++ b/sdk/netapp/arm-netapp/src/operations/subvolumes.ts @@ -729,7 +729,7 @@ const createOperationSpec: coreClient.OperationSpec = { }, default: {} }, - requestBody: Parameters.body23, + requestBody: Parameters.body25, queryParameters: [Parameters.apiVersion], urlParameters: [ Parameters.$host, @@ -763,7 +763,7 @@ const updateOperationSpec: coreClient.OperationSpec = { }, default: {} }, - requestBody: Parameters.body24, + requestBody: Parameters.body26, 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 c2b0c7656cbc..b3e501d1ef33 100644 --- a/sdk/netapp/arm-netapp/src/operations/volumeGroups.ts +++ b/sdk/netapp/arm-netapp/src/operations/volumeGroups.ts @@ -382,7 +382,7 @@ const createOperationSpec: coreClient.OperationSpec = { }, default: {} }, - requestBody: Parameters.body22, + requestBody: Parameters.body24, 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 new file mode 100644 index 000000000000..15d622452516 --- /dev/null +++ b/sdk/netapp/arm-netapp/src/operations/volumeQuotaRules.ts @@ -0,0 +1,640 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is regenerated. + */ + +import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { VolumeQuotaRules } from "../operationsInterfaces"; +import * as coreClient from "@azure/core-client"; +import * as Mappers from "../models/mappers"; +import * as Parameters from "../models/parameters"; +import { NetAppManagementClient } from "../netAppManagementClient"; +import { PollerLike, PollOperationState, LroEngine } from "@azure/core-lro"; +import { LroImpl } from "../lroImpl"; +import { + VolumeQuotaRule, + VolumeQuotaRulesListByVolumeOptionalParams, + VolumeQuotaRulesListByVolumeResponse, + VolumeQuotaRulesGetOptionalParams, + VolumeQuotaRulesGetResponse, + VolumeQuotaRulesCreateOptionalParams, + VolumeQuotaRulesCreateResponse, + VolumeQuotaRulePatch, + VolumeQuotaRulesUpdateOptionalParams, + VolumeQuotaRulesUpdateResponse, + VolumeQuotaRulesDeleteOptionalParams +} from "../models"; + +/// +/** Class containing VolumeQuotaRules operations. */ +export class VolumeQuotaRulesImpl implements VolumeQuotaRules { + private readonly client: NetAppManagementClient; + + /** + * Initialize a new instance of the class VolumeQuotaRules class. + * @param client Reference to the service client + */ + constructor(client: NetAppManagementClient) { + this.client = client; + } + + /** + * List all quota rules associated with the volume + * @param resourceGroupName The name of the resource group. + * @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. + */ + public listByVolume( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumeQuotaRulesListByVolumeOptionalParams + ): PagedAsyncIterableIterator { + const iter = this.listByVolumePagingAll( + resourceGroupName, + accountName, + poolName, + volumeName, + options + ); + return { + next() { + return iter.next(); + }, + [Symbol.asyncIterator]() { + return this; + }, + byPage: () => { + return this.listByVolumePagingPage( + resourceGroupName, + accountName, + poolName, + volumeName, + options + ); + } + }; + } + + private async *listByVolumePagingPage( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumeQuotaRulesListByVolumeOptionalParams + ): AsyncIterableIterator { + let result = await this._listByVolume( + resourceGroupName, + accountName, + poolName, + volumeName, + options + ); + yield result.value || []; + } + + private async *listByVolumePagingAll( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumeQuotaRulesListByVolumeOptionalParams + ): AsyncIterableIterator { + for await (const page of this.listByVolumePagingPage( + resourceGroupName, + accountName, + poolName, + volumeName, + options + )) { + yield* page; + } + } + + /** + * List all quota rules associated with the volume + * @param resourceGroupName The name of the resource group. + * @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 _listByVolume( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumeQuotaRulesListByVolumeOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { resourceGroupName, accountName, poolName, volumeName, options }, + listByVolumeOperationSpec + ); + } + + /** + * Get details of the specified quota rule + * @param resourceGroupName The name of the resource group. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param volumeQuotaRuleName The name of volume quota rule + * @param options The options parameters. + */ + get( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + volumeQuotaRuleName: string, + options?: VolumeQuotaRulesGetOptionalParams + ): Promise { + return this.client.sendOperationRequest( + { + resourceGroupName, + accountName, + poolName, + volumeName, + volumeQuotaRuleName, + options + }, + getOperationSpec + ); + } + + /** + * Create the specified quota rule within the given volume + * @param resourceGroupName The name of the resource group. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param volumeQuotaRuleName The name of volume quota rule + * @param body Quota rule object supplied in the body of the operation. + * @param options The options parameters. + */ + async beginCreate( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + volumeQuotaRuleName: string, + body: VolumeQuotaRule, + options?: VolumeQuotaRulesCreateOptionalParams + ): Promise< + PollerLike< + PollOperationState, + VolumeQuotaRulesCreateResponse + > + > { + const directSendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ): Promise => { + return this.client.sendOperationRequest(args, spec); + }; + const sendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ) => { + let currentRawResponse: + | coreClient.FullOperationResponse + | undefined = undefined; + const providedCallback = args.options?.onResponse; + const callback: coreClient.RawResponseCallback = ( + rawResponse: coreClient.FullOperationResponse, + flatResponse: unknown + ) => { + currentRawResponse = rawResponse; + providedCallback?.(rawResponse, flatResponse); + }; + const updatedArgs = { + ...args, + options: { + ...args.options, + onResponse: callback + } + }; + const flatResponse = await directSendOperation(updatedArgs, spec); + return { + flatResponse, + rawResponse: { + statusCode: currentRawResponse!.status, + body: currentRawResponse!.parsedBody, + headers: currentRawResponse!.headers.toJSON() + } + }; + }; + + const lro = new LroImpl( + sendOperation, + { + resourceGroupName, + accountName, + poolName, + volumeName, + volumeQuotaRuleName, + body, + options + }, + createOperationSpec + ); + const poller = new LroEngine(lro, { + resumeFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs, + lroResourceLocationConfig: "location" + }); + await poller.poll(); + return poller; + } + + /** + * Create the specified quota rule within the given volume + * @param resourceGroupName The name of the resource group. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param volumeQuotaRuleName The name of volume quota rule + * @param body Quota rule object supplied in the body of the operation. + * @param options The options parameters. + */ + async beginCreateAndWait( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + volumeQuotaRuleName: string, + body: VolumeQuotaRule, + options?: VolumeQuotaRulesCreateOptionalParams + ): Promise { + const poller = await this.beginCreate( + resourceGroupName, + accountName, + poolName, + volumeName, + volumeQuotaRuleName, + body, + options + ); + return poller.pollUntilDone(); + } + + /** + * Patch a quota rule + * @param resourceGroupName The name of the resource group. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param volumeQuotaRuleName The name of volume quota rule + * @param body Quota rule object supplied in the body of the operation. + * @param options The options parameters. + */ + async beginUpdate( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + volumeQuotaRuleName: string, + body: VolumeQuotaRulePatch, + options?: VolumeQuotaRulesUpdateOptionalParams + ): Promise< + PollerLike< + PollOperationState, + VolumeQuotaRulesUpdateResponse + > + > { + const directSendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ): Promise => { + return this.client.sendOperationRequest(args, spec); + }; + const sendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ) => { + let currentRawResponse: + | coreClient.FullOperationResponse + | undefined = undefined; + const providedCallback = args.options?.onResponse; + const callback: coreClient.RawResponseCallback = ( + rawResponse: coreClient.FullOperationResponse, + flatResponse: unknown + ) => { + currentRawResponse = rawResponse; + providedCallback?.(rawResponse, flatResponse); + }; + const updatedArgs = { + ...args, + options: { + ...args.options, + onResponse: callback + } + }; + const flatResponse = await directSendOperation(updatedArgs, spec); + return { + flatResponse, + rawResponse: { + statusCode: currentRawResponse!.status, + body: currentRawResponse!.parsedBody, + headers: currentRawResponse!.headers.toJSON() + } + }; + }; + + const lro = new LroImpl( + sendOperation, + { + resourceGroupName, + accountName, + poolName, + volumeName, + volumeQuotaRuleName, + body, + options + }, + updateOperationSpec + ); + const poller = new LroEngine(lro, { + resumeFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs, + lroResourceLocationConfig: "location" + }); + await poller.poll(); + return poller; + } + + /** + * Patch a quota rule + * @param resourceGroupName The name of the resource group. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param volumeQuotaRuleName The name of volume quota rule + * @param body Quota rule object supplied in the body of the operation. + * @param options The options parameters. + */ + async beginUpdateAndWait( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + volumeQuotaRuleName: string, + body: VolumeQuotaRulePatch, + options?: VolumeQuotaRulesUpdateOptionalParams + ): Promise { + const poller = await this.beginUpdate( + resourceGroupName, + accountName, + poolName, + volumeName, + volumeQuotaRuleName, + body, + options + ); + return poller.pollUntilDone(); + } + + /** + * Delete quota rule + * @param resourceGroupName The name of the resource group. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param volumeQuotaRuleName The name of volume quota rule + * @param options The options parameters. + */ + async beginDelete( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + volumeQuotaRuleName: string, + options?: VolumeQuotaRulesDeleteOptionalParams + ): Promise, void>> { + const directSendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ): Promise => { + return this.client.sendOperationRequest(args, spec); + }; + const sendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ) => { + let currentRawResponse: + | coreClient.FullOperationResponse + | undefined = undefined; + const providedCallback = args.options?.onResponse; + const callback: coreClient.RawResponseCallback = ( + rawResponse: coreClient.FullOperationResponse, + flatResponse: unknown + ) => { + currentRawResponse = rawResponse; + providedCallback?.(rawResponse, flatResponse); + }; + const updatedArgs = { + ...args, + options: { + ...args.options, + onResponse: callback + } + }; + const flatResponse = await directSendOperation(updatedArgs, spec); + return { + flatResponse, + rawResponse: { + statusCode: currentRawResponse!.status, + body: currentRawResponse!.parsedBody, + headers: currentRawResponse!.headers.toJSON() + } + }; + }; + + const lro = new LroImpl( + sendOperation, + { + resourceGroupName, + accountName, + poolName, + volumeName, + volumeQuotaRuleName, + options + }, + deleteOperationSpec + ); + const poller = new LroEngine(lro, { + resumeFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs, + lroResourceLocationConfig: "location" + }); + await poller.poll(); + return poller; + } + + /** + * Delete quota rule + * @param resourceGroupName The name of the resource group. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param volumeQuotaRuleName The name of volume quota rule + * @param options The options parameters. + */ + async beginDeleteAndWait( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + volumeQuotaRuleName: string, + options?: VolumeQuotaRulesDeleteOptionalParams + ): Promise { + const poller = await this.beginDelete( + resourceGroupName, + accountName, + poolName, + volumeName, + volumeQuotaRuleName, + options + ); + return poller.pollUntilDone(); + } +} +// Operation Specifications +const serializer = coreClient.createSerializer(Mappers, /* isXml */ false); + +const listByVolumeOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/volumeQuotaRules", + httpMethod: "GET", + responses: { + 200: { + bodyMapper: Mappers.VolumeQuotaRulesList + }, + default: {} + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.accountName, + Parameters.poolName, + Parameters.volumeName + ], + headerParameters: [Parameters.accept], + serializer +}; +const getOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/volumeQuotaRules/{volumeQuotaRuleName}", + httpMethod: "GET", + responses: { + 200: { + bodyMapper: Mappers.VolumeQuotaRule + }, + default: {} + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.accountName, + Parameters.poolName, + Parameters.volumeName, + Parameters.volumeQuotaRuleName + ], + headerParameters: [Parameters.accept], + serializer +}; +const createOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/volumeQuotaRules/{volumeQuotaRuleName}", + httpMethod: "PUT", + responses: { + 200: { + bodyMapper: Mappers.VolumeQuotaRule + }, + 201: { + bodyMapper: Mappers.VolumeQuotaRule + }, + 202: { + bodyMapper: Mappers.VolumeQuotaRule + }, + 204: { + bodyMapper: Mappers.VolumeQuotaRule + }, + default: {} + }, + requestBody: Parameters.body22, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.accountName, + Parameters.poolName, + Parameters.volumeName, + Parameters.volumeQuotaRuleName + ], + headerParameters: [Parameters.accept, Parameters.contentType], + mediaType: "json", + serializer +}; +const updateOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/volumeQuotaRules/{volumeQuotaRuleName}", + httpMethod: "PATCH", + responses: { + 200: { + bodyMapper: Mappers.VolumeQuotaRule + }, + 201: { + bodyMapper: Mappers.VolumeQuotaRule + }, + 202: { + bodyMapper: Mappers.VolumeQuotaRule + }, + 204: { + bodyMapper: Mappers.VolumeQuotaRule + }, + default: {} + }, + requestBody: Parameters.body23, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.accountName, + Parameters.poolName, + Parameters.volumeName, + Parameters.volumeQuotaRuleName + ], + headerParameters: [Parameters.accept, Parameters.contentType], + mediaType: "json", + serializer +}; +const deleteOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/volumeQuotaRules/{volumeQuotaRuleName}", + httpMethod: "DELETE", + responses: { 200: {}, 201: {}, 202: {}, 204: {}, default: {} }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.accountName, + Parameters.poolName, + Parameters.volumeName, + Parameters.volumeQuotaRuleName + ], + serializer +}; diff --git a/sdk/netapp/arm-netapp/src/operations/volumes.ts b/sdk/netapp/arm-netapp/src/operations/volumes.ts index 7feb2e57c25e..3e787c728e9f 100644 --- a/sdk/netapp/arm-netapp/src/operations/volumes.ts +++ b/sdk/netapp/arm-netapp/src/operations/volumes.ts @@ -29,9 +29,12 @@ import { VolumesDeleteOptionalParams, VolumeRevert, VolumesRevertOptionalParams, + VolumesResetCifsPasswordOptionalParams, VolumesBreakReplicationOptionalParams, VolumesReplicationStatusOptionalParams, VolumesReplicationStatusResponse, + VolumesListReplicationsOptionalParams, + VolumesListReplicationsResponse, VolumesResyncReplicationOptionalParams, VolumesDeleteReplicationOptionalParams, AuthorizeRequest, @@ -39,6 +42,9 @@ import { VolumesReInitializeReplicationOptionalParams, PoolChangeRequest, VolumesPoolChangeOptionalParams, + VolumesRelocateOptionalParams, + VolumesFinalizeRelocationOptionalParams, + VolumesRevertRelocationOptionalParams, VolumesListNextResponse } from "../models"; @@ -569,6 +575,98 @@ export class VolumesImpl implements Volumes { return poller.pollUntilDone(); } + /** + * Reset cifs password from volume + * @param resourceGroupName The name of the resource group. + * @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 beginResetCifsPassword( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesResetCifsPasswordOptionalParams + ): Promise, void>> { + const directSendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ): Promise => { + return this.client.sendOperationRequest(args, spec); + }; + const sendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ) => { + let currentRawResponse: + | coreClient.FullOperationResponse + | undefined = undefined; + const providedCallback = args.options?.onResponse; + const callback: coreClient.RawResponseCallback = ( + rawResponse: coreClient.FullOperationResponse, + flatResponse: unknown + ) => { + currentRawResponse = rawResponse; + providedCallback?.(rawResponse, flatResponse); + }; + const updatedArgs = { + ...args, + options: { + ...args.options, + onResponse: callback + } + }; + const flatResponse = await directSendOperation(updatedArgs, spec); + return { + flatResponse, + rawResponse: { + statusCode: currentRawResponse!.status, + body: currentRawResponse!.parsedBody, + headers: currentRawResponse!.headers.toJSON() + } + }; + }; + + const lro = new LroImpl( + sendOperation, + { resourceGroupName, accountName, poolName, volumeName, options }, + resetCifsPasswordOperationSpec + ); + const poller = new LroEngine(lro, { + resumeFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs + }); + await poller.poll(); + return poller; + } + + /** + * Reset cifs password from volume + * @param resourceGroupName The name of the resource group. + * @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 beginResetCifsPasswordAndWait( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesResetCifsPasswordOptionalParams + ): Promise { + const poller = await this.beginResetCifsPassword( + resourceGroupName, + accountName, + poolName, + volumeName, + options + ); + return poller.pollUntilDone(); + } + /** * Break the replication connection on the destination volume * @param resourceGroupName The name of the resource group. @@ -683,6 +781,27 @@ export class VolumesImpl implements Volumes { ); } + /** + * List all replications for a specified volume + * @param resourceGroupName The name of the resource group. + * @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. + */ + 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. @@ -1162,6 +1281,284 @@ export class VolumesImpl implements Volumes { return poller.pollUntilDone(); } + /** + * Relocates volume to a new stamp + * @param resourceGroupName The name of the resource group. + * @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 beginRelocate( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesRelocateOptionalParams + ): Promise, void>> { + const directSendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ): Promise => { + return this.client.sendOperationRequest(args, spec); + }; + const sendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ) => { + let currentRawResponse: + | coreClient.FullOperationResponse + | undefined = undefined; + const providedCallback = args.options?.onResponse; + const callback: coreClient.RawResponseCallback = ( + rawResponse: coreClient.FullOperationResponse, + flatResponse: unknown + ) => { + currentRawResponse = rawResponse; + providedCallback?.(rawResponse, flatResponse); + }; + const updatedArgs = { + ...args, + options: { + ...args.options, + onResponse: callback + } + }; + const flatResponse = await directSendOperation(updatedArgs, spec); + return { + flatResponse, + rawResponse: { + statusCode: currentRawResponse!.status, + body: currentRawResponse!.parsedBody, + headers: currentRawResponse!.headers.toJSON() + } + }; + }; + + const lro = new LroImpl( + sendOperation, + { resourceGroupName, accountName, poolName, volumeName, options }, + relocateOperationSpec + ); + const poller = new LroEngine(lro, { + resumeFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs + }); + await poller.poll(); + return poller; + } + + /** + * Relocates volume to a new stamp + * @param resourceGroupName The name of the resource group. + * @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 beginRelocateAndWait( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesRelocateOptionalParams + ): Promise { + const poller = await this.beginRelocate( + resourceGroupName, + accountName, + poolName, + volumeName, + options + ); + return poller.pollUntilDone(); + } + + /** + * Finalizes the relocation of the volume and cleans up the old volume. + * @param resourceGroupName The name of the resource group. + * @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 beginFinalizeRelocation( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesFinalizeRelocationOptionalParams + ): Promise, void>> { + const directSendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ): Promise => { + return this.client.sendOperationRequest(args, spec); + }; + const sendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ) => { + let currentRawResponse: + | coreClient.FullOperationResponse + | undefined = undefined; + const providedCallback = args.options?.onResponse; + const callback: coreClient.RawResponseCallback = ( + rawResponse: coreClient.FullOperationResponse, + flatResponse: unknown + ) => { + currentRawResponse = rawResponse; + providedCallback?.(rawResponse, flatResponse); + }; + const updatedArgs = { + ...args, + options: { + ...args.options, + onResponse: callback + } + }; + const flatResponse = await directSendOperation(updatedArgs, spec); + return { + flatResponse, + rawResponse: { + statusCode: currentRawResponse!.status, + body: currentRawResponse!.parsedBody, + headers: currentRawResponse!.headers.toJSON() + } + }; + }; + + const lro = new LroImpl( + sendOperation, + { resourceGroupName, accountName, poolName, volumeName, options }, + finalizeRelocationOperationSpec + ); + const poller = new LroEngine(lro, { + resumeFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs + }); + await poller.poll(); + return poller; + } + + /** + * Finalizes the relocation of the volume and cleans up the old volume. + * @param resourceGroupName The name of the resource group. + * @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 beginFinalizeRelocationAndWait( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesFinalizeRelocationOptionalParams + ): Promise { + const poller = await this.beginFinalizeRelocation( + resourceGroupName, + accountName, + poolName, + volumeName, + options + ); + return poller.pollUntilDone(); + } + + /** + * Reverts the volume relocation process, cleans up the new volume and starts using the former-existing + * volume. + * @param resourceGroupName The name of the resource group. + * @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 beginRevertRelocation( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesRevertRelocationOptionalParams + ): Promise, void>> { + const directSendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ): Promise => { + return this.client.sendOperationRequest(args, spec); + }; + const sendOperation = async ( + args: coreClient.OperationArguments, + spec: coreClient.OperationSpec + ) => { + let currentRawResponse: + | coreClient.FullOperationResponse + | undefined = undefined; + const providedCallback = args.options?.onResponse; + const callback: coreClient.RawResponseCallback = ( + rawResponse: coreClient.FullOperationResponse, + flatResponse: unknown + ) => { + currentRawResponse = rawResponse; + providedCallback?.(rawResponse, flatResponse); + }; + const updatedArgs = { + ...args, + options: { + ...args.options, + onResponse: callback + } + }; + const flatResponse = await directSendOperation(updatedArgs, spec); + return { + flatResponse, + rawResponse: { + statusCode: currentRawResponse!.status, + body: currentRawResponse!.parsedBody, + headers: currentRawResponse!.headers.toJSON() + } + }; + }; + + const lro = new LroImpl( + sendOperation, + { resourceGroupName, accountName, poolName, volumeName, options }, + revertRelocationOperationSpec + ); + const poller = new LroEngine(lro, { + resumeFrom: options?.resumeFrom, + intervalInMs: options?.updateIntervalInMs + }); + await poller.poll(); + return poller; + } + + /** + * Reverts the volume relocation process, cleans up the new volume and starts using the former-existing + * volume. + * @param resourceGroupName The name of the resource group. + * @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 beginRevertRelocationAndWait( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesRevertRelocationOptionalParams + ): Promise { + const poller = await this.beginRevertRelocation( + resourceGroupName, + accountName, + poolName, + volumeName, + options + ); + return poller.pollUntilDone(); + } + /** * ListNext * @param resourceGroupName The name of the resource group. @@ -1332,6 +1729,22 @@ const revertOperationSpec: coreClient.OperationSpec = { mediaType: "json", serializer }; +const resetCifsPasswordOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/resetCifsPassword", + httpMethod: "POST", + responses: { 200: {}, 201: {}, 202: {}, 204: {}, default: {} }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.accountName, + Parameters.poolName, + Parameters.volumeName + ], + serializer +}; const breakReplicationOperationSpec: coreClient.OperationSpec = { path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/breakReplication", @@ -1373,6 +1786,28 @@ const replicationStatusOperationSpec: coreClient.OperationSpec = { headerParameters: [Parameters.accept], serializer }; +const listReplicationsOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/listReplications", + httpMethod: "POST", + responses: { + 200: { + bodyMapper: Mappers.ListReplications + }, + default: {} + }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.accountName, + Parameters.poolName, + Parameters.volumeName + ], + headerParameters: [Parameters.accept], + serializer +}; const resyncReplicationOperationSpec: coreClient.OperationSpec = { path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/resyncReplication", @@ -1459,6 +1894,54 @@ const poolChangeOperationSpec: coreClient.OperationSpec = { mediaType: "json", serializer }; +const relocateOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/relocate", + httpMethod: "POST", + responses: { 200: {}, 201: {}, 202: {}, 204: {}, default: {} }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.accountName, + Parameters.poolName, + Parameters.volumeName + ], + serializer +}; +const finalizeRelocationOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/finalizeRelocation", + httpMethod: "POST", + responses: { 200: {}, 201: {}, 202: {}, 204: {}, default: {} }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.accountName, + Parameters.poolName, + Parameters.volumeName + ], + serializer +}; +const revertRelocationOperationSpec: coreClient.OperationSpec = { + path: + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetApp/netAppAccounts/{accountName}/capacityPools/{poolName}/volumes/{volumeName}/revertRelocation", + httpMethod: "POST", + responses: { 200: {}, 201: {}, 202: {}, 204: {}, default: {} }, + queryParameters: [Parameters.apiVersion], + urlParameters: [ + Parameters.$host, + Parameters.subscriptionId, + Parameters.resourceGroupName, + Parameters.accountName, + Parameters.poolName, + Parameters.volumeName + ], + serializer +}; const listNextOperationSpec: coreClient.OperationSpec = { path: "{nextLink}", httpMethod: "GET", diff --git a/sdk/netapp/arm-netapp/src/operationsInterfaces/index.ts b/sdk/netapp/arm-netapp/src/operationsInterfaces/index.ts index cec2cd1de8a7..f5a72741af4e 100644 --- a/sdk/netapp/arm-netapp/src/operationsInterfaces/index.ts +++ b/sdk/netapp/arm-netapp/src/operationsInterfaces/index.ts @@ -17,6 +17,7 @@ export * from "./snapshotPolicies"; export * from "./backups"; export * from "./accountBackups"; export * from "./backupPolicies"; +export * from "./volumeQuotaRules"; export * from "./vaults"; export * from "./volumeGroups"; export * from "./subvolumes"; diff --git a/sdk/netapp/arm-netapp/src/operationsInterfaces/volumeQuotaRules.ts b/sdk/netapp/arm-netapp/src/operationsInterfaces/volumeQuotaRules.ts new file mode 100644 index 000000000000..16bb19440046 --- /dev/null +++ b/sdk/netapp/arm-netapp/src/operationsInterfaces/volumeQuotaRules.ts @@ -0,0 +1,179 @@ +/* + * Copyright (c) Microsoft Corporation. + * Licensed under the MIT License. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is regenerated. + */ + +import { PagedAsyncIterableIterator } from "@azure/core-paging"; +import { PollerLike, PollOperationState } from "@azure/core-lro"; +import { + VolumeQuotaRule, + VolumeQuotaRulesListByVolumeOptionalParams, + VolumeQuotaRulesGetOptionalParams, + VolumeQuotaRulesGetResponse, + VolumeQuotaRulesCreateOptionalParams, + VolumeQuotaRulesCreateResponse, + VolumeQuotaRulePatch, + VolumeQuotaRulesUpdateOptionalParams, + VolumeQuotaRulesUpdateResponse, + VolumeQuotaRulesDeleteOptionalParams +} from "../models"; + +/// +/** Interface representing a VolumeQuotaRules. */ +export interface VolumeQuotaRules { + /** + * List all quota rules associated with the volume + * @param resourceGroupName The name of the resource group. + * @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. + */ + listByVolume( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumeQuotaRulesListByVolumeOptionalParams + ): PagedAsyncIterableIterator; + /** + * Get details of the specified quota rule + * @param resourceGroupName The name of the resource group. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param volumeQuotaRuleName The name of volume quota rule + * @param options The options parameters. + */ + get( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + volumeQuotaRuleName: string, + options?: VolumeQuotaRulesGetOptionalParams + ): Promise; + /** + * Create the specified quota rule within the given volume + * @param resourceGroupName The name of the resource group. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param volumeQuotaRuleName The name of volume quota rule + * @param body Quota rule object supplied in the body of the operation. + * @param options The options parameters. + */ + beginCreate( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + volumeQuotaRuleName: string, + body: VolumeQuotaRule, + options?: VolumeQuotaRulesCreateOptionalParams + ): Promise< + PollerLike< + PollOperationState, + VolumeQuotaRulesCreateResponse + > + >; + /** + * Create the specified quota rule within the given volume + * @param resourceGroupName The name of the resource group. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param volumeQuotaRuleName The name of volume quota rule + * @param body Quota rule object supplied in the body of the operation. + * @param options The options parameters. + */ + beginCreateAndWait( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + volumeQuotaRuleName: string, + body: VolumeQuotaRule, + options?: VolumeQuotaRulesCreateOptionalParams + ): Promise; + /** + * Patch a quota rule + * @param resourceGroupName The name of the resource group. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param volumeQuotaRuleName The name of volume quota rule + * @param body Quota rule object supplied in the body of the operation. + * @param options The options parameters. + */ + beginUpdate( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + volumeQuotaRuleName: string, + body: VolumeQuotaRulePatch, + options?: VolumeQuotaRulesUpdateOptionalParams + ): Promise< + PollerLike< + PollOperationState, + VolumeQuotaRulesUpdateResponse + > + >; + /** + * Patch a quota rule + * @param resourceGroupName The name of the resource group. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param volumeQuotaRuleName The name of volume quota rule + * @param body Quota rule object supplied in the body of the operation. + * @param options The options parameters. + */ + beginUpdateAndWait( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + volumeQuotaRuleName: string, + body: VolumeQuotaRulePatch, + options?: VolumeQuotaRulesUpdateOptionalParams + ): Promise; + /** + * Delete quota rule + * @param resourceGroupName The name of the resource group. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param volumeQuotaRuleName The name of volume quota rule + * @param options The options parameters. + */ + beginDelete( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + volumeQuotaRuleName: string, + options?: VolumeQuotaRulesDeleteOptionalParams + ): Promise, void>>; + /** + * Delete quota rule + * @param resourceGroupName The name of the resource group. + * @param accountName The name of the NetApp account + * @param poolName The name of the capacity pool + * @param volumeName The name of the volume + * @param volumeQuotaRuleName The name of volume quota rule + * @param options The options parameters. + */ + beginDeleteAndWait( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + volumeQuotaRuleName: string, + options?: VolumeQuotaRulesDeleteOptionalParams + ): Promise; +} diff --git a/sdk/netapp/arm-netapp/src/operationsInterfaces/volumes.ts b/sdk/netapp/arm-netapp/src/operationsInterfaces/volumes.ts index ac6e3a4a0781..810dc3309c75 100644 --- a/sdk/netapp/arm-netapp/src/operationsInterfaces/volumes.ts +++ b/sdk/netapp/arm-netapp/src/operationsInterfaces/volumes.ts @@ -21,16 +21,22 @@ import { VolumesDeleteOptionalParams, VolumeRevert, VolumesRevertOptionalParams, + VolumesResetCifsPasswordOptionalParams, VolumesBreakReplicationOptionalParams, VolumesReplicationStatusOptionalParams, VolumesReplicationStatusResponse, + VolumesListReplicationsOptionalParams, + VolumesListReplicationsResponse, VolumesResyncReplicationOptionalParams, VolumesDeleteReplicationOptionalParams, AuthorizeRequest, VolumesAuthorizeReplicationOptionalParams, VolumesReInitializeReplicationOptionalParams, PoolChangeRequest, - VolumesPoolChangeOptionalParams + VolumesPoolChangeOptionalParams, + VolumesRelocateOptionalParams, + VolumesFinalizeRelocationOptionalParams, + VolumesRevertRelocationOptionalParams } from "../models"; /// @@ -203,6 +209,36 @@ export interface Volumes { body: VolumeRevert, options?: VolumesRevertOptionalParams ): Promise; + /** + * Reset cifs password from volume + * @param resourceGroupName The name of the resource group. + * @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. + */ + beginResetCifsPassword( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesResetCifsPasswordOptionalParams + ): Promise, void>>; + /** + * Reset cifs password from volume + * @param resourceGroupName The name of the resource group. + * @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. + */ + beginResetCifsPasswordAndWait( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesResetCifsPasswordOptionalParams + ): Promise; /** * Break the replication connection on the destination volume * @param resourceGroupName The name of the resource group. @@ -248,6 +284,21 @@ export interface Volumes { volumeName: string, options?: VolumesReplicationStatusOptionalParams ): Promise; + /** + * List all replications for a specified volume + * @param resourceGroupName The name of the resource group. + * @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. + */ + listReplications( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesListReplicationsOptionalParams + ): Promise; /** * 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. @@ -410,4 +461,96 @@ export interface Volumes { body: PoolChangeRequest, options?: VolumesPoolChangeOptionalParams ): Promise; + /** + * Relocates volume to a new stamp + * @param resourceGroupName The name of the resource group. + * @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. + */ + beginRelocate( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesRelocateOptionalParams + ): Promise, void>>; + /** + * Relocates volume to a new stamp + * @param resourceGroupName The name of the resource group. + * @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. + */ + beginRelocateAndWait( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesRelocateOptionalParams + ): Promise; + /** + * Finalizes the relocation of the volume and cleans up the old volume. + * @param resourceGroupName The name of the resource group. + * @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. + */ + beginFinalizeRelocation( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesFinalizeRelocationOptionalParams + ): Promise, void>>; + /** + * Finalizes the relocation of the volume and cleans up the old volume. + * @param resourceGroupName The name of the resource group. + * @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. + */ + beginFinalizeRelocationAndWait( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesFinalizeRelocationOptionalParams + ): Promise; + /** + * Reverts the volume relocation process, cleans up the new volume and starts using the former-existing + * volume. + * @param resourceGroupName The name of the resource group. + * @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. + */ + beginRevertRelocation( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesRevertRelocationOptionalParams + ): Promise, void>>; + /** + * Reverts the volume relocation process, cleans up the new volume and starts using the former-existing + * volume. + * @param resourceGroupName The name of the resource group. + * @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. + */ + beginRevertRelocationAndWait( + resourceGroupName: string, + accountName: string, + poolName: string, + volumeName: string, + options?: VolumesRevertRelocationOptionalParams + ): Promise; } diff --git a/sdk/netapp/arm-netapp/test/sampleTest.ts b/sdk/netapp/arm-netapp/test/sampleTest.ts index 7ed89b043e1b..25aeb3ebcc36 100644 --- a/sdk/netapp/arm-netapp/test/sampleTest.ts +++ b/sdk/netapp/arm-netapp/test/sampleTest.ts @@ -7,35 +7,30 @@ */ import { - env, - record, - RecorderEnvironmentSetup, - Recorder + Recorder, + RecorderStartOptions, + env } from "@azure-tools/test-recorder"; -import * as assert from "assert"; +import { assert } from "chai"; +import { Context } from "mocha"; -const recorderEnvSetup: RecorderEnvironmentSetup = { - replaceableVariables: { - AZURE_CLIENT_ID: "azure_client_id", - AZURE_CLIENT_SECRET: "azure_client_secret", - AZURE_TENANT_ID: "88888888-8888-8888-8888-888888888888", - SUBSCRIPTION_ID: "azure_subscription_id" - }, - customizationsOnRecordings: [ - (recording: any): any => - recording.replace( - /"access_token":"[^"]*"/g, - `"access_token":"access_token"` - ) - ], - queryParametersToSkip: [] +const replaceableVariables: Record = { + AZURE_CLIENT_ID: "azure_client_id", + AZURE_CLIENT_SECRET: "azure_client_secret", + AZURE_TENANT_ID: "88888888-8888-8888-8888-888888888888", + SUBSCRIPTION_ID: "azure_subscription_id" +}; + +const recorderOptions: RecorderStartOptions = { + envSetupForPlayback: replaceableVariables }; describe("My test", () => { let recorder: Recorder; - beforeEach(async function() { - recorder = record(this, recorderEnvSetup); + beforeEach(async function(this: Context) { + recorder = new Recorder(this.currentTest); + await recorder.start(recorderOptions); }); afterEach(async function() { diff --git a/sdk/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"