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

Used to specify changes to the ONTAP configuration for the volume you are * updating.

See Also:

AWS * API Reference

*/ class UpdateOntapVolumeConfiguration { public: AWS_FSX_API UpdateOntapVolumeConfiguration(); AWS_FSX_API UpdateOntapVolumeConfiguration(Aws::Utils::Json::JsonView jsonValue); AWS_FSX_API UpdateOntapVolumeConfiguration& 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. * 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. * 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. * 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. * 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. * 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. * The JunctionPath must have a leading forward slash, such as * /vol3.

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

Specifies the location in the SVM's namespace where the volume is mounted. * The JunctionPath must have a leading forward slash, such as * /vol3.

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

Specifies the location in the SVM's namespace where the volume is mounted. * The JunctionPath must have a leading forward slash, such as * /vol3.

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

The security style for the volume, which can be UNIX, * NTFS, or MIXED.

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

The security style for the volume, which can be UNIX, * NTFS, or MIXED.

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

The security style for the volume, which can be UNIX, * NTFS, or MIXED.

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

The security style for the volume, which can be UNIX, * NTFS, or MIXED.

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

The security style for the volume, which can be UNIX, * NTFS, or MIXED.

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

The security style for the volume, which can be UNIX, * NTFS, or MIXED.

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

Specifies the size of the volume in megabytes.

*/ inline int GetSizeInMegabytes() const{ return m_sizeInMegabytes; } /** *

Specifies the size of the volume in megabytes.

*/ inline bool SizeInMegabytesHasBeenSet() const { return m_sizeInMegabytesHasBeenSet; } /** *

Specifies the size of the volume in megabytes.

*/ inline void SetSizeInMegabytes(int value) { m_sizeInMegabytesHasBeenSet = true; m_sizeInMegabytes = value; } /** *

Specifies the size of the volume in megabytes.

*/ inline UpdateOntapVolumeConfiguration& WithSizeInMegabytes(int value) { SetSizeInMegabytes(value); return *this;} /** *

Default is false. Set to true to enable the deduplication, * compression, and compaction storage efficiency features on the volume.

*/ inline bool GetStorageEfficiencyEnabled() const{ return m_storageEfficiencyEnabled; } /** *

Default is false. Set to true to enable the deduplication, * compression, and compaction storage efficiency features on the volume.

*/ inline bool StorageEfficiencyEnabledHasBeenSet() const { return m_storageEfficiencyEnabledHasBeenSet; } /** *

Default is false. Set to true to enable the deduplication, * compression, and compaction storage efficiency features on the volume.

*/ inline void SetStorageEfficiencyEnabled(bool value) { m_storageEfficiencyEnabledHasBeenSet = true; m_storageEfficiencyEnabled = value; } /** *

Default is false. Set to true to enable the deduplication, * compression, and compaction storage efficiency features on the volume.

*/ inline UpdateOntapVolumeConfiguration& WithStorageEfficiencyEnabled(bool value) { SetStorageEfficiencyEnabled(value); return *this;} /** *

Update the volume's data tiering policy.

*/ inline const TieringPolicy& GetTieringPolicy() const{ return m_tieringPolicy; } /** *

Update the volume's data tiering policy.

*/ inline bool TieringPolicyHasBeenSet() const { return m_tieringPolicyHasBeenSet; } /** *

Update the volume's data tiering policy.

*/ inline void SetTieringPolicy(const TieringPolicy& value) { m_tieringPolicyHasBeenSet = true; m_tieringPolicy = value; } /** *

Update the volume's data tiering policy.

*/ inline void SetTieringPolicy(TieringPolicy&& value) { m_tieringPolicyHasBeenSet = true; m_tieringPolicy = std::move(value); } /** *

Update the volume's data tiering policy.

*/ inline UpdateOntapVolumeConfiguration& WithTieringPolicy(const TieringPolicy& value) { SetTieringPolicy(value); return *this;} /** *

Update the volume's data tiering policy.

*/ inline UpdateOntapVolumeConfiguration& WithTieringPolicy(TieringPolicy&& value) { SetTieringPolicy(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 UpdateOntapVolumeConfiguration& 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 UpdateOntapVolumeConfiguration& 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 UpdateOntapVolumeConfiguration& 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 UpdateOntapVolumeConfiguration& WithCopyTagsToBackups(bool value) { SetCopyTagsToBackups(value); return *this;} /** *

The configuration object for updating the SnapLock configuration of an FSx * for ONTAP SnapLock volume.

*/ inline const UpdateSnaplockConfiguration& GetSnaplockConfiguration() const{ return m_snaplockConfiguration; } /** *

The configuration object for updating the SnapLock configuration of an FSx * for ONTAP SnapLock volume.

*/ inline bool SnaplockConfigurationHasBeenSet() const { return m_snaplockConfigurationHasBeenSet; } /** *

The configuration object for updating the SnapLock configuration of an FSx * for ONTAP SnapLock volume.

*/ inline void SetSnaplockConfiguration(const UpdateSnaplockConfiguration& value) { m_snaplockConfigurationHasBeenSet = true; m_snaplockConfiguration = value; } /** *

The configuration object for updating the SnapLock configuration of an FSx * for ONTAP SnapLock volume.

*/ inline void SetSnaplockConfiguration(UpdateSnaplockConfiguration&& value) { m_snaplockConfigurationHasBeenSet = true; m_snaplockConfiguration = std::move(value); } /** *

The configuration object for updating the SnapLock configuration of an FSx * for ONTAP SnapLock volume.

*/ inline UpdateOntapVolumeConfiguration& WithSnaplockConfiguration(const UpdateSnaplockConfiguration& value) { SetSnaplockConfiguration(value); return *this;} /** *

The configuration object for updating the SnapLock configuration of an FSx * for ONTAP SnapLock volume.

*/ inline UpdateOntapVolumeConfiguration& WithSnaplockConfiguration(UpdateSnaplockConfiguration&& 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; TieringPolicy m_tieringPolicy; bool m_tieringPolicyHasBeenSet = false; Aws::String m_snapshotPolicy; bool m_snapshotPolicyHasBeenSet = false; bool m_copyTagsToBackups; bool m_copyTagsToBackupsHasBeenSet = false; UpdateSnaplockConfiguration m_snaplockConfiguration; bool m_snaplockConfigurationHasBeenSet = false; }; } // namespace Model } // namespace FSx } // namespace Aws