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/AttachedPermissionsBoundary.h>
13#include <aws/iam/model/RoleLastUsed.h>
14#include <aws/iam/model/InstanceProfile.h>
15#include <aws/iam/model/PolicyDetail.h>
16#include <aws/iam/model/AttachedPolicy.h>
17#include <aws/iam/model/Tag.h>
61 template<
typename PathT = Aws::String>
62 void SetPath(PathT&& value) { m_pathHasBeenSet =
true; m_path = std::forward<PathT>(value); }
63 template<
typename PathT = Aws::String>
73 template<
typename RoleNameT = Aws::String>
74 void SetRoleName(RoleNameT&& value) { m_roleNameHasBeenSet =
true; m_roleName = std::forward<RoleNameT>(value); }
75 template<
typename RoleNameT = Aws::String>
88 template<
typename RoleIdT = Aws::String>
89 void SetRoleId(RoleIdT&& value) { m_roleIdHasBeenSet =
true; m_roleId = std::forward<RoleIdT>(value); }
90 template<
typename RoleIdT = Aws::String>
98 template<
typename ArnT = Aws::String>
99 void SetArn(ArnT&& value) { m_arnHasBeenSet =
true; m_arn = std::forward<ArnT>(value); }
100 template<
typename ArnT = Aws::String>
111 template<
typename CreateDateT = Aws::Utils::DateTime>
112 void SetCreateDate(CreateDateT&& value) { m_createDateHasBeenSet =
true; m_createDate = std::forward<CreateDateT>(value); }
113 template<
typename CreateDateT = Aws::Utils::DateTime>
123 template<
typename AssumeRolePolicyDocumentT = Aws::String>
124 void SetAssumeRolePolicyDocument(AssumeRolePolicyDocumentT&& value) { m_assumeRolePolicyDocumentHasBeenSet =
true; m_assumeRolePolicyDocument = std::forward<AssumeRolePolicyDocumentT>(value); }
125 template<
typename AssumeRolePolicyDocumentT = Aws::String>
135 template<
typename InstanceProfileListT = Aws::Vector<InstanceProfile>>
136 void SetInstanceProfileList(InstanceProfileListT&& value) { m_instanceProfileListHasBeenSet =
true; m_instanceProfileList = std::forward<InstanceProfileListT>(value); }
137 template<
typename InstanceProfileListT = Aws::Vector<InstanceProfile>>
139 template<
typename InstanceProfileListT = InstanceProfile>
140 RoleDetail&
AddInstanceProfileList(InstanceProfileListT&& value) { m_instanceProfileListHasBeenSet =
true; m_instanceProfileList.emplace_back(std::forward<InstanceProfileListT>(value));
return *
this; }
150 template<
typename RolePolicyListT = Aws::Vector<PolicyDetail>>
151 void SetRolePolicyList(RolePolicyListT&& value) { m_rolePolicyListHasBeenSet =
true; m_rolePolicyList = std::forward<RolePolicyListT>(value); }
152 template<
typename RolePolicyListT = Aws::Vector<PolicyDetail>>
154 template<
typename RolePolicyListT = PolicyDetail>
155 RoleDetail&
AddRolePolicyList(RolePolicyListT&& value) { m_rolePolicyListHasBeenSet =
true; m_rolePolicyList.emplace_back(std::forward<RolePolicyListT>(value));
return *
this; }
165 template<
typename AttachedManagedPoliciesT = Aws::Vector<AttachedPolicy>>
166 void SetAttachedManagedPolicies(AttachedManagedPoliciesT&& value) { m_attachedManagedPoliciesHasBeenSet =
true; m_attachedManagedPolicies = std::forward<AttachedManagedPoliciesT>(value); }
167 template<
typename AttachedManagedPoliciesT = Aws::Vector<AttachedPolicy>>
169 template<
typename AttachedManagedPoliciesT = AttachedPolicy>
170 RoleDetail&
AddAttachedManagedPolicies(AttachedManagedPoliciesT&& value) { m_attachedManagedPoliciesHasBeenSet =
true; m_attachedManagedPolicies.emplace_back(std::forward<AttachedManagedPoliciesT>(value));
return *
this; }
182 template<
typename PermissionsBoundaryT = AttachedPermissionsBoundary>
183 void SetPermissionsBoundary(PermissionsBoundaryT&& value) { m_permissionsBoundaryHasBeenSet =
true; m_permissionsBoundary = std::forward<PermissionsBoundaryT>(value); }
184 template<
typename PermissionsBoundaryT = AttachedPermissionsBoundary>
197 template<
typename TagsT = Aws::Vector<Tag>>
198 void SetTags(TagsT&& value) { m_tagsHasBeenSet =
true; m_tags = std::forward<TagsT>(value); }
199 template<
typename TagsT = Aws::Vector<Tag>>
201 template<
typename TagsT = Tag>
202 RoleDetail&
AddTags(TagsT&& value) { m_tagsHasBeenSet =
true; m_tags.emplace_back(std::forward<TagsT>(value));
return *
this; }
217 template<
typename RoleLastUsedT = RoleLastUsed>
218 void SetRoleLastUsed(RoleLastUsedT&& value) { m_roleLastUsedHasBeenSet =
true; m_roleLastUsed = std::forward<RoleLastUsedT>(value); }
219 template<
typename RoleLastUsedT = RoleLastUsed>
225 bool m_pathHasBeenSet =
false;
228 bool m_roleNameHasBeenSet =
false;
231 bool m_roleIdHasBeenSet =
false;
234 bool m_arnHasBeenSet =
false;
237 bool m_createDateHasBeenSet =
false;
240 bool m_assumeRolePolicyDocumentHasBeenSet =
false;
243 bool m_instanceProfileListHasBeenSet =
false;
246 bool m_rolePolicyListHasBeenSet =
false;
249 bool m_attachedManagedPoliciesHasBeenSet =
false;
251 AttachedPermissionsBoundary m_permissionsBoundary;
252 bool m_permissionsBoundaryHasBeenSet =
false;
255 bool m_tagsHasBeenSet =
false;
257 RoleLastUsed m_roleLastUsed;
258 bool m_roleLastUsedHasBeenSet =
false;
RoleDetail & WithAttachedManagedPolicies(AttachedManagedPoliciesT &&value)
RoleDetail & WithRoleLastUsed(RoleLastUsedT &&value)
bool PathHasBeenSet() const
void SetArn(ArnT &&value)
const AttachedPermissionsBoundary & GetPermissionsBoundary() const
bool InstanceProfileListHasBeenSet() const
const Aws::Vector< Tag > & GetTags() const
RoleDetail & WithArn(ArnT &&value)
bool RolePolicyListHasBeenSet() const
const Aws::Vector< InstanceProfile > & GetInstanceProfileList() const
bool RoleNameHasBeenSet() const
AWS_IAM_API void OutputToStream(Aws::OStream &oStream, const char *location) const
bool TagsHasBeenSet() const
void SetTags(TagsT &&value)
bool AttachedManagedPoliciesHasBeenSet() const
AWS_IAM_API void OutputToStream(Aws::OStream &ostream, const char *location, unsigned index, const char *locationValue) const
bool CreateDateHasBeenSet() const
const Aws::String & GetArn() const
AWS_IAM_API RoleDetail()=default
const RoleLastUsed & GetRoleLastUsed() const
RoleDetail & AddRolePolicyList(RolePolicyListT &&value)
void SetPath(PathT &&value)
RoleDetail & AddInstanceProfileList(InstanceProfileListT &&value)
void SetAttachedManagedPolicies(AttachedManagedPoliciesT &&value)
void SetRoleName(RoleNameT &&value)
const Aws::Vector< PolicyDetail > & GetRolePolicyList() const
void SetRoleLastUsed(RoleLastUsedT &&value)
RoleDetail & WithPath(PathT &&value)
RoleDetail & WithCreateDate(CreateDateT &&value)
const Aws::String & GetPath() const
RoleDetail & WithInstanceProfileList(InstanceProfileListT &&value)
bool RoleLastUsedHasBeenSet() const
void SetInstanceProfileList(InstanceProfileListT &&value)
void SetRolePolicyList(RolePolicyListT &&value)
RoleDetail & AddTags(TagsT &&value)
const Aws::String & GetRoleId() const
const Aws::String & GetRoleName() const
void SetCreateDate(CreateDateT &&value)
const Aws::Vector< AttachedPolicy > & GetAttachedManagedPolicies() const
RoleDetail & WithAssumeRolePolicyDocument(AssumeRolePolicyDocumentT &&value)
bool RoleIdHasBeenSet() const
bool AssumeRolePolicyDocumentHasBeenSet() const
void SetPermissionsBoundary(PermissionsBoundaryT &&value)
void SetAssumeRolePolicyDocument(AssumeRolePolicyDocumentT &&value)
AWS_IAM_API RoleDetail(const Aws::Utils::Xml::XmlNode &xmlNode)
RoleDetail & WithRoleId(RoleIdT &&value)
RoleDetail & WithPermissionsBoundary(PermissionsBoundaryT &&value)
RoleDetail & WithRolePolicyList(RolePolicyListT &&value)
RoleDetail & WithTags(TagsT &&value)
const Aws::Utils::DateTime & GetCreateDate() const
void SetRoleId(RoleIdT &&value)
AWS_IAM_API RoleDetail & operator=(const Aws::Utils::Xml::XmlNode &xmlNode)
const Aws::String & GetAssumeRolePolicyDocument() const
bool PermissionsBoundaryHasBeenSet() const
RoleDetail & WithRoleName(RoleNameT &&value)
RoleDetail & AddAttachedManagedPolicies(AttachedManagedPoliciesT &&value)
bool ArnHasBeenSet() 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