/** * 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 { /** *

Defines the SnapLock configuration when creating an FSx for ONTAP SnapLock * volume.

See Also:

AWS * API Reference

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

Enables or disables the audit log volume for an FSx for ONTAP SnapLock * volume. The default value is false. If you set * AuditLogVolume to true, the SnapLock volume is created * as an audit log volume. The minimum retention period for an audit log volume is * six months.

For more information, see * SnapLock audit log volumes.

*/ inline bool GetAuditLogVolume() const{ return m_auditLogVolume; } /** *

Enables or disables the audit log volume for an FSx for ONTAP SnapLock * volume. The default value is false. If you set * AuditLogVolume to true, the SnapLock volume is created * as an audit log volume. The minimum retention period for an audit log volume is * six months.

For more information, see * SnapLock audit log volumes.

*/ inline bool AuditLogVolumeHasBeenSet() const { return m_auditLogVolumeHasBeenSet; } /** *

Enables or disables the audit log volume for an FSx for ONTAP SnapLock * volume. The default value is false. If you set * AuditLogVolume to true, the SnapLock volume is created * as an audit log volume. The minimum retention period for an audit log volume is * six months.

For more information, see * SnapLock audit log volumes.

*/ inline void SetAuditLogVolume(bool value) { m_auditLogVolumeHasBeenSet = true; m_auditLogVolume = value; } /** *

Enables or disables the audit log volume for an FSx for ONTAP SnapLock * volume. The default value is false. If you set * AuditLogVolume to true, the SnapLock volume is created * as an audit log volume. The minimum retention period for an audit log volume is * six months.

For more information, see * SnapLock audit log volumes.

*/ inline CreateSnaplockConfiguration& WithAuditLogVolume(bool value) { SetAuditLogVolume(value); return *this;} /** *

The configuration object for setting the autocommit period of files in an FSx * for ONTAP SnapLock volume.

*/ inline const AutocommitPeriod& GetAutocommitPeriod() const{ return m_autocommitPeriod; } /** *

The configuration object for setting the autocommit period of files in an FSx * for ONTAP SnapLock volume.

*/ inline bool AutocommitPeriodHasBeenSet() const { return m_autocommitPeriodHasBeenSet; } /** *

The configuration object for setting the autocommit period of files in an FSx * for ONTAP SnapLock volume.

*/ inline void SetAutocommitPeriod(const AutocommitPeriod& value) { m_autocommitPeriodHasBeenSet = true; m_autocommitPeriod = value; } /** *

The configuration object for setting the autocommit period of files in an FSx * for ONTAP SnapLock volume.

*/ inline void SetAutocommitPeriod(AutocommitPeriod&& value) { m_autocommitPeriodHasBeenSet = true; m_autocommitPeriod = std::move(value); } /** *

The configuration object for setting the autocommit period of files in an FSx * for ONTAP SnapLock volume.

*/ inline CreateSnaplockConfiguration& WithAutocommitPeriod(const AutocommitPeriod& value) { SetAutocommitPeriod(value); return *this;} /** *

The configuration object for setting the autocommit period of files in an FSx * for ONTAP SnapLock volume.

*/ inline CreateSnaplockConfiguration& WithAutocommitPeriod(AutocommitPeriod&& value) { SetAutocommitPeriod(std::move(value)); return *this;} /** *

Enables, disables, or permanently disables privileged delete on an FSx for * ONTAP SnapLock Enterprise volume. Enabling privileged delete allows SnapLock * administrators to delete WORM files even if they have active retention periods. * PERMANENTLY_DISABLED is a terminal state. If privileged delete is * permanently disabled on a SnapLock volume, you can't re-enable it. The default * value is DISABLED.

For more information, see Privileged * delete.

*/ inline const PrivilegedDelete& GetPrivilegedDelete() const{ return m_privilegedDelete; } /** *

Enables, disables, or permanently disables privileged delete on an FSx for * ONTAP SnapLock Enterprise volume. Enabling privileged delete allows SnapLock * administrators to delete WORM files even if they have active retention periods. * PERMANENTLY_DISABLED is a terminal state. If privileged delete is * permanently disabled on a SnapLock volume, you can't re-enable it. The default * value is DISABLED.

For more information, see Privileged * delete.

*/ inline bool PrivilegedDeleteHasBeenSet() const { return m_privilegedDeleteHasBeenSet; } /** *

Enables, disables, or permanently disables privileged delete on an FSx for * ONTAP SnapLock Enterprise volume. Enabling privileged delete allows SnapLock * administrators to delete WORM files even if they have active retention periods. * PERMANENTLY_DISABLED is a terminal state. If privileged delete is * permanently disabled on a SnapLock volume, you can't re-enable it. The default * value is DISABLED.

For more information, see Privileged * delete.

*/ inline void SetPrivilegedDelete(const PrivilegedDelete& value) { m_privilegedDeleteHasBeenSet = true; m_privilegedDelete = value; } /** *

Enables, disables, or permanently disables privileged delete on an FSx for * ONTAP SnapLock Enterprise volume. Enabling privileged delete allows SnapLock * administrators to delete WORM files even if they have active retention periods. * PERMANENTLY_DISABLED is a terminal state. If privileged delete is * permanently disabled on a SnapLock volume, you can't re-enable it. The default * value is DISABLED.

For more information, see Privileged * delete.

*/ inline void SetPrivilegedDelete(PrivilegedDelete&& value) { m_privilegedDeleteHasBeenSet = true; m_privilegedDelete = std::move(value); } /** *

Enables, disables, or permanently disables privileged delete on an FSx for * ONTAP SnapLock Enterprise volume. Enabling privileged delete allows SnapLock * administrators to delete WORM files even if they have active retention periods. * PERMANENTLY_DISABLED is a terminal state. If privileged delete is * permanently disabled on a SnapLock volume, you can't re-enable it. The default * value is DISABLED.

For more information, see Privileged * delete.

*/ inline CreateSnaplockConfiguration& WithPrivilegedDelete(const PrivilegedDelete& value) { SetPrivilegedDelete(value); return *this;} /** *

Enables, disables, or permanently disables privileged delete on an FSx for * ONTAP SnapLock Enterprise volume. Enabling privileged delete allows SnapLock * administrators to delete WORM files even if they have active retention periods. * PERMANENTLY_DISABLED is a terminal state. If privileged delete is * permanently disabled on a SnapLock volume, you can't re-enable it. The default * value is DISABLED.

For more information, see Privileged * delete.

*/ inline CreateSnaplockConfiguration& WithPrivilegedDelete(PrivilegedDelete&& value) { SetPrivilegedDelete(std::move(value)); return *this;} /** *

Specifies the retention period of an FSx for ONTAP SnapLock volume.

*/ inline const SnaplockRetentionPeriod& GetRetentionPeriod() const{ return m_retentionPeriod; } /** *

Specifies the retention period of an FSx for ONTAP SnapLock volume.

*/ inline bool RetentionPeriodHasBeenSet() const { return m_retentionPeriodHasBeenSet; } /** *

Specifies the retention period of an FSx for ONTAP SnapLock volume.

*/ inline void SetRetentionPeriod(const SnaplockRetentionPeriod& value) { m_retentionPeriodHasBeenSet = true; m_retentionPeriod = value; } /** *

Specifies the retention period of an FSx for ONTAP SnapLock volume.

*/ inline void SetRetentionPeriod(SnaplockRetentionPeriod&& value) { m_retentionPeriodHasBeenSet = true; m_retentionPeriod = std::move(value); } /** *

Specifies the retention period of an FSx for ONTAP SnapLock volume.

*/ inline CreateSnaplockConfiguration& WithRetentionPeriod(const SnaplockRetentionPeriod& value) { SetRetentionPeriod(value); return *this;} /** *

Specifies the retention period of an FSx for ONTAP SnapLock volume.

*/ inline CreateSnaplockConfiguration& WithRetentionPeriod(SnaplockRetentionPeriod&& value) { SetRetentionPeriod(std::move(value)); return *this;} /** *

Specifies the retention mode of an FSx for ONTAP SnapLock volume. After it is * set, it can't be changed. You can choose one of the following retention modes: *

  • COMPLIANCE: Files transitioned to write once, * read many (WORM) on a Compliance volume can't be deleted until their retention * periods expire. This retention mode is used to address government or * industry-specific mandates or to protect against ransomware attacks. For more * information, see SnapLock * Compliance.

  • ENTERPRISE: Files transitioned * to WORM on an Enterprise volume can be deleted by authorized users before their * retention periods expire using privileged delete. This retention mode is used to * advance an organization's data integrity and internal compliance or to test * retention settings before using SnapLock Compliance. For more information, see * SnapLock * Enterprise.

*/ inline const SnaplockType& GetSnaplockType() const{ return m_snaplockType; } /** *

Specifies the retention mode of an FSx for ONTAP SnapLock volume. After it is * set, it can't be changed. You can choose one of the following retention modes: *

  • COMPLIANCE: Files transitioned to write once, * read many (WORM) on a Compliance volume can't be deleted until their retention * periods expire. This retention mode is used to address government or * industry-specific mandates or to protect against ransomware attacks. For more * information, see SnapLock * Compliance.

  • ENTERPRISE: Files transitioned * to WORM on an Enterprise volume can be deleted by authorized users before their * retention periods expire using privileged delete. This retention mode is used to * advance an organization's data integrity and internal compliance or to test * retention settings before using SnapLock Compliance. For more information, see * SnapLock * Enterprise.

*/ inline bool SnaplockTypeHasBeenSet() const { return m_snaplockTypeHasBeenSet; } /** *

Specifies the retention mode of an FSx for ONTAP SnapLock volume. After it is * set, it can't be changed. You can choose one of the following retention modes: *

  • COMPLIANCE: Files transitioned to write once, * read many (WORM) on a Compliance volume can't be deleted until their retention * periods expire. This retention mode is used to address government or * industry-specific mandates or to protect against ransomware attacks. For more * information, see SnapLock * Compliance.

  • ENTERPRISE: Files transitioned * to WORM on an Enterprise volume can be deleted by authorized users before their * retention periods expire using privileged delete. This retention mode is used to * advance an organization's data integrity and internal compliance or to test * retention settings before using SnapLock Compliance. For more information, see * SnapLock * Enterprise.

*/ inline void SetSnaplockType(const SnaplockType& value) { m_snaplockTypeHasBeenSet = true; m_snaplockType = value; } /** *

Specifies the retention mode of an FSx for ONTAP SnapLock volume. After it is * set, it can't be changed. You can choose one of the following retention modes: *

  • COMPLIANCE: Files transitioned to write once, * read many (WORM) on a Compliance volume can't be deleted until their retention * periods expire. This retention mode is used to address government or * industry-specific mandates or to protect against ransomware attacks. For more * information, see SnapLock * Compliance.

  • ENTERPRISE: Files transitioned * to WORM on an Enterprise volume can be deleted by authorized users before their * retention periods expire using privileged delete. This retention mode is used to * advance an organization's data integrity and internal compliance or to test * retention settings before using SnapLock Compliance. For more information, see * SnapLock * Enterprise.

*/ inline void SetSnaplockType(SnaplockType&& value) { m_snaplockTypeHasBeenSet = true; m_snaplockType = std::move(value); } /** *

Specifies the retention mode of an FSx for ONTAP SnapLock volume. After it is * set, it can't be changed. You can choose one of the following retention modes: *

  • COMPLIANCE: Files transitioned to write once, * read many (WORM) on a Compliance volume can't be deleted until their retention * periods expire. This retention mode is used to address government or * industry-specific mandates or to protect against ransomware attacks. For more * information, see SnapLock * Compliance.

  • ENTERPRISE: Files transitioned * to WORM on an Enterprise volume can be deleted by authorized users before their * retention periods expire using privileged delete. This retention mode is used to * advance an organization's data integrity and internal compliance or to test * retention settings before using SnapLock Compliance. For more information, see * SnapLock * Enterprise.

*/ inline CreateSnaplockConfiguration& WithSnaplockType(const SnaplockType& value) { SetSnaplockType(value); return *this;} /** *

Specifies the retention mode of an FSx for ONTAP SnapLock volume. After it is * set, it can't be changed. You can choose one of the following retention modes: *

  • COMPLIANCE: Files transitioned to write once, * read many (WORM) on a Compliance volume can't be deleted until their retention * periods expire. This retention mode is used to address government or * industry-specific mandates or to protect against ransomware attacks. For more * information, see SnapLock * Compliance.

  • ENTERPRISE: Files transitioned * to WORM on an Enterprise volume can be deleted by authorized users before their * retention periods expire using privileged delete. This retention mode is used to * advance an organization's data integrity and internal compliance or to test * retention settings before using SnapLock Compliance. For more information, see * SnapLock * Enterprise.

*/ inline CreateSnaplockConfiguration& WithSnaplockType(SnaplockType&& value) { SetSnaplockType(std::move(value)); return *this;} /** *

Enables or disables volume-append mode on an FSx for ONTAP SnapLock volume. * Volume-append mode allows you to create WORM-appendable files and write data to * them incrementally. The default value is false.

For more * information, see Volume-append * mode.

*/ inline bool GetVolumeAppendModeEnabled() const{ return m_volumeAppendModeEnabled; } /** *

Enables or disables volume-append mode on an FSx for ONTAP SnapLock volume. * Volume-append mode allows you to create WORM-appendable files and write data to * them incrementally. The default value is false.

For more * information, see Volume-append * mode.

*/ inline bool VolumeAppendModeEnabledHasBeenSet() const { return m_volumeAppendModeEnabledHasBeenSet; } /** *

Enables or disables volume-append mode on an FSx for ONTAP SnapLock volume. * Volume-append mode allows you to create WORM-appendable files and write data to * them incrementally. The default value is false.

For more * information, see Volume-append * mode.

*/ inline void SetVolumeAppendModeEnabled(bool value) { m_volumeAppendModeEnabledHasBeenSet = true; m_volumeAppendModeEnabled = value; } /** *

Enables or disables volume-append mode on an FSx for ONTAP SnapLock volume. * Volume-append mode allows you to create WORM-appendable files and write data to * them incrementally. The default value is false.

For more * information, see Volume-append * mode.

*/ inline CreateSnaplockConfiguration& WithVolumeAppendModeEnabled(bool value) { SetVolumeAppendModeEnabled(value); return *this;} private: bool m_auditLogVolume; bool m_auditLogVolumeHasBeenSet = false; AutocommitPeriod m_autocommitPeriod; bool m_autocommitPeriodHasBeenSet = false; PrivilegedDelete m_privilegedDelete; bool m_privilegedDeleteHasBeenSet = false; SnaplockRetentionPeriod m_retentionPeriod; bool m_retentionPeriodHasBeenSet = false; SnaplockType m_snaplockType; bool m_snaplockTypeHasBeenSet = false; bool m_volumeAppendModeEnabled; bool m_volumeAppendModeEnabledHasBeenSet = false; }; } // namespace Model } // namespace FSx } // namespace Aws