AWS SDK for C++

AWS SDK for C++ Version 1.11.891

Loading...
Searching...
No Matches
ObjectLockRetention.h
1
6#pragma once
7#include <aws/core/utils/DateTime.h>
8#include <aws/s3/S3_EXPORTS.h>
9#include <aws/s3/model/EventHoldDuration.h>
10#include <aws/s3/model/ObjectLockEventHold.h>
11#include <aws/s3/model/ObjectLockRetentionMode.h>
12
13#include <utility>
14
15namespace Aws {
16namespace Utils {
17namespace Xml {
18class XmlNode;
19} // namespace Xml
20} // namespace Utils
21namespace S3 {
22namespace Model {
23
30 public:
31 AWS_S3_API ObjectLockRetention() = default;
34
35 AWS_S3_API void AddToNode(Aws::Utils::Xml::XmlNode& parentNode) const;
36
38
41 inline ObjectLockRetentionMode GetMode() const { return m_mode; }
42 inline bool ModeHasBeenSet() const { return m_modeHasBeenSet; }
43 inline void SetMode(ObjectLockRetentionMode value) {
44 m_modeHasBeenSet = true;
45 m_mode = value;
46 }
48 SetMode(value);
49 return *this;
50 }
52
54
57 inline const Aws::Utils::DateTime& GetRetainUntilDate() const { return m_retainUntilDate; }
58 inline bool RetainUntilDateHasBeenSet() const { return m_retainUntilDateHasBeenSet; }
59 template <typename RetainUntilDateT = Aws::Utils::DateTime>
60 void SetRetainUntilDate(RetainUntilDateT&& value) {
61 m_retainUntilDateHasBeenSet = true;
62 m_retainUntilDate = std::forward<RetainUntilDateT>(value);
63 }
64 template <typename RetainUntilDateT = Aws::Utils::DateTime>
65 ObjectLockRetention& WithRetainUntilDate(RetainUntilDateT&& value) {
66 SetRetainUntilDate(std::forward<RetainUntilDateT>(value));
67 return *this;
68 }
70
72
76 inline ObjectLockEventHold GetEventHold() const { return m_eventHold; }
77 inline bool EventHoldHasBeenSet() const { return m_eventHoldHasBeenSet; }
78 inline void SetEventHold(ObjectLockEventHold value) {
79 m_eventHoldHasBeenSet = true;
80 m_eventHold = value;
81 }
83 SetEventHold(value);
84 return *this;
85 }
87
89
93 inline const EventHoldDuration& GetEventHoldDuration() const { return m_eventHoldDuration; }
94 inline bool EventHoldDurationHasBeenSet() const { return m_eventHoldDurationHasBeenSet; }
95 template <typename EventHoldDurationT = EventHoldDuration>
96 void SetEventHoldDuration(EventHoldDurationT&& value) {
97 m_eventHoldDurationHasBeenSet = true;
98 m_eventHoldDuration = std::forward<EventHoldDurationT>(value);
99 }
100 template <typename EventHoldDurationT = EventHoldDuration>
101 ObjectLockRetention& WithEventHoldDuration(EventHoldDurationT&& value) {
102 SetEventHoldDuration(std::forward<EventHoldDurationT>(value));
103 return *this;
104 }
106 private:
108
109 Aws::Utils::DateTime m_retainUntilDate{};
110
112
113 EventHoldDuration m_eventHoldDuration;
114 bool m_modeHasBeenSet = false;
115 bool m_retainUntilDateHasBeenSet = false;
116 bool m_eventHoldHasBeenSet = false;
117 bool m_eventHoldDurationHasBeenSet = false;
118};
119
120} // namespace Model
121} // namespace S3
122} // namespace Aws
ObjectLockRetention & WithEventHold(ObjectLockEventHold value)
void SetMode(ObjectLockRetentionMode value)
AWS_S3_API ObjectLockRetention()=default
void SetRetainUntilDate(RetainUntilDateT &&value)
void SetEventHold(ObjectLockEventHold value)
void SetEventHoldDuration(EventHoldDurationT &&value)
ObjectLockEventHold GetEventHold() const
AWS_S3_API ObjectLockRetention(const Aws::Utils::Xml::XmlNode &xmlNode)
AWS_S3_API ObjectLockRetention & operator=(const Aws::Utils::Xml::XmlNode &xmlNode)
AWS_S3_API void AddToNode(Aws::Utils::Xml::XmlNode &parentNode) const
const EventHoldDuration & GetEventHoldDuration() const
ObjectLockRetention & WithRetainUntilDate(RetainUntilDateT &&value)
ObjectLockRetention & WithMode(ObjectLockRetentionMode value)
ObjectLockRetentionMode GetMode() const
const Aws::Utils::DateTime & GetRetainUntilDate() const
ObjectLockRetention & WithEventHoldDuration(EventHoldDurationT &&value)