AWS SDK for C++

AWS SDK for C++ Version 1.11.812

Loading...
Searching...
No Matches
OperationUnion.h
1
6#pragma once
7#include <aws/mgn/Mgn_EXPORTS.h>
8#include <aws/mgn/model/DeleteOperation.h>
9#include <aws/mgn/model/MergeOperation.h>
10#include <aws/mgn/model/SplitOperation.h>
11#include <aws/mgn/model/UpdateOperation.h>
12
13#include <utility>
14
15namespace Aws {
16namespace Utils {
17namespace Json {
18class JsonValue;
19class JsonView;
20} // namespace Json
21} // namespace Utils
22namespace mgn {
23namespace Model {
24
32 public:
33 AWS_MGN_API OperationUnion() = default;
37
39
42 inline const MergeOperation& GetMerge() const { return m_merge; }
43 inline bool MergeHasBeenSet() const { return m_mergeHasBeenSet; }
44 template <typename MergeT = MergeOperation>
45 void SetMerge(MergeT&& value) {
46 m_mergeHasBeenSet = true;
47 m_merge = std::forward<MergeT>(value);
48 }
49 template <typename MergeT = MergeOperation>
50 OperationUnion& WithMerge(MergeT&& value) {
51 SetMerge(std::forward<MergeT>(value));
52 return *this;
53 }
55
57
61 inline const SplitOperation& GetSplit() const { return m_split; }
62 inline bool SplitHasBeenSet() const { return m_splitHasBeenSet; }
63 template <typename SplitT = SplitOperation>
64 void SetSplit(SplitT&& value) {
65 m_splitHasBeenSet = true;
66 m_split = std::forward<SplitT>(value);
67 }
68 template <typename SplitT = SplitOperation>
69 OperationUnion& WithSplit(SplitT&& value) {
70 SetSplit(std::forward<SplitT>(value));
71 return *this;
72 }
74
76
79 inline const DeleteOperation& GetDelete() const { return m_delete; }
80 inline bool DeleteHasBeenSet() const { return m_deleteHasBeenSet; }
81 template <typename DeleteT = DeleteOperation>
82 void SetDelete(DeleteT&& value) {
83 m_deleteHasBeenSet = true;
84 m_delete = std::forward<DeleteT>(value);
85 }
86 template <typename DeleteT = DeleteOperation>
87 OperationUnion& WithDelete(DeleteT&& value) {
88 SetDelete(std::forward<DeleteT>(value));
89 return *this;
90 }
92
94
97 inline const UpdateOperation& GetUpdate() const { return m_update; }
98 inline bool UpdateHasBeenSet() const { return m_updateHasBeenSet; }
99 template <typename UpdateT = UpdateOperation>
100 void SetUpdate(UpdateT&& value) {
101 m_updateHasBeenSet = true;
102 m_update = std::forward<UpdateT>(value);
103 }
104 template <typename UpdateT = UpdateOperation>
105 OperationUnion& WithUpdate(UpdateT&& value) {
106 SetUpdate(std::forward<UpdateT>(value));
107 return *this;
108 }
110 private:
111 MergeOperation m_merge;
112
113 SplitOperation m_split;
114
115 DeleteOperation m_delete;
116
117 UpdateOperation m_update;
118 bool m_mergeHasBeenSet = false;
119 bool m_splitHasBeenSet = false;
120 bool m_deleteHasBeenSet = false;
121 bool m_updateHasBeenSet = false;
122};
123
124} // namespace Model
125} // namespace mgn
126} // namespace Aws
AWS_MGN_API OperationUnion(Aws::Utils::Json::JsonView jsonValue)
void SetMerge(MergeT &&value)
AWS_MGN_API Aws::Utils::Json::JsonValue Jsonize() const
void SetUpdate(UpdateT &&value)
OperationUnion & WithDelete(DeleteT &&value)
OperationUnion & WithMerge(MergeT &&value)
void SetDelete(DeleteT &&value)
OperationUnion & WithSplit(SplitT &&value)
AWS_MGN_API OperationUnion & operator=(Aws::Utils::Json::JsonView jsonValue)
const MergeOperation & GetMerge() const
const SplitOperation & GetSplit() const
const DeleteOperation & GetDelete() const
void SetSplit(SplitT &&value)
const UpdateOperation & GetUpdate() const
OperationUnion & WithUpdate(UpdateT &&value)
AWS_MGN_API OperationUnion()=default
Aws::Utils::Json::JsonValue JsonValue