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

Updates the SnapLock configuration for an existing FSx for ONTAP volume. *

See Also:

AWS * API Reference

*/ class UpdateSnaplockConfiguration { public: AWS_FSX_API UpdateSnaplockConfiguration(); AWS_FSX_API UpdateSnaplockConfiguration(Aws::Utils::Json::JsonView jsonValue); AWS_FSX_API UpdateSnaplockConfiguration& 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 UpdateSnaplockConfiguration& 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 UpdateSnaplockConfiguration& 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 UpdateSnaplockConfiguration& 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 write once, read many (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 write once, read many (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 write once, read many (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 write once, read many (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 write once, read many (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 UpdateSnaplockConfiguration& 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 write once, read many (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 UpdateSnaplockConfiguration& 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 UpdateSnaplockConfiguration& WithRetentionPeriod(const SnaplockRetentionPeriod& value) { SetRetentionPeriod(value); return *this;} /** *

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

*/ inline UpdateSnaplockConfiguration& WithRetentionPeriod(SnaplockRetentionPeriod&& value) { SetRetentionPeriod(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 UpdateSnaplockConfiguration& 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; bool m_volumeAppendModeEnabled; bool m_volumeAppendModeEnabledHasBeenSet = false; }; } // namespace Model } // namespace FSx } // namespace Aws