/** * 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 #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace FSx { namespace Model { /** *

The configuration of an Amazon FSx for NetApp ONTAP volume.

See * Also:

AWS * API Reference

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

Specifies the FlexCache endpoint type of the volume. Valid values are the * following:

  • NONE specifies that the volume doesn't * have a FlexCache configuration. NONE is the default.

  • *

    ORIGIN specifies that the volume is the origin volume for a * FlexCache volume.

  • CACHE specifies that the * volume is a FlexCache volume.

*/ inline const FlexCacheEndpointType& GetFlexCacheEndpointType() const{ return m_flexCacheEndpointType; } /** *

Specifies the FlexCache endpoint type of the volume. Valid values are the * following:

  • NONE specifies that the volume doesn't * have a FlexCache configuration. NONE is the default.

  • *

    ORIGIN specifies that the volume is the origin volume for a * FlexCache volume.

  • CACHE specifies that the * volume is a FlexCache volume.

*/ inline bool FlexCacheEndpointTypeHasBeenSet() const { return m_flexCacheEndpointTypeHasBeenSet; } /** *

Specifies the FlexCache endpoint type of the volume. Valid values are the * following:

  • NONE specifies that the volume doesn't * have a FlexCache configuration. NONE is the default.

  • *

    ORIGIN specifies that the volume is the origin volume for a * FlexCache volume.

  • CACHE specifies that the * volume is a FlexCache volume.

*/ inline void SetFlexCacheEndpointType(const FlexCacheEndpointType& value) { m_flexCacheEndpointTypeHasBeenSet = true; m_flexCacheEndpointType = value; } /** *

Specifies the FlexCache endpoint type of the volume. Valid values are the * following:

  • NONE specifies that the volume doesn't * have a FlexCache configuration. NONE is the default.

  • *

    ORIGIN specifies that the volume is the origin volume for a * FlexCache volume.

  • CACHE specifies that the * volume is a FlexCache volume.

*/ inline void SetFlexCacheEndpointType(FlexCacheEndpointType&& value) { m_flexCacheEndpointTypeHasBeenSet = true; m_flexCacheEndpointType = std::move(value); } /** *

Specifies the FlexCache endpoint type of the volume. Valid values are the * following:

  • NONE specifies that the volume doesn't * have a FlexCache configuration. NONE is the default.

  • *

    ORIGIN specifies that the volume is the origin volume for a * FlexCache volume.

  • CACHE specifies that the * volume is a FlexCache volume.

*/ inline OntapVolumeConfiguration& WithFlexCacheEndpointType(const FlexCacheEndpointType& value) { SetFlexCacheEndpointType(value); return *this;} /** *

Specifies the FlexCache endpoint type of the volume. Valid values are the * following:

  • NONE specifies that the volume doesn't * have a FlexCache configuration. NONE is the default.

  • *

    ORIGIN specifies that the volume is the origin volume for a * FlexCache volume.

  • CACHE specifies that the * volume is a FlexCache volume.

*/ inline OntapVolumeConfiguration& WithFlexCacheEndpointType(FlexCacheEndpointType&& value) { SetFlexCacheEndpointType(std::move(value)); return *this;} /** *

Specifies the directory that network-attached storage (NAS) clients use to * mount the volume, along with the storage virtual machine (SVM) Domain Name * System (DNS) name or IP address. You can create a JunctionPath * directly below a parent volume junction or on a directory within a volume. A * JunctionPath for a volume named vol3 might be * /vol1/vol2/vol3, or /vol1/dir2/vol3, or even * /dir1/dir2/vol3.

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

Specifies the directory that network-attached storage (NAS) clients use to * mount the volume, along with the storage virtual machine (SVM) Domain Name * System (DNS) name or IP address. You can create a JunctionPath * directly below a parent volume junction or on a directory within a volume. A * JunctionPath for a volume named vol3 might be * /vol1/vol2/vol3, or /vol1/dir2/vol3, or even * /dir1/dir2/vol3.

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

Specifies the directory that network-attached storage (NAS) clients use to * mount the volume, along with the storage virtual machine (SVM) Domain Name * System (DNS) name or IP address. You can create a JunctionPath * directly below a parent volume junction or on a directory within a volume. A * JunctionPath for a volume named vol3 might be * /vol1/vol2/vol3, or /vol1/dir2/vol3, or even * /dir1/dir2/vol3.

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

Specifies the directory that network-attached storage (NAS) clients use to * mount the volume, along with the storage virtual machine (SVM) Domain Name * System (DNS) name or IP address. You can create a JunctionPath * directly below a parent volume junction or on a directory within a volume. A * JunctionPath for a volume named vol3 might be * /vol1/vol2/vol3, or /vol1/dir2/vol3, or even * /dir1/dir2/vol3.

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

Specifies the directory that network-attached storage (NAS) clients use to * mount the volume, along with the storage virtual machine (SVM) Domain Name * System (DNS) name or IP address. You can create a JunctionPath * directly below a parent volume junction or on a directory within a volume. A * JunctionPath for a volume named vol3 might be * /vol1/vol2/vol3, or /vol1/dir2/vol3, or even * /dir1/dir2/vol3.

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

Specifies the directory that network-attached storage (NAS) clients use to * mount the volume, along with the storage virtual machine (SVM) Domain Name * System (DNS) name or IP address. You can create a JunctionPath * directly below a parent volume junction or on a directory within a volume. A * JunctionPath for a volume named vol3 might be * /vol1/vol2/vol3, or /vol1/dir2/vol3, or even * /dir1/dir2/vol3.

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

Specifies the directory that network-attached storage (NAS) clients use to * mount the volume, along with the storage virtual machine (SVM) Domain Name * System (DNS) name or IP address. You can create a JunctionPath * directly below a parent volume junction or on a directory within a volume. A * JunctionPath for a volume named vol3 might be * /vol1/vol2/vol3, or /vol1/dir2/vol3, or even * /dir1/dir2/vol3.

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

Specifies the directory that network-attached storage (NAS) clients use to * mount the volume, along with the storage virtual machine (SVM) Domain Name * System (DNS) name or IP address. You can create a JunctionPath * directly below a parent volume junction or on a directory within a volume. A * JunctionPath for a volume named vol3 might be * /vol1/vol2/vol3, or /vol1/dir2/vol3, or even * /dir1/dir2/vol3.

*/ inline OntapVolumeConfiguration& 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 OntapVolumeConfiguration& WithSecurityStyle(const SecurityStyle& value) { SetSecurityStyle(value); return *this;} /** *

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

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

The configured size of the volume, in megabytes (MBs).

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

The configured size of the volume, in megabytes (MBs).

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

The configured size of the volume, in megabytes (MBs).

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

The configured size of the volume, in megabytes (MBs).

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

The volume's storage efficiency setting.

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

The volume's storage efficiency setting.

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

The volume's storage efficiency setting.

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

The volume's storage efficiency setting.

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

The ID of the volume's storage virtual machine.

*/ inline const Aws::String& GetStorageVirtualMachineId() const{ return m_storageVirtualMachineId; } /** *

The ID of the volume's storage virtual machine.

*/ inline bool StorageVirtualMachineIdHasBeenSet() const { return m_storageVirtualMachineIdHasBeenSet; } /** *

The ID of the volume's storage virtual machine.

*/ inline void SetStorageVirtualMachineId(const Aws::String& value) { m_storageVirtualMachineIdHasBeenSet = true; m_storageVirtualMachineId = value; } /** *

The ID of the volume's storage virtual machine.

*/ inline void SetStorageVirtualMachineId(Aws::String&& value) { m_storageVirtualMachineIdHasBeenSet = true; m_storageVirtualMachineId = std::move(value); } /** *

The ID of the volume's storage virtual machine.

*/ inline void SetStorageVirtualMachineId(const char* value) { m_storageVirtualMachineIdHasBeenSet = true; m_storageVirtualMachineId.assign(value); } /** *

The ID of the volume's storage virtual machine.

*/ inline OntapVolumeConfiguration& WithStorageVirtualMachineId(const Aws::String& value) { SetStorageVirtualMachineId(value); return *this;} /** *

The ID of the volume's storage virtual machine.

*/ inline OntapVolumeConfiguration& WithStorageVirtualMachineId(Aws::String&& value) { SetStorageVirtualMachineId(std::move(value)); return *this;} /** *

The ID of the volume's storage virtual machine.

*/ inline OntapVolumeConfiguration& WithStorageVirtualMachineId(const char* value) { SetStorageVirtualMachineId(value); return *this;} /** *

A Boolean flag indicating whether this volume is the root volume for its * storage virtual machine (SVM). Only one volume on an SVM can be the root volume. * This value defaults to false. If this value is true, * then this is the SVM root volume.

This flag is useful when you're * deleting an SVM, because you must first delete all non-root volumes. This flag, * when set to false, helps you identify which volumes to delete * before you can delete the SVM.

*/ inline bool GetStorageVirtualMachineRoot() const{ return m_storageVirtualMachineRoot; } /** *

A Boolean flag indicating whether this volume is the root volume for its * storage virtual machine (SVM). Only one volume on an SVM can be the root volume. * This value defaults to false. If this value is true, * then this is the SVM root volume.

This flag is useful when you're * deleting an SVM, because you must first delete all non-root volumes. This flag, * when set to false, helps you identify which volumes to delete * before you can delete the SVM.

*/ inline bool StorageVirtualMachineRootHasBeenSet() const { return m_storageVirtualMachineRootHasBeenSet; } /** *

A Boolean flag indicating whether this volume is the root volume for its * storage virtual machine (SVM). Only one volume on an SVM can be the root volume. * This value defaults to false. If this value is true, * then this is the SVM root volume.

This flag is useful when you're * deleting an SVM, because you must first delete all non-root volumes. This flag, * when set to false, helps you identify which volumes to delete * before you can delete the SVM.

*/ inline void SetStorageVirtualMachineRoot(bool value) { m_storageVirtualMachineRootHasBeenSet = true; m_storageVirtualMachineRoot = value; } /** *

A Boolean flag indicating whether this volume is the root volume for its * storage virtual machine (SVM). Only one volume on an SVM can be the root volume. * This value defaults to false. If this value is true, * then this is the SVM root volume.

This flag is useful when you're * deleting an SVM, because you must first delete all non-root volumes. This flag, * when set to false, helps you identify which volumes to delete * before you can delete the SVM.

*/ inline OntapVolumeConfiguration& WithStorageVirtualMachineRoot(bool value) { SetStorageVirtualMachineRoot(value); return *this;} /** *

The volume's TieringPolicy setting.

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

The volume's TieringPolicy setting.

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

The volume's TieringPolicy setting.

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

The volume's TieringPolicy setting.

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

The volume's TieringPolicy setting.

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

The volume's TieringPolicy setting.

*/ inline OntapVolumeConfiguration& WithTieringPolicy(TieringPolicy&& value) { SetTieringPolicy(std::move(value)); return *this;} /** *

The volume's universally unique identifier (UUID).

*/ inline const Aws::String& GetUUID() const{ return m_uUID; } /** *

The volume's universally unique identifier (UUID).

*/ inline bool UUIDHasBeenSet() const { return m_uUIDHasBeenSet; } /** *

The volume's universally unique identifier (UUID).

*/ inline void SetUUID(const Aws::String& value) { m_uUIDHasBeenSet = true; m_uUID = value; } /** *

The volume's universally unique identifier (UUID).

*/ inline void SetUUID(Aws::String&& value) { m_uUIDHasBeenSet = true; m_uUID = std::move(value); } /** *

The volume's universally unique identifier (UUID).

*/ inline void SetUUID(const char* value) { m_uUIDHasBeenSet = true; m_uUID.assign(value); } /** *

The volume's universally unique identifier (UUID).

*/ inline OntapVolumeConfiguration& WithUUID(const Aws::String& value) { SetUUID(value); return *this;} /** *

The volume's universally unique identifier (UUID).

*/ inline OntapVolumeConfiguration& WithUUID(Aws::String&& value) { SetUUID(std::move(value)); return *this;} /** *

The volume's universally unique identifier (UUID).

*/ inline OntapVolumeConfiguration& WithUUID(const char* value) { SetUUID(value); return *this;} /** *

Specifies the type of volume. Valid values are the following:

  • *

    RW specifies a read/write volume. RW is the * default.

  • DP specifies a data-protection volume. * You can protect data by replicating it to data-protection mirror copies. If a * disaster occurs, you can use these data-protection mirror copies to recover * data.

  • LS specifies a load-sharing mirror volume. * A load-sharing mirror reduces the network traffic to a FlexVol volume by * providing additional read-only access to clients.

*/ inline const OntapVolumeType& GetOntapVolumeType() const{ return m_ontapVolumeType; } /** *

Specifies the type of volume. Valid values are the following:

  • *

    RW specifies a read/write volume. RW is the * default.

  • DP specifies a data-protection volume. * You can protect data by replicating it to data-protection mirror copies. If a * disaster occurs, you can use these data-protection mirror copies to recover * data.

  • LS specifies a load-sharing mirror volume. * A load-sharing mirror reduces the network traffic to a FlexVol volume by * providing additional read-only access to clients.

*/ inline bool OntapVolumeTypeHasBeenSet() const { return m_ontapVolumeTypeHasBeenSet; } /** *

Specifies the type of volume. Valid values are the following:

  • *

    RW specifies a read/write volume. RW is the * default.

  • DP specifies a data-protection volume. * You can protect data by replicating it to data-protection mirror copies. If a * disaster occurs, you can use these data-protection mirror copies to recover * data.

  • LS specifies a load-sharing mirror volume. * A load-sharing mirror reduces the network traffic to a FlexVol volume by * providing additional read-only access to clients.

*/ inline void SetOntapVolumeType(const OntapVolumeType& value) { m_ontapVolumeTypeHasBeenSet = true; m_ontapVolumeType = value; } /** *

Specifies the type of volume. Valid values are the following:

  • *

    RW specifies a read/write volume. RW is the * default.

  • DP specifies a data-protection volume. * You can protect data by replicating it to data-protection mirror copies. If a * disaster occurs, you can use these data-protection mirror copies to recover * data.

  • LS specifies a load-sharing mirror volume. * A load-sharing mirror reduces the network traffic to a FlexVol volume by * providing additional read-only access to clients.

*/ inline void SetOntapVolumeType(OntapVolumeType&& value) { m_ontapVolumeTypeHasBeenSet = true; m_ontapVolumeType = std::move(value); } /** *

Specifies the type of volume. Valid values are the following:

  • *

    RW specifies a read/write volume. RW is the * default.

  • DP specifies a data-protection volume. * You can protect data by replicating it to data-protection mirror copies. If a * disaster occurs, you can use these data-protection mirror copies to recover * data.

  • LS specifies a load-sharing mirror volume. * A load-sharing mirror reduces the network traffic to a FlexVol volume by * providing additional read-only access to clients.

*/ inline OntapVolumeConfiguration& WithOntapVolumeType(const OntapVolumeType& value) { SetOntapVolumeType(value); return *this;} /** *

Specifies the type of volume. Valid values are the following:

  • *

    RW specifies a read/write volume. RW is the * default.

  • DP specifies a data-protection volume. * You can protect data by replicating it to data-protection mirror copies. If a * disaster occurs, you can use these data-protection mirror copies to recover * data.

  • LS specifies a load-sharing mirror volume. * A load-sharing mirror reduces the network traffic to a FlexVol volume by * providing additional read-only access to clients.

*/ inline OntapVolumeConfiguration& WithOntapVolumeType(OntapVolumeType&& 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 OntapVolumeConfiguration& 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 OntapVolumeConfiguration& 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 OntapVolumeConfiguration& 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 OntapVolumeConfiguration& WithCopyTagsToBackups(bool value) { SetCopyTagsToBackups(value); return *this;} /** *

The SnapLock configuration object for an FSx for ONTAP SnapLock volume.

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

The SnapLock configuration object for an FSx for ONTAP SnapLock volume.

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

The SnapLock configuration object for an FSx for ONTAP SnapLock volume.

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

The SnapLock configuration object for an FSx for ONTAP SnapLock volume.

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

The SnapLock configuration object for an FSx for ONTAP SnapLock volume.

*/ inline OntapVolumeConfiguration& WithSnaplockConfiguration(const SnaplockConfiguration& value) { SetSnaplockConfiguration(value); return *this;} /** *

The SnapLock configuration object for an FSx for ONTAP SnapLock volume.

*/ inline OntapVolumeConfiguration& WithSnaplockConfiguration(SnaplockConfiguration&& value) { SetSnaplockConfiguration(std::move(value)); return *this;} private: FlexCacheEndpointType m_flexCacheEndpointType; bool m_flexCacheEndpointTypeHasBeenSet = false; 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; bool m_storageVirtualMachineRoot; bool m_storageVirtualMachineRootHasBeenSet = false; TieringPolicy m_tieringPolicy; bool m_tieringPolicyHasBeenSet = false; Aws::String m_uUID; bool m_uUIDHasBeenSet = false; OntapVolumeType m_ontapVolumeType; bool m_ontapVolumeTypeHasBeenSet = false; Aws::String m_snapshotPolicy; bool m_snapshotPolicyHasBeenSet = false; bool m_copyTagsToBackups; bool m_copyTagsToBackupsHasBeenSet = false; SnaplockConfiguration m_snaplockConfiguration; bool m_snaplockConfigurationHasBeenSet = false; }; } // namespace Model } // namespace FSx } // namespace Aws