AWS SDK for C++

AWS SDK for C++ Version 1.11.607

Loading...
Searching...
No Matches
Policy.h
1
6#pragma once
7#include <aws/iam/IAM_EXPORTS.h>
8#include <aws/core/utils/memory/stl/AWSStreamFwd.h>
9#include <aws/core/utils/memory/stl/AWSString.h>
10#include <aws/core/utils/DateTime.h>
11#include <aws/core/utils/memory/stl/AWSVector.h>
12#include <aws/iam/model/Tag.h>
13#include <utility>
14
15namespace Aws
16{
17namespace Utils
18{
19namespace Xml
20{
21 class XmlNode;
22} // namespace Xml
23} // namespace Utils
24namespace IAM
25{
26namespace Model
27{
28
44 class Policy
45 {
46 public:
47 AWS_IAM_API Policy() = default;
48 AWS_IAM_API Policy(const Aws::Utils::Xml::XmlNode& xmlNode);
49 AWS_IAM_API Policy& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
50
51 AWS_IAM_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
52 AWS_IAM_API void OutputToStream(Aws::OStream& oStream, const char* location) const;
53
54
56
59 inline const Aws::String& GetPolicyName() const { return m_policyName; }
60 inline bool PolicyNameHasBeenSet() const { return m_policyNameHasBeenSet; }
61 template<typename PolicyNameT = Aws::String>
62 void SetPolicyName(PolicyNameT&& value) { m_policyNameHasBeenSet = true; m_policyName = std::forward<PolicyNameT>(value); }
63 template<typename PolicyNameT = Aws::String>
64 Policy& WithPolicyName(PolicyNameT&& value) { SetPolicyName(std::forward<PolicyNameT>(value)); return *this;}
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) { m_policyIdHasBeenSet = true; m_policyId = std::forward<PolicyIdT>(value); }
78 template<typename PolicyIdT = Aws::String>
79 Policy& WithPolicyId(PolicyIdT&& value) { SetPolicyId(std::forward<PolicyIdT>(value)); return *this;}
81
83
84 inline const Aws::String& GetArn() const { return m_arn; }
85 inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; }
86 template<typename ArnT = Aws::String>
87 void SetArn(ArnT&& value) { m_arnHasBeenSet = true; m_arn = std::forward<ArnT>(value); }
88 template<typename ArnT = Aws::String>
89 Policy& WithArn(ArnT&& value) { SetArn(std::forward<ArnT>(value)); return *this;}
91
93
98 inline const Aws::String& GetPath() const { return m_path; }
99 inline bool PathHasBeenSet() const { return m_pathHasBeenSet; }
100 template<typename PathT = Aws::String>
101 void SetPath(PathT&& value) { m_pathHasBeenSet = true; m_path = std::forward<PathT>(value); }
102 template<typename PathT = Aws::String>
103 Policy& WithPath(PathT&& value) { SetPath(std::forward<PathT>(value)); return *this;}
105
107
111 inline const Aws::String& GetDefaultVersionId() const { return m_defaultVersionId; }
112 inline bool DefaultVersionIdHasBeenSet() const { return m_defaultVersionIdHasBeenSet; }
113 template<typename DefaultVersionIdT = Aws::String>
114 void SetDefaultVersionId(DefaultVersionIdT&& value) { m_defaultVersionIdHasBeenSet = true; m_defaultVersionId = std::forward<DefaultVersionIdT>(value); }
115 template<typename DefaultVersionIdT = Aws::String>
116 Policy& WithDefaultVersionId(DefaultVersionIdT&& value) { SetDefaultVersionId(std::forward<DefaultVersionIdT>(value)); return *this;}
118
120
124 inline int GetAttachmentCount() const { return m_attachmentCount; }
125 inline bool AttachmentCountHasBeenSet() const { return m_attachmentCountHasBeenSet; }
126 inline void SetAttachmentCount(int value) { m_attachmentCountHasBeenSet = true; m_attachmentCount = value; }
127 inline Policy& WithAttachmentCount(int value) { SetAttachmentCount(value); return *this;}
129
131
138 inline int GetPermissionsBoundaryUsageCount() const { return m_permissionsBoundaryUsageCount; }
139 inline bool PermissionsBoundaryUsageCountHasBeenSet() const { return m_permissionsBoundaryUsageCountHasBeenSet; }
140 inline void SetPermissionsBoundaryUsageCount(int value) { m_permissionsBoundaryUsageCountHasBeenSet = true; m_permissionsBoundaryUsageCount = value; }
143
145
149 inline bool GetIsAttachable() const { return m_isAttachable; }
150 inline bool IsAttachableHasBeenSet() const { return m_isAttachableHasBeenSet; }
151 inline void SetIsAttachable(bool value) { m_isAttachableHasBeenSet = true; m_isAttachable = value; }
152 inline Policy& WithIsAttachable(bool value) { SetIsAttachable(value); return *this;}
154
156
164 inline const Aws::String& GetDescription() const { return m_description; }
165 inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
166 template<typename DescriptionT = Aws::String>
167 void SetDescription(DescriptionT&& value) { m_descriptionHasBeenSet = true; m_description = std::forward<DescriptionT>(value); }
168 template<typename DescriptionT = Aws::String>
169 Policy& WithDescription(DescriptionT&& value) { SetDescription(std::forward<DescriptionT>(value)); return *this;}
171
173
177 inline const Aws::Utils::DateTime& GetCreateDate() const { return m_createDate; }
178 inline bool CreateDateHasBeenSet() const { return m_createDateHasBeenSet; }
179 template<typename CreateDateT = Aws::Utils::DateTime>
180 void SetCreateDate(CreateDateT&& value) { m_createDateHasBeenSet = true; m_createDate = std::forward<CreateDateT>(value); }
181 template<typename CreateDateT = Aws::Utils::DateTime>
182 Policy& WithCreateDate(CreateDateT&& value) { SetCreateDate(std::forward<CreateDateT>(value)); return *this;}
184
186
193 inline const Aws::Utils::DateTime& GetUpdateDate() const { return m_updateDate; }
194 inline bool UpdateDateHasBeenSet() const { return m_updateDateHasBeenSet; }
195 template<typename UpdateDateT = Aws::Utils::DateTime>
196 void SetUpdateDate(UpdateDateT&& value) { m_updateDateHasBeenSet = true; m_updateDate = std::forward<UpdateDateT>(value); }
197 template<typename UpdateDateT = Aws::Utils::DateTime>
198 Policy& WithUpdateDate(UpdateDateT&& value) { SetUpdateDate(std::forward<UpdateDateT>(value)); return *this;}
200
202
208 inline const Aws::Vector<Tag>& GetTags() const { return m_tags; }
209 inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
210 template<typename TagsT = Aws::Vector<Tag>>
211 void SetTags(TagsT&& value) { m_tagsHasBeenSet = true; m_tags = std::forward<TagsT>(value); }
212 template<typename TagsT = Aws::Vector<Tag>>
213 Policy& WithTags(TagsT&& value) { SetTags(std::forward<TagsT>(value)); return *this;}
214 template<typename TagsT = Tag>
215 Policy& AddTags(TagsT&& value) { m_tagsHasBeenSet = true; m_tags.emplace_back(std::forward<TagsT>(value)); return *this; }
217 private:
218
219 Aws::String m_policyName;
220 bool m_policyNameHasBeenSet = false;
221
222 Aws::String m_policyId;
223 bool m_policyIdHasBeenSet = false;
224
225 Aws::String m_arn;
226 bool m_arnHasBeenSet = false;
227
228 Aws::String m_path;
229 bool m_pathHasBeenSet = false;
230
231 Aws::String m_defaultVersionId;
232 bool m_defaultVersionIdHasBeenSet = false;
233
234 int m_attachmentCount{0};
235 bool m_attachmentCountHasBeenSet = false;
236
237 int m_permissionsBoundaryUsageCount{0};
238 bool m_permissionsBoundaryUsageCountHasBeenSet = false;
239
240 bool m_isAttachable{false};
241 bool m_isAttachableHasBeenSet = false;
242
243 Aws::String m_description;
244 bool m_descriptionHasBeenSet = false;
245
246 Aws::Utils::DateTime m_createDate{};
247 bool m_createDateHasBeenSet = false;
248
249 Aws::Utils::DateTime m_updateDate{};
250 bool m_updateDateHasBeenSet = false;
251
252 Aws::Vector<Tag> m_tags;
253 bool m_tagsHasBeenSet = false;
254 };
255
256} // namespace Model
257} // namespace IAM
258} // namespace Aws
void SetCreateDate(CreateDateT &&value)
Definition Policy.h:180
Policy & WithPermissionsBoundaryUsageCount(int value)
Definition Policy.h:141
int GetAttachmentCount() const
Definition Policy.h:124
void SetDescription(DescriptionT &&value)
Definition Policy.h:167
AWS_IAM_API void OutputToStream(Aws::OStream &oStream, const char *location) const
const Aws::String & GetDefaultVersionId() const
Definition Policy.h:111
Policy & WithTags(TagsT &&value)
Definition Policy.h:213
Policy & WithPath(PathT &&value)
Definition Policy.h:103
Policy & WithIsAttachable(bool value)
Definition Policy.h:152
const Aws::String & GetPolicyName() const
Definition Policy.h:59
bool PermissionsBoundaryUsageCountHasBeenSet() const
Definition Policy.h:139
bool GetIsAttachable() const
Definition Policy.h:149
const Aws::Utils::DateTime & GetUpdateDate() const
Definition Policy.h:193
bool PolicyNameHasBeenSet() const
Definition Policy.h:60
Policy & WithPolicyId(PolicyIdT &&value)
Definition Policy.h:79
AWS_IAM_API Policy & operator=(const Aws::Utils::Xml::XmlNode &xmlNode)
void SetPolicyName(PolicyNameT &&value)
Definition Policy.h:62
bool PathHasBeenSet() const
Definition Policy.h:99
bool CreateDateHasBeenSet() const
Definition Policy.h:178
bool DefaultVersionIdHasBeenSet() const
Definition Policy.h:112
void SetPolicyId(PolicyIdT &&value)
Definition Policy.h:77
bool UpdateDateHasBeenSet() const
Definition Policy.h:194
void SetDefaultVersionId(DefaultVersionIdT &&value)
Definition Policy.h:114
AWS_IAM_API void OutputToStream(Aws::OStream &ostream, const char *location, unsigned index, const char *locationValue) const
Policy & WithDefaultVersionId(DefaultVersionIdT &&value)
Definition Policy.h:116
Policy & WithArn(ArnT &&value)
Definition Policy.h:89
void SetAttachmentCount(int value)
Definition Policy.h:126
bool TagsHasBeenSet() const
Definition Policy.h:209
void SetTags(TagsT &&value)
Definition Policy.h:211
Policy & WithAttachmentCount(int value)
Definition Policy.h:127
void SetArn(ArnT &&value)
Definition Policy.h:87
AWS_IAM_API Policy(const Aws::Utils::Xml::XmlNode &xmlNode)
bool ArnHasBeenSet() const
Definition Policy.h:85
void SetPermissionsBoundaryUsageCount(int value)
Definition Policy.h:140
const Aws::Utils::DateTime & GetCreateDate() const
Definition Policy.h:177
void SetPath(PathT &&value)
Definition Policy.h:101
void SetUpdateDate(UpdateDateT &&value)
Definition Policy.h:196
Policy & WithDescription(DescriptionT &&value)
Definition Policy.h:169
Policy & WithPolicyName(PolicyNameT &&value)
Definition Policy.h:64
bool DescriptionHasBeenSet() const
Definition Policy.h:165
int GetPermissionsBoundaryUsageCount() const
Definition Policy.h:138
Policy & WithCreateDate(CreateDateT &&value)
Definition Policy.h:182
const Aws::String & GetDescription() const
Definition Policy.h:164
AWS_IAM_API Policy()=default
const Aws::String & GetPolicyId() const
Definition Policy.h:74
void SetIsAttachable(bool value)
Definition Policy.h:151
bool PolicyIdHasBeenSet() const
Definition Policy.h:75
const Aws::Vector< Tag > & GetTags() const
Definition Policy.h:208
Policy & AddTags(TagsT &&value)
Definition Policy.h:215
bool AttachmentCountHasBeenSet() const
Definition Policy.h:125
const Aws::String & GetArn() const
Definition Policy.h:84
Policy & WithUpdateDate(UpdateDateT &&value)
Definition Policy.h:198
const Aws::String & GetPath() const
Definition Policy.h:98
bool IsAttachableHasBeenSet() const
Definition Policy.h:150
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