AWS SDK for C++

AWS SDK for C++ Version 1.11.743

Loading...
Searching...
No Matches
Policy.h
1
6#pragma once
7#include <aws/core/utils/DateTime.h>
8#include <aws/core/utils/memory/stl/AWSStreamFwd.h>
9#include <aws/core/utils/memory/stl/AWSString.h>
10#include <aws/core/utils/memory/stl/AWSVector.h>
11#include <aws/iam/IAM_EXPORTS.h>
12#include <aws/iam/model/Tag.h>
13
14#include <utility>
15
16namespace Aws {
17namespace Utils {
18namespace Xml {
19class XmlNode;
20} // namespace Xml
21} // namespace Utils
22namespace IAM {
23namespace Model {
24
40class Policy {
41 public:
42 AWS_IAM_API Policy() = default;
43 AWS_IAM_API Policy(const Aws::Utils::Xml::XmlNode& xmlNode);
44 AWS_IAM_API Policy& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
45
46 AWS_IAM_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
47 AWS_IAM_API void OutputToStream(Aws::OStream& oStream, const char* location) const;
48
50
53 inline const Aws::String& GetPolicyName() const { return m_policyName; }
54 inline bool PolicyNameHasBeenSet() const { return m_policyNameHasBeenSet; }
55 template <typename PolicyNameT = Aws::String>
56 void SetPolicyName(PolicyNameT&& value) {
57 m_policyNameHasBeenSet = true;
58 m_policyName = std::forward<PolicyNameT>(value);
59 }
60 template <typename PolicyNameT = Aws::String>
61 Policy& WithPolicyName(PolicyNameT&& value) {
62 SetPolicyName(std::forward<PolicyNameT>(value));
63 return *this;
64 }
66
68
74 inline const Aws::String& GetPolicyId() const { return m_policyId; }
75 inline bool PolicyIdHasBeenSet() const { return m_policyIdHasBeenSet; }
76 template <typename PolicyIdT = Aws::String>
77 void SetPolicyId(PolicyIdT&& value) {
78 m_policyIdHasBeenSet = true;
79 m_policyId = std::forward<PolicyIdT>(value);
80 }
81 template <typename PolicyIdT = Aws::String>
82 Policy& WithPolicyId(PolicyIdT&& value) {
83 SetPolicyId(std::forward<PolicyIdT>(value));
84 return *this;
85 }
87
89
90 inline const Aws::String& GetArn() const { return m_arn; }
91 inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; }
92 template <typename ArnT = Aws::String>
93 void SetArn(ArnT&& value) {
94 m_arnHasBeenSet = true;
95 m_arn = std::forward<ArnT>(value);
96 }
97 template <typename ArnT = Aws::String>
98 Policy& WithArn(ArnT&& value) {
99 SetArn(std::forward<ArnT>(value));
100 return *this;
101 }
103
105
110 inline const Aws::String& GetPath() const { return m_path; }
111 inline bool PathHasBeenSet() const { return m_pathHasBeenSet; }
112 template <typename PathT = Aws::String>
113 void SetPath(PathT&& value) {
114 m_pathHasBeenSet = true;
115 m_path = std::forward<PathT>(value);
116 }
117 template <typename PathT = Aws::String>
118 Policy& WithPath(PathT&& value) {
119 SetPath(std::forward<PathT>(value));
120 return *this;
121 }
123
125
129 inline const Aws::String& GetDefaultVersionId() const { return m_defaultVersionId; }
130 inline bool DefaultVersionIdHasBeenSet() const { return m_defaultVersionIdHasBeenSet; }
131 template <typename DefaultVersionIdT = Aws::String>
132 void SetDefaultVersionId(DefaultVersionIdT&& value) {
133 m_defaultVersionIdHasBeenSet = true;
134 m_defaultVersionId = std::forward<DefaultVersionIdT>(value);
135 }
136 template <typename DefaultVersionIdT = Aws::String>
137 Policy& WithDefaultVersionId(DefaultVersionIdT&& value) {
138 SetDefaultVersionId(std::forward<DefaultVersionIdT>(value));
139 return *this;
140 }
142
144
148 inline int GetAttachmentCount() const { return m_attachmentCount; }
149 inline bool AttachmentCountHasBeenSet() const { return m_attachmentCountHasBeenSet; }
150 inline void SetAttachmentCount(int value) {
151 m_attachmentCountHasBeenSet = true;
152 m_attachmentCount = value;
153 }
154 inline Policy& WithAttachmentCount(int value) {
155 SetAttachmentCount(value);
156 return *this;
157 }
159
161
168 inline int GetPermissionsBoundaryUsageCount() const { return m_permissionsBoundaryUsageCount; }
169 inline bool PermissionsBoundaryUsageCountHasBeenSet() const { return m_permissionsBoundaryUsageCountHasBeenSet; }
170 inline void SetPermissionsBoundaryUsageCount(int value) {
171 m_permissionsBoundaryUsageCountHasBeenSet = true;
172 m_permissionsBoundaryUsageCount = value;
173 }
176 return *this;
177 }
179
181
185 inline bool GetIsAttachable() const { return m_isAttachable; }
186 inline bool IsAttachableHasBeenSet() const { return m_isAttachableHasBeenSet; }
187 inline void SetIsAttachable(bool value) {
188 m_isAttachableHasBeenSet = true;
189 m_isAttachable = value;
190 }
191 inline Policy& WithIsAttachable(bool value) {
192 SetIsAttachable(value);
193 return *this;
194 }
196
198
206 inline const Aws::String& GetDescription() const { return m_description; }
207 inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
208 template <typename DescriptionT = Aws::String>
209 void SetDescription(DescriptionT&& value) {
210 m_descriptionHasBeenSet = true;
211 m_description = std::forward<DescriptionT>(value);
212 }
213 template <typename DescriptionT = Aws::String>
214 Policy& WithDescription(DescriptionT&& value) {
215 SetDescription(std::forward<DescriptionT>(value));
216 return *this;
217 }
219
221
225 inline const Aws::Utils::DateTime& GetCreateDate() const { return m_createDate; }
226 inline bool CreateDateHasBeenSet() const { return m_createDateHasBeenSet; }
227 template <typename CreateDateT = Aws::Utils::DateTime>
228 void SetCreateDate(CreateDateT&& value) {
229 m_createDateHasBeenSet = true;
230 m_createDate = std::forward<CreateDateT>(value);
231 }
232 template <typename CreateDateT = Aws::Utils::DateTime>
233 Policy& WithCreateDate(CreateDateT&& value) {
234 SetCreateDate(std::forward<CreateDateT>(value));
235 return *this;
236 }
238
240
247 inline const Aws::Utils::DateTime& GetUpdateDate() const { return m_updateDate; }
248 inline bool UpdateDateHasBeenSet() const { return m_updateDateHasBeenSet; }
249 template <typename UpdateDateT = Aws::Utils::DateTime>
250 void SetUpdateDate(UpdateDateT&& value) {
251 m_updateDateHasBeenSet = true;
252 m_updateDate = std::forward<UpdateDateT>(value);
253 }
254 template <typename UpdateDateT = Aws::Utils::DateTime>
255 Policy& WithUpdateDate(UpdateDateT&& value) {
256 SetUpdateDate(std::forward<UpdateDateT>(value));
257 return *this;
258 }
260
262
268 inline const Aws::Vector<Tag>& GetTags() const { return m_tags; }
269 inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
270 template <typename TagsT = Aws::Vector<Tag>>
271 void SetTags(TagsT&& value) {
272 m_tagsHasBeenSet = true;
273 m_tags = std::forward<TagsT>(value);
274 }
275 template <typename TagsT = Aws::Vector<Tag>>
276 Policy& WithTags(TagsT&& value) {
277 SetTags(std::forward<TagsT>(value));
278 return *this;
279 }
280 template <typename TagsT = Tag>
281 Policy& AddTags(TagsT&& value) {
282 m_tagsHasBeenSet = true;
283 m_tags.emplace_back(std::forward<TagsT>(value));
284 return *this;
285 }
287 private:
288 Aws::String m_policyName;
289
290 Aws::String m_policyId;
291
292 Aws::String m_arn;
293
294 Aws::String m_path;
295
296 Aws::String m_defaultVersionId;
297
298 int m_attachmentCount{0};
299
300 int m_permissionsBoundaryUsageCount{0};
301
302 bool m_isAttachable{false};
303
304 Aws::String m_description;
305
306 Aws::Utils::DateTime m_createDate{};
307
308 Aws::Utils::DateTime m_updateDate{};
309
310 Aws::Vector<Tag> m_tags;
311 bool m_policyNameHasBeenSet = false;
312 bool m_policyIdHasBeenSet = false;
313 bool m_arnHasBeenSet = false;
314 bool m_pathHasBeenSet = false;
315 bool m_defaultVersionIdHasBeenSet = false;
316 bool m_attachmentCountHasBeenSet = false;
317 bool m_permissionsBoundaryUsageCountHasBeenSet = false;
318 bool m_isAttachableHasBeenSet = false;
319 bool m_descriptionHasBeenSet = false;
320 bool m_createDateHasBeenSet = false;
321 bool m_updateDateHasBeenSet = false;
322 bool m_tagsHasBeenSet = false;
323};
324
325} // namespace Model
326} // namespace IAM
327} // namespace Aws
void SetCreateDate(CreateDateT &&value)
Definition Policy.h:228
Policy & WithPermissionsBoundaryUsageCount(int value)
Definition Policy.h:174
int GetAttachmentCount() const
Definition Policy.h:148
void SetDescription(DescriptionT &&value)
Definition Policy.h:209
AWS_IAM_API void OutputToStream(Aws::OStream &oStream, const char *location) const
const Aws::String & GetDefaultVersionId() const
Definition Policy.h:129
Policy & WithTags(TagsT &&value)
Definition Policy.h:276
Policy & WithPath(PathT &&value)
Definition Policy.h:118
Policy & WithIsAttachable(bool value)
Definition Policy.h:191
const Aws::String & GetPolicyName() const
Definition Policy.h:53
bool PermissionsBoundaryUsageCountHasBeenSet() const
Definition Policy.h:169
bool GetIsAttachable() const
Definition Policy.h:185
const Aws::Utils::DateTime & GetUpdateDate() const
Definition Policy.h:247
bool PolicyNameHasBeenSet() const
Definition Policy.h:54
Policy & WithPolicyId(PolicyIdT &&value)
Definition Policy.h:82
AWS_IAM_API Policy & operator=(const Aws::Utils::Xml::XmlNode &xmlNode)
void SetPolicyName(PolicyNameT &&value)
Definition Policy.h:56
bool PathHasBeenSet() const
Definition Policy.h:111
bool CreateDateHasBeenSet() const
Definition Policy.h:226
bool DefaultVersionIdHasBeenSet() const
Definition Policy.h:130
void SetPolicyId(PolicyIdT &&value)
Definition Policy.h:77
bool UpdateDateHasBeenSet() const
Definition Policy.h:248
void SetDefaultVersionId(DefaultVersionIdT &&value)
Definition Policy.h:132
AWS_IAM_API void OutputToStream(Aws::OStream &ostream, const char *location, unsigned index, const char *locationValue) const
Policy & WithDefaultVersionId(DefaultVersionIdT &&value)
Definition Policy.h:137
Policy & WithArn(ArnT &&value)
Definition Policy.h:98
void SetAttachmentCount(int value)
Definition Policy.h:150
bool TagsHasBeenSet() const
Definition Policy.h:269
void SetTags(TagsT &&value)
Definition Policy.h:271
Policy & WithAttachmentCount(int value)
Definition Policy.h:154
void SetArn(ArnT &&value)
Definition Policy.h:93
AWS_IAM_API Policy(const Aws::Utils::Xml::XmlNode &xmlNode)
bool ArnHasBeenSet() const
Definition Policy.h:91
void SetPermissionsBoundaryUsageCount(int value)
Definition Policy.h:170
const Aws::Utils::DateTime & GetCreateDate() const
Definition Policy.h:225
void SetPath(PathT &&value)
Definition Policy.h:113
void SetUpdateDate(UpdateDateT &&value)
Definition Policy.h:250
Policy & WithDescription(DescriptionT &&value)
Definition Policy.h:214
Policy & WithPolicyName(PolicyNameT &&value)
Definition Policy.h:61
bool DescriptionHasBeenSet() const
Definition Policy.h:207
int GetPermissionsBoundaryUsageCount() const
Definition Policy.h:168
Policy & WithCreateDate(CreateDateT &&value)
Definition Policy.h:233
const Aws::String & GetDescription() const
Definition Policy.h:206
AWS_IAM_API Policy()=default
const Aws::String & GetPolicyId() const
Definition Policy.h:74
void SetIsAttachable(bool value)
Definition Policy.h:187
bool PolicyIdHasBeenSet() const
Definition Policy.h:75
const Aws::Vector< Tag > & GetTags() const
Definition Policy.h:268
Policy & AddTags(TagsT &&value)
Definition Policy.h:281
bool AttachmentCountHasBeenSet() const
Definition Policy.h:149
const Aws::String & GetArn() const
Definition Policy.h:90
Policy & WithUpdateDate(UpdateDateT &&value)
Definition Policy.h:255
const Aws::String & GetPath() const
Definition Policy.h:110
bool IsAttachableHasBeenSet() const
Definition Policy.h:186
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector
std::basic_ostream< char, std::char_traits< char > > OStream