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/AttachedPermissionsBoundary.h>
13#include <aws/iam/model/RoleLastUsed.h>
14#include <aws/iam/model/SourceRoleTemplate.h>
15#include <aws/iam/model/Tag.h>
37 AWS_IAM_API
Role() =
default;
52 template <
typename PathT = Aws::String>
54 m_pathHasBeenSet =
true;
55 m_path = std::forward<PathT>(value);
57 template <
typename PathT = Aws::String>
59 SetPath(std::forward<PathT>(value));
70 template <
typename RoleNameT = Aws::String>
72 m_roleNameHasBeenSet =
true;
73 m_roleName = std::forward<RoleNameT>(value);
75 template <
typename RoleNameT = Aws::String>
91 template <
typename RoleIdT = Aws::String>
93 m_roleIdHasBeenSet =
true;
94 m_roleId = std::forward<RoleIdT>(value);
96 template <
typename RoleIdT = Aws::String>
112 template <
typename ArnT = Aws::String>
114 m_arnHasBeenSet =
true;
115 m_arn = std::forward<ArnT>(value);
117 template <
typename ArnT = Aws::String>
119 SetArn(std::forward<ArnT>(value));
131 template <
typename CreateDateT = Aws::Utils::DateTime>
133 m_createDateHasBeenSet =
true;
134 m_createDate = std::forward<CreateDateT>(value);
136 template <
typename CreateDateT = Aws::Utils::DateTime>
149 template <
typename AssumeRolePolicyDocumentT = Aws::String>
151 m_assumeRolePolicyDocumentHasBeenSet =
true;
152 m_assumeRolePolicyDocument = std::forward<AssumeRolePolicyDocumentT>(value);
154 template <
typename AssumeRolePolicyDocumentT = Aws::String>
167 template <
typename DescriptionT = Aws::String>
169 m_descriptionHasBeenSet =
true;
170 m_description = std::forward<DescriptionT>(value);
172 template <
typename DescriptionT = Aws::String>
189 m_maxSessionDurationHasBeenSet =
true;
190 m_maxSessionDuration = value;
207 template <
typename PermissionsBoundaryT = AttachedPermissionsBoundary>
209 m_permissionsBoundaryHasBeenSet =
true;
210 m_permissionsBoundary = std::forward<PermissionsBoundaryT>(value);
212 template <
typename PermissionsBoundaryT = AttachedPermissionsBoundary>
228 template <
typename TagsT = Aws::Vector<Tag>>
230 m_tagsHasBeenSet =
true;
231 m_tags = std::forward<TagsT>(value);
233 template <
typename TagsT = Aws::Vector<Tag>>
235 SetTags(std::forward<TagsT>(value));
238 template <
typename TagsT = Tag>
240 m_tagsHasBeenSet =
true;
241 m_tags.emplace_back(std::forward<TagsT>(value));
258 template <
typename RoleLastUsedT = RoleLastUsed>
260 m_roleLastUsedHasBeenSet =
true;
261 m_roleLastUsed = std::forward<RoleLastUsedT>(value);
263 template <
typename RoleLastUsedT = RoleLastUsed>
278 template <
typename SourceRoleTemplateT = SourceRoleTemplate>
280 m_sourceRoleTemplateHasBeenSet =
true;
281 m_sourceRoleTemplate = std::forward<SourceRoleTemplateT>(value);
283 template <
typename SourceRoleTemplateT = SourceRoleTemplate>
304 int m_maxSessionDuration{0};
306 AttachedPermissionsBoundary m_permissionsBoundary;
310 RoleLastUsed m_roleLastUsed;
312 SourceRoleTemplate m_sourceRoleTemplate;
313 bool m_pathHasBeenSet =
false;
314 bool m_roleNameHasBeenSet =
false;
315 bool m_roleIdHasBeenSet =
false;
316 bool m_arnHasBeenSet =
false;
317 bool m_createDateHasBeenSet =
false;
318 bool m_assumeRolePolicyDocumentHasBeenSet =
false;
319 bool m_descriptionHasBeenSet =
false;
320 bool m_maxSessionDurationHasBeenSet =
false;
321 bool m_permissionsBoundaryHasBeenSet =
false;
322 bool m_tagsHasBeenSet =
false;
323 bool m_roleLastUsedHasBeenSet =
false;
324 bool m_sourceRoleTemplateHasBeenSet =
false;
AWS_IAM_API Role & operator=(const Aws::Utils::Xml::XmlNode &xmlNode)
bool CreateDateHasBeenSet() const
bool PermissionsBoundaryHasBeenSet() const
void SetTags(TagsT &&value)
bool SourceRoleTemplateHasBeenSet() const
int GetMaxSessionDuration() const
void SetArn(ArnT &&value)
const Aws::String & GetAssumeRolePolicyDocument() const
Role & WithDescription(DescriptionT &&value)
bool RoleIdHasBeenSet() const
void SetAssumeRolePolicyDocument(AssumeRolePolicyDocumentT &&value)
Role & WithPath(PathT &&value)
const SourceRoleTemplate & GetSourceRoleTemplate() const
Role & WithCreateDate(CreateDateT &&value)
bool RoleLastUsedHasBeenSet() const
Role & WithRoleName(RoleNameT &&value)
const AttachedPermissionsBoundary & GetPermissionsBoundary() const
Role & WithTags(TagsT &&value)
const Aws::String & GetRoleId() const
bool PathHasBeenSet() const
Role & WithMaxSessionDuration(int value)
Role & WithPermissionsBoundary(PermissionsBoundaryT &&value)
bool TagsHasBeenSet() const
void SetMaxSessionDuration(int value)
void SetPermissionsBoundary(PermissionsBoundaryT &&value)
void SetSourceRoleTemplate(SourceRoleTemplateT &&value)
void SetPath(PathT &&value)
bool AssumeRolePolicyDocumentHasBeenSet() const
AWS_IAM_API void OutputToStream(Aws::OStream &oStream, const char *location) const
Role & WithSourceRoleTemplate(SourceRoleTemplateT &&value)
AWS_IAM_API Role(const Aws::Utils::Xml::XmlNode &xmlNode)
const Aws::String & GetRoleName() const
AWS_IAM_API void OutputToStream(Aws::OStream &ostream, const char *location, unsigned index, const char *locationValue) const
void SetRoleName(RoleNameT &&value)
const Aws::String & GetDescription() const
bool MaxSessionDurationHasBeenSet() const
const Aws::Vector< Tag > & GetTags() const
void SetCreateDate(CreateDateT &&value)
const Aws::String & GetArn() const
const RoleLastUsed & GetRoleLastUsed() const
Role & WithRoleLastUsed(RoleLastUsedT &&value)
const Aws::Utils::DateTime & GetCreateDate() const
void SetDescription(DescriptionT &&value)
AWS_IAM_API Role()=default
Role & WithRoleId(RoleIdT &&value)
bool RoleNameHasBeenSet() const
Role & AddTags(TagsT &&value)
void SetRoleId(RoleIdT &&value)
Role & WithArn(ArnT &&value)
bool ArnHasBeenSet() const
void SetRoleLastUsed(RoleLastUsedT &&value)
bool DescriptionHasBeenSet() const
Role & WithAssumeRolePolicyDocument(AssumeRolePolicyDocumentT &&value)
const Aws::String & GetPath() const
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