AWS SDK for C++

AWS SDK for C++ Version 1.11.716

Loading...
Searching...
No Matches
CreateSnaplockConfiguration.h
1
6#pragma once
7#include <aws/fsx/FSx_EXPORTS.h>
8#include <aws/fsx/model/AutocommitPeriod.h>
9#include <aws/fsx/model/PrivilegedDelete.h>
10#include <aws/fsx/model/SnaplockRetentionPeriod.h>
11#include <aws/fsx/model/SnaplockType.h>
12
13#include <utility>
14
15namespace Aws {
16namespace Utils {
17namespace Json {
18class JsonValue;
19class JsonView;
20} // namespace Json
21} // namespace Utils
22namespace FSx {
23namespace Model {
24
32 public:
33 AWS_FSX_API CreateSnaplockConfiguration() = default;
37
39
48 inline bool GetAuditLogVolume() const { return m_auditLogVolume; }
49 inline bool AuditLogVolumeHasBeenSet() const { return m_auditLogVolumeHasBeenSet; }
50 inline void SetAuditLogVolume(bool value) {
51 m_auditLogVolumeHasBeenSet = true;
52 m_auditLogVolume = value;
53 }
55 SetAuditLogVolume(value);
56 return *this;
57 }
59
61
65 inline const AutocommitPeriod& GetAutocommitPeriod() const { return m_autocommitPeriod; }
66 inline bool AutocommitPeriodHasBeenSet() const { return m_autocommitPeriodHasBeenSet; }
67 template <typename AutocommitPeriodT = AutocommitPeriod>
68 void SetAutocommitPeriod(AutocommitPeriodT&& value) {
69 m_autocommitPeriodHasBeenSet = true;
70 m_autocommitPeriod = std::forward<AutocommitPeriodT>(value);
71 }
72 template <typename AutocommitPeriodT = AutocommitPeriod>
74 SetAutocommitPeriod(std::forward<AutocommitPeriodT>(value));
75 return *this;
76 }
78
80
90 inline PrivilegedDelete GetPrivilegedDelete() const { return m_privilegedDelete; }
91 inline bool PrivilegedDeleteHasBeenSet() const { return m_privilegedDeleteHasBeenSet; }
93 m_privilegedDeleteHasBeenSet = true;
94 m_privilegedDelete = value;
95 }
98 return *this;
99 }
101
103
106 inline const SnaplockRetentionPeriod& GetRetentionPeriod() const { return m_retentionPeriod; }
107 inline bool RetentionPeriodHasBeenSet() const { return m_retentionPeriodHasBeenSet; }
108 template <typename RetentionPeriodT = SnaplockRetentionPeriod>
109 void SetRetentionPeriod(RetentionPeriodT&& value) {
110 m_retentionPeriodHasBeenSet = true;
111 m_retentionPeriod = std::forward<RetentionPeriodT>(value);
112 }
113 template <typename RetentionPeriodT = SnaplockRetentionPeriod>
115 SetRetentionPeriod(std::forward<RetentionPeriodT>(value));
116 return *this;
117 }
119
121
139 inline SnaplockType GetSnaplockType() const { return m_snaplockType; }
140 inline bool SnaplockTypeHasBeenSet() const { return m_snaplockTypeHasBeenSet; }
141 inline void SetSnaplockType(SnaplockType value) {
142 m_snaplockTypeHasBeenSet = true;
143 m_snaplockType = value;
144 }
146 SetSnaplockType(value);
147 return *this;
148 }
150
152
160 inline bool GetVolumeAppendModeEnabled() const { return m_volumeAppendModeEnabled; }
161 inline bool VolumeAppendModeEnabledHasBeenSet() const { return m_volumeAppendModeEnabledHasBeenSet; }
162 inline void SetVolumeAppendModeEnabled(bool value) {
163 m_volumeAppendModeEnabledHasBeenSet = true;
164 m_volumeAppendModeEnabled = value;
165 }
168 return *this;
169 }
171 private:
172 bool m_auditLogVolume{false};
173
174 AutocommitPeriod m_autocommitPeriod;
175
177
178 SnaplockRetentionPeriod m_retentionPeriod;
179
180 SnaplockType m_snaplockType{SnaplockType::NOT_SET};
181
182 bool m_volumeAppendModeEnabled{false};
183 bool m_auditLogVolumeHasBeenSet = false;
184 bool m_autocommitPeriodHasBeenSet = false;
185 bool m_privilegedDeleteHasBeenSet = false;
186 bool m_retentionPeriodHasBeenSet = false;
187 bool m_snaplockTypeHasBeenSet = false;
188 bool m_volumeAppendModeEnabledHasBeenSet = false;
189};
190
191} // namespace Model
192} // namespace FSx
193} // namespace Aws
CreateSnaplockConfiguration & WithPrivilegedDelete(PrivilegedDelete value)
AWS_FSX_API Aws::Utils::Json::JsonValue Jsonize() const
CreateSnaplockConfiguration & WithSnaplockType(SnaplockType value)
AWS_FSX_API CreateSnaplockConfiguration()=default
CreateSnaplockConfiguration & WithRetentionPeriod(RetentionPeriodT &&value)
AWS_FSX_API CreateSnaplockConfiguration(Aws::Utils::Json::JsonView jsonValue)
CreateSnaplockConfiguration & WithAutocommitPeriod(AutocommitPeriodT &&value)
AWS_FSX_API CreateSnaplockConfiguration & operator=(Aws::Utils::Json::JsonView jsonValue)
const SnaplockRetentionPeriod & GetRetentionPeriod() const
CreateSnaplockConfiguration & WithVolumeAppendModeEnabled(bool value)
CreateSnaplockConfiguration & WithAuditLogVolume(bool value)
Aws::Utils::Json::JsonValue JsonValue