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/iam/model/AttachedPermissionsBoundary.h>
12#include <aws/core/utils/memory/stl/AWSVector.h>
13#include <aws/iam/model/RoleLastUsed.h>
14#include <aws/iam/model/Tag.h>
41 AWS_IAM_API
Role() =
default;
57 template<
typename PathT = Aws::String>
58 void SetPath(PathT&& value) { m_pathHasBeenSet =
true; m_path = std::forward<PathT>(value); }
59 template<
typename PathT = Aws::String>
69 template<
typename RoleNameT = Aws::String>
70 void SetRoleName(RoleNameT&& value) { m_roleNameHasBeenSet =
true; m_roleName = std::forward<RoleNameT>(value); }
71 template<
typename RoleNameT = Aws::String>
84 template<
typename RoleIdT = Aws::String>
85 void SetRoleId(RoleIdT&& value) { m_roleIdHasBeenSet =
true; m_roleId = std::forward<RoleIdT>(value); }
86 template<
typename RoleIdT = Aws::String>
99 template<
typename ArnT = Aws::String>
100 void SetArn(ArnT&& value) { m_arnHasBeenSet =
true; m_arn = std::forward<ArnT>(value); }
101 template<
typename ArnT = Aws::String>
112 template<
typename CreateDateT = Aws::Utils::DateTime>
113 void SetCreateDate(CreateDateT&& value) { m_createDateHasBeenSet =
true; m_createDate = std::forward<CreateDateT>(value); }
114 template<
typename CreateDateT = Aws::Utils::DateTime>
124 template<
typename AssumeRolePolicyDocumentT = Aws::String>
125 void SetAssumeRolePolicyDocument(AssumeRolePolicyDocumentT&& value) { m_assumeRolePolicyDocumentHasBeenSet =
true; m_assumeRolePolicyDocument = std::forward<AssumeRolePolicyDocumentT>(value); }
126 template<
typename AssumeRolePolicyDocumentT = Aws::String>
136 template<
typename DescriptionT = Aws::String>
137 void SetDescription(DescriptionT&& value) { m_descriptionHasBeenSet =
true; m_description = std::forward<DescriptionT>(value); }
138 template<
typename DescriptionT = Aws::String>
151 inline void SetMaxSessionDuration(
int value) { m_maxSessionDurationHasBeenSet =
true; m_maxSessionDuration = value; }
164 template<
typename PermissionsBoundaryT = AttachedPermissionsBoundary>
165 void SetPermissionsBoundary(PermissionsBoundaryT&& value) { m_permissionsBoundaryHasBeenSet =
true; m_permissionsBoundary = std::forward<PermissionsBoundaryT>(value); }
166 template<
typename PermissionsBoundaryT = AttachedPermissionsBoundary>
179 template<
typename TagsT = Aws::Vector<Tag>>
180 void SetTags(TagsT&& value) { m_tagsHasBeenSet =
true; m_tags = std::forward<TagsT>(value); }
181 template<
typename TagsT = Aws::Vector<Tag>>
183 template<
typename TagsT = Tag>
184 Role&
AddTags(TagsT&& value) { m_tagsHasBeenSet =
true; m_tags.emplace_back(std::forward<TagsT>(value));
return *
this; }
199 template<
typename RoleLastUsedT = RoleLastUsed>
200 void SetRoleLastUsed(RoleLastUsedT&& value) { m_roleLastUsedHasBeenSet =
true; m_roleLastUsed = std::forward<RoleLastUsedT>(value); }
201 template<
typename RoleLastUsedT = RoleLastUsed>
207 bool m_pathHasBeenSet =
false;
210 bool m_roleNameHasBeenSet =
false;
213 bool m_roleIdHasBeenSet =
false;
216 bool m_arnHasBeenSet =
false;
219 bool m_createDateHasBeenSet =
false;
222 bool m_assumeRolePolicyDocumentHasBeenSet =
false;
225 bool m_descriptionHasBeenSet =
false;
227 int m_maxSessionDuration{0};
228 bool m_maxSessionDurationHasBeenSet =
false;
230 AttachedPermissionsBoundary m_permissionsBoundary;
231 bool m_permissionsBoundaryHasBeenSet =
false;
234 bool m_tagsHasBeenSet =
false;
236 RoleLastUsed m_roleLastUsed;
237 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