AWS SDK for C++

AWS SDK for C++ Version 1.11.716

Loading...
Searching...
No Matches
SnaplockConfiguration.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 SnaplockConfiguration() = 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>
73 SnaplockConfiguration& WithAutocommitPeriod(AutocommitPeriodT&& value) {
74 SetAutocommitPeriod(std::forward<AutocommitPeriodT>(value));
75 return *this;
76 }
78
80
91 inline PrivilegedDelete GetPrivilegedDelete() const { return m_privilegedDelete; }
92 inline bool PrivilegedDeleteHasBeenSet() const { return m_privilegedDeleteHasBeenSet; }
94 m_privilegedDeleteHasBeenSet = true;
95 m_privilegedDelete = value;
96 }
99 return *this;
100 }
102
104
107 inline const SnaplockRetentionPeriod& GetRetentionPeriod() const { return m_retentionPeriod; }
108 inline bool RetentionPeriodHasBeenSet() const { return m_retentionPeriodHasBeenSet; }
109 template <typename RetentionPeriodT = SnaplockRetentionPeriod>
110 void SetRetentionPeriod(RetentionPeriodT&& value) {
111 m_retentionPeriodHasBeenSet = true;
112 m_retentionPeriod = std::forward<RetentionPeriodT>(value);
113 }
114 template <typename RetentionPeriodT = SnaplockRetentionPeriod>
115 SnaplockConfiguration& WithRetentionPeriod(RetentionPeriodT&& value) {
116 SetRetentionPeriod(std::forward<RetentionPeriodT>(value));
117 return *this;
118 }
120
122
140 inline SnaplockType GetSnaplockType() const { return m_snaplockType; }
141 inline bool SnaplockTypeHasBeenSet() const { return m_snaplockTypeHasBeenSet; }
142 inline void SetSnaplockType(SnaplockType value) {
143 m_snaplockTypeHasBeenSet = true;
144 m_snaplockType = value;
145 }
147 SetSnaplockType(value);
148 return *this;
149 }
151
153
161 inline bool GetVolumeAppendModeEnabled() const { return m_volumeAppendModeEnabled; }
162 inline bool VolumeAppendModeEnabledHasBeenSet() const { return m_volumeAppendModeEnabledHasBeenSet; }
163 inline void SetVolumeAppendModeEnabled(bool value) {
164 m_volumeAppendModeEnabledHasBeenSet = true;
165 m_volumeAppendModeEnabled = value;
166 }
169 return *this;
170 }
172 private:
173 bool m_auditLogVolume{false};
174
175 AutocommitPeriod m_autocommitPeriod;
176
178
179 SnaplockRetentionPeriod m_retentionPeriod;
180
181 SnaplockType m_snaplockType{SnaplockType::NOT_SET};
182
183 bool m_volumeAppendModeEnabled{false};
184 bool m_auditLogVolumeHasBeenSet = false;
185 bool m_autocommitPeriodHasBeenSet = false;
186 bool m_privilegedDeleteHasBeenSet = false;
187 bool m_retentionPeriodHasBeenSet = false;
188 bool m_snaplockTypeHasBeenSet = false;
189 bool m_volumeAppendModeEnabledHasBeenSet = false;
190};
191
192} // namespace Model
193} // namespace FSx
194} // namespace Aws
SnaplockConfiguration & WithSnaplockType(SnaplockType value)
AWS_FSX_API SnaplockConfiguration(Aws::Utils::Json::JsonView jsonValue)
SnaplockConfiguration & WithRetentionPeriod(RetentionPeriodT &&value)
AWS_FSX_API Aws::Utils::Json::JsonValue Jsonize() const
void SetRetentionPeriod(RetentionPeriodT &&value)
AWS_FSX_API SnaplockConfiguration()=default
AWS_FSX_API SnaplockConfiguration & operator=(Aws::Utils::Json::JsonView jsonValue)
SnaplockConfiguration & WithAuditLogVolume(bool value)
const SnaplockRetentionPeriod & GetRetentionPeriod() const
void SetPrivilegedDelete(PrivilegedDelete value)
void SetAutocommitPeriod(AutocommitPeriodT &&value)
SnaplockConfiguration & WithPrivilegedDelete(PrivilegedDelete value)
SnaplockConfiguration & WithVolumeAppendModeEnabled(bool value)
const AutocommitPeriod & GetAutocommitPeriod() const
SnaplockConfiguration & WithAutocommitPeriod(AutocommitPeriodT &&value)
Aws::Utils::Json::JsonValue JsonValue