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/Tag.h>
36 AWS_IAM_API
Role() =
default;
51 template <
typename PathT = Aws::String>
53 m_pathHasBeenSet =
true;
54 m_path = std::forward<PathT>(value);
56 template <
typename PathT = Aws::String>
58 SetPath(std::forward<PathT>(value));
69 template <
typename RoleNameT = Aws::String>
71 m_roleNameHasBeenSet =
true;
72 m_roleName = std::forward<RoleNameT>(value);
74 template <
typename RoleNameT = Aws::String>
90 template <
typename RoleIdT = Aws::String>
92 m_roleIdHasBeenSet =
true;
93 m_roleId = std::forward<RoleIdT>(value);
95 template <
typename RoleIdT = Aws::String>
111 template <
typename ArnT = Aws::String>
113 m_arnHasBeenSet =
true;
114 m_arn = std::forward<ArnT>(value);
116 template <
typename ArnT = Aws::String>
118 SetArn(std::forward<ArnT>(value));
130 template <
typename CreateDateT = Aws::Utils::DateTime>
132 m_createDateHasBeenSet =
true;
133 m_createDate = std::forward<CreateDateT>(value);
135 template <
typename CreateDateT = Aws::Utils::DateTime>
148 template <
typename AssumeRolePolicyDocumentT = Aws::String>
150 m_assumeRolePolicyDocumentHasBeenSet =
true;
151 m_assumeRolePolicyDocument = std::forward<AssumeRolePolicyDocumentT>(value);
153 template <
typename AssumeRolePolicyDocumentT = Aws::String>
166 template <
typename DescriptionT = Aws::String>
168 m_descriptionHasBeenSet =
true;
169 m_description = std::forward<DescriptionT>(value);
171 template <
typename DescriptionT = Aws::String>
188 m_maxSessionDurationHasBeenSet =
true;
189 m_maxSessionDuration = value;
206 template <
typename PermissionsBoundaryT = AttachedPermissionsBoundary>
208 m_permissionsBoundaryHasBeenSet =
true;
209 m_permissionsBoundary = std::forward<PermissionsBoundaryT>(value);
211 template <
typename PermissionsBoundaryT = AttachedPermissionsBoundary>
227 template <
typename TagsT = Aws::Vector<Tag>>
229 m_tagsHasBeenSet =
true;
230 m_tags = std::forward<TagsT>(value);
232 template <
typename TagsT = Aws::Vector<Tag>>
234 SetTags(std::forward<TagsT>(value));
237 template <
typename TagsT = Tag>
239 m_tagsHasBeenSet =
true;
240 m_tags.emplace_back(std::forward<TagsT>(value));
257 template <
typename RoleLastUsedT = RoleLastUsed>
259 m_roleLastUsedHasBeenSet =
true;
260 m_roleLastUsed = std::forward<RoleLastUsedT>(value);
262 template <
typename RoleLastUsedT = RoleLastUsed>
283 int m_maxSessionDuration{0};
285 AttachedPermissionsBoundary m_permissionsBoundary;
289 RoleLastUsed m_roleLastUsed;
290 bool m_pathHasBeenSet =
false;
291 bool m_roleNameHasBeenSet =
false;
292 bool m_roleIdHasBeenSet =
false;
293 bool m_arnHasBeenSet =
false;
294 bool m_createDateHasBeenSet =
false;
295 bool m_assumeRolePolicyDocumentHasBeenSet =
false;
296 bool m_descriptionHasBeenSet =
false;
297 bool m_maxSessionDurationHasBeenSet =
false;
298 bool m_permissionsBoundaryHasBeenSet =
false;
299 bool m_tagsHasBeenSet =
false;
300 bool m_roleLastUsedHasBeenSet =
false;
AWS_IAM_API Role & operator=(const Aws::Utils::Xml::XmlNode &xmlNode)
bool CreateDateHasBeenSet() const
bool PermissionsBoundaryHasBeenSet() const
void SetTags(TagsT &&value)
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)
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 SetPath(PathT &&value)
bool AssumeRolePolicyDocumentHasBeenSet() const
AWS_IAM_API void OutputToStream(Aws::OStream &oStream, const char *location) const
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