/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Specifies the configuration of the ONTAP volume that you are
* creating.See Also:
AWS
* API Reference
Specifies the location in the SVM's namespace where the volume is mounted.
* This parameter is required. The JunctionPath
must have a leading
* forward slash, such as /vol3
.
Specifies the location in the SVM's namespace where the volume is mounted.
* This parameter is required. The JunctionPath
must have a leading
* forward slash, such as /vol3
.
Specifies the location in the SVM's namespace where the volume is mounted.
* This parameter is required. The JunctionPath
must have a leading
* forward slash, such as /vol3
.
Specifies the location in the SVM's namespace where the volume is mounted.
* This parameter is required. The JunctionPath
must have a leading
* forward slash, such as /vol3
.
Specifies the location in the SVM's namespace where the volume is mounted.
* This parameter is required. The JunctionPath
must have a leading
* forward slash, such as /vol3
.
Specifies the location in the SVM's namespace where the volume is mounted.
* This parameter is required. The JunctionPath
must have a leading
* forward slash, such as /vol3
.
Specifies the location in the SVM's namespace where the volume is mounted.
* This parameter is required. The JunctionPath
must have a leading
* forward slash, such as /vol3
.
Specifies the location in the SVM's namespace where the volume is mounted.
* This parameter is required. The JunctionPath
must have a leading
* forward slash, such as /vol3
.
Specifies the security style for the volume. If a volume's security style is * not specified, it is automatically set to the root volume's security style. The * security style determines the type of permissions that FSx for ONTAP uses to * control data access. For more information, see Volume * security style in the Amazon FSx for NetApp ONTAP User Guide. Specify * one of the following values:
UNIX
if the file
* system is managed by a UNIX administrator, the majority of users are NFS
* clients, and an application accessing the data uses a UNIX user as the service
* account.
NTFS
if the file system is managed by
* a Windows administrator, the majority of users are SMB clients, and an
* application accessing the data uses a Windows user as the service account.
MIXED
if the file system is managed by both UNIX and
* Windows administrators and users consist of both NFS and SMB clients.
Specifies the security style for the volume. If a volume's security style is * not specified, it is automatically set to the root volume's security style. The * security style determines the type of permissions that FSx for ONTAP uses to * control data access. For more information, see Volume * security style in the Amazon FSx for NetApp ONTAP User Guide. Specify * one of the following values:
UNIX
if the file
* system is managed by a UNIX administrator, the majority of users are NFS
* clients, and an application accessing the data uses a UNIX user as the service
* account.
NTFS
if the file system is managed by
* a Windows administrator, the majority of users are SMB clients, and an
* application accessing the data uses a Windows user as the service account.
MIXED
if the file system is managed by both UNIX and
* Windows administrators and users consist of both NFS and SMB clients.
Specifies the security style for the volume. If a volume's security style is * not specified, it is automatically set to the root volume's security style. The * security style determines the type of permissions that FSx for ONTAP uses to * control data access. For more information, see Volume * security style in the Amazon FSx for NetApp ONTAP User Guide. Specify * one of the following values:
UNIX
if the file
* system is managed by a UNIX administrator, the majority of users are NFS
* clients, and an application accessing the data uses a UNIX user as the service
* account.
NTFS
if the file system is managed by
* a Windows administrator, the majority of users are SMB clients, and an
* application accessing the data uses a Windows user as the service account.
MIXED
if the file system is managed by both UNIX and
* Windows administrators and users consist of both NFS and SMB clients.
Specifies the security style for the volume. If a volume's security style is * not specified, it is automatically set to the root volume's security style. The * security style determines the type of permissions that FSx for ONTAP uses to * control data access. For more information, see Volume * security style in the Amazon FSx for NetApp ONTAP User Guide. Specify * one of the following values:
UNIX
if the file
* system is managed by a UNIX administrator, the majority of users are NFS
* clients, and an application accessing the data uses a UNIX user as the service
* account.
NTFS
if the file system is managed by
* a Windows administrator, the majority of users are SMB clients, and an
* application accessing the data uses a Windows user as the service account.
MIXED
if the file system is managed by both UNIX and
* Windows administrators and users consist of both NFS and SMB clients.
Specifies the security style for the volume. If a volume's security style is * not specified, it is automatically set to the root volume's security style. The * security style determines the type of permissions that FSx for ONTAP uses to * control data access. For more information, see Volume * security style in the Amazon FSx for NetApp ONTAP User Guide. Specify * one of the following values:
UNIX
if the file
* system is managed by a UNIX administrator, the majority of users are NFS
* clients, and an application accessing the data uses a UNIX user as the service
* account.
NTFS
if the file system is managed by
* a Windows administrator, the majority of users are SMB clients, and an
* application accessing the data uses a Windows user as the service account.
MIXED
if the file system is managed by both UNIX and
* Windows administrators and users consist of both NFS and SMB clients.
Specifies the security style for the volume. If a volume's security style is * not specified, it is automatically set to the root volume's security style. The * security style determines the type of permissions that FSx for ONTAP uses to * control data access. For more information, see Volume * security style in the Amazon FSx for NetApp ONTAP User Guide. Specify * one of the following values:
UNIX
if the file
* system is managed by a UNIX administrator, the majority of users are NFS
* clients, and an application accessing the data uses a UNIX user as the service
* account.
NTFS
if the file system is managed by
* a Windows administrator, the majority of users are SMB clients, and an
* application accessing the data uses a Windows user as the service account.
MIXED
if the file system is managed by both UNIX and
* Windows administrators and users consist of both NFS and SMB clients.
Specifies the size of the volume, in megabytes (MB), that you are * creating.
*/ inline int GetSizeInMegabytes() const{ return m_sizeInMegabytes; } /** *Specifies the size of the volume, in megabytes (MB), that you are * creating.
*/ inline bool SizeInMegabytesHasBeenSet() const { return m_sizeInMegabytesHasBeenSet; } /** *Specifies the size of the volume, in megabytes (MB), that you are * creating.
*/ inline void SetSizeInMegabytes(int value) { m_sizeInMegabytesHasBeenSet = true; m_sizeInMegabytes = value; } /** *Specifies the size of the volume, in megabytes (MB), that you are * creating.
*/ inline CreateOntapVolumeConfiguration& WithSizeInMegabytes(int value) { SetSizeInMegabytes(value); return *this;} /** *Set to true to enable deduplication, compression, and compaction storage * efficiency features on the volume, or set to false to disable them. This * parameter is required.
*/ inline bool GetStorageEfficiencyEnabled() const{ return m_storageEfficiencyEnabled; } /** *Set to true to enable deduplication, compression, and compaction storage * efficiency features on the volume, or set to false to disable them. This * parameter is required.
*/ inline bool StorageEfficiencyEnabledHasBeenSet() const { return m_storageEfficiencyEnabledHasBeenSet; } /** *Set to true to enable deduplication, compression, and compaction storage * efficiency features on the volume, or set to false to disable them. This * parameter is required.
*/ inline void SetStorageEfficiencyEnabled(bool value) { m_storageEfficiencyEnabledHasBeenSet = true; m_storageEfficiencyEnabled = value; } /** *Set to true to enable deduplication, compression, and compaction storage * efficiency features on the volume, or set to false to disable them. This * parameter is required.
*/ inline CreateOntapVolumeConfiguration& WithStorageEfficiencyEnabled(bool value) { SetStorageEfficiencyEnabled(value); return *this;} /** *Specifies the ONTAP SVM in which to create the volume.
*/ inline const Aws::String& GetStorageVirtualMachineId() const{ return m_storageVirtualMachineId; } /** *Specifies the ONTAP SVM in which to create the volume.
*/ inline bool StorageVirtualMachineIdHasBeenSet() const { return m_storageVirtualMachineIdHasBeenSet; } /** *Specifies the ONTAP SVM in which to create the volume.
*/ inline void SetStorageVirtualMachineId(const Aws::String& value) { m_storageVirtualMachineIdHasBeenSet = true; m_storageVirtualMachineId = value; } /** *Specifies the ONTAP SVM in which to create the volume.
*/ inline void SetStorageVirtualMachineId(Aws::String&& value) { m_storageVirtualMachineIdHasBeenSet = true; m_storageVirtualMachineId = std::move(value); } /** *Specifies the ONTAP SVM in which to create the volume.
*/ inline void SetStorageVirtualMachineId(const char* value) { m_storageVirtualMachineIdHasBeenSet = true; m_storageVirtualMachineId.assign(value); } /** *Specifies the ONTAP SVM in which to create the volume.
*/ inline CreateOntapVolumeConfiguration& WithStorageVirtualMachineId(const Aws::String& value) { SetStorageVirtualMachineId(value); return *this;} /** *Specifies the ONTAP SVM in which to create the volume.
*/ inline CreateOntapVolumeConfiguration& WithStorageVirtualMachineId(Aws::String&& value) { SetStorageVirtualMachineId(std::move(value)); return *this;} /** *Specifies the ONTAP SVM in which to create the volume.
*/ inline CreateOntapVolumeConfiguration& WithStorageVirtualMachineId(const char* value) { SetStorageVirtualMachineId(value); return *this;} inline const TieringPolicy& GetTieringPolicy() const{ return m_tieringPolicy; } inline bool TieringPolicyHasBeenSet() const { return m_tieringPolicyHasBeenSet; } inline void SetTieringPolicy(const TieringPolicy& value) { m_tieringPolicyHasBeenSet = true; m_tieringPolicy = value; } inline void SetTieringPolicy(TieringPolicy&& value) { m_tieringPolicyHasBeenSet = true; m_tieringPolicy = std::move(value); } inline CreateOntapVolumeConfiguration& WithTieringPolicy(const TieringPolicy& value) { SetTieringPolicy(value); return *this;} inline CreateOntapVolumeConfiguration& WithTieringPolicy(TieringPolicy&& value) { SetTieringPolicy(std::move(value)); return *this;} /** *Specifies the type of volume you are creating. Valid values are the * following:
RW
specifies a read/write volume.
* RW
is the default.
DP
specifies a
* data-protection volume. A DP
volume is read-only and can be used as
* the destination of a NetApp SnapMirror relationship.
For more * information, see Volume * types in the Amazon FSx for NetApp ONTAP User Guide.
*/ inline const InputOntapVolumeType& GetOntapVolumeType() const{ return m_ontapVolumeType; } /** *Specifies the type of volume you are creating. Valid values are the * following:
RW
specifies a read/write volume.
* RW
is the default.
DP
specifies a
* data-protection volume. A DP
volume is read-only and can be used as
* the destination of a NetApp SnapMirror relationship.
For more * information, see Volume * types in the Amazon FSx for NetApp ONTAP User Guide.
*/ inline bool OntapVolumeTypeHasBeenSet() const { return m_ontapVolumeTypeHasBeenSet; } /** *Specifies the type of volume you are creating. Valid values are the * following:
RW
specifies a read/write volume.
* RW
is the default.
DP
specifies a
* data-protection volume. A DP
volume is read-only and can be used as
* the destination of a NetApp SnapMirror relationship.
For more * information, see Volume * types in the Amazon FSx for NetApp ONTAP User Guide.
*/ inline void SetOntapVolumeType(const InputOntapVolumeType& value) { m_ontapVolumeTypeHasBeenSet = true; m_ontapVolumeType = value; } /** *Specifies the type of volume you are creating. Valid values are the * following:
RW
specifies a read/write volume.
* RW
is the default.
DP
specifies a
* data-protection volume. A DP
volume is read-only and can be used as
* the destination of a NetApp SnapMirror relationship.
For more * information, see Volume * types in the Amazon FSx for NetApp ONTAP User Guide.
*/ inline void SetOntapVolumeType(InputOntapVolumeType&& value) { m_ontapVolumeTypeHasBeenSet = true; m_ontapVolumeType = std::move(value); } /** *Specifies the type of volume you are creating. Valid values are the * following:
RW
specifies a read/write volume.
* RW
is the default.
DP
specifies a
* data-protection volume. A DP
volume is read-only and can be used as
* the destination of a NetApp SnapMirror relationship.
For more * information, see Volume * types in the Amazon FSx for NetApp ONTAP User Guide.
*/ inline CreateOntapVolumeConfiguration& WithOntapVolumeType(const InputOntapVolumeType& value) { SetOntapVolumeType(value); return *this;} /** *Specifies the type of volume you are creating. Valid values are the * following:
RW
specifies a read/write volume.
* RW
is the default.
DP
specifies a
* data-protection volume. A DP
volume is read-only and can be used as
* the destination of a NetApp SnapMirror relationship.
For more * information, see Volume * types in the Amazon FSx for NetApp ONTAP User Guide.
*/ inline CreateOntapVolumeConfiguration& WithOntapVolumeType(InputOntapVolumeType&& value) { SetOntapVolumeType(std::move(value)); return *this;} /** *Specifies the snapshot policy for the volume. There are three built-in * snapshot policies:
default
: This is the default
* policy. A maximum of six hourly snapshots taken five minutes past the hour. A
* maximum of two daily snapshots taken Monday through Saturday at 10 minutes after
* midnight. A maximum of two weekly snapshots taken every Sunday at 15 minutes
* after midnight.
default-1weekly
: This policy is
* the same as the default
policy except that it only retains one
* snapshot from the weekly schedule.
none
: This
* policy does not take any snapshots. This policy can be assigned to volumes to
* prevent automatic snapshots from being taken.
You can also * provide the name of a custom policy that you created with the ONTAP CLI or REST * API.
For more information, see Snapshot * policies in the Amazon FSx for NetApp ONTAP User Guide.
*/ inline const Aws::String& GetSnapshotPolicy() const{ return m_snapshotPolicy; } /** *Specifies the snapshot policy for the volume. There are three built-in * snapshot policies:
default
: This is the default
* policy. A maximum of six hourly snapshots taken five minutes past the hour. A
* maximum of two daily snapshots taken Monday through Saturday at 10 minutes after
* midnight. A maximum of two weekly snapshots taken every Sunday at 15 minutes
* after midnight.
default-1weekly
: This policy is
* the same as the default
policy except that it only retains one
* snapshot from the weekly schedule.
none
: This
* policy does not take any snapshots. This policy can be assigned to volumes to
* prevent automatic snapshots from being taken.
You can also * provide the name of a custom policy that you created with the ONTAP CLI or REST * API.
For more information, see Snapshot * policies in the Amazon FSx for NetApp ONTAP User Guide.
*/ inline bool SnapshotPolicyHasBeenSet() const { return m_snapshotPolicyHasBeenSet; } /** *Specifies the snapshot policy for the volume. There are three built-in * snapshot policies:
default
: This is the default
* policy. A maximum of six hourly snapshots taken five minutes past the hour. A
* maximum of two daily snapshots taken Monday through Saturday at 10 minutes after
* midnight. A maximum of two weekly snapshots taken every Sunday at 15 minutes
* after midnight.
default-1weekly
: This policy is
* the same as the default
policy except that it only retains one
* snapshot from the weekly schedule.
none
: This
* policy does not take any snapshots. This policy can be assigned to volumes to
* prevent automatic snapshots from being taken.
You can also * provide the name of a custom policy that you created with the ONTAP CLI or REST * API.
For more information, see Snapshot * policies in the Amazon FSx for NetApp ONTAP User Guide.
*/ inline void SetSnapshotPolicy(const Aws::String& value) { m_snapshotPolicyHasBeenSet = true; m_snapshotPolicy = value; } /** *Specifies the snapshot policy for the volume. There are three built-in * snapshot policies:
default
: This is the default
* policy. A maximum of six hourly snapshots taken five minutes past the hour. A
* maximum of two daily snapshots taken Monday through Saturday at 10 minutes after
* midnight. A maximum of two weekly snapshots taken every Sunday at 15 minutes
* after midnight.
default-1weekly
: This policy is
* the same as the default
policy except that it only retains one
* snapshot from the weekly schedule.
none
: This
* policy does not take any snapshots. This policy can be assigned to volumes to
* prevent automatic snapshots from being taken.
You can also * provide the name of a custom policy that you created with the ONTAP CLI or REST * API.
For more information, see Snapshot * policies in the Amazon FSx for NetApp ONTAP User Guide.
*/ inline void SetSnapshotPolicy(Aws::String&& value) { m_snapshotPolicyHasBeenSet = true; m_snapshotPolicy = std::move(value); } /** *Specifies the snapshot policy for the volume. There are three built-in * snapshot policies:
default
: This is the default
* policy. A maximum of six hourly snapshots taken five minutes past the hour. A
* maximum of two daily snapshots taken Monday through Saturday at 10 minutes after
* midnight. A maximum of two weekly snapshots taken every Sunday at 15 minutes
* after midnight.
default-1weekly
: This policy is
* the same as the default
policy except that it only retains one
* snapshot from the weekly schedule.
none
: This
* policy does not take any snapshots. This policy can be assigned to volumes to
* prevent automatic snapshots from being taken.
You can also * provide the name of a custom policy that you created with the ONTAP CLI or REST * API.
For more information, see Snapshot * policies in the Amazon FSx for NetApp ONTAP User Guide.
*/ inline void SetSnapshotPolicy(const char* value) { m_snapshotPolicyHasBeenSet = true; m_snapshotPolicy.assign(value); } /** *Specifies the snapshot policy for the volume. There are three built-in * snapshot policies:
default
: This is the default
* policy. A maximum of six hourly snapshots taken five minutes past the hour. A
* maximum of two daily snapshots taken Monday through Saturday at 10 minutes after
* midnight. A maximum of two weekly snapshots taken every Sunday at 15 minutes
* after midnight.
default-1weekly
: This policy is
* the same as the default
policy except that it only retains one
* snapshot from the weekly schedule.
none
: This
* policy does not take any snapshots. This policy can be assigned to volumes to
* prevent automatic snapshots from being taken.
You can also * provide the name of a custom policy that you created with the ONTAP CLI or REST * API.
For more information, see Snapshot * policies in the Amazon FSx for NetApp ONTAP User Guide.
*/ inline CreateOntapVolumeConfiguration& WithSnapshotPolicy(const Aws::String& value) { SetSnapshotPolicy(value); return *this;} /** *Specifies the snapshot policy for the volume. There are three built-in * snapshot policies:
default
: This is the default
* policy. A maximum of six hourly snapshots taken five minutes past the hour. A
* maximum of two daily snapshots taken Monday through Saturday at 10 minutes after
* midnight. A maximum of two weekly snapshots taken every Sunday at 15 minutes
* after midnight.
default-1weekly
: This policy is
* the same as the default
policy except that it only retains one
* snapshot from the weekly schedule.
none
: This
* policy does not take any snapshots. This policy can be assigned to volumes to
* prevent automatic snapshots from being taken.
You can also * provide the name of a custom policy that you created with the ONTAP CLI or REST * API.
For more information, see Snapshot * policies in the Amazon FSx for NetApp ONTAP User Guide.
*/ inline CreateOntapVolumeConfiguration& WithSnapshotPolicy(Aws::String&& value) { SetSnapshotPolicy(std::move(value)); return *this;} /** *Specifies the snapshot policy for the volume. There are three built-in * snapshot policies:
default
: This is the default
* policy. A maximum of six hourly snapshots taken five minutes past the hour. A
* maximum of two daily snapshots taken Monday through Saturday at 10 minutes after
* midnight. A maximum of two weekly snapshots taken every Sunday at 15 minutes
* after midnight.
default-1weekly
: This policy is
* the same as the default
policy except that it only retains one
* snapshot from the weekly schedule.
none
: This
* policy does not take any snapshots. This policy can be assigned to volumes to
* prevent automatic snapshots from being taken.
You can also * provide the name of a custom policy that you created with the ONTAP CLI or REST * API.
For more information, see Snapshot * policies in the Amazon FSx for NetApp ONTAP User Guide.
*/ inline CreateOntapVolumeConfiguration& WithSnapshotPolicy(const char* value) { SetSnapshotPolicy(value); return *this;} /** *A boolean flag indicating whether tags for the volume should be copied to * backups. This value defaults to false. If it's set to true, all tags for the * volume are copied to all automatic and user-initiated backups where the user * doesn't specify tags. If this value is true, and you specify one or more tags, * only the specified tags are copied to backups. If you specify one or more tags * when creating a user-initiated backup, no tags are copied from the volume, * regardless of this value.
*/ inline bool GetCopyTagsToBackups() const{ return m_copyTagsToBackups; } /** *A boolean flag indicating whether tags for the volume should be copied to * backups. This value defaults to false. If it's set to true, all tags for the * volume are copied to all automatic and user-initiated backups where the user * doesn't specify tags. If this value is true, and you specify one or more tags, * only the specified tags are copied to backups. If you specify one or more tags * when creating a user-initiated backup, no tags are copied from the volume, * regardless of this value.
*/ inline bool CopyTagsToBackupsHasBeenSet() const { return m_copyTagsToBackupsHasBeenSet; } /** *A boolean flag indicating whether tags for the volume should be copied to * backups. This value defaults to false. If it's set to true, all tags for the * volume are copied to all automatic and user-initiated backups where the user * doesn't specify tags. If this value is true, and you specify one or more tags, * only the specified tags are copied to backups. If you specify one or more tags * when creating a user-initiated backup, no tags are copied from the volume, * regardless of this value.
*/ inline void SetCopyTagsToBackups(bool value) { m_copyTagsToBackupsHasBeenSet = true; m_copyTagsToBackups = value; } /** *A boolean flag indicating whether tags for the volume should be copied to * backups. This value defaults to false. If it's set to true, all tags for the * volume are copied to all automatic and user-initiated backups where the user * doesn't specify tags. If this value is true, and you specify one or more tags, * only the specified tags are copied to backups. If you specify one or more tags * when creating a user-initiated backup, no tags are copied from the volume, * regardless of this value.
*/ inline CreateOntapVolumeConfiguration& WithCopyTagsToBackups(bool value) { SetCopyTagsToBackups(value); return *this;} /** *Specifies the SnapLock configuration for an FSx for ONTAP volume.
*/ inline const CreateSnaplockConfiguration& GetSnaplockConfiguration() const{ return m_snaplockConfiguration; } /** *Specifies the SnapLock configuration for an FSx for ONTAP volume.
*/ inline bool SnaplockConfigurationHasBeenSet() const { return m_snaplockConfigurationHasBeenSet; } /** *Specifies the SnapLock configuration for an FSx for ONTAP volume.
*/ inline void SetSnaplockConfiguration(const CreateSnaplockConfiguration& value) { m_snaplockConfigurationHasBeenSet = true; m_snaplockConfiguration = value; } /** *Specifies the SnapLock configuration for an FSx for ONTAP volume.
*/ inline void SetSnaplockConfiguration(CreateSnaplockConfiguration&& value) { m_snaplockConfigurationHasBeenSet = true; m_snaplockConfiguration = std::move(value); } /** *Specifies the SnapLock configuration for an FSx for ONTAP volume.
*/ inline CreateOntapVolumeConfiguration& WithSnaplockConfiguration(const CreateSnaplockConfiguration& value) { SetSnaplockConfiguration(value); return *this;} /** *Specifies the SnapLock configuration for an FSx for ONTAP volume.
*/ inline CreateOntapVolumeConfiguration& WithSnaplockConfiguration(CreateSnaplockConfiguration&& value) { SetSnaplockConfiguration(std::move(value)); return *this;} private: Aws::String m_junctionPath; bool m_junctionPathHasBeenSet = false; SecurityStyle m_securityStyle; bool m_securityStyleHasBeenSet = false; int m_sizeInMegabytes; bool m_sizeInMegabytesHasBeenSet = false; bool m_storageEfficiencyEnabled; bool m_storageEfficiencyEnabledHasBeenSet = false; Aws::String m_storageVirtualMachineId; bool m_storageVirtualMachineIdHasBeenSet = false; TieringPolicy m_tieringPolicy; bool m_tieringPolicyHasBeenSet = false; InputOntapVolumeType m_ontapVolumeType; bool m_ontapVolumeTypeHasBeenSet = false; Aws::String m_snapshotPolicy; bool m_snapshotPolicyHasBeenSet = false; bool m_copyTagsToBackups; bool m_copyTagsToBackupsHasBeenSet = false; CreateSnaplockConfiguration m_snaplockConfiguration; bool m_snaplockConfigurationHasBeenSet = false; }; } // namespace Model } // namespace FSx } // namespace Aws