/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace FSx { namespace Model { /** *

Specifies the configuration of the ONTAP volume that you are * creating.

See Also:

AWS * API Reference

*/ class CreateOntapVolumeConfiguration { public: AWS_FSX_API CreateOntapVolumeConfiguration(); AWS_FSX_API CreateOntapVolumeConfiguration(Aws::Utils::Json::JsonView jsonValue); AWS_FSX_API CreateOntapVolumeConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_FSX_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

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.

*/ inline const Aws::String& GetJunctionPath() const{ return m_junctionPath; } /** *

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.

*/ inline bool JunctionPathHasBeenSet() const { return m_junctionPathHasBeenSet; } /** *

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.

*/ inline void SetJunctionPath(const Aws::String& value) { m_junctionPathHasBeenSet = true; m_junctionPath = value; } /** *

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.

*/ inline void SetJunctionPath(Aws::String&& value) { m_junctionPathHasBeenSet = true; m_junctionPath = std::move(value); } /** *

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.

*/ inline void SetJunctionPath(const char* value) { m_junctionPathHasBeenSet = true; m_junctionPath.assign(value); } /** *

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.

*/ inline CreateOntapVolumeConfiguration& WithJunctionPath(const Aws::String& value) { SetJunctionPath(value); return *this;} /** *

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.

*/ inline CreateOntapVolumeConfiguration& WithJunctionPath(Aws::String&& value) { SetJunctionPath(std::move(value)); return *this;} /** *

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.

*/ inline CreateOntapVolumeConfiguration& WithJunctionPath(const char* value) { SetJunctionPath(value); return *this;} /** *

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.

  • *
*/ inline const SecurityStyle& GetSecurityStyle() const{ return m_securityStyle; } /** *

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.

  • *
*/ inline bool SecurityStyleHasBeenSet() const { return m_securityStyleHasBeenSet; } /** *

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.

  • *
*/ inline void SetSecurityStyle(const SecurityStyle& value) { m_securityStyleHasBeenSet = true; m_securityStyle = value; } /** *

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.

  • *
*/ inline void SetSecurityStyle(SecurityStyle&& value) { m_securityStyleHasBeenSet = true; m_securityStyle = std::move(value); } /** *

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.

  • *
*/ inline CreateOntapVolumeConfiguration& WithSecurityStyle(const SecurityStyle& value) { SetSecurityStyle(value); return *this;} /** *

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.

  • *
*/ inline CreateOntapVolumeConfiguration& WithSecurityStyle(SecurityStyle&& value) { SetSecurityStyle(std::move(value)); return *this;} /** *

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