/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Http { class HttpClient; class HttpClientFactory; } // namespace Http namespace Utils { template< typename R, typename E> class Outcome; namespace Threading { class Executor; } // namespace Threading namespace Xml { class XmlDocument; } // namespace Xml } // namespace Utils namespace Auth { class AWSCredentials; class AWSCredentialsProvider; } // namespace Auth namespace Client { class RetryStrategy; } // namespace Client namespace IAM { namespace Model { class AddClientIDToOpenIDConnectProviderRequest; class AddRoleToInstanceProfileRequest; class AddUserToGroupRequest; class AttachGroupPolicyRequest; class AttachRolePolicyRequest; class AttachUserPolicyRequest; class ChangePasswordRequest; class CreateAccessKeyRequest; class CreateAccountAliasRequest; class CreateGroupRequest; class CreateInstanceProfileRequest; class CreateLoginProfileRequest; class CreateOpenIDConnectProviderRequest; class CreatePolicyRequest; class CreatePolicyVersionRequest; class CreateRoleRequest; class CreateSAMLProviderRequest; class CreateServiceLinkedRoleRequest; class CreateServiceSpecificCredentialRequest; class CreateUserRequest; class CreateVirtualMFADeviceRequest; class DeactivateMFADeviceRequest; class DeleteAccessKeyRequest; class DeleteAccountAliasRequest; class DeleteAccountPasswordPolicyRequest; class DeleteGroupRequest; class DeleteGroupPolicyRequest; class DeleteInstanceProfileRequest; class DeleteLoginProfileRequest; class DeleteOpenIDConnectProviderRequest; class DeletePolicyRequest; class DeletePolicyVersionRequest; class DeleteRoleRequest; class DeleteRolePermissionsBoundaryRequest; class DeleteRolePolicyRequest; class DeleteSAMLProviderRequest; class DeleteSSHPublicKeyRequest; class DeleteServerCertificateRequest; class DeleteServiceLinkedRoleRequest; class DeleteServiceSpecificCredentialRequest; class DeleteSigningCertificateRequest; class DeleteUserRequest; class DeleteUserPermissionsBoundaryRequest; class DeleteUserPolicyRequest; class DeleteVirtualMFADeviceRequest; class DetachGroupPolicyRequest; class DetachRolePolicyRequest; class DetachUserPolicyRequest; class EnableMFADeviceRequest; class GenerateCredentialReportRequest; class GenerateOrganizationsAccessReportRequest; class GenerateServiceLastAccessedDetailsRequest; class GetAccessKeyLastUsedRequest; class GetAccountAuthorizationDetailsRequest; class GetAccountPasswordPolicyRequest; class GetAccountSummaryRequest; class GetContextKeysForCustomPolicyRequest; class GetContextKeysForPrincipalPolicyRequest; class GetCredentialReportRequest; class GetGroupRequest; class GetGroupPolicyRequest; class GetInstanceProfileRequest; class GetLoginProfileRequest; class GetOpenIDConnectProviderRequest; class GetOrganizationsAccessReportRequest; class GetPolicyRequest; class GetPolicyVersionRequest; class GetRoleRequest; class GetRolePolicyRequest; class GetSAMLProviderRequest; class GetSSHPublicKeyRequest; class GetServerCertificateRequest; class GetServiceLastAccessedDetailsRequest; class GetServiceLastAccessedDetailsWithEntitiesRequest; class GetServiceLinkedRoleDeletionStatusRequest; class GetUserRequest; class GetUserPolicyRequest; class ListAccessKeysRequest; class ListAccountAliasesRequest; class ListAttachedGroupPoliciesRequest; class ListAttachedRolePoliciesRequest; class ListAttachedUserPoliciesRequest; class ListEntitiesForPolicyRequest; class ListGroupPoliciesRequest; class ListGroupsRequest; class ListGroupsForUserRequest; class ListInstanceProfilesRequest; class ListInstanceProfilesForRoleRequest; class ListMFADevicesRequest; class ListOpenIDConnectProvidersRequest; class ListPoliciesRequest; class ListPoliciesGrantingServiceAccessRequest; class ListPolicyVersionsRequest; class ListRolePoliciesRequest; class ListRoleTagsRequest; class ListRolesRequest; class ListSAMLProvidersRequest; class ListSSHPublicKeysRequest; class ListServerCertificatesRequest; class ListServiceSpecificCredentialsRequest; class ListSigningCertificatesRequest; class ListUserPoliciesRequest; class ListUserTagsRequest; class ListUsersRequest; class ListVirtualMFADevicesRequest; class PutGroupPolicyRequest; class PutRolePermissionsBoundaryRequest; class PutRolePolicyRequest; class PutUserPermissionsBoundaryRequest; class PutUserPolicyRequest; class RemoveClientIDFromOpenIDConnectProviderRequest; class RemoveRoleFromInstanceProfileRequest; class RemoveUserFromGroupRequest; class ResetServiceSpecificCredentialRequest; class ResyncMFADeviceRequest; class SetDefaultPolicyVersionRequest; class SetSecurityTokenServicePreferencesRequest; class SimulateCustomPolicyRequest; class SimulatePrincipalPolicyRequest; class TagRoleRequest; class TagUserRequest; class UntagRoleRequest; class UntagUserRequest; class UpdateAccessKeyRequest; class UpdateAccountPasswordPolicyRequest; class UpdateAssumeRolePolicyRequest; class UpdateGroupRequest; class UpdateLoginProfileRequest; class UpdateOpenIDConnectProviderThumbprintRequest; class UpdateRoleRequest; class UpdateRoleDescriptionRequest; class UpdateSAMLProviderRequest; class UpdateSSHPublicKeyRequest; class UpdateServerCertificateRequest; class UpdateServiceSpecificCredentialRequest; class UpdateSigningCertificateRequest; class UpdateUserRequest; class UploadSSHPublicKeyRequest; class UploadServerCertificateRequest; class UploadSigningCertificateRequest; typedef Aws::Utils::Outcome AddClientIDToOpenIDConnectProviderOutcome; typedef Aws::Utils::Outcome AddRoleToInstanceProfileOutcome; typedef Aws::Utils::Outcome AddUserToGroupOutcome; typedef Aws::Utils::Outcome AttachGroupPolicyOutcome; typedef Aws::Utils::Outcome AttachRolePolicyOutcome; typedef Aws::Utils::Outcome AttachUserPolicyOutcome; typedef Aws::Utils::Outcome ChangePasswordOutcome; typedef Aws::Utils::Outcome CreateAccessKeyOutcome; typedef Aws::Utils::Outcome CreateAccountAliasOutcome; typedef Aws::Utils::Outcome CreateGroupOutcome; typedef Aws::Utils::Outcome CreateInstanceProfileOutcome; typedef Aws::Utils::Outcome CreateLoginProfileOutcome; typedef Aws::Utils::Outcome CreateOpenIDConnectProviderOutcome; typedef Aws::Utils::Outcome CreatePolicyOutcome; typedef Aws::Utils::Outcome CreatePolicyVersionOutcome; typedef Aws::Utils::Outcome CreateRoleOutcome; typedef Aws::Utils::Outcome CreateSAMLProviderOutcome; typedef Aws::Utils::Outcome CreateServiceLinkedRoleOutcome; typedef Aws::Utils::Outcome CreateServiceSpecificCredentialOutcome; typedef Aws::Utils::Outcome CreateUserOutcome; typedef Aws::Utils::Outcome CreateVirtualMFADeviceOutcome; typedef Aws::Utils::Outcome DeactivateMFADeviceOutcome; typedef Aws::Utils::Outcome DeleteAccessKeyOutcome; typedef Aws::Utils::Outcome DeleteAccountAliasOutcome; typedef Aws::Utils::Outcome DeleteAccountPasswordPolicyOutcome; typedef Aws::Utils::Outcome DeleteGroupOutcome; typedef Aws::Utils::Outcome DeleteGroupPolicyOutcome; typedef Aws::Utils::Outcome DeleteInstanceProfileOutcome; typedef Aws::Utils::Outcome DeleteLoginProfileOutcome; typedef Aws::Utils::Outcome DeleteOpenIDConnectProviderOutcome; typedef Aws::Utils::Outcome DeletePolicyOutcome; typedef Aws::Utils::Outcome DeletePolicyVersionOutcome; typedef Aws::Utils::Outcome DeleteRoleOutcome; typedef Aws::Utils::Outcome DeleteRolePermissionsBoundaryOutcome; typedef Aws::Utils::Outcome DeleteRolePolicyOutcome; typedef Aws::Utils::Outcome DeleteSAMLProviderOutcome; typedef Aws::Utils::Outcome DeleteSSHPublicKeyOutcome; typedef Aws::Utils::Outcome DeleteServerCertificateOutcome; typedef Aws::Utils::Outcome DeleteServiceLinkedRoleOutcome; typedef Aws::Utils::Outcome DeleteServiceSpecificCredentialOutcome; typedef Aws::Utils::Outcome DeleteSigningCertificateOutcome; typedef Aws::Utils::Outcome DeleteUserOutcome; typedef Aws::Utils::Outcome DeleteUserPermissionsBoundaryOutcome; typedef Aws::Utils::Outcome DeleteUserPolicyOutcome; typedef Aws::Utils::Outcome DeleteVirtualMFADeviceOutcome; typedef Aws::Utils::Outcome DetachGroupPolicyOutcome; typedef Aws::Utils::Outcome DetachRolePolicyOutcome; typedef Aws::Utils::Outcome DetachUserPolicyOutcome; typedef Aws::Utils::Outcome EnableMFADeviceOutcome; typedef Aws::Utils::Outcome GenerateCredentialReportOutcome; typedef Aws::Utils::Outcome GenerateOrganizationsAccessReportOutcome; typedef Aws::Utils::Outcome GenerateServiceLastAccessedDetailsOutcome; typedef Aws::Utils::Outcome GetAccessKeyLastUsedOutcome; typedef Aws::Utils::Outcome GetAccountAuthorizationDetailsOutcome; typedef Aws::Utils::Outcome GetAccountPasswordPolicyOutcome; typedef Aws::Utils::Outcome GetAccountSummaryOutcome; typedef Aws::Utils::Outcome GetContextKeysForCustomPolicyOutcome; typedef Aws::Utils::Outcome GetContextKeysForPrincipalPolicyOutcome; typedef Aws::Utils::Outcome GetCredentialReportOutcome; typedef Aws::Utils::Outcome GetGroupOutcome; typedef Aws::Utils::Outcome GetGroupPolicyOutcome; typedef Aws::Utils::Outcome GetInstanceProfileOutcome; typedef Aws::Utils::Outcome GetLoginProfileOutcome; typedef Aws::Utils::Outcome GetOpenIDConnectProviderOutcome; typedef Aws::Utils::Outcome GetOrganizationsAccessReportOutcome; typedef Aws::Utils::Outcome GetPolicyOutcome; typedef Aws::Utils::Outcome GetPolicyVersionOutcome; typedef Aws::Utils::Outcome GetRoleOutcome; typedef Aws::Utils::Outcome GetRolePolicyOutcome; typedef Aws::Utils::Outcome GetSAMLProviderOutcome; typedef Aws::Utils::Outcome GetSSHPublicKeyOutcome; typedef Aws::Utils::Outcome GetServerCertificateOutcome; typedef Aws::Utils::Outcome GetServiceLastAccessedDetailsOutcome; typedef Aws::Utils::Outcome GetServiceLastAccessedDetailsWithEntitiesOutcome; typedef Aws::Utils::Outcome GetServiceLinkedRoleDeletionStatusOutcome; typedef Aws::Utils::Outcome GetUserOutcome; typedef Aws::Utils::Outcome GetUserPolicyOutcome; typedef Aws::Utils::Outcome ListAccessKeysOutcome; typedef Aws::Utils::Outcome ListAccountAliasesOutcome; typedef Aws::Utils::Outcome ListAttachedGroupPoliciesOutcome; typedef Aws::Utils::Outcome ListAttachedRolePoliciesOutcome; typedef Aws::Utils::Outcome ListAttachedUserPoliciesOutcome; typedef Aws::Utils::Outcome ListEntitiesForPolicyOutcome; typedef Aws::Utils::Outcome ListGroupPoliciesOutcome; typedef Aws::Utils::Outcome ListGroupsOutcome; typedef Aws::Utils::Outcome ListGroupsForUserOutcome; typedef Aws::Utils::Outcome ListInstanceProfilesOutcome; typedef Aws::Utils::Outcome ListInstanceProfilesForRoleOutcome; typedef Aws::Utils::Outcome ListMFADevicesOutcome; typedef Aws::Utils::Outcome ListOpenIDConnectProvidersOutcome; typedef Aws::Utils::Outcome ListPoliciesOutcome; typedef Aws::Utils::Outcome ListPoliciesGrantingServiceAccessOutcome; typedef Aws::Utils::Outcome ListPolicyVersionsOutcome; typedef Aws::Utils::Outcome ListRolePoliciesOutcome; typedef Aws::Utils::Outcome ListRoleTagsOutcome; typedef Aws::Utils::Outcome ListRolesOutcome; typedef Aws::Utils::Outcome ListSAMLProvidersOutcome; typedef Aws::Utils::Outcome ListSSHPublicKeysOutcome; typedef Aws::Utils::Outcome ListServerCertificatesOutcome; typedef Aws::Utils::Outcome ListServiceSpecificCredentialsOutcome; typedef Aws::Utils::Outcome ListSigningCertificatesOutcome; typedef Aws::Utils::Outcome ListUserPoliciesOutcome; typedef Aws::Utils::Outcome ListUserTagsOutcome; typedef Aws::Utils::Outcome ListUsersOutcome; typedef Aws::Utils::Outcome ListVirtualMFADevicesOutcome; typedef Aws::Utils::Outcome PutGroupPolicyOutcome; typedef Aws::Utils::Outcome PutRolePermissionsBoundaryOutcome; typedef Aws::Utils::Outcome PutRolePolicyOutcome; typedef Aws::Utils::Outcome PutUserPermissionsBoundaryOutcome; typedef Aws::Utils::Outcome PutUserPolicyOutcome; typedef Aws::Utils::Outcome RemoveClientIDFromOpenIDConnectProviderOutcome; typedef Aws::Utils::Outcome RemoveRoleFromInstanceProfileOutcome; typedef Aws::Utils::Outcome RemoveUserFromGroupOutcome; typedef Aws::Utils::Outcome ResetServiceSpecificCredentialOutcome; typedef Aws::Utils::Outcome ResyncMFADeviceOutcome; typedef Aws::Utils::Outcome SetDefaultPolicyVersionOutcome; typedef Aws::Utils::Outcome SetSecurityTokenServicePreferencesOutcome; typedef Aws::Utils::Outcome SimulateCustomPolicyOutcome; typedef Aws::Utils::Outcome SimulatePrincipalPolicyOutcome; typedef Aws::Utils::Outcome TagRoleOutcome; typedef Aws::Utils::Outcome TagUserOutcome; typedef Aws::Utils::Outcome UntagRoleOutcome; typedef Aws::Utils::Outcome UntagUserOutcome; typedef Aws::Utils::Outcome UpdateAccessKeyOutcome; typedef Aws::Utils::Outcome UpdateAccountPasswordPolicyOutcome; typedef Aws::Utils::Outcome UpdateAssumeRolePolicyOutcome; typedef Aws::Utils::Outcome UpdateGroupOutcome; typedef Aws::Utils::Outcome UpdateLoginProfileOutcome; typedef Aws::Utils::Outcome UpdateOpenIDConnectProviderThumbprintOutcome; typedef Aws::Utils::Outcome UpdateRoleOutcome; typedef Aws::Utils::Outcome UpdateRoleDescriptionOutcome; typedef Aws::Utils::Outcome UpdateSAMLProviderOutcome; typedef Aws::Utils::Outcome UpdateSSHPublicKeyOutcome; typedef Aws::Utils::Outcome UpdateServerCertificateOutcome; typedef Aws::Utils::Outcome UpdateServiceSpecificCredentialOutcome; typedef Aws::Utils::Outcome UpdateSigningCertificateOutcome; typedef Aws::Utils::Outcome UpdateUserOutcome; typedef Aws::Utils::Outcome UploadSSHPublicKeyOutcome; typedef Aws::Utils::Outcome UploadServerCertificateOutcome; typedef Aws::Utils::Outcome UploadSigningCertificateOutcome; typedef std::future AddClientIDToOpenIDConnectProviderOutcomeCallable; typedef std::future AddRoleToInstanceProfileOutcomeCallable; typedef std::future AddUserToGroupOutcomeCallable; typedef std::future AttachGroupPolicyOutcomeCallable; typedef std::future AttachRolePolicyOutcomeCallable; typedef std::future AttachUserPolicyOutcomeCallable; typedef std::future ChangePasswordOutcomeCallable; typedef std::future CreateAccessKeyOutcomeCallable; typedef std::future CreateAccountAliasOutcomeCallable; typedef std::future CreateGroupOutcomeCallable; typedef std::future CreateInstanceProfileOutcomeCallable; typedef std::future CreateLoginProfileOutcomeCallable; typedef std::future CreateOpenIDConnectProviderOutcomeCallable; typedef std::future CreatePolicyOutcomeCallable; typedef std::future CreatePolicyVersionOutcomeCallable; typedef std::future CreateRoleOutcomeCallable; typedef std::future CreateSAMLProviderOutcomeCallable; typedef std::future CreateServiceLinkedRoleOutcomeCallable; typedef std::future CreateServiceSpecificCredentialOutcomeCallable; typedef std::future CreateUserOutcomeCallable; typedef std::future CreateVirtualMFADeviceOutcomeCallable; typedef std::future DeactivateMFADeviceOutcomeCallable; typedef std::future DeleteAccessKeyOutcomeCallable; typedef std::future DeleteAccountAliasOutcomeCallable; typedef std::future DeleteAccountPasswordPolicyOutcomeCallable; typedef std::future DeleteGroupOutcomeCallable; typedef std::future DeleteGroupPolicyOutcomeCallable; typedef std::future DeleteInstanceProfileOutcomeCallable; typedef std::future DeleteLoginProfileOutcomeCallable; typedef std::future DeleteOpenIDConnectProviderOutcomeCallable; typedef std::future DeletePolicyOutcomeCallable; typedef std::future DeletePolicyVersionOutcomeCallable; typedef std::future DeleteRoleOutcomeCallable; typedef std::future DeleteRolePermissionsBoundaryOutcomeCallable; typedef std::future DeleteRolePolicyOutcomeCallable; typedef std::future DeleteSAMLProviderOutcomeCallable; typedef std::future DeleteSSHPublicKeyOutcomeCallable; typedef std::future DeleteServerCertificateOutcomeCallable; typedef std::future DeleteServiceLinkedRoleOutcomeCallable; typedef std::future DeleteServiceSpecificCredentialOutcomeCallable; typedef std::future DeleteSigningCertificateOutcomeCallable; typedef std::future DeleteUserOutcomeCallable; typedef std::future DeleteUserPermissionsBoundaryOutcomeCallable; typedef std::future DeleteUserPolicyOutcomeCallable; typedef std::future DeleteVirtualMFADeviceOutcomeCallable; typedef std::future DetachGroupPolicyOutcomeCallable; typedef std::future DetachRolePolicyOutcomeCallable; typedef std::future DetachUserPolicyOutcomeCallable; typedef std::future EnableMFADeviceOutcomeCallable; typedef std::future GenerateCredentialReportOutcomeCallable; typedef std::future GenerateOrganizationsAccessReportOutcomeCallable; typedef std::future GenerateServiceLastAccessedDetailsOutcomeCallable; typedef std::future GetAccessKeyLastUsedOutcomeCallable; typedef std::future GetAccountAuthorizationDetailsOutcomeCallable; typedef std::future GetAccountPasswordPolicyOutcomeCallable; typedef std::future GetAccountSummaryOutcomeCallable; typedef std::future GetContextKeysForCustomPolicyOutcomeCallable; typedef std::future GetContextKeysForPrincipalPolicyOutcomeCallable; typedef std::future GetCredentialReportOutcomeCallable; typedef std::future GetGroupOutcomeCallable; typedef std::future GetGroupPolicyOutcomeCallable; typedef std::future GetInstanceProfileOutcomeCallable; typedef std::future GetLoginProfileOutcomeCallable; typedef std::future GetOpenIDConnectProviderOutcomeCallable; typedef std::future GetOrganizationsAccessReportOutcomeCallable; typedef std::future GetPolicyOutcomeCallable; typedef std::future GetPolicyVersionOutcomeCallable; typedef std::future GetRoleOutcomeCallable; typedef std::future GetRolePolicyOutcomeCallable; typedef std::future GetSAMLProviderOutcomeCallable; typedef std::future GetSSHPublicKeyOutcomeCallable; typedef std::future GetServerCertificateOutcomeCallable; typedef std::future GetServiceLastAccessedDetailsOutcomeCallable; typedef std::future GetServiceLastAccessedDetailsWithEntitiesOutcomeCallable; typedef std::future GetServiceLinkedRoleDeletionStatusOutcomeCallable; typedef std::future GetUserOutcomeCallable; typedef std::future GetUserPolicyOutcomeCallable; typedef std::future ListAccessKeysOutcomeCallable; typedef std::future ListAccountAliasesOutcomeCallable; typedef std::future ListAttachedGroupPoliciesOutcomeCallable; typedef std::future ListAttachedRolePoliciesOutcomeCallable; typedef std::future ListAttachedUserPoliciesOutcomeCallable; typedef std::future ListEntitiesForPolicyOutcomeCallable; typedef std::future ListGroupPoliciesOutcomeCallable; typedef std::future ListGroupsOutcomeCallable; typedef std::future ListGroupsForUserOutcomeCallable; typedef std::future ListInstanceProfilesOutcomeCallable; typedef std::future ListInstanceProfilesForRoleOutcomeCallable; typedef std::future ListMFADevicesOutcomeCallable; typedef std::future ListOpenIDConnectProvidersOutcomeCallable; typedef std::future ListPoliciesOutcomeCallable; typedef std::future ListPoliciesGrantingServiceAccessOutcomeCallable; typedef std::future ListPolicyVersionsOutcomeCallable; typedef std::future ListRolePoliciesOutcomeCallable; typedef std::future ListRoleTagsOutcomeCallable; typedef std::future ListRolesOutcomeCallable; typedef std::future ListSAMLProvidersOutcomeCallable; typedef std::future ListSSHPublicKeysOutcomeCallable; typedef std::future ListServerCertificatesOutcomeCallable; typedef std::future ListServiceSpecificCredentialsOutcomeCallable; typedef std::future ListSigningCertificatesOutcomeCallable; typedef std::future ListUserPoliciesOutcomeCallable; typedef std::future ListUserTagsOutcomeCallable; typedef std::future ListUsersOutcomeCallable; typedef std::future ListVirtualMFADevicesOutcomeCallable; typedef std::future PutGroupPolicyOutcomeCallable; typedef std::future PutRolePermissionsBoundaryOutcomeCallable; typedef std::future PutRolePolicyOutcomeCallable; typedef std::future PutUserPermissionsBoundaryOutcomeCallable; typedef std::future PutUserPolicyOutcomeCallable; typedef std::future RemoveClientIDFromOpenIDConnectProviderOutcomeCallable; typedef std::future RemoveRoleFromInstanceProfileOutcomeCallable; typedef std::future RemoveUserFromGroupOutcomeCallable; typedef std::future ResetServiceSpecificCredentialOutcomeCallable; typedef std::future ResyncMFADeviceOutcomeCallable; typedef std::future SetDefaultPolicyVersionOutcomeCallable; typedef std::future SetSecurityTokenServicePreferencesOutcomeCallable; typedef std::future SimulateCustomPolicyOutcomeCallable; typedef std::future SimulatePrincipalPolicyOutcomeCallable; typedef std::future TagRoleOutcomeCallable; typedef std::future TagUserOutcomeCallable; typedef std::future UntagRoleOutcomeCallable; typedef std::future UntagUserOutcomeCallable; typedef std::future UpdateAccessKeyOutcomeCallable; typedef std::future UpdateAccountPasswordPolicyOutcomeCallable; typedef std::future UpdateAssumeRolePolicyOutcomeCallable; typedef std::future UpdateGroupOutcomeCallable; typedef std::future UpdateLoginProfileOutcomeCallable; typedef std::future UpdateOpenIDConnectProviderThumbprintOutcomeCallable; typedef std::future UpdateRoleOutcomeCallable; typedef std::future UpdateRoleDescriptionOutcomeCallable; typedef std::future UpdateSAMLProviderOutcomeCallable; typedef std::future UpdateSSHPublicKeyOutcomeCallable; typedef std::future UpdateServerCertificateOutcomeCallable; typedef std::future UpdateServiceSpecificCredentialOutcomeCallable; typedef std::future UpdateSigningCertificateOutcomeCallable; typedef std::future UpdateUserOutcomeCallable; typedef std::future UploadSSHPublicKeyOutcomeCallable; typedef std::future UploadServerCertificateOutcomeCallable; typedef std::future UploadSigningCertificateOutcomeCallable; } // namespace Model class IAMClient; typedef std::function&) > AddClientIDToOpenIDConnectProviderResponseReceivedHandler; typedef std::function&) > AddRoleToInstanceProfileResponseReceivedHandler; typedef std::function&) > AddUserToGroupResponseReceivedHandler; typedef std::function&) > AttachGroupPolicyResponseReceivedHandler; typedef std::function&) > AttachRolePolicyResponseReceivedHandler; typedef std::function&) > AttachUserPolicyResponseReceivedHandler; typedef std::function&) > ChangePasswordResponseReceivedHandler; typedef std::function&) > CreateAccessKeyResponseReceivedHandler; typedef std::function&) > CreateAccountAliasResponseReceivedHandler; typedef std::function&) > CreateGroupResponseReceivedHandler; typedef std::function&) > CreateInstanceProfileResponseReceivedHandler; typedef std::function&) > CreateLoginProfileResponseReceivedHandler; typedef std::function&) > CreateOpenIDConnectProviderResponseReceivedHandler; typedef std::function&) > CreatePolicyResponseReceivedHandler; typedef std::function&) > CreatePolicyVersionResponseReceivedHandler; typedef std::function&) > CreateRoleResponseReceivedHandler; typedef std::function&) > CreateSAMLProviderResponseReceivedHandler; typedef std::function&) > CreateServiceLinkedRoleResponseReceivedHandler; typedef std::function&) > CreateServiceSpecificCredentialResponseReceivedHandler; typedef std::function&) > CreateUserResponseReceivedHandler; typedef std::function&) > CreateVirtualMFADeviceResponseReceivedHandler; typedef std::function&) > DeactivateMFADeviceResponseReceivedHandler; typedef std::function&) > DeleteAccessKeyResponseReceivedHandler; typedef std::function&) > DeleteAccountAliasResponseReceivedHandler; typedef std::function&) > DeleteAccountPasswordPolicyResponseReceivedHandler; typedef std::function&) > DeleteGroupResponseReceivedHandler; typedef std::function&) > DeleteGroupPolicyResponseReceivedHandler; typedef std::function&) > DeleteInstanceProfileResponseReceivedHandler; typedef std::function&) > DeleteLoginProfileResponseReceivedHandler; typedef std::function&) > DeleteOpenIDConnectProviderResponseReceivedHandler; typedef std::function&) > DeletePolicyResponseReceivedHandler; typedef std::function&) > DeletePolicyVersionResponseReceivedHandler; typedef std::function&) > DeleteRoleResponseReceivedHandler; typedef std::function&) > DeleteRolePermissionsBoundaryResponseReceivedHandler; typedef std::function&) > DeleteRolePolicyResponseReceivedHandler; typedef std::function&) > DeleteSAMLProviderResponseReceivedHandler; typedef std::function&) > DeleteSSHPublicKeyResponseReceivedHandler; typedef std::function&) > DeleteServerCertificateResponseReceivedHandler; typedef std::function&) > DeleteServiceLinkedRoleResponseReceivedHandler; typedef std::function&) > DeleteServiceSpecificCredentialResponseReceivedHandler; typedef std::function&) > DeleteSigningCertificateResponseReceivedHandler; typedef std::function&) > DeleteUserResponseReceivedHandler; typedef std::function&) > DeleteUserPermissionsBoundaryResponseReceivedHandler; typedef std::function&) > DeleteUserPolicyResponseReceivedHandler; typedef std::function&) > DeleteVirtualMFADeviceResponseReceivedHandler; typedef std::function&) > DetachGroupPolicyResponseReceivedHandler; typedef std::function&) > DetachRolePolicyResponseReceivedHandler; typedef std::function&) > DetachUserPolicyResponseReceivedHandler; typedef std::function&) > EnableMFADeviceResponseReceivedHandler; typedef std::function&) > GenerateCredentialReportResponseReceivedHandler; typedef std::function&) > GenerateOrganizationsAccessReportResponseReceivedHandler; typedef std::function&) > GenerateServiceLastAccessedDetailsResponseReceivedHandler; typedef std::function&) > GetAccessKeyLastUsedResponseReceivedHandler; typedef std::function&) > GetAccountAuthorizationDetailsResponseReceivedHandler; typedef std::function&) > GetAccountPasswordPolicyResponseReceivedHandler; typedef std::function&) > GetAccountSummaryResponseReceivedHandler; typedef std::function&) > GetContextKeysForCustomPolicyResponseReceivedHandler; typedef std::function&) > GetContextKeysForPrincipalPolicyResponseReceivedHandler; typedef std::function&) > GetCredentialReportResponseReceivedHandler; typedef std::function&) > GetGroupResponseReceivedHandler; typedef std::function&) > GetGroupPolicyResponseReceivedHandler; typedef std::function&) > GetInstanceProfileResponseReceivedHandler; typedef std::function&) > GetLoginProfileResponseReceivedHandler; typedef std::function&) > GetOpenIDConnectProviderResponseReceivedHandler; typedef std::function&) > GetOrganizationsAccessReportResponseReceivedHandler; typedef std::function&) > GetPolicyResponseReceivedHandler; typedef std::function&) > GetPolicyVersionResponseReceivedHandler; typedef std::function&) > GetRoleResponseReceivedHandler; typedef std::function&) > GetRolePolicyResponseReceivedHandler; typedef std::function&) > GetSAMLProviderResponseReceivedHandler; typedef std::function&) > GetSSHPublicKeyResponseReceivedHandler; typedef std::function&) > GetServerCertificateResponseReceivedHandler; typedef std::function&) > GetServiceLastAccessedDetailsResponseReceivedHandler; typedef std::function&) > GetServiceLastAccessedDetailsWithEntitiesResponseReceivedHandler; typedef std::function&) > GetServiceLinkedRoleDeletionStatusResponseReceivedHandler; typedef std::function&) > GetUserResponseReceivedHandler; typedef std::function&) > GetUserPolicyResponseReceivedHandler; typedef std::function&) > ListAccessKeysResponseReceivedHandler; typedef std::function&) > ListAccountAliasesResponseReceivedHandler; typedef std::function&) > ListAttachedGroupPoliciesResponseReceivedHandler; typedef std::function&) > ListAttachedRolePoliciesResponseReceivedHandler; typedef std::function&) > ListAttachedUserPoliciesResponseReceivedHandler; typedef std::function&) > ListEntitiesForPolicyResponseReceivedHandler; typedef std::function&) > ListGroupPoliciesResponseReceivedHandler; typedef std::function&) > ListGroupsResponseReceivedHandler; typedef std::function&) > ListGroupsForUserResponseReceivedHandler; typedef std::function&) > ListInstanceProfilesResponseReceivedHandler; typedef std::function&) > ListInstanceProfilesForRoleResponseReceivedHandler; typedef std::function&) > ListMFADevicesResponseReceivedHandler; typedef std::function&) > ListOpenIDConnectProvidersResponseReceivedHandler; typedef std::function&) > ListPoliciesResponseReceivedHandler; typedef std::function&) > ListPoliciesGrantingServiceAccessResponseReceivedHandler; typedef std::function&) > ListPolicyVersionsResponseReceivedHandler; typedef std::function&) > ListRolePoliciesResponseReceivedHandler; typedef std::function&) > ListRoleTagsResponseReceivedHandler; typedef std::function&) > ListRolesResponseReceivedHandler; typedef std::function&) > ListSAMLProvidersResponseReceivedHandler; typedef std::function&) > ListSSHPublicKeysResponseReceivedHandler; typedef std::function&) > ListServerCertificatesResponseReceivedHandler; typedef std::function&) > ListServiceSpecificCredentialsResponseReceivedHandler; typedef std::function&) > ListSigningCertificatesResponseReceivedHandler; typedef std::function&) > ListUserPoliciesResponseReceivedHandler; typedef std::function&) > ListUserTagsResponseReceivedHandler; typedef std::function&) > ListUsersResponseReceivedHandler; typedef std::function&) > ListVirtualMFADevicesResponseReceivedHandler; typedef std::function&) > PutGroupPolicyResponseReceivedHandler; typedef std::function&) > PutRolePermissionsBoundaryResponseReceivedHandler; typedef std::function&) > PutRolePolicyResponseReceivedHandler; typedef std::function&) > PutUserPermissionsBoundaryResponseReceivedHandler; typedef std::function&) > PutUserPolicyResponseReceivedHandler; typedef std::function&) > RemoveClientIDFromOpenIDConnectProviderResponseReceivedHandler; typedef std::function&) > RemoveRoleFromInstanceProfileResponseReceivedHandler; typedef std::function&) > RemoveUserFromGroupResponseReceivedHandler; typedef std::function&) > ResetServiceSpecificCredentialResponseReceivedHandler; typedef std::function&) > ResyncMFADeviceResponseReceivedHandler; typedef std::function&) > SetDefaultPolicyVersionResponseReceivedHandler; typedef std::function&) > SetSecurityTokenServicePreferencesResponseReceivedHandler; typedef std::function&) > SimulateCustomPolicyResponseReceivedHandler; typedef std::function&) > SimulatePrincipalPolicyResponseReceivedHandler; typedef std::function&) > TagRoleResponseReceivedHandler; typedef std::function&) > TagUserResponseReceivedHandler; typedef std::function&) > UntagRoleResponseReceivedHandler; typedef std::function&) > UntagUserResponseReceivedHandler; typedef std::function&) > UpdateAccessKeyResponseReceivedHandler; typedef std::function&) > UpdateAccountPasswordPolicyResponseReceivedHandler; typedef std::function&) > UpdateAssumeRolePolicyResponseReceivedHandler; typedef std::function&) > UpdateGroupResponseReceivedHandler; typedef std::function&) > UpdateLoginProfileResponseReceivedHandler; typedef std::function&) > UpdateOpenIDConnectProviderThumbprintResponseReceivedHandler; typedef std::function&) > UpdateRoleResponseReceivedHandler; typedef std::function&) > UpdateRoleDescriptionResponseReceivedHandler; typedef std::function&) > UpdateSAMLProviderResponseReceivedHandler; typedef std::function&) > UpdateSSHPublicKeyResponseReceivedHandler; typedef std::function&) > UpdateServerCertificateResponseReceivedHandler; typedef std::function&) > UpdateServiceSpecificCredentialResponseReceivedHandler; typedef std::function&) > UpdateSigningCertificateResponseReceivedHandler; typedef std::function&) > UpdateUserResponseReceivedHandler; typedef std::function&) > UploadSSHPublicKeyResponseReceivedHandler; typedef std::function&) > UploadServerCertificateResponseReceivedHandler; typedef std::function&) > UploadSigningCertificateResponseReceivedHandler; /** * AWS Identity and Access Management

AWS Identity and * Access Management (IAM) is a web service for securely controlling access to AWS * services. With IAM, you can centrally manage users, security credentials such as * access keys, and permissions that control which AWS resources users and * applications can access. For more information about IAM, see AWS Identity and Access Management (IAM) * and the AWS Identity * and Access Management User Guide.

*/ class AWS_IAM_API IAMClient : public Aws::Client::AWSXMLClient { public: typedef Aws::Client::AWSXMLClient BASECLASS; /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ IAMClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ IAMClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ IAMClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); virtual ~IAMClient(); /** * Converts any request object to a presigned URL with the GET method, using region for the signer and a timeout of 15 minutes. */ Aws::String ConvertRequestToPresignedUrl(const Aws::AmazonSerializableWebServiceRequest& requestToConvert, const char* region) const; /** *

Adds a new client ID (also known as audience) to the list of client IDs * already registered for the specified IAM OpenID Connect (OIDC) provider * resource.

This operation is idempotent; it does not fail or return an * error if you add an existing client ID to the provider.

See Also:

* AWS * API Reference

*/ virtual Model::AddClientIDToOpenIDConnectProviderOutcome AddClientIDToOpenIDConnectProvider(const Model::AddClientIDToOpenIDConnectProviderRequest& request) const; /** *

Adds a new client ID (also known as audience) to the list of client IDs * already registered for the specified IAM OpenID Connect (OIDC) provider * resource.

This operation is idempotent; it does not fail or return an * error if you add an existing client ID to the provider.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::AddClientIDToOpenIDConnectProviderOutcomeCallable AddClientIDToOpenIDConnectProviderCallable(const Model::AddClientIDToOpenIDConnectProviderRequest& request) const; /** *

Adds a new client ID (also known as audience) to the list of client IDs * already registered for the specified IAM OpenID Connect (OIDC) provider * resource.

This operation is idempotent; it does not fail or return an * error if you add an existing client ID to the provider.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void AddClientIDToOpenIDConnectProviderAsync(const Model::AddClientIDToOpenIDConnectProviderRequest& request, const AddClientIDToOpenIDConnectProviderResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Adds the specified IAM role to the specified instance profile. An instance * profile can contain only one role. (The number and size of IAM resources in an * AWS account are limited. For more information, see IAM * and STS Quotas in the IAM User Guide.) You can remove the existing * role and then add a different role to an instance profile. You must then wait * for the change to appear across all of AWS because of eventual * consistency. To force the change, you must disassociate * the instance profile and then associate * the instance profile, or you can stop your instance and then restart it.

*

The caller of this API must be granted the PassRole * permission on the IAM role by a permissions policy.

For more * information about roles, go to Working * with Roles. For more information about instance profiles, go to About * Instance Profiles.

See Also:

AWS * API Reference

*/ virtual Model::AddRoleToInstanceProfileOutcome AddRoleToInstanceProfile(const Model::AddRoleToInstanceProfileRequest& request) const; /** *

Adds the specified IAM role to the specified instance profile. An instance * profile can contain only one role. (The number and size of IAM resources in an * AWS account are limited. For more information, see IAM * and STS Quotas in the IAM User Guide.) You can remove the existing * role and then add a different role to an instance profile. You must then wait * for the change to appear across all of AWS because of eventual * consistency. To force the change, you must disassociate * the instance profile and then associate * the instance profile, or you can stop your instance and then restart it.

*

The caller of this API must be granted the PassRole * permission on the IAM role by a permissions policy.

For more * information about roles, go to Working * with Roles. For more information about instance profiles, go to About * Instance Profiles.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::AddRoleToInstanceProfileOutcomeCallable AddRoleToInstanceProfileCallable(const Model::AddRoleToInstanceProfileRequest& request) const; /** *

Adds the specified IAM role to the specified instance profile. An instance * profile can contain only one role. (The number and size of IAM resources in an * AWS account are limited. For more information, see IAM * and STS Quotas in the IAM User Guide.) You can remove the existing * role and then add a different role to an instance profile. You must then wait * for the change to appear across all of AWS because of eventual * consistency. To force the change, you must disassociate * the instance profile and then associate * the instance profile, or you can stop your instance and then restart it.

*

The caller of this API must be granted the PassRole * permission on the IAM role by a permissions policy.

For more * information about roles, go to Working * with Roles. For more information about instance profiles, go to About * Instance Profiles.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void AddRoleToInstanceProfileAsync(const Model::AddRoleToInstanceProfileRequest& request, const AddRoleToInstanceProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Adds the specified user to the specified group.

See Also:

AWS * API Reference

*/ virtual Model::AddUserToGroupOutcome AddUserToGroup(const Model::AddUserToGroupRequest& request) const; /** *

Adds the specified user to the specified group.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::AddUserToGroupOutcomeCallable AddUserToGroupCallable(const Model::AddUserToGroupRequest& request) const; /** *

Adds the specified user to the specified group.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void AddUserToGroupAsync(const Model::AddUserToGroupRequest& request, const AddUserToGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Attaches the specified managed policy to the specified IAM group.

You * use this API to attach a managed policy to a group. To embed an inline policy in * a group, use PutGroupPolicy.

For more information about policies, * see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::AttachGroupPolicyOutcome AttachGroupPolicy(const Model::AttachGroupPolicyRequest& request) const; /** *

Attaches the specified managed policy to the specified IAM group.

You * use this API to attach a managed policy to a group. To embed an inline policy in * a group, use PutGroupPolicy.

For more information about policies, * see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::AttachGroupPolicyOutcomeCallable AttachGroupPolicyCallable(const Model::AttachGroupPolicyRequest& request) const; /** *

Attaches the specified managed policy to the specified IAM group.

You * use this API to attach a managed policy to a group. To embed an inline policy in * a group, use PutGroupPolicy.

For more information about policies, * see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void AttachGroupPolicyAsync(const Model::AttachGroupPolicyRequest& request, const AttachGroupPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Attaches the specified managed policy to the specified IAM role. When you * attach a managed policy to a role, the managed policy becomes part of the role's * permission (access) policy.

You cannot use a managed policy as the * role's trust policy. The role's trust policy is created at the same time as the * role, using CreateRole. You can update a role's trust policy using * UpdateAssumeRolePolicy.

Use this API to attach a * managed policy to a role. To embed an inline policy in a role, use * PutRolePolicy. For more information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::AttachRolePolicyOutcome AttachRolePolicy(const Model::AttachRolePolicyRequest& request) const; /** *

Attaches the specified managed policy to the specified IAM role. When you * attach a managed policy to a role, the managed policy becomes part of the role's * permission (access) policy.

You cannot use a managed policy as the * role's trust policy. The role's trust policy is created at the same time as the * role, using CreateRole. You can update a role's trust policy using * UpdateAssumeRolePolicy.

Use this API to attach a * managed policy to a role. To embed an inline policy in a role, use * PutRolePolicy. For more information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::AttachRolePolicyOutcomeCallable AttachRolePolicyCallable(const Model::AttachRolePolicyRequest& request) const; /** *

Attaches the specified managed policy to the specified IAM role. When you * attach a managed policy to a role, the managed policy becomes part of the role's * permission (access) policy.

You cannot use a managed policy as the * role's trust policy. The role's trust policy is created at the same time as the * role, using CreateRole. You can update a role's trust policy using * UpdateAssumeRolePolicy.

Use this API to attach a * managed policy to a role. To embed an inline policy in a role, use * PutRolePolicy. For more information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void AttachRolePolicyAsync(const Model::AttachRolePolicyRequest& request, const AttachRolePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Attaches the specified managed policy to the specified user.

You use * this API to attach a managed policy to a user. To embed an inline policy * in a user, use PutUserPolicy.

For more information about policies, * see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::AttachUserPolicyOutcome AttachUserPolicy(const Model::AttachUserPolicyRequest& request) const; /** *

Attaches the specified managed policy to the specified user.

You use * this API to attach a managed policy to a user. To embed an inline policy * in a user, use PutUserPolicy.

For more information about policies, * see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::AttachUserPolicyOutcomeCallable AttachUserPolicyCallable(const Model::AttachUserPolicyRequest& request) const; /** *

Attaches the specified managed policy to the specified user.

You use * this API to attach a managed policy to a user. To embed an inline policy * in a user, use PutUserPolicy.

For more information about policies, * see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void AttachUserPolicyAsync(const Model::AttachUserPolicyRequest& request, const AttachUserPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Changes the password of the IAM user who is calling this operation. The AWS * account root user password is not affected by this operation.

To change * the password for a different user, see UpdateLoginProfile. For more * information about modifying passwords, see Managing * Passwords in the IAM User Guide.

See Also:

AWS * API Reference

*/ virtual Model::ChangePasswordOutcome ChangePassword(const Model::ChangePasswordRequest& request) const; /** *

Changes the password of the IAM user who is calling this operation. The AWS * account root user password is not affected by this operation.

To change * the password for a different user, see UpdateLoginProfile. For more * information about modifying passwords, see Managing * Passwords in the IAM User Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ChangePasswordOutcomeCallable ChangePasswordCallable(const Model::ChangePasswordRequest& request) const; /** *

Changes the password of the IAM user who is calling this operation. The AWS * account root user password is not affected by this operation.

To change * the password for a different user, see UpdateLoginProfile. For more * information about modifying passwords, see Managing * Passwords in the IAM User Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ChangePasswordAsync(const Model::ChangePasswordRequest& request, const ChangePasswordResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a new AWS secret access key and corresponding AWS access key ID for * the specified user. The default status for new keys is Active.

*

If you do not specify a user name, IAM determines the user name implicitly * based on the AWS access key ID signing the request. This operation works for * access keys under the AWS account. Consequently, you can use this operation to * manage AWS account root user credentials. This is true even if the AWS account * has no associated users.

The number and size of IAM resources in an AWS * account are limited. For more information, see IAM * and STS Quotas in the IAM User Guide.

To ensure * the security of your AWS account, the secret access key is accessible only * during key and user creation. You must save the key (for example, in a text * file) if you want to be able to access it again. If a secret key is lost, you * can delete the access keys for the associated user and then create new keys.

*

See Also:

AWS * API Reference

*/ virtual Model::CreateAccessKeyOutcome CreateAccessKey(const Model::CreateAccessKeyRequest& request) const; /** *

Creates a new AWS secret access key and corresponding AWS access key ID for * the specified user. The default status for new keys is Active.

*

If you do not specify a user name, IAM determines the user name implicitly * based on the AWS access key ID signing the request. This operation works for * access keys under the AWS account. Consequently, you can use this operation to * manage AWS account root user credentials. This is true even if the AWS account * has no associated users.

The number and size of IAM resources in an AWS * account are limited. For more information, see IAM * and STS Quotas in the IAM User Guide.

To ensure * the security of your AWS account, the secret access key is accessible only * during key and user creation. You must save the key (for example, in a text * file) if you want to be able to access it again. If a secret key is lost, you * can delete the access keys for the associated user and then create new keys.

*

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateAccessKeyOutcomeCallable CreateAccessKeyCallable(const Model::CreateAccessKeyRequest& request) const; /** *

Creates a new AWS secret access key and corresponding AWS access key ID for * the specified user. The default status for new keys is Active.

*

If you do not specify a user name, IAM determines the user name implicitly * based on the AWS access key ID signing the request. This operation works for * access keys under the AWS account. Consequently, you can use this operation to * manage AWS account root user credentials. This is true even if the AWS account * has no associated users.

The number and size of IAM resources in an AWS * account are limited. For more information, see IAM * and STS Quotas in the IAM User Guide.

To ensure * the security of your AWS account, the secret access key is accessible only * during key and user creation. You must save the key (for example, in a text * file) if you want to be able to access it again. If a secret key is lost, you * can delete the access keys for the associated user and then create new keys.

*

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateAccessKeyAsync(const Model::CreateAccessKeyRequest& request, const CreateAccessKeyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates an alias for your AWS account. For information about using an AWS * account alias, see Using * an Alias for Your AWS Account ID in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::CreateAccountAliasOutcome CreateAccountAlias(const Model::CreateAccountAliasRequest& request) const; /** *

Creates an alias for your AWS account. For information about using an AWS * account alias, see Using * an Alias for Your AWS Account ID in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateAccountAliasOutcomeCallable CreateAccountAliasCallable(const Model::CreateAccountAliasRequest& request) const; /** *

Creates an alias for your AWS account. For information about using an AWS * account alias, see Using * an Alias for Your AWS Account ID in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateAccountAliasAsync(const Model::CreateAccountAliasRequest& request, const CreateAccountAliasResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a new group.

The number and size of IAM resources in an AWS * account are limited. For more information, see IAM * and STS Quotas in the IAM User Guide.

See Also:

AWS API * Reference

*/ virtual Model::CreateGroupOutcome CreateGroup(const Model::CreateGroupRequest& request) const; /** *

Creates a new group.

The number and size of IAM resources in an AWS * account are limited. For more information, see IAM * and STS Quotas in the IAM User Guide.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateGroupOutcomeCallable CreateGroupCallable(const Model::CreateGroupRequest& request) const; /** *

Creates a new group.

The number and size of IAM resources in an AWS * account are limited. For more information, see IAM * and STS Quotas in the IAM User Guide.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateGroupAsync(const Model::CreateGroupRequest& request, const CreateGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a new instance profile. For information about instance profiles, go * to About * Instance Profiles.

The number and size of IAM resources in an AWS * account are limited. For more information, see IAM * and STS Quotas in the IAM User Guide.

See Also:

AWS * API Reference

*/ virtual Model::CreateInstanceProfileOutcome CreateInstanceProfile(const Model::CreateInstanceProfileRequest& request) const; /** *

Creates a new instance profile. For information about instance profiles, go * to About * Instance Profiles.

The number and size of IAM resources in an AWS * account are limited. For more information, see IAM * and STS Quotas in the IAM User Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateInstanceProfileOutcomeCallable CreateInstanceProfileCallable(const Model::CreateInstanceProfileRequest& request) const; /** *

Creates a new instance profile. For information about instance profiles, go * to About * Instance Profiles.

The number and size of IAM resources in an AWS * account are limited. For more information, see IAM * and STS Quotas in the IAM User Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateInstanceProfileAsync(const Model::CreateInstanceProfileRequest& request, const CreateInstanceProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a password for the specified user, giving the user the ability to * access AWS services through the AWS Management Console. For more information * about managing passwords, see Managing * Passwords in the IAM User Guide.

See Also:

AWS * API Reference

*/ virtual Model::CreateLoginProfileOutcome CreateLoginProfile(const Model::CreateLoginProfileRequest& request) const; /** *

Creates a password for the specified user, giving the user the ability to * access AWS services through the AWS Management Console. For more information * about managing passwords, see Managing * Passwords in the IAM User Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateLoginProfileOutcomeCallable CreateLoginProfileCallable(const Model::CreateLoginProfileRequest& request) const; /** *

Creates a password for the specified user, giving the user the ability to * access AWS services through the AWS Management Console. For more information * about managing passwords, see Managing * Passwords in the IAM User Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateLoginProfileAsync(const Model::CreateLoginProfileRequest& request, const CreateLoginProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates an IAM entity to describe an identity provider (IdP) that supports OpenID Connect (OIDC).

The OIDC * provider that you create with this operation can be used as a principal in a * role's trust policy. Such a policy establishes a trust relationship between AWS * and the OIDC provider.

When you create the IAM OIDC provider, you specify * the following:

  • The URL of the OIDC identity provider (IdP) to * trust

  • A list of client IDs (also known as audiences) that * identify the application or applications that are allowed to authenticate using * the OIDC provider

  • A list of thumbprints of one or more server * certificates that the IdP uses

You get all of this * information from the OIDC IdP that you want to use to access AWS.

*

The trust for the OIDC provider is derived from the IAM provider that this * operation creates. Therefore, it is best to limit access to the * CreateOpenIDConnectProvider operation to highly privileged users.

*

See Also:

AWS * API Reference

*/ virtual Model::CreateOpenIDConnectProviderOutcome CreateOpenIDConnectProvider(const Model::CreateOpenIDConnectProviderRequest& request) const; /** *

Creates an IAM entity to describe an identity provider (IdP) that supports OpenID Connect (OIDC).

The OIDC * provider that you create with this operation can be used as a principal in a * role's trust policy. Such a policy establishes a trust relationship between AWS * and the OIDC provider.

When you create the IAM OIDC provider, you specify * the following:

  • The URL of the OIDC identity provider (IdP) to * trust

  • A list of client IDs (also known as audiences) that * identify the application or applications that are allowed to authenticate using * the OIDC provider

  • A list of thumbprints of one or more server * certificates that the IdP uses

You get all of this * information from the OIDC IdP that you want to use to access AWS.

*

The trust for the OIDC provider is derived from the IAM provider that this * operation creates. Therefore, it is best to limit access to the * CreateOpenIDConnectProvider operation to highly privileged users.

*

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateOpenIDConnectProviderOutcomeCallable CreateOpenIDConnectProviderCallable(const Model::CreateOpenIDConnectProviderRequest& request) const; /** *

Creates an IAM entity to describe an identity provider (IdP) that supports OpenID Connect (OIDC).

The OIDC * provider that you create with this operation can be used as a principal in a * role's trust policy. Such a policy establishes a trust relationship between AWS * and the OIDC provider.

When you create the IAM OIDC provider, you specify * the following:

  • The URL of the OIDC identity provider (IdP) to * trust

  • A list of client IDs (also known as audiences) that * identify the application or applications that are allowed to authenticate using * the OIDC provider

  • A list of thumbprints of one or more server * certificates that the IdP uses

You get all of this * information from the OIDC IdP that you want to use to access AWS.

*

The trust for the OIDC provider is derived from the IAM provider that this * operation creates. Therefore, it is best to limit access to the * CreateOpenIDConnectProvider operation to highly privileged users.

*

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateOpenIDConnectProviderAsync(const Model::CreateOpenIDConnectProviderRequest& request, const CreateOpenIDConnectProviderResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a new managed policy for your AWS account.

This operation * creates a policy version with a version identifier of v1 and sets * v1 as the policy's default version. For more information about policy versions, * see Versioning * for Managed Policies in the IAM User Guide.

For more * information about managed policies in general, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::CreatePolicyOutcome CreatePolicy(const Model::CreatePolicyRequest& request) const; /** *

Creates a new managed policy for your AWS account.

This operation * creates a policy version with a version identifier of v1 and sets * v1 as the policy's default version. For more information about policy versions, * see Versioning * for Managed Policies in the IAM User Guide.

For more * information about managed policies in general, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreatePolicyOutcomeCallable CreatePolicyCallable(const Model::CreatePolicyRequest& request) const; /** *

Creates a new managed policy for your AWS account.

This operation * creates a policy version with a version identifier of v1 and sets * v1 as the policy's default version. For more information about policy versions, * see Versioning * for Managed Policies in the IAM User Guide.

For more * information about managed policies in general, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreatePolicyAsync(const Model::CreatePolicyRequest& request, const CreatePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a new version of the specified managed policy. To update a managed * policy, you create a new policy version. A managed policy can have up to five * versions. If the policy has five versions, you must delete an existing version * using DeletePolicyVersion before you create a new version.

*

Optionally, you can set the new version as the policy's default version. The * default version is the version that is in effect for the IAM users, groups, and * roles to which the policy is attached.

For more information about managed * policy versions, see Versioning * for Managed Policies in the IAM User Guide.

See Also:

* AWS * API Reference

*/ virtual Model::CreatePolicyVersionOutcome CreatePolicyVersion(const Model::CreatePolicyVersionRequest& request) const; /** *

Creates a new version of the specified managed policy. To update a managed * policy, you create a new policy version. A managed policy can have up to five * versions. If the policy has five versions, you must delete an existing version * using DeletePolicyVersion before you create a new version.

*

Optionally, you can set the new version as the policy's default version. The * default version is the version that is in effect for the IAM users, groups, and * roles to which the policy is attached.

For more information about managed * policy versions, see Versioning * for Managed Policies in the IAM User Guide.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreatePolicyVersionOutcomeCallable CreatePolicyVersionCallable(const Model::CreatePolicyVersionRequest& request) const; /** *

Creates a new version of the specified managed policy. To update a managed * policy, you create a new policy version. A managed policy can have up to five * versions. If the policy has five versions, you must delete an existing version * using DeletePolicyVersion before you create a new version.

*

Optionally, you can set the new version as the policy's default version. The * default version is the version that is in effect for the IAM users, groups, and * roles to which the policy is attached.

For more information about managed * policy versions, see Versioning * for Managed Policies in the IAM User Guide.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreatePolicyVersionAsync(const Model::CreatePolicyVersionRequest& request, const CreatePolicyVersionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a new role for your AWS account. For more information about roles, go * to IAM * Roles. The number and size of IAM resources in an AWS account are limited. * For more information, see IAM * and STS Quotas in the IAM User Guide.

See Also:

AWS API * Reference

*/ virtual Model::CreateRoleOutcome CreateRole(const Model::CreateRoleRequest& request) const; /** *

Creates a new role for your AWS account. For more information about roles, go * to IAM * Roles. The number and size of IAM resources in an AWS account are limited. * For more information, see IAM * and STS Quotas in the IAM User Guide.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateRoleOutcomeCallable CreateRoleCallable(const Model::CreateRoleRequest& request) const; /** *

Creates a new role for your AWS account. For more information about roles, go * to IAM * Roles. The number and size of IAM resources in an AWS account are limited. * For more information, see IAM * and STS Quotas in the IAM User Guide.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateRoleAsync(const Model::CreateRoleRequest& request, const CreateRoleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates an IAM resource that describes an identity provider (IdP) that * supports SAML 2.0.

The SAML provider resource that you create with this * operation can be used as a principal in an IAM role's trust policy. Such a * policy can enable federated users who sign in using the SAML IdP to assume the * role. You can create an IAM role that supports Web-based single sign-on (SSO) to * the AWS Management Console or one that supports API access to AWS.

When * you create the SAML provider resource, you upload a SAML metadata document that * you get from your IdP. That document includes the issuer's name, expiration * information, and keys that can be used to validate the SAML authentication * response (assertions) that the IdP sends. You must generate the metadata * document using the identity management software that is used as your * organization's IdP.

This operation requires Signature * Version 4.

For more information, see Enabling * SAML 2.0 Federated Users to Access the AWS Management Console and About * SAML 2.0-based Federation in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::CreateSAMLProviderOutcome CreateSAMLProvider(const Model::CreateSAMLProviderRequest& request) const; /** *

Creates an IAM resource that describes an identity provider (IdP) that * supports SAML 2.0.

The SAML provider resource that you create with this * operation can be used as a principal in an IAM role's trust policy. Such a * policy can enable federated users who sign in using the SAML IdP to assume the * role. You can create an IAM role that supports Web-based single sign-on (SSO) to * the AWS Management Console or one that supports API access to AWS.

When * you create the SAML provider resource, you upload a SAML metadata document that * you get from your IdP. That document includes the issuer's name, expiration * information, and keys that can be used to validate the SAML authentication * response (assertions) that the IdP sends. You must generate the metadata * document using the identity management software that is used as your * organization's IdP.

This operation requires Signature * Version 4.

For more information, see Enabling * SAML 2.0 Federated Users to Access the AWS Management Console and About * SAML 2.0-based Federation in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateSAMLProviderOutcomeCallable CreateSAMLProviderCallable(const Model::CreateSAMLProviderRequest& request) const; /** *

Creates an IAM resource that describes an identity provider (IdP) that * supports SAML 2.0.

The SAML provider resource that you create with this * operation can be used as a principal in an IAM role's trust policy. Such a * policy can enable federated users who sign in using the SAML IdP to assume the * role. You can create an IAM role that supports Web-based single sign-on (SSO) to * the AWS Management Console or one that supports API access to AWS.

When * you create the SAML provider resource, you upload a SAML metadata document that * you get from your IdP. That document includes the issuer's name, expiration * information, and keys that can be used to validate the SAML authentication * response (assertions) that the IdP sends. You must generate the metadata * document using the identity management software that is used as your * organization's IdP.

This operation requires Signature * Version 4.

For more information, see Enabling * SAML 2.0 Federated Users to Access the AWS Management Console and About * SAML 2.0-based Federation in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateSAMLProviderAsync(const Model::CreateSAMLProviderRequest& request, const CreateSAMLProviderResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates an IAM role that is linked to a specific AWS service. The service * controls the attached policies and when the role can be deleted. This helps * ensure that the service is not broken by an unexpectedly changed or deleted * role, which could put your AWS resources into an unknown state. Allowing the * service to control the role helps improve service stability and proper cleanup * when a service and its role are no longer needed. For more information, see Using * Service-Linked Roles in the IAM User Guide.

To attach a * policy to this service-linked role, you must make the request using the AWS * service that depends on this role.

See Also:

AWS * API Reference

*/ virtual Model::CreateServiceLinkedRoleOutcome CreateServiceLinkedRole(const Model::CreateServiceLinkedRoleRequest& request) const; /** *

Creates an IAM role that is linked to a specific AWS service. The service * controls the attached policies and when the role can be deleted. This helps * ensure that the service is not broken by an unexpectedly changed or deleted * role, which could put your AWS resources into an unknown state. Allowing the * service to control the role helps improve service stability and proper cleanup * when a service and its role are no longer needed. For more information, see Using * Service-Linked Roles in the IAM User Guide.

To attach a * policy to this service-linked role, you must make the request using the AWS * service that depends on this role.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateServiceLinkedRoleOutcomeCallable CreateServiceLinkedRoleCallable(const Model::CreateServiceLinkedRoleRequest& request) const; /** *

Creates an IAM role that is linked to a specific AWS service. The service * controls the attached policies and when the role can be deleted. This helps * ensure that the service is not broken by an unexpectedly changed or deleted * role, which could put your AWS resources into an unknown state. Allowing the * service to control the role helps improve service stability and proper cleanup * when a service and its role are no longer needed. For more information, see Using * Service-Linked Roles in the IAM User Guide.

To attach a * policy to this service-linked role, you must make the request using the AWS * service that depends on this role.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateServiceLinkedRoleAsync(const Model::CreateServiceLinkedRoleRequest& request, const CreateServiceLinkedRoleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Generates a set of credentials consisting of a user name and password that * can be used to access the service specified in the request. These credentials * are generated by IAM, and can be used only for the specified service.

*

You can have a maximum of two sets of service-specific credentials for each * supported service per user.

The only supported service at this time is * AWS CodeCommit.

You can reset the password to a new service-generated * value by calling ResetServiceSpecificCredential.

For more * information about service-specific credentials, see Using * IAM with AWS CodeCommit: Git Credentials, SSH Keys, and AWS Access Keys in * the IAM User Guide.

See Also:

AWS * API Reference

*/ virtual Model::CreateServiceSpecificCredentialOutcome CreateServiceSpecificCredential(const Model::CreateServiceSpecificCredentialRequest& request) const; /** *

Generates a set of credentials consisting of a user name and password that * can be used to access the service specified in the request. These credentials * are generated by IAM, and can be used only for the specified service.

*

You can have a maximum of two sets of service-specific credentials for each * supported service per user.

The only supported service at this time is * AWS CodeCommit.

You can reset the password to a new service-generated * value by calling ResetServiceSpecificCredential.

For more * information about service-specific credentials, see Using * IAM with AWS CodeCommit: Git Credentials, SSH Keys, and AWS Access Keys in * the IAM User Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateServiceSpecificCredentialOutcomeCallable CreateServiceSpecificCredentialCallable(const Model::CreateServiceSpecificCredentialRequest& request) const; /** *

Generates a set of credentials consisting of a user name and password that * can be used to access the service specified in the request. These credentials * are generated by IAM, and can be used only for the specified service.

*

You can have a maximum of two sets of service-specific credentials for each * supported service per user.

The only supported service at this time is * AWS CodeCommit.

You can reset the password to a new service-generated * value by calling ResetServiceSpecificCredential.

For more * information about service-specific credentials, see Using * IAM with AWS CodeCommit: Git Credentials, SSH Keys, and AWS Access Keys in * the IAM User Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateServiceSpecificCredentialAsync(const Model::CreateServiceSpecificCredentialRequest& request, const CreateServiceSpecificCredentialResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a new IAM user for your AWS account.

The number and size of * IAM resources in an AWS account are limited. For more information, see IAM * and STS Quotas in the IAM User Guide.

See Also:

AWS API * Reference

*/ virtual Model::CreateUserOutcome CreateUser(const Model::CreateUserRequest& request) const; /** *

Creates a new IAM user for your AWS account.

The number and size of * IAM resources in an AWS account are limited. For more information, see IAM * and STS Quotas in the IAM User Guide.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateUserOutcomeCallable CreateUserCallable(const Model::CreateUserRequest& request) const; /** *

Creates a new IAM user for your AWS account.

The number and size of * IAM resources in an AWS account are limited. For more information, see IAM * and STS Quotas in the IAM User Guide.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateUserAsync(const Model::CreateUserRequest& request, const CreateUserResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a new virtual MFA device for the AWS account. After creating the * virtual MFA, use EnableMFADevice to attach the MFA device to an IAM user. * For more information about creating and working with virtual MFA devices, go to * Using * a Virtual MFA Device in the IAM User Guide.

The number and * size of IAM resources in an AWS account are limited. For more information, see * IAM * and STS Quotas in the IAM User Guide.

The seed * information contained in the QR code and the Base32 string should be treated * like any other secret access information. In other words, protect the seed * information as you would your AWS access keys or your passwords. After you * provision your virtual device, you should ensure that the information is * destroyed following secure procedures.

See Also:

* AWS * API Reference

*/ virtual Model::CreateVirtualMFADeviceOutcome CreateVirtualMFADevice(const Model::CreateVirtualMFADeviceRequest& request) const; /** *

Creates a new virtual MFA device for the AWS account. After creating the * virtual MFA, use EnableMFADevice to attach the MFA device to an IAM user. * For more information about creating and working with virtual MFA devices, go to * Using * a Virtual MFA Device in the IAM User Guide.

The number and * size of IAM resources in an AWS account are limited. For more information, see * IAM * and STS Quotas in the IAM User Guide.

The seed * information contained in the QR code and the Base32 string should be treated * like any other secret access information. In other words, protect the seed * information as you would your AWS access keys or your passwords. After you * provision your virtual device, you should ensure that the information is * destroyed following secure procedures.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateVirtualMFADeviceOutcomeCallable CreateVirtualMFADeviceCallable(const Model::CreateVirtualMFADeviceRequest& request) const; /** *

Creates a new virtual MFA device for the AWS account. After creating the * virtual MFA, use EnableMFADevice to attach the MFA device to an IAM user. * For more information about creating and working with virtual MFA devices, go to * Using * a Virtual MFA Device in the IAM User Guide.

The number and * size of IAM resources in an AWS account are limited. For more information, see * IAM * and STS Quotas in the IAM User Guide.

The seed * information contained in the QR code and the Base32 string should be treated * like any other secret access information. In other words, protect the seed * information as you would your AWS access keys or your passwords. After you * provision your virtual device, you should ensure that the information is * destroyed following secure procedures.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateVirtualMFADeviceAsync(const Model::CreateVirtualMFADeviceRequest& request, const CreateVirtualMFADeviceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deactivates the specified MFA device and removes it from association with the * user name for which it was originally enabled.

For more information about * creating and working with virtual MFA devices, go to Enabling * a Virtual Multi-factor Authentication (MFA) Device in the IAM User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::DeactivateMFADeviceOutcome DeactivateMFADevice(const Model::DeactivateMFADeviceRequest& request) const; /** *

Deactivates the specified MFA device and removes it from association with the * user name for which it was originally enabled.

For more information about * creating and working with virtual MFA devices, go to Enabling * a Virtual Multi-factor Authentication (MFA) Device in the IAM User * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeactivateMFADeviceOutcomeCallable DeactivateMFADeviceCallable(const Model::DeactivateMFADeviceRequest& request) const; /** *

Deactivates the specified MFA device and removes it from association with the * user name for which it was originally enabled.

For more information about * creating and working with virtual MFA devices, go to Enabling * a Virtual Multi-factor Authentication (MFA) Device in the IAM User * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeactivateMFADeviceAsync(const Model::DeactivateMFADeviceRequest& request, const DeactivateMFADeviceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the access key pair associated with the specified IAM user.

If * you do not specify a user name, IAM determines the user name implicitly based on * the AWS access key ID signing the request. This operation works for access keys * under the AWS account. Consequently, you can use this operation to manage AWS * account root user credentials even if the AWS account has no associated * users.

See Also:

AWS * API Reference

*/ virtual Model::DeleteAccessKeyOutcome DeleteAccessKey(const Model::DeleteAccessKeyRequest& request) const; /** *

Deletes the access key pair associated with the specified IAM user.

If * you do not specify a user name, IAM determines the user name implicitly based on * the AWS access key ID signing the request. This operation works for access keys * under the AWS account. Consequently, you can use this operation to manage AWS * account root user credentials even if the AWS account has no associated * users.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteAccessKeyOutcomeCallable DeleteAccessKeyCallable(const Model::DeleteAccessKeyRequest& request) const; /** *

Deletes the access key pair associated with the specified IAM user.

If * you do not specify a user name, IAM determines the user name implicitly based on * the AWS access key ID signing the request. This operation works for access keys * under the AWS account. Consequently, you can use this operation to manage AWS * account root user credentials even if the AWS account has no associated * users.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteAccessKeyAsync(const Model::DeleteAccessKeyRequest& request, const DeleteAccessKeyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified AWS account alias. For information about using an AWS * account alias, see Using * an Alias for Your AWS Account ID in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::DeleteAccountAliasOutcome DeleteAccountAlias(const Model::DeleteAccountAliasRequest& request) const; /** *

Deletes the specified AWS account alias. For information about using an AWS * account alias, see Using * an Alias for Your AWS Account ID in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteAccountAliasOutcomeCallable DeleteAccountAliasCallable(const Model::DeleteAccountAliasRequest& request) const; /** *

Deletes the specified AWS account alias. For information about using an AWS * account alias, see Using * an Alias for Your AWS Account ID in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteAccountAliasAsync(const Model::DeleteAccountAliasRequest& request, const DeleteAccountAliasResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the password policy for the AWS account. There are no * parameters.

See Also:

AWS * API Reference

*/ virtual Model::DeleteAccountPasswordPolicyOutcome DeleteAccountPasswordPolicy(const Model::DeleteAccountPasswordPolicyRequest& request) const; /** *

Deletes the password policy for the AWS account. There are no * parameters.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteAccountPasswordPolicyOutcomeCallable DeleteAccountPasswordPolicyCallable(const Model::DeleteAccountPasswordPolicyRequest& request) const; /** *

Deletes the password policy for the AWS account. There are no * parameters.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteAccountPasswordPolicyAsync(const Model::DeleteAccountPasswordPolicyRequest& request, const DeleteAccountPasswordPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified IAM group. The group must not contain any users or have * any attached policies.

See Also:

AWS API * Reference

*/ virtual Model::DeleteGroupOutcome DeleteGroup(const Model::DeleteGroupRequest& request) const; /** *

Deletes the specified IAM group. The group must not contain any users or have * any attached policies.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteGroupOutcomeCallable DeleteGroupCallable(const Model::DeleteGroupRequest& request) const; /** *

Deletes the specified IAM group. The group must not contain any users or have * any attached policies.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteGroupAsync(const Model::DeleteGroupRequest& request, const DeleteGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified inline policy that is embedded in the specified IAM * group.

A group can also have managed policies attached to it. To detach a * managed policy from a group, use DetachGroupPolicy. For more information * about policies, refer to Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::DeleteGroupPolicyOutcome DeleteGroupPolicy(const Model::DeleteGroupPolicyRequest& request) const; /** *

Deletes the specified inline policy that is embedded in the specified IAM * group.

A group can also have managed policies attached to it. To detach a * managed policy from a group, use DetachGroupPolicy. For more information * about policies, refer to Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteGroupPolicyOutcomeCallable DeleteGroupPolicyCallable(const Model::DeleteGroupPolicyRequest& request) const; /** *

Deletes the specified inline policy that is embedded in the specified IAM * group.

A group can also have managed policies attached to it. To detach a * managed policy from a group, use DetachGroupPolicy. For more information * about policies, refer to Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteGroupPolicyAsync(const Model::DeleteGroupPolicyRequest& request, const DeleteGroupPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified instance profile. The instance profile must not have an * associated role.

Make sure that you do not have any Amazon * EC2 instances running with the instance profile you are about to delete. * Deleting a role or instance profile that is associated with a running instance * will break any applications running on the instance.

For * more information about instance profiles, go to About * Instance Profiles.

See Also:

AWS * API Reference

*/ virtual Model::DeleteInstanceProfileOutcome DeleteInstanceProfile(const Model::DeleteInstanceProfileRequest& request) const; /** *

Deletes the specified instance profile. The instance profile must not have an * associated role.

Make sure that you do not have any Amazon * EC2 instances running with the instance profile you are about to delete. * Deleting a role or instance profile that is associated with a running instance * will break any applications running on the instance.

For * more information about instance profiles, go to About * Instance Profiles.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteInstanceProfileOutcomeCallable DeleteInstanceProfileCallable(const Model::DeleteInstanceProfileRequest& request) const; /** *

Deletes the specified instance profile. The instance profile must not have an * associated role.

Make sure that you do not have any Amazon * EC2 instances running with the instance profile you are about to delete. * Deleting a role or instance profile that is associated with a running instance * will break any applications running on the instance.

For * more information about instance profiles, go to About * Instance Profiles.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteInstanceProfileAsync(const Model::DeleteInstanceProfileRequest& request, const DeleteInstanceProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the password for the specified IAM user, which terminates the user's * ability to access AWS services through the AWS Management Console.

*

Deleting a user's password does not prevent a user from * accessing AWS through the command line interface or the API. To prevent all user * access, you must also either make any access keys inactive or delete them. For * more information about making keys inactive or deleting them, see * UpdateAccessKey and DeleteAccessKey.

See * Also:

AWS * API Reference

*/ virtual Model::DeleteLoginProfileOutcome DeleteLoginProfile(const Model::DeleteLoginProfileRequest& request) const; /** *

Deletes the password for the specified IAM user, which terminates the user's * ability to access AWS services through the AWS Management Console.

*

Deleting a user's password does not prevent a user from * accessing AWS through the command line interface or the API. To prevent all user * access, you must also either make any access keys inactive or delete them. For * more information about making keys inactive or deleting them, see * UpdateAccessKey and DeleteAccessKey.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteLoginProfileOutcomeCallable DeleteLoginProfileCallable(const Model::DeleteLoginProfileRequest& request) const; /** *

Deletes the password for the specified IAM user, which terminates the user's * ability to access AWS services through the AWS Management Console.

*

Deleting a user's password does not prevent a user from * accessing AWS through the command line interface or the API. To prevent all user * access, you must also either make any access keys inactive or delete them. For * more information about making keys inactive or deleting them, see * UpdateAccessKey and DeleteAccessKey.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteLoginProfileAsync(const Model::DeleteLoginProfileRequest& request, const DeleteLoginProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes an OpenID Connect identity provider (IdP) resource object in IAM.

*

Deleting an IAM OIDC provider resource does not update any roles that * reference the provider as a principal in their trust policies. Any attempt to * assume a role that references a deleted provider fails.

This operation is * idempotent; it does not fail or return an error if you call the operation for a * provider that does not exist.

See Also:

AWS * API Reference

*/ virtual Model::DeleteOpenIDConnectProviderOutcome DeleteOpenIDConnectProvider(const Model::DeleteOpenIDConnectProviderRequest& request) const; /** *

Deletes an OpenID Connect identity provider (IdP) resource object in IAM.

*

Deleting an IAM OIDC provider resource does not update any roles that * reference the provider as a principal in their trust policies. Any attempt to * assume a role that references a deleted provider fails.

This operation is * idempotent; it does not fail or return an error if you call the operation for a * provider that does not exist.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteOpenIDConnectProviderOutcomeCallable DeleteOpenIDConnectProviderCallable(const Model::DeleteOpenIDConnectProviderRequest& request) const; /** *

Deletes an OpenID Connect identity provider (IdP) resource object in IAM.

*

Deleting an IAM OIDC provider resource does not update any roles that * reference the provider as a principal in their trust policies. Any attempt to * assume a role that references a deleted provider fails.

This operation is * idempotent; it does not fail or return an error if you call the operation for a * provider that does not exist.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteOpenIDConnectProviderAsync(const Model::DeleteOpenIDConnectProviderRequest& request, const DeleteOpenIDConnectProviderResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified managed policy.

Before you can delete a managed * policy, you must first detach the policy from all users, groups, and roles that * it is attached to. In addition, you must delete all the policy's versions. The * following steps describe the process for deleting a managed policy:

    *
  • Detach the policy from all users, groups, and roles that the policy is * attached to, using the DetachUserPolicy, DetachGroupPolicy, or * DetachRolePolicy API operations. To list all the users, groups, and roles * that a policy is attached to, use ListEntitiesForPolicy.

  • *

    Delete all versions of the policy using DeletePolicyVersion. To list * the policy's versions, use ListPolicyVersions. You cannot use * DeletePolicyVersion to delete the version that is marked as the default * version. You delete the policy's default version in the next step of the * process.

  • Delete the policy (this automatically deletes the * policy's default version) using this API.

For information * about managed policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::DeletePolicyOutcome DeletePolicy(const Model::DeletePolicyRequest& request) const; /** *

Deletes the specified managed policy.

Before you can delete a managed * policy, you must first detach the policy from all users, groups, and roles that * it is attached to. In addition, you must delete all the policy's versions. The * following steps describe the process for deleting a managed policy:

    *
  • Detach the policy from all users, groups, and roles that the policy is * attached to, using the DetachUserPolicy, DetachGroupPolicy, or * DetachRolePolicy API operations. To list all the users, groups, and roles * that a policy is attached to, use ListEntitiesForPolicy.

  • *

    Delete all versions of the policy using DeletePolicyVersion. To list * the policy's versions, use ListPolicyVersions. You cannot use * DeletePolicyVersion to delete the version that is marked as the default * version. You delete the policy's default version in the next step of the * process.

  • Delete the policy (this automatically deletes the * policy's default version) using this API.

For information * about managed policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeletePolicyOutcomeCallable DeletePolicyCallable(const Model::DeletePolicyRequest& request) const; /** *

Deletes the specified managed policy.

Before you can delete a managed * policy, you must first detach the policy from all users, groups, and roles that * it is attached to. In addition, you must delete all the policy's versions. The * following steps describe the process for deleting a managed policy:

    *
  • Detach the policy from all users, groups, and roles that the policy is * attached to, using the DetachUserPolicy, DetachGroupPolicy, or * DetachRolePolicy API operations. To list all the users, groups, and roles * that a policy is attached to, use ListEntitiesForPolicy.

  • *

    Delete all versions of the policy using DeletePolicyVersion. To list * the policy's versions, use ListPolicyVersions. You cannot use * DeletePolicyVersion to delete the version that is marked as the default * version. You delete the policy's default version in the next step of the * process.

  • Delete the policy (this automatically deletes the * policy's default version) using this API.

For information * about managed policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeletePolicyAsync(const Model::DeletePolicyRequest& request, const DeletePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified version from the specified managed policy.

You * cannot delete the default version from a policy using this API. To delete the * default version from a policy, use DeletePolicy. To find out which * version of a policy is marked as the default version, use * ListPolicyVersions.

For information about versions for managed * policies, see Versioning * for Managed Policies in the IAM User Guide.

See Also:

* AWS * API Reference

*/ virtual Model::DeletePolicyVersionOutcome DeletePolicyVersion(const Model::DeletePolicyVersionRequest& request) const; /** *

Deletes the specified version from the specified managed policy.

You * cannot delete the default version from a policy using this API. To delete the * default version from a policy, use DeletePolicy. To find out which * version of a policy is marked as the default version, use * ListPolicyVersions.

For information about versions for managed * policies, see Versioning * for Managed Policies in the IAM User Guide.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeletePolicyVersionOutcomeCallable DeletePolicyVersionCallable(const Model::DeletePolicyVersionRequest& request) const; /** *

Deletes the specified version from the specified managed policy.

You * cannot delete the default version from a policy using this API. To delete the * default version from a policy, use DeletePolicy. To find out which * version of a policy is marked as the default version, use * ListPolicyVersions.

For information about versions for managed * policies, see Versioning * for Managed Policies in the IAM User Guide.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeletePolicyVersionAsync(const Model::DeletePolicyVersionRequest& request, const DeletePolicyVersionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified role. The role must not have any policies attached. For * more information about roles, go to Working * with Roles.

Make sure that you do not have any Amazon EC2 * instances running with the role you are about to delete. Deleting a role or * instance profile that is associated with a running instance will break any * applications running on the instance.

See Also:

AWS API * Reference

*/ virtual Model::DeleteRoleOutcome DeleteRole(const Model::DeleteRoleRequest& request) const; /** *

Deletes the specified role. The role must not have any policies attached. For * more information about roles, go to Working * with Roles.

Make sure that you do not have any Amazon EC2 * instances running with the role you are about to delete. Deleting a role or * instance profile that is associated with a running instance will break any * applications running on the instance.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteRoleOutcomeCallable DeleteRoleCallable(const Model::DeleteRoleRequest& request) const; /** *

Deletes the specified role. The role must not have any policies attached. For * more information about roles, go to Working * with Roles.

Make sure that you do not have any Amazon EC2 * instances running with the role you are about to delete. Deleting a role or * instance profile that is associated with a running instance will break any * applications running on the instance.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteRoleAsync(const Model::DeleteRoleRequest& request, const DeleteRoleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the permissions boundary for the specified IAM role.

*

Deleting the permissions boundary for a role might increase its permissions. * For example, it might allow anyone who assumes the role to perform all the * actions granted in its permissions policies.

See * Also:

AWS * API Reference

*/ virtual Model::DeleteRolePermissionsBoundaryOutcome DeleteRolePermissionsBoundary(const Model::DeleteRolePermissionsBoundaryRequest& request) const; /** *

Deletes the permissions boundary for the specified IAM role.

*

Deleting the permissions boundary for a role might increase its permissions. * For example, it might allow anyone who assumes the role to perform all the * actions granted in its permissions policies.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteRolePermissionsBoundaryOutcomeCallable DeleteRolePermissionsBoundaryCallable(const Model::DeleteRolePermissionsBoundaryRequest& request) const; /** *

Deletes the permissions boundary for the specified IAM role.

*

Deleting the permissions boundary for a role might increase its permissions. * For example, it might allow anyone who assumes the role to perform all the * actions granted in its permissions policies.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteRolePermissionsBoundaryAsync(const Model::DeleteRolePermissionsBoundaryRequest& request, const DeleteRolePermissionsBoundaryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified inline policy that is embedded in the specified IAM * role.

A role can also have managed policies attached to it. To detach a * managed policy from a role, use DetachRolePolicy. For more information * about policies, refer to Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::DeleteRolePolicyOutcome DeleteRolePolicy(const Model::DeleteRolePolicyRequest& request) const; /** *

Deletes the specified inline policy that is embedded in the specified IAM * role.

A role can also have managed policies attached to it. To detach a * managed policy from a role, use DetachRolePolicy. For more information * about policies, refer to Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteRolePolicyOutcomeCallable DeleteRolePolicyCallable(const Model::DeleteRolePolicyRequest& request) const; /** *

Deletes the specified inline policy that is embedded in the specified IAM * role.

A role can also have managed policies attached to it. To detach a * managed policy from a role, use DetachRolePolicy. For more information * about policies, refer to Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteRolePolicyAsync(const Model::DeleteRolePolicyRequest& request, const DeleteRolePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes a SAML provider resource in IAM.

Deleting the provider * resource from IAM does not update any roles that reference the SAML provider * resource's ARN as a principal in their trust policies. Any attempt to assume a * role that references a non-existent provider resource ARN fails.

* This operation requires Signature * Version 4.

See Also:

AWS * API Reference

*/ virtual Model::DeleteSAMLProviderOutcome DeleteSAMLProvider(const Model::DeleteSAMLProviderRequest& request) const; /** *

Deletes a SAML provider resource in IAM.

Deleting the provider * resource from IAM does not update any roles that reference the SAML provider * resource's ARN as a principal in their trust policies. Any attempt to assume a * role that references a non-existent provider resource ARN fails.

* This operation requires Signature * Version 4.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteSAMLProviderOutcomeCallable DeleteSAMLProviderCallable(const Model::DeleteSAMLProviderRequest& request) const; /** *

Deletes a SAML provider resource in IAM.

Deleting the provider * resource from IAM does not update any roles that reference the SAML provider * resource's ARN as a principal in their trust policies. Any attempt to assume a * role that references a non-existent provider resource ARN fails.

* This operation requires Signature * Version 4.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteSAMLProviderAsync(const Model::DeleteSAMLProviderRequest& request, const DeleteSAMLProviderResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified SSH public key.

The SSH public key deleted by * this operation is used only for authenticating the associated IAM user to an AWS * CodeCommit repository. For more information about using SSH keys to authenticate * to an AWS CodeCommit repository, see Set * up AWS CodeCommit for SSH Connections in the AWS CodeCommit User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::DeleteSSHPublicKeyOutcome DeleteSSHPublicKey(const Model::DeleteSSHPublicKeyRequest& request) const; /** *

Deletes the specified SSH public key.

The SSH public key deleted by * this operation is used only for authenticating the associated IAM user to an AWS * CodeCommit repository. For more information about using SSH keys to authenticate * to an AWS CodeCommit repository, see Set * up AWS CodeCommit for SSH Connections in the AWS CodeCommit User * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteSSHPublicKeyOutcomeCallable DeleteSSHPublicKeyCallable(const Model::DeleteSSHPublicKeyRequest& request) const; /** *

Deletes the specified SSH public key.

The SSH public key deleted by * this operation is used only for authenticating the associated IAM user to an AWS * CodeCommit repository. For more information about using SSH keys to authenticate * to an AWS CodeCommit repository, see Set * up AWS CodeCommit for SSH Connections in the AWS CodeCommit User * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteSSHPublicKeyAsync(const Model::DeleteSSHPublicKeyRequest& request, const DeleteSSHPublicKeyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified server certificate.

For more information about * working with server certificates, see Working * with Server Certificates in the IAM User Guide. This topic also * includes a list of AWS services that can use the server certificates that you * manage with IAM.

If you are using a server certificate with * Elastic Load Balancing, deleting the certificate could have implications for * your application. If Elastic Load Balancing doesn't detect the deletion of bound * certificates, it may continue to use the certificates. This could cause Elastic * Load Balancing to stop accepting traffic. We recommend that you remove the * reference to the certificate from Elastic Load Balancing before using this * command to delete the certificate. For more information, go to DeleteLoadBalancerListeners * in the Elastic Load Balancing API Reference.

See * Also:

AWS * API Reference

*/ virtual Model::DeleteServerCertificateOutcome DeleteServerCertificate(const Model::DeleteServerCertificateRequest& request) const; /** *

Deletes the specified server certificate.

For more information about * working with server certificates, see Working * with Server Certificates in the IAM User Guide. This topic also * includes a list of AWS services that can use the server certificates that you * manage with IAM.

If you are using a server certificate with * Elastic Load Balancing, deleting the certificate could have implications for * your application. If Elastic Load Balancing doesn't detect the deletion of bound * certificates, it may continue to use the certificates. This could cause Elastic * Load Balancing to stop accepting traffic. We recommend that you remove the * reference to the certificate from Elastic Load Balancing before using this * command to delete the certificate. For more information, go to DeleteLoadBalancerListeners * in the Elastic Load Balancing API Reference.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteServerCertificateOutcomeCallable DeleteServerCertificateCallable(const Model::DeleteServerCertificateRequest& request) const; /** *

Deletes the specified server certificate.

For more information about * working with server certificates, see Working * with Server Certificates in the IAM User Guide. This topic also * includes a list of AWS services that can use the server certificates that you * manage with IAM.

If you are using a server certificate with * Elastic Load Balancing, deleting the certificate could have implications for * your application. If Elastic Load Balancing doesn't detect the deletion of bound * certificates, it may continue to use the certificates. This could cause Elastic * Load Balancing to stop accepting traffic. We recommend that you remove the * reference to the certificate from Elastic Load Balancing before using this * command to delete the certificate. For more information, go to DeleteLoadBalancerListeners * in the Elastic Load Balancing API Reference.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteServerCertificateAsync(const Model::DeleteServerCertificateRequest& request, const DeleteServerCertificateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Submits a service-linked role deletion request and returns a * DeletionTaskId, which you can use to check the status of the * deletion. Before you call this operation, confirm that the role has no active * sessions and that any resources used by the role in the linked service are * deleted. If you call this operation more than once for the same service-linked * role and an earlier deletion task is not complete, then the * DeletionTaskId of the earlier request is returned.

If you * submit a deletion request for a service-linked role whose linked service is * still accessing a resource, then the deletion task fails. If it fails, the * GetServiceLinkedRoleDeletionStatus API operation returns the reason for * the failure, usually including the resources that must be deleted. To delete the * service-linked role, you must first remove those resources from the linked * service and then submit the deletion request again. Resources are specific to * the service that is linked to the role. For more information about removing * resources from a service, see the AWS * documentation for your service.

For more information about * service-linked roles, see Roles * Terms and Concepts: AWS Service-Linked Role in the IAM User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::DeleteServiceLinkedRoleOutcome DeleteServiceLinkedRole(const Model::DeleteServiceLinkedRoleRequest& request) const; /** *

Submits a service-linked role deletion request and returns a * DeletionTaskId, which you can use to check the status of the * deletion. Before you call this operation, confirm that the role has no active * sessions and that any resources used by the role in the linked service are * deleted. If you call this operation more than once for the same service-linked * role and an earlier deletion task is not complete, then the * DeletionTaskId of the earlier request is returned.

If you * submit a deletion request for a service-linked role whose linked service is * still accessing a resource, then the deletion task fails. If it fails, the * GetServiceLinkedRoleDeletionStatus API operation returns the reason for * the failure, usually including the resources that must be deleted. To delete the * service-linked role, you must first remove those resources from the linked * service and then submit the deletion request again. Resources are specific to * the service that is linked to the role. For more information about removing * resources from a service, see the AWS * documentation for your service.

For more information about * service-linked roles, see Roles * Terms and Concepts: AWS Service-Linked Role in the IAM User * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteServiceLinkedRoleOutcomeCallable DeleteServiceLinkedRoleCallable(const Model::DeleteServiceLinkedRoleRequest& request) const; /** *

Submits a service-linked role deletion request and returns a * DeletionTaskId, which you can use to check the status of the * deletion. Before you call this operation, confirm that the role has no active * sessions and that any resources used by the role in the linked service are * deleted. If you call this operation more than once for the same service-linked * role and an earlier deletion task is not complete, then the * DeletionTaskId of the earlier request is returned.

If you * submit a deletion request for a service-linked role whose linked service is * still accessing a resource, then the deletion task fails. If it fails, the * GetServiceLinkedRoleDeletionStatus API operation returns the reason for * the failure, usually including the resources that must be deleted. To delete the * service-linked role, you must first remove those resources from the linked * service and then submit the deletion request again. Resources are specific to * the service that is linked to the role. For more information about removing * resources from a service, see the AWS * documentation for your service.

For more information about * service-linked roles, see Roles * Terms and Concepts: AWS Service-Linked Role in the IAM User * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteServiceLinkedRoleAsync(const Model::DeleteServiceLinkedRoleRequest& request, const DeleteServiceLinkedRoleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified service-specific credential.

See Also:

* AWS * API Reference

*/ virtual Model::DeleteServiceSpecificCredentialOutcome DeleteServiceSpecificCredential(const Model::DeleteServiceSpecificCredentialRequest& request) const; /** *

Deletes the specified service-specific credential.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteServiceSpecificCredentialOutcomeCallable DeleteServiceSpecificCredentialCallable(const Model::DeleteServiceSpecificCredentialRequest& request) const; /** *

Deletes the specified service-specific credential.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteServiceSpecificCredentialAsync(const Model::DeleteServiceSpecificCredentialRequest& request, const DeleteServiceSpecificCredentialResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes a signing certificate associated with the specified IAM user.

*

If you do not specify a user name, IAM determines the user name implicitly * based on the AWS access key ID signing the request. This operation works for * access keys under the AWS account. Consequently, you can use this operation to * manage AWS account root user credentials even if the AWS account has no * associated IAM users.

See Also:

AWS * API Reference

*/ virtual Model::DeleteSigningCertificateOutcome DeleteSigningCertificate(const Model::DeleteSigningCertificateRequest& request) const; /** *

Deletes a signing certificate associated with the specified IAM user.

*

If you do not specify a user name, IAM determines the user name implicitly * based on the AWS access key ID signing the request. This operation works for * access keys under the AWS account. Consequently, you can use this operation to * manage AWS account root user credentials even if the AWS account has no * associated IAM users.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteSigningCertificateOutcomeCallable DeleteSigningCertificateCallable(const Model::DeleteSigningCertificateRequest& request) const; /** *

Deletes a signing certificate associated with the specified IAM user.

*

If you do not specify a user name, IAM determines the user name implicitly * based on the AWS access key ID signing the request. This operation works for * access keys under the AWS account. Consequently, you can use this operation to * manage AWS account root user credentials even if the AWS account has no * associated IAM users.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteSigningCertificateAsync(const Model::DeleteSigningCertificateRequest& request, const DeleteSigningCertificateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified IAM user. Unlike the AWS Management Console, when you * delete a user programmatically, you must delete the items attached to the user * manually, or the deletion fails. For more information, see Deleting * an IAM User. Before attempting to delete a user, remove the following * items:

See Also:

AWS API * Reference

*/ virtual Model::DeleteUserOutcome DeleteUser(const Model::DeleteUserRequest& request) const; /** *

Deletes the specified IAM user. Unlike the AWS Management Console, when you * delete a user programmatically, you must delete the items attached to the user * manually, or the deletion fails. For more information, see Deleting * an IAM User. Before attempting to delete a user, remove the following * items:

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteUserOutcomeCallable DeleteUserCallable(const Model::DeleteUserRequest& request) const; /** *

Deletes the specified IAM user. Unlike the AWS Management Console, when you * delete a user programmatically, you must delete the items attached to the user * manually, or the deletion fails. For more information, see Deleting * an IAM User. Before attempting to delete a user, remove the following * items:

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteUserAsync(const Model::DeleteUserRequest& request, const DeleteUserResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the permissions boundary for the specified IAM user.

*

Deleting the permissions boundary for a user might increase its permissions * by allowing the user to perform all the actions granted in its permissions * policies.

See Also:

AWS * API Reference

*/ virtual Model::DeleteUserPermissionsBoundaryOutcome DeleteUserPermissionsBoundary(const Model::DeleteUserPermissionsBoundaryRequest& request) const; /** *

Deletes the permissions boundary for the specified IAM user.

*

Deleting the permissions boundary for a user might increase its permissions * by allowing the user to perform all the actions granted in its permissions * policies.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteUserPermissionsBoundaryOutcomeCallable DeleteUserPermissionsBoundaryCallable(const Model::DeleteUserPermissionsBoundaryRequest& request) const; /** *

Deletes the permissions boundary for the specified IAM user.

*

Deleting the permissions boundary for a user might increase its permissions * by allowing the user to perform all the actions granted in its permissions * policies.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteUserPermissionsBoundaryAsync(const Model::DeleteUserPermissionsBoundaryRequest& request, const DeleteUserPermissionsBoundaryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified inline policy that is embedded in the specified IAM * user.

A user can also have managed policies attached to it. To detach a * managed policy from a user, use DetachUserPolicy. For more information * about policies, refer to Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::DeleteUserPolicyOutcome DeleteUserPolicy(const Model::DeleteUserPolicyRequest& request) const; /** *

Deletes the specified inline policy that is embedded in the specified IAM * user.

A user can also have managed policies attached to it. To detach a * managed policy from a user, use DetachUserPolicy. For more information * about policies, refer to Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteUserPolicyOutcomeCallable DeleteUserPolicyCallable(const Model::DeleteUserPolicyRequest& request) const; /** *

Deletes the specified inline policy that is embedded in the specified IAM * user.

A user can also have managed policies attached to it. To detach a * managed policy from a user, use DetachUserPolicy. For more information * about policies, refer to Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteUserPolicyAsync(const Model::DeleteUserPolicyRequest& request, const DeleteUserPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes a virtual MFA device.

You must deactivate a user's * virtual MFA device before you can delete it. For information about deactivating * MFA devices, see DeactivateMFADevice.

See Also:

* AWS * API Reference

*/ virtual Model::DeleteVirtualMFADeviceOutcome DeleteVirtualMFADevice(const Model::DeleteVirtualMFADeviceRequest& request) const; /** *

Deletes a virtual MFA device.

You must deactivate a user's * virtual MFA device before you can delete it. For information about deactivating * MFA devices, see DeactivateMFADevice.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteVirtualMFADeviceOutcomeCallable DeleteVirtualMFADeviceCallable(const Model::DeleteVirtualMFADeviceRequest& request) const; /** *

Deletes a virtual MFA device.

You must deactivate a user's * virtual MFA device before you can delete it. For information about deactivating * MFA devices, see DeactivateMFADevice.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteVirtualMFADeviceAsync(const Model::DeleteVirtualMFADeviceRequest& request, const DeleteVirtualMFADeviceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Removes the specified managed policy from the specified IAM group.

A * group can also have inline policies embedded with it. To delete an inline * policy, use the DeleteGroupPolicy API. For information about policies, * see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::DetachGroupPolicyOutcome DetachGroupPolicy(const Model::DetachGroupPolicyRequest& request) const; /** *

Removes the specified managed policy from the specified IAM group.

A * group can also have inline policies embedded with it. To delete an inline * policy, use the DeleteGroupPolicy API. For information about policies, * see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DetachGroupPolicyOutcomeCallable DetachGroupPolicyCallable(const Model::DetachGroupPolicyRequest& request) const; /** *

Removes the specified managed policy from the specified IAM group.

A * group can also have inline policies embedded with it. To delete an inline * policy, use the DeleteGroupPolicy API. For information about policies, * see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DetachGroupPolicyAsync(const Model::DetachGroupPolicyRequest& request, const DetachGroupPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Removes the specified managed policy from the specified role.

A role * can also have inline policies embedded with it. To delete an inline policy, use * the DeleteRolePolicy API. For information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::DetachRolePolicyOutcome DetachRolePolicy(const Model::DetachRolePolicyRequest& request) const; /** *

Removes the specified managed policy from the specified role.

A role * can also have inline policies embedded with it. To delete an inline policy, use * the DeleteRolePolicy API. For information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DetachRolePolicyOutcomeCallable DetachRolePolicyCallable(const Model::DetachRolePolicyRequest& request) const; /** *

Removes the specified managed policy from the specified role.

A role * can also have inline policies embedded with it. To delete an inline policy, use * the DeleteRolePolicy API. For information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DetachRolePolicyAsync(const Model::DetachRolePolicyRequest& request, const DetachRolePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Removes the specified managed policy from the specified user.

A user * can also have inline policies embedded with it. To delete an inline policy, use * the DeleteUserPolicy API. For information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::DetachUserPolicyOutcome DetachUserPolicy(const Model::DetachUserPolicyRequest& request) const; /** *

Removes the specified managed policy from the specified user.

A user * can also have inline policies embedded with it. To delete an inline policy, use * the DeleteUserPolicy API. For information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DetachUserPolicyOutcomeCallable DetachUserPolicyCallable(const Model::DetachUserPolicyRequest& request) const; /** *

Removes the specified managed policy from the specified user.

A user * can also have inline policies embedded with it. To delete an inline policy, use * the DeleteUserPolicy API. For information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DetachUserPolicyAsync(const Model::DetachUserPolicyRequest& request, const DetachUserPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Enables the specified MFA device and associates it with the specified IAM * user. When enabled, the MFA device is required for every subsequent login by the * IAM user associated with the device.

See Also:

AWS * API Reference

*/ virtual Model::EnableMFADeviceOutcome EnableMFADevice(const Model::EnableMFADeviceRequest& request) const; /** *

Enables the specified MFA device and associates it with the specified IAM * user. When enabled, the MFA device is required for every subsequent login by the * IAM user associated with the device.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::EnableMFADeviceOutcomeCallable EnableMFADeviceCallable(const Model::EnableMFADeviceRequest& request) const; /** *

Enables the specified MFA device and associates it with the specified IAM * user. When enabled, the MFA device is required for every subsequent login by the * IAM user associated with the device.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void EnableMFADeviceAsync(const Model::EnableMFADeviceRequest& request, const EnableMFADeviceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Generates a credential report for the AWS account. For more information * about the credential report, see Getting * Credential Reports in the IAM User Guide.

See Also:

* AWS * API Reference

*/ virtual Model::GenerateCredentialReportOutcome GenerateCredentialReport(const Model::GenerateCredentialReportRequest& request) const; /** *

Generates a credential report for the AWS account. For more information * about the credential report, see Getting * Credential Reports in the IAM User Guide.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GenerateCredentialReportOutcomeCallable GenerateCredentialReportCallable(const Model::GenerateCredentialReportRequest& request) const; /** *

Generates a credential report for the AWS account. For more information * about the credential report, see Getting * Credential Reports in the IAM User Guide.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GenerateCredentialReportAsync(const Model::GenerateCredentialReportRequest& request, const GenerateCredentialReportResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Generates a report for service last accessed data for AWS Organizations. You * can generate a report for any entities (organization root, organizational unit, * or account) or policies in your organization.

To call this operation, you * must be signed in using your AWS Organizations master account credentials. You * can use your long-term IAM user or root user credentials, or temporary * credentials from assuming an IAM role. SCPs must be enabled for your * organization root. You must have the required IAM and AWS Organizations * permissions. For more information, see Refining * Permissions Using Service Last Accessed Data in the IAM User * Guide.

You can generate a service last accessed data report for * entities by specifying only the entity's path. This data includes a list of * services that are allowed by any service control policies (SCPs) that apply to * the entity.

You can generate a service last accessed data report for a * policy by specifying an entity's path and an optional AWS Organizations policy * ID. This data includes a list of services that are allowed by the specified * SCP.

For each service in both report types, the data includes the most * recent account activity that the policy allows to account principals in the * entity or the entity's children. For important information about the data, * reporting period, permissions required, troubleshooting, and supported Regions * see Reducing * Permissions Using Service Last Accessed Data in the IAM User * Guide.

The data includes all attempts to access AWS, not * just the successful ones. This includes all attempts that were made using the * AWS Management Console, the AWS API through any of the SDKs, or any of the * command line tools. An unexpected entry in the service last accessed data does * not mean that an account has been compromised, because the request might have * been denied. Refer to your CloudTrail logs as the authoritative source for * information about all API calls and whether they were successful or denied * access. For more information, see Logging * IAM Events with CloudTrail in the IAM User Guide.

*

This operation returns a JobId. Use this parameter in the * GetOrganizationsAccessReport operation to check the status of the * report generation. To check the status of this request, use the * JobId parameter in the GetOrganizationsAccessReport * operation and test the JobStatus response parameter. When * the job is complete, you can retrieve the report.

To generate a service * last accessed data report for entities, specify an entity path without * specifying the optional AWS Organizations policy ID. The type of entity that you * specify determines the data returned in the report.

  • * Root – When you specify the organizations root as the entity, the * resulting report lists all of the services allowed by SCPs that are attached to * your root. For each service, the report includes data for all accounts in your * organization except the master account, because the master account is not * limited by SCPs.

  • OU – When you specify an * organizational unit (OU) as the entity, the resulting report lists all of the * services allowed by SCPs that are attached to the OU and its parents. For each * service, the report includes data for all accounts in the OU or its children. * This data excludes the master account, because the master account is not limited * by SCPs.

  • Master account – When you specify the master * account, the resulting report lists all AWS services, because the master account * is not limited by SCPs. For each service, the report includes data for only the * master account.

  • Account – When you specify another * account as the entity, the resulting report lists all of the services allowed by * SCPs that are attached to the account and its parents. For each service, the * report includes data for only the specified account.

To * generate a service last accessed data report for policies, specify an entity * path and the optional AWS Organizations policy ID. The type of entity that you * specify determines the data returned for each service.

  • * Root – When you specify the root entity and a policy ID, the resulting * report lists all of the services that are allowed by the specified SCP. For each * service, the report includes data for all accounts in your organization to which * the SCP applies. This data excludes the master account, because the master * account is not limited by SCPs. If the SCP is not attached to any entities in * the organization, then the report will return a list of services with no * data.

  • OU – When you specify an OU entity and a policy * ID, the resulting report lists all of the services that are allowed by the * specified SCP. For each service, the report includes data for all accounts in * the OU or its children to which the SCP applies. This means that other accounts * outside the OU that are affected by the SCP might not be included in the data. * This data excludes the master account, because the master account is not limited * by SCPs. If the SCP is not attached to the OU or one of its children, the report * will return a list of services with no data.

  • Master * account – When you specify the master account, the resulting report lists * all AWS services, because the master account is not limited by SCPs. If you * specify a policy ID in the CLI or API, the policy is ignored. For each service, * the report includes data for only the master account.

  • * Account – When you specify another account entity and a policy ID, the * resulting report lists all of the services that are allowed by the specified * SCP. For each service, the report includes data for only the specified account. * This means that other accounts in the organization that are affected by the SCP * might not be included in the data. If the SCP is not attached to the account, * the report will return a list of services with no data.

*

Service last accessed data does not use other policy types when determining * whether a principal could access a service. These other policy types include * identity-based policies, resource-based policies, access control lists, IAM * permissions boundaries, and STS assume role policies. It only applies SCP logic. * For more about the evaluation of policy types, see Evaluating * Policies in the IAM User Guide.

For more information * about service last accessed data, see Reducing * Policy Scope by Viewing User Activity in the IAM User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::GenerateOrganizationsAccessReportOutcome GenerateOrganizationsAccessReport(const Model::GenerateOrganizationsAccessReportRequest& request) const; /** *

Generates a report for service last accessed data for AWS Organizations. You * can generate a report for any entities (organization root, organizational unit, * or account) or policies in your organization.

To call this operation, you * must be signed in using your AWS Organizations master account credentials. You * can use your long-term IAM user or root user credentials, or temporary * credentials from assuming an IAM role. SCPs must be enabled for your * organization root. You must have the required IAM and AWS Organizations * permissions. For more information, see Refining * Permissions Using Service Last Accessed Data in the IAM User * Guide.

You can generate a service last accessed data report for * entities by specifying only the entity's path. This data includes a list of * services that are allowed by any service control policies (SCPs) that apply to * the entity.

You can generate a service last accessed data report for a * policy by specifying an entity's path and an optional AWS Organizations policy * ID. This data includes a list of services that are allowed by the specified * SCP.

For each service in both report types, the data includes the most * recent account activity that the policy allows to account principals in the * entity or the entity's children. For important information about the data, * reporting period, permissions required, troubleshooting, and supported Regions * see Reducing * Permissions Using Service Last Accessed Data in the IAM User * Guide.

The data includes all attempts to access AWS, not * just the successful ones. This includes all attempts that were made using the * AWS Management Console, the AWS API through any of the SDKs, or any of the * command line tools. An unexpected entry in the service last accessed data does * not mean that an account has been compromised, because the request might have * been denied. Refer to your CloudTrail logs as the authoritative source for * information about all API calls and whether they were successful or denied * access. For more information, see Logging * IAM Events with CloudTrail in the IAM User Guide.

*

This operation returns a JobId. Use this parameter in the * GetOrganizationsAccessReport operation to check the status of the * report generation. To check the status of this request, use the * JobId parameter in the GetOrganizationsAccessReport * operation and test the JobStatus response parameter. When * the job is complete, you can retrieve the report.

To generate a service * last accessed data report for entities, specify an entity path without * specifying the optional AWS Organizations policy ID. The type of entity that you * specify determines the data returned in the report.

  • * Root – When you specify the organizations root as the entity, the * resulting report lists all of the services allowed by SCPs that are attached to * your root. For each service, the report includes data for all accounts in your * organization except the master account, because the master account is not * limited by SCPs.

  • OU – When you specify an * organizational unit (OU) as the entity, the resulting report lists all of the * services allowed by SCPs that are attached to the OU and its parents. For each * service, the report includes data for all accounts in the OU or its children. * This data excludes the master account, because the master account is not limited * by SCPs.

  • Master account – When you specify the master * account, the resulting report lists all AWS services, because the master account * is not limited by SCPs. For each service, the report includes data for only the * master account.

  • Account – When you specify another * account as the entity, the resulting report lists all of the services allowed by * SCPs that are attached to the account and its parents. For each service, the * report includes data for only the specified account.

To * generate a service last accessed data report for policies, specify an entity * path and the optional AWS Organizations policy ID. The type of entity that you * specify determines the data returned for each service.

  • * Root – When you specify the root entity and a policy ID, the resulting * report lists all of the services that are allowed by the specified SCP. For each * service, the report includes data for all accounts in your organization to which * the SCP applies. This data excludes the master account, because the master * account is not limited by SCPs. If the SCP is not attached to any entities in * the organization, then the report will return a list of services with no * data.

  • OU – When you specify an OU entity and a policy * ID, the resulting report lists all of the services that are allowed by the * specified SCP. For each service, the report includes data for all accounts in * the OU or its children to which the SCP applies. This means that other accounts * outside the OU that are affected by the SCP might not be included in the data. * This data excludes the master account, because the master account is not limited * by SCPs. If the SCP is not attached to the OU or one of its children, the report * will return a list of services with no data.

  • Master * account – When you specify the master account, the resulting report lists * all AWS services, because the master account is not limited by SCPs. If you * specify a policy ID in the CLI or API, the policy is ignored. For each service, * the report includes data for only the master account.

  • * Account – When you specify another account entity and a policy ID, the * resulting report lists all of the services that are allowed by the specified * SCP. For each service, the report includes data for only the specified account. * This means that other accounts in the organization that are affected by the SCP * might not be included in the data. If the SCP is not attached to the account, * the report will return a list of services with no data.

*

Service last accessed data does not use other policy types when determining * whether a principal could access a service. These other policy types include * identity-based policies, resource-based policies, access control lists, IAM * permissions boundaries, and STS assume role policies. It only applies SCP logic. * For more about the evaluation of policy types, see Evaluating * Policies in the IAM User Guide.

For more information * about service last accessed data, see Reducing * Policy Scope by Viewing User Activity in the IAM User * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GenerateOrganizationsAccessReportOutcomeCallable GenerateOrganizationsAccessReportCallable(const Model::GenerateOrganizationsAccessReportRequest& request) const; /** *

Generates a report for service last accessed data for AWS Organizations. You * can generate a report for any entities (organization root, organizational unit, * or account) or policies in your organization.

To call this operation, you * must be signed in using your AWS Organizations master account credentials. You * can use your long-term IAM user or root user credentials, or temporary * credentials from assuming an IAM role. SCPs must be enabled for your * organization root. You must have the required IAM and AWS Organizations * permissions. For more information, see Refining * Permissions Using Service Last Accessed Data in the IAM User * Guide.

You can generate a service last accessed data report for * entities by specifying only the entity's path. This data includes a list of * services that are allowed by any service control policies (SCPs) that apply to * the entity.

You can generate a service last accessed data report for a * policy by specifying an entity's path and an optional AWS Organizations policy * ID. This data includes a list of services that are allowed by the specified * SCP.

For each service in both report types, the data includes the most * recent account activity that the policy allows to account principals in the * entity or the entity's children. For important information about the data, * reporting period, permissions required, troubleshooting, and supported Regions * see Reducing * Permissions Using Service Last Accessed Data in the IAM User * Guide.

The data includes all attempts to access AWS, not * just the successful ones. This includes all attempts that were made using the * AWS Management Console, the AWS API through any of the SDKs, or any of the * command line tools. An unexpected entry in the service last accessed data does * not mean that an account has been compromised, because the request might have * been denied. Refer to your CloudTrail logs as the authoritative source for * information about all API calls and whether they were successful or denied * access. For more information, see Logging * IAM Events with CloudTrail in the IAM User Guide.

*

This operation returns a JobId. Use this parameter in the * GetOrganizationsAccessReport operation to check the status of the * report generation. To check the status of this request, use the * JobId parameter in the GetOrganizationsAccessReport * operation and test the JobStatus response parameter. When * the job is complete, you can retrieve the report.

To generate a service * last accessed data report for entities, specify an entity path without * specifying the optional AWS Organizations policy ID. The type of entity that you * specify determines the data returned in the report.

  • * Root – When you specify the organizations root as the entity, the * resulting report lists all of the services allowed by SCPs that are attached to * your root. For each service, the report includes data for all accounts in your * organization except the master account, because the master account is not * limited by SCPs.

  • OU – When you specify an * organizational unit (OU) as the entity, the resulting report lists all of the * services allowed by SCPs that are attached to the OU and its parents. For each * service, the report includes data for all accounts in the OU or its children. * This data excludes the master account, because the master account is not limited * by SCPs.

  • Master account – When you specify the master * account, the resulting report lists all AWS services, because the master account * is not limited by SCPs. For each service, the report includes data for only the * master account.

  • Account – When you specify another * account as the entity, the resulting report lists all of the services allowed by * SCPs that are attached to the account and its parents. For each service, the * report includes data for only the specified account.

To * generate a service last accessed data report for policies, specify an entity * path and the optional AWS Organizations policy ID. The type of entity that you * specify determines the data returned for each service.

  • * Root – When you specify the root entity and a policy ID, the resulting * report lists all of the services that are allowed by the specified SCP. For each * service, the report includes data for all accounts in your organization to which * the SCP applies. This data excludes the master account, because the master * account is not limited by SCPs. If the SCP is not attached to any entities in * the organization, then the report will return a list of services with no * data.

  • OU – When you specify an OU entity and a policy * ID, the resulting report lists all of the services that are allowed by the * specified SCP. For each service, the report includes data for all accounts in * the OU or its children to which the SCP applies. This means that other accounts * outside the OU that are affected by the SCP might not be included in the data. * This data excludes the master account, because the master account is not limited * by SCPs. If the SCP is not attached to the OU or one of its children, the report * will return a list of services with no data.

  • Master * account – When you specify the master account, the resulting report lists * all AWS services, because the master account is not limited by SCPs. If you * specify a policy ID in the CLI or API, the policy is ignored. For each service, * the report includes data for only the master account.

  • * Account – When you specify another account entity and a policy ID, the * resulting report lists all of the services that are allowed by the specified * SCP. For each service, the report includes data for only the specified account. * This means that other accounts in the organization that are affected by the SCP * might not be included in the data. If the SCP is not attached to the account, * the report will return a list of services with no data.

*

Service last accessed data does not use other policy types when determining * whether a principal could access a service. These other policy types include * identity-based policies, resource-based policies, access control lists, IAM * permissions boundaries, and STS assume role policies. It only applies SCP logic. * For more about the evaluation of policy types, see Evaluating * Policies in the IAM User Guide.

For more information * about service last accessed data, see Reducing * Policy Scope by Viewing User Activity in the IAM User * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GenerateOrganizationsAccessReportAsync(const Model::GenerateOrganizationsAccessReportRequest& request, const GenerateOrganizationsAccessReportResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Generates a report that includes details about when an IAM resource (user, * group, role, or policy) was last used in an attempt to access AWS services. * Recent activity usually appears within four hours. IAM reports activity for the * last 365 days, or less if your Region began supporting this feature within the * last year. For more information, see Regions * Where Data Is Tracked.

The service last accessed data * includes all attempts to access an AWS API, not just the successful ones. This * includes all attempts that were made using the AWS Management Console, the AWS * API through any of the SDKs, or any of the command line tools. An unexpected * entry in the service last accessed data does not mean that your account has been * compromised, because the request might have been denied. Refer to your * CloudTrail logs as the authoritative source for information about all API calls * and whether they were successful or denied access. For more information, see Logging * IAM Events with CloudTrail in the IAM User Guide.

*

The GenerateServiceLastAccessedDetails operation returns a * JobId. Use this parameter in the following operations to retrieve * the following details from your report:

  • * GetServiceLastAccessedDetails – Use this operation for users, groups, * roles, or policies to list every AWS service that the resource could access * using permissions policies. For each service, the response includes information * about the most recent access attempt.

    The JobId returned by * GenerateServiceLastAccessedDetail must be used by the same role * within a session, or by the same user when used to call * GetServiceLastAccessedDetail.

  • * GetServiceLastAccessedDetailsWithEntities – Use this operation for groups * and policies to list information about the associated entities (users or roles) * that attempted to access a specific AWS service.

To check * the status of the GenerateServiceLastAccessedDetails request, use * the JobId parameter in the same operations and test the * JobStatus response parameter.

For additional information * about the permissions policies that allow an identity (user, group, or role) to * access specific services, use the ListPoliciesGrantingServiceAccess * operation.

Service last accessed data does not use other policy * types when determining whether a resource could access a service. These other * policy types include resource-based policies, access control lists, AWS * Organizations policies, IAM permissions boundaries, and AWS STS assume role * policies. It only applies permissions policy logic. For more about the * evaluation of policy types, see Evaluating * Policies in the IAM User Guide.

For more information * about service and action last accessed data, see Reducing * Permissions Using Service Last Accessed Data in the IAM User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::GenerateServiceLastAccessedDetailsOutcome GenerateServiceLastAccessedDetails(const Model::GenerateServiceLastAccessedDetailsRequest& request) const; /** *

Generates a report that includes details about when an IAM resource (user, * group, role, or policy) was last used in an attempt to access AWS services. * Recent activity usually appears within four hours. IAM reports activity for the * last 365 days, or less if your Region began supporting this feature within the * last year. For more information, see Regions * Where Data Is Tracked.

The service last accessed data * includes all attempts to access an AWS API, not just the successful ones. This * includes all attempts that were made using the AWS Management Console, the AWS * API through any of the SDKs, or any of the command line tools. An unexpected * entry in the service last accessed data does not mean that your account has been * compromised, because the request might have been denied. Refer to your * CloudTrail logs as the authoritative source for information about all API calls * and whether they were successful or denied access. For more information, see Logging * IAM Events with CloudTrail in the IAM User Guide.

*

The GenerateServiceLastAccessedDetails operation returns a * JobId. Use this parameter in the following operations to retrieve * the following details from your report:

  • * GetServiceLastAccessedDetails – Use this operation for users, groups, * roles, or policies to list every AWS service that the resource could access * using permissions policies. For each service, the response includes information * about the most recent access attempt.

    The JobId returned by * GenerateServiceLastAccessedDetail must be used by the same role * within a session, or by the same user when used to call * GetServiceLastAccessedDetail.

  • * GetServiceLastAccessedDetailsWithEntities – Use this operation for groups * and policies to list information about the associated entities (users or roles) * that attempted to access a specific AWS service.

To check * the status of the GenerateServiceLastAccessedDetails request, use * the JobId parameter in the same operations and test the * JobStatus response parameter.

For additional information * about the permissions policies that allow an identity (user, group, or role) to * access specific services, use the ListPoliciesGrantingServiceAccess * operation.

Service last accessed data does not use other policy * types when determining whether a resource could access a service. These other * policy types include resource-based policies, access control lists, AWS * Organizations policies, IAM permissions boundaries, and AWS STS assume role * policies. It only applies permissions policy logic. For more about the * evaluation of policy types, see Evaluating * Policies in the IAM User Guide.

For more information * about service and action last accessed data, see Reducing * Permissions Using Service Last Accessed Data in the IAM User * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GenerateServiceLastAccessedDetailsOutcomeCallable GenerateServiceLastAccessedDetailsCallable(const Model::GenerateServiceLastAccessedDetailsRequest& request) const; /** *

Generates a report that includes details about when an IAM resource (user, * group, role, or policy) was last used in an attempt to access AWS services. * Recent activity usually appears within four hours. IAM reports activity for the * last 365 days, or less if your Region began supporting this feature within the * last year. For more information, see Regions * Where Data Is Tracked.

The service last accessed data * includes all attempts to access an AWS API, not just the successful ones. This * includes all attempts that were made using the AWS Management Console, the AWS * API through any of the SDKs, or any of the command line tools. An unexpected * entry in the service last accessed data does not mean that your account has been * compromised, because the request might have been denied. Refer to your * CloudTrail logs as the authoritative source for information about all API calls * and whether they were successful or denied access. For more information, see Logging * IAM Events with CloudTrail in the IAM User Guide.

*

The GenerateServiceLastAccessedDetails operation returns a * JobId. Use this parameter in the following operations to retrieve * the following details from your report:

  • * GetServiceLastAccessedDetails – Use this operation for users, groups, * roles, or policies to list every AWS service that the resource could access * using permissions policies. For each service, the response includes information * about the most recent access attempt.

    The JobId returned by * GenerateServiceLastAccessedDetail must be used by the same role * within a session, or by the same user when used to call * GetServiceLastAccessedDetail.

  • * GetServiceLastAccessedDetailsWithEntities – Use this operation for groups * and policies to list information about the associated entities (users or roles) * that attempted to access a specific AWS service.

To check * the status of the GenerateServiceLastAccessedDetails request, use * the JobId parameter in the same operations and test the * JobStatus response parameter.

For additional information * about the permissions policies that allow an identity (user, group, or role) to * access specific services, use the ListPoliciesGrantingServiceAccess * operation.

Service last accessed data does not use other policy * types when determining whether a resource could access a service. These other * policy types include resource-based policies, access control lists, AWS * Organizations policies, IAM permissions boundaries, and AWS STS assume role * policies. It only applies permissions policy logic. For more about the * evaluation of policy types, see Evaluating * Policies in the IAM User Guide.

For more information * about service and action last accessed data, see Reducing * Permissions Using Service Last Accessed Data in the IAM User * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GenerateServiceLastAccessedDetailsAsync(const Model::GenerateServiceLastAccessedDetailsRequest& request, const GenerateServiceLastAccessedDetailsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves information about when the specified access key was last used. The * information includes the date and time of last use, along with the AWS service * and Region that were specified in the last request made with that * key.

See Also:

AWS * API Reference

*/ virtual Model::GetAccessKeyLastUsedOutcome GetAccessKeyLastUsed(const Model::GetAccessKeyLastUsedRequest& request) const; /** *

Retrieves information about when the specified access key was last used. The * information includes the date and time of last use, along with the AWS service * and Region that were specified in the last request made with that * key.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetAccessKeyLastUsedOutcomeCallable GetAccessKeyLastUsedCallable(const Model::GetAccessKeyLastUsedRequest& request) const; /** *

Retrieves information about when the specified access key was last used. The * information includes the date and time of last use, along with the AWS service * and Region that were specified in the last request made with that * key.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetAccessKeyLastUsedAsync(const Model::GetAccessKeyLastUsedRequest& request, const GetAccessKeyLastUsedResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves information about all IAM users, groups, roles, and policies in * your AWS account, including their relationships to one another. Use this API to * obtain a snapshot of the configuration of IAM permissions (users, groups, roles, * and policies) in your account.

Policies returned by this API are * URL-encoded compliant with RFC * 3986. You can use a URL decoding method to convert the policy back to plain * JSON text. For example, if you use Java, you can use the decode * method of the java.net.URLDecoder utility class in the Java SDK. * Other languages and SDKs provide similar functionality.

You can * optionally filter the results using the Filter parameter. You can * paginate the results using the MaxItems and Marker * parameters.

See Also:

AWS * API Reference

*/ virtual Model::GetAccountAuthorizationDetailsOutcome GetAccountAuthorizationDetails(const Model::GetAccountAuthorizationDetailsRequest& request) const; /** *

Retrieves information about all IAM users, groups, roles, and policies in * your AWS account, including their relationships to one another. Use this API to * obtain a snapshot of the configuration of IAM permissions (users, groups, roles, * and policies) in your account.

Policies returned by this API are * URL-encoded compliant with RFC * 3986. You can use a URL decoding method to convert the policy back to plain * JSON text. For example, if you use Java, you can use the decode * method of the java.net.URLDecoder utility class in the Java SDK. * Other languages and SDKs provide similar functionality.

You can * optionally filter the results using the Filter parameter. You can * paginate the results using the MaxItems and Marker * parameters.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetAccountAuthorizationDetailsOutcomeCallable GetAccountAuthorizationDetailsCallable(const Model::GetAccountAuthorizationDetailsRequest& request) const; /** *

Retrieves information about all IAM users, groups, roles, and policies in * your AWS account, including their relationships to one another. Use this API to * obtain a snapshot of the configuration of IAM permissions (users, groups, roles, * and policies) in your account.

Policies returned by this API are * URL-encoded compliant with RFC * 3986. You can use a URL decoding method to convert the policy back to plain * JSON text. For example, if you use Java, you can use the decode * method of the java.net.URLDecoder utility class in the Java SDK. * Other languages and SDKs provide similar functionality.

You can * optionally filter the results using the Filter parameter. You can * paginate the results using the MaxItems and Marker * parameters.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetAccountAuthorizationDetailsAsync(const Model::GetAccountAuthorizationDetailsRequest& request, const GetAccountAuthorizationDetailsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves the password policy for the AWS account. For more information about * using a password policy, go to Managing * an IAM Password Policy.

See Also:

AWS * API Reference

*/ virtual Model::GetAccountPasswordPolicyOutcome GetAccountPasswordPolicy(const Model::GetAccountPasswordPolicyRequest& request) const; /** *

Retrieves the password policy for the AWS account. For more information about * using a password policy, go to Managing * an IAM Password Policy.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetAccountPasswordPolicyOutcomeCallable GetAccountPasswordPolicyCallable(const Model::GetAccountPasswordPolicyRequest& request) const; /** *

Retrieves the password policy for the AWS account. For more information about * using a password policy, go to Managing * an IAM Password Policy.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetAccountPasswordPolicyAsync(const Model::GetAccountPasswordPolicyRequest& request, const GetAccountPasswordPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves information about IAM entity usage and IAM quotas in the AWS * account.

The number and size of IAM resources in an AWS account are * limited. For more information, see IAM * and STS Quotas in the IAM User Guide.

See Also:

AWS * API Reference

*/ virtual Model::GetAccountSummaryOutcome GetAccountSummary(const Model::GetAccountSummaryRequest& request) const; /** *

Retrieves information about IAM entity usage and IAM quotas in the AWS * account.

The number and size of IAM resources in an AWS account are * limited. For more information, see IAM * and STS Quotas in the IAM User Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetAccountSummaryOutcomeCallable GetAccountSummaryCallable(const Model::GetAccountSummaryRequest& request) const; /** *

Retrieves information about IAM entity usage and IAM quotas in the AWS * account.

The number and size of IAM resources in an AWS account are * limited. For more information, see IAM * and STS Quotas in the IAM User Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetAccountSummaryAsync(const Model::GetAccountSummaryRequest& request, const GetAccountSummaryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Gets a list of all of the context keys referenced in the input policies. The * policies are supplied as a list of one or more strings. To get the context keys * from policies associated with an IAM user, group, or role, use * GetContextKeysForPrincipalPolicy.

Context keys are variables * maintained by AWS and its services that provide details about the context of an * API query request. Context keys can be evaluated by testing against a value * specified in an IAM policy. Use GetContextKeysForCustomPolicy to * understand what key names and values you must supply when you call * SimulateCustomPolicy. Note that all parameters are shown in unencoded * form here for clarity but must be URL encoded to be included as a part of a real * HTML request.

See Also:

AWS * API Reference

*/ virtual Model::GetContextKeysForCustomPolicyOutcome GetContextKeysForCustomPolicy(const Model::GetContextKeysForCustomPolicyRequest& request) const; /** *

Gets a list of all of the context keys referenced in the input policies. The * policies are supplied as a list of one or more strings. To get the context keys * from policies associated with an IAM user, group, or role, use * GetContextKeysForPrincipalPolicy.

Context keys are variables * maintained by AWS and its services that provide details about the context of an * API query request. Context keys can be evaluated by testing against a value * specified in an IAM policy. Use GetContextKeysForCustomPolicy to * understand what key names and values you must supply when you call * SimulateCustomPolicy. Note that all parameters are shown in unencoded * form here for clarity but must be URL encoded to be included as a part of a real * HTML request.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetContextKeysForCustomPolicyOutcomeCallable GetContextKeysForCustomPolicyCallable(const Model::GetContextKeysForCustomPolicyRequest& request) const; /** *

Gets a list of all of the context keys referenced in the input policies. The * policies are supplied as a list of one or more strings. To get the context keys * from policies associated with an IAM user, group, or role, use * GetContextKeysForPrincipalPolicy.

Context keys are variables * maintained by AWS and its services that provide details about the context of an * API query request. Context keys can be evaluated by testing against a value * specified in an IAM policy. Use GetContextKeysForCustomPolicy to * understand what key names and values you must supply when you call * SimulateCustomPolicy. Note that all parameters are shown in unencoded * form here for clarity but must be URL encoded to be included as a part of a real * HTML request.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetContextKeysForCustomPolicyAsync(const Model::GetContextKeysForCustomPolicyRequest& request, const GetContextKeysForCustomPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Gets a list of all of the context keys referenced in all the IAM policies * that are attached to the specified IAM entity. The entity can be an IAM user, * group, or role. If you specify a user, then the request also includes all of the * policies attached to groups that the user is a member of.

You can * optionally include a list of one or more additional policies, specified as * strings. If you want to include only a list of policies by string, use * GetContextKeysForCustomPolicy instead.

Note: This API * discloses information about the permissions granted to other users. If you do * not want users to see other user's permissions, then consider allowing them to * use GetContextKeysForCustomPolicy instead.

Context keys are * variables maintained by AWS and its services that provide details about the * context of an API query request. Context keys can be evaluated by testing * against a value in an IAM policy. Use GetContextKeysForPrincipalPolicy to * understand what key names and values you must supply when you call * SimulatePrincipalPolicy.

See Also:

AWS * API Reference

*/ virtual Model::GetContextKeysForPrincipalPolicyOutcome GetContextKeysForPrincipalPolicy(const Model::GetContextKeysForPrincipalPolicyRequest& request) const; /** *

Gets a list of all of the context keys referenced in all the IAM policies * that are attached to the specified IAM entity. The entity can be an IAM user, * group, or role. If you specify a user, then the request also includes all of the * policies attached to groups that the user is a member of.

You can * optionally include a list of one or more additional policies, specified as * strings. If you want to include only a list of policies by string, use * GetContextKeysForCustomPolicy instead.

Note: This API * discloses information about the permissions granted to other users. If you do * not want users to see other user's permissions, then consider allowing them to * use GetContextKeysForCustomPolicy instead.

Context keys are * variables maintained by AWS and its services that provide details about the * context of an API query request. Context keys can be evaluated by testing * against a value in an IAM policy. Use GetContextKeysForPrincipalPolicy to * understand what key names and values you must supply when you call * SimulatePrincipalPolicy.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetContextKeysForPrincipalPolicyOutcomeCallable GetContextKeysForPrincipalPolicyCallable(const Model::GetContextKeysForPrincipalPolicyRequest& request) const; /** *

Gets a list of all of the context keys referenced in all the IAM policies * that are attached to the specified IAM entity. The entity can be an IAM user, * group, or role. If you specify a user, then the request also includes all of the * policies attached to groups that the user is a member of.

You can * optionally include a list of one or more additional policies, specified as * strings. If you want to include only a list of policies by string, use * GetContextKeysForCustomPolicy instead.

Note: This API * discloses information about the permissions granted to other users. If you do * not want users to see other user's permissions, then consider allowing them to * use GetContextKeysForCustomPolicy instead.

Context keys are * variables maintained by AWS and its services that provide details about the * context of an API query request. Context keys can be evaluated by testing * against a value in an IAM policy. Use GetContextKeysForPrincipalPolicy to * understand what key names and values you must supply when you call * SimulatePrincipalPolicy.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetContextKeysForPrincipalPolicyAsync(const Model::GetContextKeysForPrincipalPolicyRequest& request, const GetContextKeysForPrincipalPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves a credential report for the AWS account. For more information * about the credential report, see Getting * Credential Reports in the IAM User Guide.

See Also:

* AWS * API Reference

*/ virtual Model::GetCredentialReportOutcome GetCredentialReport(const Model::GetCredentialReportRequest& request) const; /** *

Retrieves a credential report for the AWS account. For more information * about the credential report, see Getting * Credential Reports in the IAM User Guide.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetCredentialReportOutcomeCallable GetCredentialReportCallable(const Model::GetCredentialReportRequest& request) const; /** *

Retrieves a credential report for the AWS account. For more information * about the credential report, see Getting * Credential Reports in the IAM User Guide.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetCredentialReportAsync(const Model::GetCredentialReportRequest& request, const GetCredentialReportResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns a list of IAM users that are in the specified IAM group. You can * paginate the results using the MaxItems and Marker * parameters.

See Also:

AWS API * Reference

*/ virtual Model::GetGroupOutcome GetGroup(const Model::GetGroupRequest& request) const; /** *

Returns a list of IAM users that are in the specified IAM group. You can * paginate the results using the MaxItems and Marker * parameters.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetGroupOutcomeCallable GetGroupCallable(const Model::GetGroupRequest& request) const; /** *

Returns a list of IAM users that are in the specified IAM group. You can * paginate the results using the MaxItems and Marker * parameters.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetGroupAsync(const Model::GetGroupRequest& request, const GetGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves the specified inline policy document that is embedded in the * specified IAM group.

Policies returned by this API are URL-encoded * compliant with RFC 3986. You * can use a URL decoding method to convert the policy back to plain JSON text. For * example, if you use Java, you can use the decode method of the * java.net.URLDecoder utility class in the Java SDK. Other languages * and SDKs provide similar functionality.

An IAM group can also * have managed policies attached to it. To retrieve a managed policy document that * is attached to a group, use GetPolicy to determine the policy's default * version, then use GetPolicyVersion to retrieve the policy document.

*

For more information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::GetGroupPolicyOutcome GetGroupPolicy(const Model::GetGroupPolicyRequest& request) const; /** *

Retrieves the specified inline policy document that is embedded in the * specified IAM group.

Policies returned by this API are URL-encoded * compliant with RFC 3986. You * can use a URL decoding method to convert the policy back to plain JSON text. For * example, if you use Java, you can use the decode method of the * java.net.URLDecoder utility class in the Java SDK. Other languages * and SDKs provide similar functionality.

An IAM group can also * have managed policies attached to it. To retrieve a managed policy document that * is attached to a group, use GetPolicy to determine the policy's default * version, then use GetPolicyVersion to retrieve the policy document.

*

For more information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetGroupPolicyOutcomeCallable GetGroupPolicyCallable(const Model::GetGroupPolicyRequest& request) const; /** *

Retrieves the specified inline policy document that is embedded in the * specified IAM group.

Policies returned by this API are URL-encoded * compliant with RFC 3986. You * can use a URL decoding method to convert the policy back to plain JSON text. For * example, if you use Java, you can use the decode method of the * java.net.URLDecoder utility class in the Java SDK. Other languages * and SDKs provide similar functionality.

An IAM group can also * have managed policies attached to it. To retrieve a managed policy document that * is attached to a group, use GetPolicy to determine the policy's default * version, then use GetPolicyVersion to retrieve the policy document.

*

For more information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetGroupPolicyAsync(const Model::GetGroupPolicyRequest& request, const GetGroupPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves information about the specified instance profile, including the * instance profile's path, GUID, ARN, and role. For more information about * instance profiles, see About * Instance Profiles in the IAM User Guide.

See Also:

* AWS * API Reference

*/ virtual Model::GetInstanceProfileOutcome GetInstanceProfile(const Model::GetInstanceProfileRequest& request) const; /** *

Retrieves information about the specified instance profile, including the * instance profile's path, GUID, ARN, and role. For more information about * instance profiles, see About * Instance Profiles in the IAM User Guide.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetInstanceProfileOutcomeCallable GetInstanceProfileCallable(const Model::GetInstanceProfileRequest& request) const; /** *

Retrieves information about the specified instance profile, including the * instance profile's path, GUID, ARN, and role. For more information about * instance profiles, see About * Instance Profiles in the IAM User Guide.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetInstanceProfileAsync(const Model::GetInstanceProfileRequest& request, const GetInstanceProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves the user name and password-creation date for the specified IAM * user. If the user has not been assigned a password, the operation returns a 404 * (NoSuchEntity) error.

See Also:

AWS * API Reference

*/ virtual Model::GetLoginProfileOutcome GetLoginProfile(const Model::GetLoginProfileRequest& request) const; /** *

Retrieves the user name and password-creation date for the specified IAM * user. If the user has not been assigned a password, the operation returns a 404 * (NoSuchEntity) error.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetLoginProfileOutcomeCallable GetLoginProfileCallable(const Model::GetLoginProfileRequest& request) const; /** *

Retrieves the user name and password-creation date for the specified IAM * user. If the user has not been assigned a password, the operation returns a 404 * (NoSuchEntity) error.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetLoginProfileAsync(const Model::GetLoginProfileRequest& request, const GetLoginProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns information about the specified OpenID Connect (OIDC) provider * resource object in IAM.

See Also:

AWS * API Reference

*/ virtual Model::GetOpenIDConnectProviderOutcome GetOpenIDConnectProvider(const Model::GetOpenIDConnectProviderRequest& request) const; /** *

Returns information about the specified OpenID Connect (OIDC) provider * resource object in IAM.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetOpenIDConnectProviderOutcomeCallable GetOpenIDConnectProviderCallable(const Model::GetOpenIDConnectProviderRequest& request) const; /** *

Returns information about the specified OpenID Connect (OIDC) provider * resource object in IAM.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetOpenIDConnectProviderAsync(const Model::GetOpenIDConnectProviderRequest& request, const GetOpenIDConnectProviderResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves the service last accessed data report for AWS Organizations that * was previously generated using the * GenerateOrganizationsAccessReport operation. This operation * retrieves the status of your report job and the report contents.

*

Depending on the parameters that you passed when you generated the report, * the data returned could include different information. For details, see * GenerateOrganizationsAccessReport.

To call this operation, you * must be signed in to the master account in your organization. SCPs must be * enabled for your organization root. You must have permissions to perform this * operation. For more information, see Refining * Permissions Using Service Last Accessed Data in the IAM User * Guide.

For each service that principals in an account (root users, * IAM users, or IAM roles) could access using SCPs, the operation returns details * about the most recent access attempt. If there was no attempt, the service is * listed without details about the most recent attempt to access the service. If * the operation fails, it returns the reason that it failed.

By default, * the list is sorted by service namespace.

See Also:

AWS * API Reference

*/ virtual Model::GetOrganizationsAccessReportOutcome GetOrganizationsAccessReport(const Model::GetOrganizationsAccessReportRequest& request) const; /** *

Retrieves the service last accessed data report for AWS Organizations that * was previously generated using the * GenerateOrganizationsAccessReport operation. This operation * retrieves the status of your report job and the report contents.

*

Depending on the parameters that you passed when you generated the report, * the data returned could include different information. For details, see * GenerateOrganizationsAccessReport.

To call this operation, you * must be signed in to the master account in your organization. SCPs must be * enabled for your organization root. You must have permissions to perform this * operation. For more information, see Refining * Permissions Using Service Last Accessed Data in the IAM User * Guide.

For each service that principals in an account (root users, * IAM users, or IAM roles) could access using SCPs, the operation returns details * about the most recent access attempt. If there was no attempt, the service is * listed without details about the most recent attempt to access the service. If * the operation fails, it returns the reason that it failed.

By default, * the list is sorted by service namespace.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetOrganizationsAccessReportOutcomeCallable GetOrganizationsAccessReportCallable(const Model::GetOrganizationsAccessReportRequest& request) const; /** *

Retrieves the service last accessed data report for AWS Organizations that * was previously generated using the * GenerateOrganizationsAccessReport operation. This operation * retrieves the status of your report job and the report contents.

*

Depending on the parameters that you passed when you generated the report, * the data returned could include different information. For details, see * GenerateOrganizationsAccessReport.

To call this operation, you * must be signed in to the master account in your organization. SCPs must be * enabled for your organization root. You must have permissions to perform this * operation. For more information, see Refining * Permissions Using Service Last Accessed Data in the IAM User * Guide.

For each service that principals in an account (root users, * IAM users, or IAM roles) could access using SCPs, the operation returns details * about the most recent access attempt. If there was no attempt, the service is * listed without details about the most recent attempt to access the service. If * the operation fails, it returns the reason that it failed.

By default, * the list is sorted by service namespace.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetOrganizationsAccessReportAsync(const Model::GetOrganizationsAccessReportRequest& request, const GetOrganizationsAccessReportResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves information about the specified managed policy, including the * policy's default version and the total number of IAM users, groups, and roles to * which the policy is attached. To retrieve the list of the specific users, * groups, and roles that the policy is attached to, use the * ListEntitiesForPolicy API. This API returns metadata about the policy. To * retrieve the actual policy document for a specific version of the policy, use * GetPolicyVersion.

This API retrieves information about managed * policies. To retrieve information about an inline policy that is embedded with * an IAM user, group, or role, use the GetUserPolicy, * GetGroupPolicy, or GetRolePolicy API.

For more information * about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS API * Reference

*/ virtual Model::GetPolicyOutcome GetPolicy(const Model::GetPolicyRequest& request) const; /** *

Retrieves information about the specified managed policy, including the * policy's default version and the total number of IAM users, groups, and roles to * which the policy is attached. To retrieve the list of the specific users, * groups, and roles that the policy is attached to, use the * ListEntitiesForPolicy API. This API returns metadata about the policy. To * retrieve the actual policy document for a specific version of the policy, use * GetPolicyVersion.

This API retrieves information about managed * policies. To retrieve information about an inline policy that is embedded with * an IAM user, group, or role, use the GetUserPolicy, * GetGroupPolicy, or GetRolePolicy API.

For more information * about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetPolicyOutcomeCallable GetPolicyCallable(const Model::GetPolicyRequest& request) const; /** *

Retrieves information about the specified managed policy, including the * policy's default version and the total number of IAM users, groups, and roles to * which the policy is attached. To retrieve the list of the specific users, * groups, and roles that the policy is attached to, use the * ListEntitiesForPolicy API. This API returns metadata about the policy. To * retrieve the actual policy document for a specific version of the policy, use * GetPolicyVersion.

This API retrieves information about managed * policies. To retrieve information about an inline policy that is embedded with * an IAM user, group, or role, use the GetUserPolicy, * GetGroupPolicy, or GetRolePolicy API.

For more information * about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetPolicyAsync(const Model::GetPolicyRequest& request, const GetPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves information about the specified version of the specified managed * policy, including the policy document.

Policies returned by this * API are URL-encoded compliant with RFC 3986. You can use a URL * decoding method to convert the policy back to plain JSON text. For example, if * you use Java, you can use the decode method of the * java.net.URLDecoder utility class in the Java SDK. Other languages * and SDKs provide similar functionality.

To list the available * versions for a policy, use ListPolicyVersions.

This API retrieves * information about managed policies. To retrieve information about an inline * policy that is embedded in a user, group, or role, use the GetUserPolicy, * GetGroupPolicy, or GetRolePolicy API.

For more information * about the types of policies, see Managed * Policies and Inline Policies in the IAM User Guide.

For more * information about managed policy versions, see Versioning * for Managed Policies in the IAM User Guide.

See Also:

* AWS * API Reference

*/ virtual Model::GetPolicyVersionOutcome GetPolicyVersion(const Model::GetPolicyVersionRequest& request) const; /** *

Retrieves information about the specified version of the specified managed * policy, including the policy document.

Policies returned by this * API are URL-encoded compliant with RFC 3986. You can use a URL * decoding method to convert the policy back to plain JSON text. For example, if * you use Java, you can use the decode method of the * java.net.URLDecoder utility class in the Java SDK. Other languages * and SDKs provide similar functionality.

To list the available * versions for a policy, use ListPolicyVersions.

This API retrieves * information about managed policies. To retrieve information about an inline * policy that is embedded in a user, group, or role, use the GetUserPolicy, * GetGroupPolicy, or GetRolePolicy API.

For more information * about the types of policies, see Managed * Policies and Inline Policies in the IAM User Guide.

For more * information about managed policy versions, see Versioning * for Managed Policies in the IAM User Guide.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetPolicyVersionOutcomeCallable GetPolicyVersionCallable(const Model::GetPolicyVersionRequest& request) const; /** *

Retrieves information about the specified version of the specified managed * policy, including the policy document.

Policies returned by this * API are URL-encoded compliant with RFC 3986. You can use a URL * decoding method to convert the policy back to plain JSON text. For example, if * you use Java, you can use the decode method of the * java.net.URLDecoder utility class in the Java SDK. Other languages * and SDKs provide similar functionality.

To list the available * versions for a policy, use ListPolicyVersions.

This API retrieves * information about managed policies. To retrieve information about an inline * policy that is embedded in a user, group, or role, use the GetUserPolicy, * GetGroupPolicy, or GetRolePolicy API.

For more information * about the types of policies, see Managed * Policies and Inline Policies in the IAM User Guide.

For more * information about managed policy versions, see Versioning * for Managed Policies in the IAM User Guide.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetPolicyVersionAsync(const Model::GetPolicyVersionRequest& request, const GetPolicyVersionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves information about the specified role, including the role's path, * GUID, ARN, and the role's trust policy that grants permission to assume the * role. For more information about roles, see Working * with Roles.

Policies returned by this API are URL-encoded * compliant with RFC 3986. You * can use a URL decoding method to convert the policy back to plain JSON text. For * example, if you use Java, you can use the decode method of the * java.net.URLDecoder utility class in the Java SDK. Other languages * and SDKs provide similar functionality.

See Also:

AWS API * Reference

*/ virtual Model::GetRoleOutcome GetRole(const Model::GetRoleRequest& request) const; /** *

Retrieves information about the specified role, including the role's path, * GUID, ARN, and the role's trust policy that grants permission to assume the * role. For more information about roles, see Working * with Roles.

Policies returned by this API are URL-encoded * compliant with RFC 3986. You * can use a URL decoding method to convert the policy back to plain JSON text. For * example, if you use Java, you can use the decode method of the * java.net.URLDecoder utility class in the Java SDK. Other languages * and SDKs provide similar functionality.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetRoleOutcomeCallable GetRoleCallable(const Model::GetRoleRequest& request) const; /** *

Retrieves information about the specified role, including the role's path, * GUID, ARN, and the role's trust policy that grants permission to assume the * role. For more information about roles, see Working * with Roles.

Policies returned by this API are URL-encoded * compliant with RFC 3986. You * can use a URL decoding method to convert the policy back to plain JSON text. For * example, if you use Java, you can use the decode method of the * java.net.URLDecoder utility class in the Java SDK. Other languages * and SDKs provide similar functionality.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetRoleAsync(const Model::GetRoleRequest& request, const GetRoleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves the specified inline policy document that is embedded with the * specified IAM role.

Policies returned by this API are URL-encoded * compliant with RFC 3986. You * can use a URL decoding method to convert the policy back to plain JSON text. For * example, if you use Java, you can use the decode method of the * java.net.URLDecoder utility class in the Java SDK. Other languages * and SDKs provide similar functionality.

An IAM role can also have * managed policies attached to it. To retrieve a managed policy document that is * attached to a role, use GetPolicy to determine the policy's default * version, then use GetPolicyVersion to retrieve the policy document.

*

For more information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

For more * information about roles, see Using * Roles to Delegate Permissions and Federate Identities.

See * Also:

AWS * API Reference

*/ virtual Model::GetRolePolicyOutcome GetRolePolicy(const Model::GetRolePolicyRequest& request) const; /** *

Retrieves the specified inline policy document that is embedded with the * specified IAM role.

Policies returned by this API are URL-encoded * compliant with RFC 3986. You * can use a URL decoding method to convert the policy back to plain JSON text. For * example, if you use Java, you can use the decode method of the * java.net.URLDecoder utility class in the Java SDK. Other languages * and SDKs provide similar functionality.

An IAM role can also have * managed policies attached to it. To retrieve a managed policy document that is * attached to a role, use GetPolicy to determine the policy's default * version, then use GetPolicyVersion to retrieve the policy document.

*

For more information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

For more * information about roles, see Using * Roles to Delegate Permissions and Federate Identities.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetRolePolicyOutcomeCallable GetRolePolicyCallable(const Model::GetRolePolicyRequest& request) const; /** *

Retrieves the specified inline policy document that is embedded with the * specified IAM role.

Policies returned by this API are URL-encoded * compliant with RFC 3986. You * can use a URL decoding method to convert the policy back to plain JSON text. For * example, if you use Java, you can use the decode method of the * java.net.URLDecoder utility class in the Java SDK. Other languages * and SDKs provide similar functionality.

An IAM role can also have * managed policies attached to it. To retrieve a managed policy document that is * attached to a role, use GetPolicy to determine the policy's default * version, then use GetPolicyVersion to retrieve the policy document.

*

For more information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

For more * information about roles, see Using * Roles to Delegate Permissions and Federate Identities.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetRolePolicyAsync(const Model::GetRolePolicyRequest& request, const GetRolePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns the SAML provider metadocument that was uploaded when the IAM SAML * provider resource object was created or updated.

This operation * requires Signature * Version 4.

See Also:

AWS * API Reference

*/ virtual Model::GetSAMLProviderOutcome GetSAMLProvider(const Model::GetSAMLProviderRequest& request) const; /** *

Returns the SAML provider metadocument that was uploaded when the IAM SAML * provider resource object was created or updated.

This operation * requires Signature * Version 4.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetSAMLProviderOutcomeCallable GetSAMLProviderCallable(const Model::GetSAMLProviderRequest& request) const; /** *

Returns the SAML provider metadocument that was uploaded when the IAM SAML * provider resource object was created or updated.

This operation * requires Signature * Version 4.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetSAMLProviderAsync(const Model::GetSAMLProviderRequest& request, const GetSAMLProviderResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves the specified SSH public key, including metadata about the key.

*

The SSH public key retrieved by this operation is used only for * authenticating the associated IAM user to an AWS CodeCommit repository. For more * information about using SSH keys to authenticate to an AWS CodeCommit * repository, see Set * up AWS CodeCommit for SSH Connections in the AWS CodeCommit User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::GetSSHPublicKeyOutcome GetSSHPublicKey(const Model::GetSSHPublicKeyRequest& request) const; /** *

Retrieves the specified SSH public key, including metadata about the key.

*

The SSH public key retrieved by this operation is used only for * authenticating the associated IAM user to an AWS CodeCommit repository. For more * information about using SSH keys to authenticate to an AWS CodeCommit * repository, see Set * up AWS CodeCommit for SSH Connections in the AWS CodeCommit User * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetSSHPublicKeyOutcomeCallable GetSSHPublicKeyCallable(const Model::GetSSHPublicKeyRequest& request) const; /** *

Retrieves the specified SSH public key, including metadata about the key.

*

The SSH public key retrieved by this operation is used only for * authenticating the associated IAM user to an AWS CodeCommit repository. For more * information about using SSH keys to authenticate to an AWS CodeCommit * repository, see Set * up AWS CodeCommit for SSH Connections in the AWS CodeCommit User * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetSSHPublicKeyAsync(const Model::GetSSHPublicKeyRequest& request, const GetSSHPublicKeyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves information about the specified server certificate stored in * IAM.

For more information about working with server certificates, see Working * with Server Certificates in the IAM User Guide. This topic includes a * list of AWS services that can use the server certificates that you manage with * IAM.

See Also:

AWS * API Reference

*/ virtual Model::GetServerCertificateOutcome GetServerCertificate(const Model::GetServerCertificateRequest& request) const; /** *

Retrieves information about the specified server certificate stored in * IAM.

For more information about working with server certificates, see Working * with Server Certificates in the IAM User Guide. This topic includes a * list of AWS services that can use the server certificates that you manage with * IAM.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetServerCertificateOutcomeCallable GetServerCertificateCallable(const Model::GetServerCertificateRequest& request) const; /** *

Retrieves information about the specified server certificate stored in * IAM.

For more information about working with server certificates, see Working * with Server Certificates in the IAM User Guide. This topic includes a * list of AWS services that can use the server certificates that you manage with * IAM.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetServerCertificateAsync(const Model::GetServerCertificateRequest& request, const GetServerCertificateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves a service last accessed report that was created using the * GenerateServiceLastAccessedDetails operation. You can use the * JobId parameter in GetServiceLastAccessedDetails to * retrieve the status of your report job. When the report is complete, you can * retrieve the generated report. The report includes a list of AWS services that * the resource (user, group, role, or managed policy) can access.

*

Service last accessed data does not use other policy types when determining * whether a resource could access a service. These other policy types include * resource-based policies, access control lists, AWS Organizations policies, IAM * permissions boundaries, and AWS STS assume role policies. It only applies * permissions policy logic. For more about the evaluation of policy types, see Evaluating * Policies in the IAM User Guide.

For each service that * the resource could access using permissions policies, the operation returns * details about the most recent access attempt. If there was no attempt, the * service is listed without details about the most recent attempt to access the * service. If the operation fails, the GetServiceLastAccessedDetails * operation returns the reason that it failed.

The * GetServiceLastAccessedDetails operation returns a list of services. * This list includes the number of entities that have attempted to access the * service and the date and time of the last attempt. It also returns the ARN of * the following entity, depending on the resource ARN that you used to generate * the report:

  • User – Returns the user ARN that you used * to generate the report

  • Group – Returns the ARN of the * group member (user) that last attempted to access the service

  • * Role – Returns the role ARN that you used to generate the report

    *
  • Policy – Returns the ARN of the user or role that last * used the policy to attempt to access the service

By default, * the list is sorted by service namespace.

If you specified * ACTION_LEVEL granularity when you generated the report, this * operation returns service and action last accessed data. This includes the most * recent access attempt for each tracked action within a service. Otherwise, this * operation returns only service data.

For more information about service * and action last accessed data, see Reducing * Permissions Using Service Last Accessed Data in the IAM User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::GetServiceLastAccessedDetailsOutcome GetServiceLastAccessedDetails(const Model::GetServiceLastAccessedDetailsRequest& request) const; /** *

Retrieves a service last accessed report that was created using the * GenerateServiceLastAccessedDetails operation. You can use the * JobId parameter in GetServiceLastAccessedDetails to * retrieve the status of your report job. When the report is complete, you can * retrieve the generated report. The report includes a list of AWS services that * the resource (user, group, role, or managed policy) can access.

*

Service last accessed data does not use other policy types when determining * whether a resource could access a service. These other policy types include * resource-based policies, access control lists, AWS Organizations policies, IAM * permissions boundaries, and AWS STS assume role policies. It only applies * permissions policy logic. For more about the evaluation of policy types, see Evaluating * Policies in the IAM User Guide.

For each service that * the resource could access using permissions policies, the operation returns * details about the most recent access attempt. If there was no attempt, the * service is listed without details about the most recent attempt to access the * service. If the operation fails, the GetServiceLastAccessedDetails * operation returns the reason that it failed.

The * GetServiceLastAccessedDetails operation returns a list of services. * This list includes the number of entities that have attempted to access the * service and the date and time of the last attempt. It also returns the ARN of * the following entity, depending on the resource ARN that you used to generate * the report:

  • User – Returns the user ARN that you used * to generate the report

  • Group – Returns the ARN of the * group member (user) that last attempted to access the service

  • * Role – Returns the role ARN that you used to generate the report

    *
  • Policy – Returns the ARN of the user or role that last * used the policy to attempt to access the service

By default, * the list is sorted by service namespace.

If you specified * ACTION_LEVEL granularity when you generated the report, this * operation returns service and action last accessed data. This includes the most * recent access attempt for each tracked action within a service. Otherwise, this * operation returns only service data.

For more information about service * and action last accessed data, see Reducing * Permissions Using Service Last Accessed Data in the IAM User * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetServiceLastAccessedDetailsOutcomeCallable GetServiceLastAccessedDetailsCallable(const Model::GetServiceLastAccessedDetailsRequest& request) const; /** *

Retrieves a service last accessed report that was created using the * GenerateServiceLastAccessedDetails operation. You can use the * JobId parameter in GetServiceLastAccessedDetails to * retrieve the status of your report job. When the report is complete, you can * retrieve the generated report. The report includes a list of AWS services that * the resource (user, group, role, or managed policy) can access.

*

Service last accessed data does not use other policy types when determining * whether a resource could access a service. These other policy types include * resource-based policies, access control lists, AWS Organizations policies, IAM * permissions boundaries, and AWS STS assume role policies. It only applies * permissions policy logic. For more about the evaluation of policy types, see Evaluating * Policies in the IAM User Guide.

For each service that * the resource could access using permissions policies, the operation returns * details about the most recent access attempt. If there was no attempt, the * service is listed without details about the most recent attempt to access the * service. If the operation fails, the GetServiceLastAccessedDetails * operation returns the reason that it failed.

The * GetServiceLastAccessedDetails operation returns a list of services. * This list includes the number of entities that have attempted to access the * service and the date and time of the last attempt. It also returns the ARN of * the following entity, depending on the resource ARN that you used to generate * the report:

  • User – Returns the user ARN that you used * to generate the report

  • Group – Returns the ARN of the * group member (user) that last attempted to access the service

  • * Role – Returns the role ARN that you used to generate the report

    *
  • Policy – Returns the ARN of the user or role that last * used the policy to attempt to access the service

By default, * the list is sorted by service namespace.

If you specified * ACTION_LEVEL granularity when you generated the report, this * operation returns service and action last accessed data. This includes the most * recent access attempt for each tracked action within a service. Otherwise, this * operation returns only service data.

For more information about service * and action last accessed data, see Reducing * Permissions Using Service Last Accessed Data in the IAM User * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetServiceLastAccessedDetailsAsync(const Model::GetServiceLastAccessedDetailsRequest& request, const GetServiceLastAccessedDetailsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

After you generate a group or policy report using the * GenerateServiceLastAccessedDetails operation, you can use the * JobId parameter in * GetServiceLastAccessedDetailsWithEntities. This operation retrieves * the status of your report job and a list of entities that could have used group * or policy permissions to access the specified service.

  • * Group – For a group report, this operation returns a list of users in the * group that could have used the group’s policies in an attempt to access the * service.

  • Policy – For a policy report, this operation * returns a list of entities (users or roles) that could have used the policy in * an attempt to access the service.

You can also use this * operation for user or role reports to retrieve details about those entities.

*

If the operation fails, the * GetServiceLastAccessedDetailsWithEntities operation returns the * reason that it failed.

By default, the list of associated entities is * sorted by date, with the most recent access listed first.

See * Also:

AWS * API Reference

*/ virtual Model::GetServiceLastAccessedDetailsWithEntitiesOutcome GetServiceLastAccessedDetailsWithEntities(const Model::GetServiceLastAccessedDetailsWithEntitiesRequest& request) const; /** *

After you generate a group or policy report using the * GenerateServiceLastAccessedDetails operation, you can use the * JobId parameter in * GetServiceLastAccessedDetailsWithEntities. This operation retrieves * the status of your report job and a list of entities that could have used group * or policy permissions to access the specified service.

  • * Group – For a group report, this operation returns a list of users in the * group that could have used the group’s policies in an attempt to access the * service.

  • Policy – For a policy report, this operation * returns a list of entities (users or roles) that could have used the policy in * an attempt to access the service.

You can also use this * operation for user or role reports to retrieve details about those entities.

*

If the operation fails, the * GetServiceLastAccessedDetailsWithEntities operation returns the * reason that it failed.

By default, the list of associated entities is * sorted by date, with the most recent access listed first.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetServiceLastAccessedDetailsWithEntitiesOutcomeCallable GetServiceLastAccessedDetailsWithEntitiesCallable(const Model::GetServiceLastAccessedDetailsWithEntitiesRequest& request) const; /** *

After you generate a group or policy report using the * GenerateServiceLastAccessedDetails operation, you can use the * JobId parameter in * GetServiceLastAccessedDetailsWithEntities. This operation retrieves * the status of your report job and a list of entities that could have used group * or policy permissions to access the specified service.

  • * Group – For a group report, this operation returns a list of users in the * group that could have used the group’s policies in an attempt to access the * service.

  • Policy – For a policy report, this operation * returns a list of entities (users or roles) that could have used the policy in * an attempt to access the service.

You can also use this * operation for user or role reports to retrieve details about those entities.

*

If the operation fails, the * GetServiceLastAccessedDetailsWithEntities operation returns the * reason that it failed.

By default, the list of associated entities is * sorted by date, with the most recent access listed first.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetServiceLastAccessedDetailsWithEntitiesAsync(const Model::GetServiceLastAccessedDetailsWithEntitiesRequest& request, const GetServiceLastAccessedDetailsWithEntitiesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves the status of your service-linked role deletion. After you use the * DeleteServiceLinkedRole API operation to submit a service-linked role for * deletion, you can use the DeletionTaskId parameter in * GetServiceLinkedRoleDeletionStatus to check the status of the * deletion. If the deletion fails, this operation returns the reason that it * failed, if that information is returned by the service.

See Also:

* AWS * API Reference

*/ virtual Model::GetServiceLinkedRoleDeletionStatusOutcome GetServiceLinkedRoleDeletionStatus(const Model::GetServiceLinkedRoleDeletionStatusRequest& request) const; /** *

Retrieves the status of your service-linked role deletion. After you use the * DeleteServiceLinkedRole API operation to submit a service-linked role for * deletion, you can use the DeletionTaskId parameter in * GetServiceLinkedRoleDeletionStatus to check the status of the * deletion. If the deletion fails, this operation returns the reason that it * failed, if that information is returned by the service.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetServiceLinkedRoleDeletionStatusOutcomeCallable GetServiceLinkedRoleDeletionStatusCallable(const Model::GetServiceLinkedRoleDeletionStatusRequest& request) const; /** *

Retrieves the status of your service-linked role deletion. After you use the * DeleteServiceLinkedRole API operation to submit a service-linked role for * deletion, you can use the DeletionTaskId parameter in * GetServiceLinkedRoleDeletionStatus to check the status of the * deletion. If the deletion fails, this operation returns the reason that it * failed, if that information is returned by the service.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetServiceLinkedRoleDeletionStatusAsync(const Model::GetServiceLinkedRoleDeletionStatusRequest& request, const GetServiceLinkedRoleDeletionStatusResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves information about the specified IAM user, including the user's * creation date, path, unique ID, and ARN.

If you do not specify a user * name, IAM determines the user name implicitly based on the AWS access key ID * used to sign the request to this API.

See Also:

AWS API * Reference

*/ virtual Model::GetUserOutcome GetUser(const Model::GetUserRequest& request) const; /** *

Retrieves information about the specified IAM user, including the user's * creation date, path, unique ID, and ARN.

If you do not specify a user * name, IAM determines the user name implicitly based on the AWS access key ID * used to sign the request to this API.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetUserOutcomeCallable GetUserCallable(const Model::GetUserRequest& request) const; /** *

Retrieves information about the specified IAM user, including the user's * creation date, path, unique ID, and ARN.

If you do not specify a user * name, IAM determines the user name implicitly based on the AWS access key ID * used to sign the request to this API.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetUserAsync(const Model::GetUserRequest& request, const GetUserResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves the specified inline policy document that is embedded in the * specified IAM user.

Policies returned by this API are URL-encoded * compliant with RFC 3986. You * can use a URL decoding method to convert the policy back to plain JSON text. For * example, if you use Java, you can use the decode method of the * java.net.URLDecoder utility class in the Java SDK. Other languages * and SDKs provide similar functionality.

An IAM user can also have * managed policies attached to it. To retrieve a managed policy document that is * attached to a user, use GetPolicy to determine the policy's default * version. Then use GetPolicyVersion to retrieve the policy document.

*

For more information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::GetUserPolicyOutcome GetUserPolicy(const Model::GetUserPolicyRequest& request) const; /** *

Retrieves the specified inline policy document that is embedded in the * specified IAM user.

Policies returned by this API are URL-encoded * compliant with RFC 3986. You * can use a URL decoding method to convert the policy back to plain JSON text. For * example, if you use Java, you can use the decode method of the * java.net.URLDecoder utility class in the Java SDK. Other languages * and SDKs provide similar functionality.

An IAM user can also have * managed policies attached to it. To retrieve a managed policy document that is * attached to a user, use GetPolicy to determine the policy's default * version. Then use GetPolicyVersion to retrieve the policy document.

*

For more information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetUserPolicyOutcomeCallable GetUserPolicyCallable(const Model::GetUserPolicyRequest& request) const; /** *

Retrieves the specified inline policy document that is embedded in the * specified IAM user.

Policies returned by this API are URL-encoded * compliant with RFC 3986. You * can use a URL decoding method to convert the policy back to plain JSON text. For * example, if you use Java, you can use the decode method of the * java.net.URLDecoder utility class in the Java SDK. Other languages * and SDKs provide similar functionality.

An IAM user can also have * managed policies attached to it. To retrieve a managed policy document that is * attached to a user, use GetPolicy to determine the policy's default * version. Then use GetPolicyVersion to retrieve the policy document.

*

For more information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetUserPolicyAsync(const Model::GetUserPolicyRequest& request, const GetUserPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns information about the access key IDs associated with the specified * IAM user. If there is none, the operation returns an empty list.

Although * each user is limited to a small number of keys, you can still paginate the * results using the MaxItems and Marker parameters.

*

If the UserName field is not specified, the user name is * determined implicitly based on the AWS access key ID used to sign the request. * This operation works for access keys under the AWS account. Consequently, you * can use this operation to manage AWS account root user credentials even if the * AWS account has no associated users.

To ensure the security of * your AWS account, the secret access key is accessible only during key and user * creation.

See Also:

AWS * API Reference

*/ virtual Model::ListAccessKeysOutcome ListAccessKeys(const Model::ListAccessKeysRequest& request) const; /** *

Returns information about the access key IDs associated with the specified * IAM user. If there is none, the operation returns an empty list.

Although * each user is limited to a small number of keys, you can still paginate the * results using the MaxItems and Marker parameters.

*

If the UserName field is not specified, the user name is * determined implicitly based on the AWS access key ID used to sign the request. * This operation works for access keys under the AWS account. Consequently, you * can use this operation to manage AWS account root user credentials even if the * AWS account has no associated users.

To ensure the security of * your AWS account, the secret access key is accessible only during key and user * creation.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListAccessKeysOutcomeCallable ListAccessKeysCallable(const Model::ListAccessKeysRequest& request) const; /** *

Returns information about the access key IDs associated with the specified * IAM user. If there is none, the operation returns an empty list.

Although * each user is limited to a small number of keys, you can still paginate the * results using the MaxItems and Marker parameters.

*

If the UserName field is not specified, the user name is * determined implicitly based on the AWS access key ID used to sign the request. * This operation works for access keys under the AWS account. Consequently, you * can use this operation to manage AWS account root user credentials even if the * AWS account has no associated users.

To ensure the security of * your AWS account, the secret access key is accessible only during key and user * creation.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListAccessKeysAsync(const Model::ListAccessKeysRequest& request, const ListAccessKeysResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the account alias associated with the AWS account (Note: you can have * only one). For information about using an AWS account alias, see Using * an Alias for Your AWS Account ID in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::ListAccountAliasesOutcome ListAccountAliases(const Model::ListAccountAliasesRequest& request) const; /** *

Lists the account alias associated with the AWS account (Note: you can have * only one). For information about using an AWS account alias, see Using * an Alias for Your AWS Account ID in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListAccountAliasesOutcomeCallable ListAccountAliasesCallable(const Model::ListAccountAliasesRequest& request) const; /** *

Lists the account alias associated with the AWS account (Note: you can have * only one). For information about using an AWS account alias, see Using * an Alias for Your AWS Account ID in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListAccountAliasesAsync(const Model::ListAccountAliasesRequest& request, const ListAccountAliasesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists all managed policies that are attached to the specified IAM group.

*

An IAM group can also have inline policies embedded with it. To list the * inline policies for a group, use the ListGroupPolicies API. For * information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

You can * paginate the results using the MaxItems and Marker * parameters. You can use the PathPrefix parameter to limit the list * of policies to only those matching the specified path prefix. If there are no * policies attached to the specified group (or none that match the specified path * prefix), the operation returns an empty list.

See Also:

AWS * API Reference

*/ virtual Model::ListAttachedGroupPoliciesOutcome ListAttachedGroupPolicies(const Model::ListAttachedGroupPoliciesRequest& request) const; /** *

Lists all managed policies that are attached to the specified IAM group.

*

An IAM group can also have inline policies embedded with it. To list the * inline policies for a group, use the ListGroupPolicies API. For * information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

You can * paginate the results using the MaxItems and Marker * parameters. You can use the PathPrefix parameter to limit the list * of policies to only those matching the specified path prefix. If there are no * policies attached to the specified group (or none that match the specified path * prefix), the operation returns an empty list.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListAttachedGroupPoliciesOutcomeCallable ListAttachedGroupPoliciesCallable(const Model::ListAttachedGroupPoliciesRequest& request) const; /** *

Lists all managed policies that are attached to the specified IAM group.

*

An IAM group can also have inline policies embedded with it. To list the * inline policies for a group, use the ListGroupPolicies API. For * information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

You can * paginate the results using the MaxItems and Marker * parameters. You can use the PathPrefix parameter to limit the list * of policies to only those matching the specified path prefix. If there are no * policies attached to the specified group (or none that match the specified path * prefix), the operation returns an empty list.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListAttachedGroupPoliciesAsync(const Model::ListAttachedGroupPoliciesRequest& request, const ListAttachedGroupPoliciesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists all managed policies that are attached to the specified IAM role.

*

An IAM role can also have inline policies embedded with it. To list the * inline policies for a role, use the ListRolePolicies API. For information * about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

You can * paginate the results using the MaxItems and Marker * parameters. You can use the PathPrefix parameter to limit the list * of policies to only those matching the specified path prefix. If there are no * policies attached to the specified role (or none that match the specified path * prefix), the operation returns an empty list.

See Also:

AWS * API Reference

*/ virtual Model::ListAttachedRolePoliciesOutcome ListAttachedRolePolicies(const Model::ListAttachedRolePoliciesRequest& request) const; /** *

Lists all managed policies that are attached to the specified IAM role.

*

An IAM role can also have inline policies embedded with it. To list the * inline policies for a role, use the ListRolePolicies API. For information * about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

You can * paginate the results using the MaxItems and Marker * parameters. You can use the PathPrefix parameter to limit the list * of policies to only those matching the specified path prefix. If there are no * policies attached to the specified role (or none that match the specified path * prefix), the operation returns an empty list.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListAttachedRolePoliciesOutcomeCallable ListAttachedRolePoliciesCallable(const Model::ListAttachedRolePoliciesRequest& request) const; /** *

Lists all managed policies that are attached to the specified IAM role.

*

An IAM role can also have inline policies embedded with it. To list the * inline policies for a role, use the ListRolePolicies API. For information * about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

You can * paginate the results using the MaxItems and Marker * parameters. You can use the PathPrefix parameter to limit the list * of policies to only those matching the specified path prefix. If there are no * policies attached to the specified role (or none that match the specified path * prefix), the operation returns an empty list.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListAttachedRolePoliciesAsync(const Model::ListAttachedRolePoliciesRequest& request, const ListAttachedRolePoliciesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists all managed policies that are attached to the specified IAM user.

*

An IAM user can also have inline policies embedded with it. To list the * inline policies for a user, use the ListUserPolicies API. For information * about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

You can * paginate the results using the MaxItems and Marker * parameters. You can use the PathPrefix parameter to limit the list * of policies to only those matching the specified path prefix. If there are no * policies attached to the specified group (or none that match the specified path * prefix), the operation returns an empty list.

See Also:

AWS * API Reference

*/ virtual Model::ListAttachedUserPoliciesOutcome ListAttachedUserPolicies(const Model::ListAttachedUserPoliciesRequest& request) const; /** *

Lists all managed policies that are attached to the specified IAM user.

*

An IAM user can also have inline policies embedded with it. To list the * inline policies for a user, use the ListUserPolicies API. For information * about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

You can * paginate the results using the MaxItems and Marker * parameters. You can use the PathPrefix parameter to limit the list * of policies to only those matching the specified path prefix. If there are no * policies attached to the specified group (or none that match the specified path * prefix), the operation returns an empty list.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListAttachedUserPoliciesOutcomeCallable ListAttachedUserPoliciesCallable(const Model::ListAttachedUserPoliciesRequest& request) const; /** *

Lists all managed policies that are attached to the specified IAM user.

*

An IAM user can also have inline policies embedded with it. To list the * inline policies for a user, use the ListUserPolicies API. For information * about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

You can * paginate the results using the MaxItems and Marker * parameters. You can use the PathPrefix parameter to limit the list * of policies to only those matching the specified path prefix. If there are no * policies attached to the specified group (or none that match the specified path * prefix), the operation returns an empty list.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListAttachedUserPoliciesAsync(const Model::ListAttachedUserPoliciesRequest& request, const ListAttachedUserPoliciesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists all IAM users, groups, and roles that the specified managed policy is * attached to.

You can use the optional EntityFilter parameter * to limit the results to a particular type of entity (users, groups, or roles). * For example, to list only the roles that are attached to the specified policy, * set EntityFilter to Role.

You can paginate the * results using the MaxItems and Marker * parameters.

See Also:

AWS * API Reference

*/ virtual Model::ListEntitiesForPolicyOutcome ListEntitiesForPolicy(const Model::ListEntitiesForPolicyRequest& request) const; /** *

Lists all IAM users, groups, and roles that the specified managed policy is * attached to.

You can use the optional EntityFilter parameter * to limit the results to a particular type of entity (users, groups, or roles). * For example, to list only the roles that are attached to the specified policy, * set EntityFilter to Role.

You can paginate the * results using the MaxItems and Marker * parameters.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListEntitiesForPolicyOutcomeCallable ListEntitiesForPolicyCallable(const Model::ListEntitiesForPolicyRequest& request) const; /** *

Lists all IAM users, groups, and roles that the specified managed policy is * attached to.

You can use the optional EntityFilter parameter * to limit the results to a particular type of entity (users, groups, or roles). * For example, to list only the roles that are attached to the specified policy, * set EntityFilter to Role.

You can paginate the * results using the MaxItems and Marker * parameters.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListEntitiesForPolicyAsync(const Model::ListEntitiesForPolicyRequest& request, const ListEntitiesForPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the names of the inline policies that are embedded in the specified IAM * group.

An IAM group can also have managed policies attached to it. To * list the managed policies that are attached to a group, use * ListAttachedGroupPolicies. For more information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

You can * paginate the results using the MaxItems and Marker * parameters. If there are no inline policies embedded with the specified group, * the operation returns an empty list.

See Also:

AWS * API Reference

*/ virtual Model::ListGroupPoliciesOutcome ListGroupPolicies(const Model::ListGroupPoliciesRequest& request) const; /** *

Lists the names of the inline policies that are embedded in the specified IAM * group.

An IAM group can also have managed policies attached to it. To * list the managed policies that are attached to a group, use * ListAttachedGroupPolicies. For more information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

You can * paginate the results using the MaxItems and Marker * parameters. If there are no inline policies embedded with the specified group, * the operation returns an empty list.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListGroupPoliciesOutcomeCallable ListGroupPoliciesCallable(const Model::ListGroupPoliciesRequest& request) const; /** *

Lists the names of the inline policies that are embedded in the specified IAM * group.

An IAM group can also have managed policies attached to it. To * list the managed policies that are attached to a group, use * ListAttachedGroupPolicies. For more information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

You can * paginate the results using the MaxItems and Marker * parameters. If there are no inline policies embedded with the specified group, * the operation returns an empty list.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListGroupPoliciesAsync(const Model::ListGroupPoliciesRequest& request, const ListGroupPoliciesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the IAM groups that have the specified path prefix.

You can * paginate the results using the MaxItems and Marker * parameters.

See Also:

AWS API * Reference

*/ virtual Model::ListGroupsOutcome ListGroups(const Model::ListGroupsRequest& request) const; /** *

Lists the IAM groups that have the specified path prefix.

You can * paginate the results using the MaxItems and Marker * parameters.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListGroupsOutcomeCallable ListGroupsCallable(const Model::ListGroupsRequest& request) const; /** *

Lists the IAM groups that have the specified path prefix.

You can * paginate the results using the MaxItems and Marker * parameters.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListGroupsAsync(const Model::ListGroupsRequest& request, const ListGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the IAM groups that the specified IAM user belongs to.

You can * paginate the results using the MaxItems and Marker * parameters.

See Also:

AWS * API Reference

*/ virtual Model::ListGroupsForUserOutcome ListGroupsForUser(const Model::ListGroupsForUserRequest& request) const; /** *

Lists the IAM groups that the specified IAM user belongs to.

You can * paginate the results using the MaxItems and Marker * parameters.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListGroupsForUserOutcomeCallable ListGroupsForUserCallable(const Model::ListGroupsForUserRequest& request) const; /** *

Lists the IAM groups that the specified IAM user belongs to.

You can * paginate the results using the MaxItems and Marker * parameters.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListGroupsForUserAsync(const Model::ListGroupsForUserRequest& request, const ListGroupsForUserResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the instance profiles that have the specified path prefix. If there are * none, the operation returns an empty list. For more information about instance * profiles, go to About * Instance Profiles.

You can paginate the results using the * MaxItems and Marker parameters.

See * Also:

AWS * API Reference

*/ virtual Model::ListInstanceProfilesOutcome ListInstanceProfiles(const Model::ListInstanceProfilesRequest& request) const; /** *

Lists the instance profiles that have the specified path prefix. If there are * none, the operation returns an empty list. For more information about instance * profiles, go to About * Instance Profiles.

You can paginate the results using the * MaxItems and Marker parameters.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListInstanceProfilesOutcomeCallable ListInstanceProfilesCallable(const Model::ListInstanceProfilesRequest& request) const; /** *

Lists the instance profiles that have the specified path prefix. If there are * none, the operation returns an empty list. For more information about instance * profiles, go to About * Instance Profiles.

You can paginate the results using the * MaxItems and Marker parameters.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListInstanceProfilesAsync(const Model::ListInstanceProfilesRequest& request, const ListInstanceProfilesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the instance profiles that have the specified associated IAM role. If * there are none, the operation returns an empty list. For more information about * instance profiles, go to About * Instance Profiles.

You can paginate the results using the * MaxItems and Marker parameters.

See * Also:

AWS * API Reference

*/ virtual Model::ListInstanceProfilesForRoleOutcome ListInstanceProfilesForRole(const Model::ListInstanceProfilesForRoleRequest& request) const; /** *

Lists the instance profiles that have the specified associated IAM role. If * there are none, the operation returns an empty list. For more information about * instance profiles, go to About * Instance Profiles.

You can paginate the results using the * MaxItems and Marker parameters.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListInstanceProfilesForRoleOutcomeCallable ListInstanceProfilesForRoleCallable(const Model::ListInstanceProfilesForRoleRequest& request) const; /** *

Lists the instance profiles that have the specified associated IAM role. If * there are none, the operation returns an empty list. For more information about * instance profiles, go to About * Instance Profiles.

You can paginate the results using the * MaxItems and Marker parameters.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListInstanceProfilesForRoleAsync(const Model::ListInstanceProfilesForRoleRequest& request, const ListInstanceProfilesForRoleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the MFA devices for an IAM user. If the request includes a IAM user * name, then this operation lists all the MFA devices associated with the * specified user. If you do not specify a user name, IAM determines the user name * implicitly based on the AWS access key ID signing the request for this API.

*

You can paginate the results using the MaxItems and * Marker parameters.

See Also:

AWS * API Reference

*/ virtual Model::ListMFADevicesOutcome ListMFADevices(const Model::ListMFADevicesRequest& request) const; /** *

Lists the MFA devices for an IAM user. If the request includes a IAM user * name, then this operation lists all the MFA devices associated with the * specified user. If you do not specify a user name, IAM determines the user name * implicitly based on the AWS access key ID signing the request for this API.

*

You can paginate the results using the MaxItems and * Marker parameters.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListMFADevicesOutcomeCallable ListMFADevicesCallable(const Model::ListMFADevicesRequest& request) const; /** *

Lists the MFA devices for an IAM user. If the request includes a IAM user * name, then this operation lists all the MFA devices associated with the * specified user. If you do not specify a user name, IAM determines the user name * implicitly based on the AWS access key ID signing the request for this API.

*

You can paginate the results using the MaxItems and * Marker parameters.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListMFADevicesAsync(const Model::ListMFADevicesRequest& request, const ListMFADevicesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists information about the IAM OpenID Connect (OIDC) provider resource * objects defined in the AWS account.

See Also:

AWS * API Reference

*/ virtual Model::ListOpenIDConnectProvidersOutcome ListOpenIDConnectProviders(const Model::ListOpenIDConnectProvidersRequest& request) const; /** *

Lists information about the IAM OpenID Connect (OIDC) provider resource * objects defined in the AWS account.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListOpenIDConnectProvidersOutcomeCallable ListOpenIDConnectProvidersCallable(const Model::ListOpenIDConnectProvidersRequest& request) const; /** *

Lists information about the IAM OpenID Connect (OIDC) provider resource * objects defined in the AWS account.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListOpenIDConnectProvidersAsync(const Model::ListOpenIDConnectProvidersRequest& request, const ListOpenIDConnectProvidersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists all the managed policies that are available in your AWS account, * including your own customer-defined managed policies and all AWS managed * policies.

You can filter the list of policies that is returned using the * optional OnlyAttached, Scope, and * PathPrefix parameters. For example, to list only the customer * managed policies in your AWS account, set Scope to * Local. To list only AWS managed policies, set Scope to * AWS.

You can paginate the results using the * MaxItems and Marker parameters.

For more * information about managed policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::ListPoliciesOutcome ListPolicies(const Model::ListPoliciesRequest& request) const; /** *

Lists all the managed policies that are available in your AWS account, * including your own customer-defined managed policies and all AWS managed * policies.

You can filter the list of policies that is returned using the * optional OnlyAttached, Scope, and * PathPrefix parameters. For example, to list only the customer * managed policies in your AWS account, set Scope to * Local. To list only AWS managed policies, set Scope to * AWS.

You can paginate the results using the * MaxItems and Marker parameters.

For more * information about managed policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListPoliciesOutcomeCallable ListPoliciesCallable(const Model::ListPoliciesRequest& request) const; /** *

Lists all the managed policies that are available in your AWS account, * including your own customer-defined managed policies and all AWS managed * policies.

You can filter the list of policies that is returned using the * optional OnlyAttached, Scope, and * PathPrefix parameters. For example, to list only the customer * managed policies in your AWS account, set Scope to * Local. To list only AWS managed policies, set Scope to * AWS.

You can paginate the results using the * MaxItems and Marker parameters.

For more * information about managed policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListPoliciesAsync(const Model::ListPoliciesRequest& request, const ListPoliciesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves a list of policies that the IAM identity (user, group, or role) can * use to access each specified service.

This operation does not use * other policy types when determining whether a resource could access a service. * These other policy types include resource-based policies, access control lists, * AWS Organizations policies, IAM permissions boundaries, and AWS STS assume role * policies. It only applies permissions policy logic. For more about the * evaluation of policy types, see Evaluating * Policies in the IAM User Guide.

The list of policies * returned by the operation depends on the ARN of the identity that you * provide.

  • User – The list of policies includes the * managed and inline policies that are attached to the user directly. The list * also includes any additional managed and inline policies that are attached to * the group to which the user belongs.

  • Group – The list * of policies includes only the managed and inline policies that are attached to * the group directly. Policies that are attached to the group’s user are not * included.

  • Role – The list of policies includes only * the managed and inline policies that are attached to the role.

*

For each managed policy, this operation returns the ARN and policy name. For * each inline policy, it returns the policy name and the entity to which it is * attached. Inline policies do not have an ARN. For more information about these * policy types, see Managed * Policies and Inline Policies in the IAM User Guide.

Policies * that are attached to users and roles as permissions boundaries are not returned. * To view which managed policy is currently used to set the permissions boundary * for a user or role, use the GetUser or GetRole * operations.

See Also:

AWS * API Reference

*/ virtual Model::ListPoliciesGrantingServiceAccessOutcome ListPoliciesGrantingServiceAccess(const Model::ListPoliciesGrantingServiceAccessRequest& request) const; /** *

Retrieves a list of policies that the IAM identity (user, group, or role) can * use to access each specified service.

This operation does not use * other policy types when determining whether a resource could access a service. * These other policy types include resource-based policies, access control lists, * AWS Organizations policies, IAM permissions boundaries, and AWS STS assume role * policies. It only applies permissions policy logic. For more about the * evaluation of policy types, see Evaluating * Policies in the IAM User Guide.

The list of policies * returned by the operation depends on the ARN of the identity that you * provide.

  • User – The list of policies includes the * managed and inline policies that are attached to the user directly. The list * also includes any additional managed and inline policies that are attached to * the group to which the user belongs.

  • Group – The list * of policies includes only the managed and inline policies that are attached to * the group directly. Policies that are attached to the group’s user are not * included.

  • Role – The list of policies includes only * the managed and inline policies that are attached to the role.

*

For each managed policy, this operation returns the ARN and policy name. For * each inline policy, it returns the policy name and the entity to which it is * attached. Inline policies do not have an ARN. For more information about these * policy types, see Managed * Policies and Inline Policies in the IAM User Guide.

Policies * that are attached to users and roles as permissions boundaries are not returned. * To view which managed policy is currently used to set the permissions boundary * for a user or role, use the GetUser or GetRole * operations.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListPoliciesGrantingServiceAccessOutcomeCallable ListPoliciesGrantingServiceAccessCallable(const Model::ListPoliciesGrantingServiceAccessRequest& request) const; /** *

Retrieves a list of policies that the IAM identity (user, group, or role) can * use to access each specified service.

This operation does not use * other policy types when determining whether a resource could access a service. * These other policy types include resource-based policies, access control lists, * AWS Organizations policies, IAM permissions boundaries, and AWS STS assume role * policies. It only applies permissions policy logic. For more about the * evaluation of policy types, see Evaluating * Policies in the IAM User Guide.

The list of policies * returned by the operation depends on the ARN of the identity that you * provide.

  • User – The list of policies includes the * managed and inline policies that are attached to the user directly. The list * also includes any additional managed and inline policies that are attached to * the group to which the user belongs.

  • Group – The list * of policies includes only the managed and inline policies that are attached to * the group directly. Policies that are attached to the group’s user are not * included.

  • Role – The list of policies includes only * the managed and inline policies that are attached to the role.

*

For each managed policy, this operation returns the ARN and policy name. For * each inline policy, it returns the policy name and the entity to which it is * attached. Inline policies do not have an ARN. For more information about these * policy types, see Managed * Policies and Inline Policies in the IAM User Guide.

Policies * that are attached to users and roles as permissions boundaries are not returned. * To view which managed policy is currently used to set the permissions boundary * for a user or role, use the GetUser or GetRole * operations.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListPoliciesGrantingServiceAccessAsync(const Model::ListPoliciesGrantingServiceAccessRequest& request, const ListPoliciesGrantingServiceAccessResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists information about the versions of the specified managed policy, * including the version that is currently set as the policy's default version.

*

For more information about managed policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::ListPolicyVersionsOutcome ListPolicyVersions(const Model::ListPolicyVersionsRequest& request) const; /** *

Lists information about the versions of the specified managed policy, * including the version that is currently set as the policy's default version.

*

For more information about managed policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListPolicyVersionsOutcomeCallable ListPolicyVersionsCallable(const Model::ListPolicyVersionsRequest& request) const; /** *

Lists information about the versions of the specified managed policy, * including the version that is currently set as the policy's default version.

*

For more information about managed policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListPolicyVersionsAsync(const Model::ListPolicyVersionsRequest& request, const ListPolicyVersionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the names of the inline policies that are embedded in the specified IAM * role.

An IAM role can also have managed policies attached to it. To list * the managed policies that are attached to a role, use * ListAttachedRolePolicies. For more information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

You can * paginate the results using the MaxItems and Marker * parameters. If there are no inline policies embedded with the specified role, * the operation returns an empty list.

See Also:

AWS * API Reference

*/ virtual Model::ListRolePoliciesOutcome ListRolePolicies(const Model::ListRolePoliciesRequest& request) const; /** *

Lists the names of the inline policies that are embedded in the specified IAM * role.

An IAM role can also have managed policies attached to it. To list * the managed policies that are attached to a role, use * ListAttachedRolePolicies. For more information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

You can * paginate the results using the MaxItems and Marker * parameters. If there are no inline policies embedded with the specified role, * the operation returns an empty list.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListRolePoliciesOutcomeCallable ListRolePoliciesCallable(const Model::ListRolePoliciesRequest& request) const; /** *

Lists the names of the inline policies that are embedded in the specified IAM * role.

An IAM role can also have managed policies attached to it. To list * the managed policies that are attached to a role, use * ListAttachedRolePolicies. For more information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

You can * paginate the results using the MaxItems and Marker * parameters. If there are no inline policies embedded with the specified role, * the operation returns an empty list.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListRolePoliciesAsync(const Model::ListRolePoliciesRequest& request, const ListRolePoliciesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the tags that are attached to the specified role. The returned list of * tags is sorted by tag key. For more information about tagging, see Tagging IAM * Identities in the IAM User Guide.

See Also:

AWS * API Reference

*/ virtual Model::ListRoleTagsOutcome ListRoleTags(const Model::ListRoleTagsRequest& request) const; /** *

Lists the tags that are attached to the specified role. The returned list of * tags is sorted by tag key. For more information about tagging, see Tagging IAM * Identities in the IAM User Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListRoleTagsOutcomeCallable ListRoleTagsCallable(const Model::ListRoleTagsRequest& request) const; /** *

Lists the tags that are attached to the specified role. The returned list of * tags is sorted by tag key. For more information about tagging, see Tagging IAM * Identities in the IAM User Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListRoleTagsAsync(const Model::ListRoleTagsRequest& request, const ListRoleTagsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the IAM roles that have the specified path prefix. If there are none, * the operation returns an empty list. For more information about roles, go to Working * with Roles.

You can paginate the results using the * MaxItems and Marker parameters.

See * Also:

AWS API * Reference

*/ virtual Model::ListRolesOutcome ListRoles(const Model::ListRolesRequest& request) const; /** *

Lists the IAM roles that have the specified path prefix. If there are none, * the operation returns an empty list. For more information about roles, go to Working * with Roles.

You can paginate the results using the * MaxItems and Marker parameters.

See * Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListRolesOutcomeCallable ListRolesCallable(const Model::ListRolesRequest& request) const; /** *

Lists the IAM roles that have the specified path prefix. If there are none, * the operation returns an empty list. For more information about roles, go to Working * with Roles.

You can paginate the results using the * MaxItems and Marker parameters.

See * Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListRolesAsync(const Model::ListRolesRequest& request, const ListRolesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the SAML provider resource objects defined in IAM in the account.

*

This operation requires Signature * Version 4.

See Also:

AWS * API Reference

*/ virtual Model::ListSAMLProvidersOutcome ListSAMLProviders(const Model::ListSAMLProvidersRequest& request) const; /** *

Lists the SAML provider resource objects defined in IAM in the account.

*

This operation requires Signature * Version 4.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListSAMLProvidersOutcomeCallable ListSAMLProvidersCallable(const Model::ListSAMLProvidersRequest& request) const; /** *

Lists the SAML provider resource objects defined in IAM in the account.

*

This operation requires Signature * Version 4.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListSAMLProvidersAsync(const Model::ListSAMLProvidersRequest& request, const ListSAMLProvidersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns information about the SSH public keys associated with the specified * IAM user. If none exists, the operation returns an empty list.

The SSH * public keys returned by this operation are used only for authenticating the IAM * user to an AWS CodeCommit repository. For more information about using SSH keys * to authenticate to an AWS CodeCommit repository, see Set * up AWS CodeCommit for SSH Connections in the AWS CodeCommit User * Guide.

Although each user is limited to a small number of keys, you * can still paginate the results using the MaxItems and * Marker parameters.

See Also:

AWS * API Reference

*/ virtual Model::ListSSHPublicKeysOutcome ListSSHPublicKeys(const Model::ListSSHPublicKeysRequest& request) const; /** *

Returns information about the SSH public keys associated with the specified * IAM user. If none exists, the operation returns an empty list.

The SSH * public keys returned by this operation are used only for authenticating the IAM * user to an AWS CodeCommit repository. For more information about using SSH keys * to authenticate to an AWS CodeCommit repository, see Set * up AWS CodeCommit for SSH Connections in the AWS CodeCommit User * Guide.

Although each user is limited to a small number of keys, you * can still paginate the results using the MaxItems and * Marker parameters.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListSSHPublicKeysOutcomeCallable ListSSHPublicKeysCallable(const Model::ListSSHPublicKeysRequest& request) const; /** *

Returns information about the SSH public keys associated with the specified * IAM user. If none exists, the operation returns an empty list.

The SSH * public keys returned by this operation are used only for authenticating the IAM * user to an AWS CodeCommit repository. For more information about using SSH keys * to authenticate to an AWS CodeCommit repository, see Set * up AWS CodeCommit for SSH Connections in the AWS CodeCommit User * Guide.

Although each user is limited to a small number of keys, you * can still paginate the results using the MaxItems and * Marker parameters.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListSSHPublicKeysAsync(const Model::ListSSHPublicKeysRequest& request, const ListSSHPublicKeysResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the server certificates stored in IAM that have the specified path * prefix. If none exist, the operation returns an empty list.

You can * paginate the results using the MaxItems and Marker * parameters.

For more information about working with server certificates, * see Working * with Server Certificates in the IAM User Guide. This topic also * includes a list of AWS services that can use the server certificates that you * manage with IAM.

See Also:

AWS * API Reference

*/ virtual Model::ListServerCertificatesOutcome ListServerCertificates(const Model::ListServerCertificatesRequest& request) const; /** *

Lists the server certificates stored in IAM that have the specified path * prefix. If none exist, the operation returns an empty list.

You can * paginate the results using the MaxItems and Marker * parameters.

For more information about working with server certificates, * see Working * with Server Certificates in the IAM User Guide. This topic also * includes a list of AWS services that can use the server certificates that you * manage with IAM.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListServerCertificatesOutcomeCallable ListServerCertificatesCallable(const Model::ListServerCertificatesRequest& request) const; /** *

Lists the server certificates stored in IAM that have the specified path * prefix. If none exist, the operation returns an empty list.

You can * paginate the results using the MaxItems and Marker * parameters.

For more information about working with server certificates, * see Working * with Server Certificates in the IAM User Guide. This topic also * includes a list of AWS services that can use the server certificates that you * manage with IAM.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListServerCertificatesAsync(const Model::ListServerCertificatesRequest& request, const ListServerCertificatesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns information about the service-specific credentials associated with * the specified IAM user. If none exists, the operation returns an empty list. The * service-specific credentials returned by this operation are used only for * authenticating the IAM user to a specific service. For more information about * using service-specific credentials to authenticate to an AWS service, see Set * Up service-specific credentials in the AWS CodeCommit User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::ListServiceSpecificCredentialsOutcome ListServiceSpecificCredentials(const Model::ListServiceSpecificCredentialsRequest& request) const; /** *

Returns information about the service-specific credentials associated with * the specified IAM user. If none exists, the operation returns an empty list. The * service-specific credentials returned by this operation are used only for * authenticating the IAM user to a specific service. For more information about * using service-specific credentials to authenticate to an AWS service, see Set * Up service-specific credentials in the AWS CodeCommit User * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListServiceSpecificCredentialsOutcomeCallable ListServiceSpecificCredentialsCallable(const Model::ListServiceSpecificCredentialsRequest& request) const; /** *

Returns information about the service-specific credentials associated with * the specified IAM user. If none exists, the operation returns an empty list. The * service-specific credentials returned by this operation are used only for * authenticating the IAM user to a specific service. For more information about * using service-specific credentials to authenticate to an AWS service, see Set * Up service-specific credentials in the AWS CodeCommit User * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListServiceSpecificCredentialsAsync(const Model::ListServiceSpecificCredentialsRequest& request, const ListServiceSpecificCredentialsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns information about the signing certificates associated with the * specified IAM user. If none exists, the operation returns an empty list.

*

Although each user is limited to a small number of signing certificates, you * can still paginate the results using the MaxItems and * Marker parameters.

If the UserName field is not * specified, the user name is determined implicitly based on the AWS access key ID * used to sign the request for this API. This operation works for access keys * under the AWS account. Consequently, you can use this operation to manage AWS * account root user credentials even if the AWS account has no associated * users.

See Also:

AWS * API Reference

*/ virtual Model::ListSigningCertificatesOutcome ListSigningCertificates(const Model::ListSigningCertificatesRequest& request) const; /** *

Returns information about the signing certificates associated with the * specified IAM user. If none exists, the operation returns an empty list.

*

Although each user is limited to a small number of signing certificates, you * can still paginate the results using the MaxItems and * Marker parameters.

If the UserName field is not * specified, the user name is determined implicitly based on the AWS access key ID * used to sign the request for this API. This operation works for access keys * under the AWS account. Consequently, you can use this operation to manage AWS * account root user credentials even if the AWS account has no associated * users.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListSigningCertificatesOutcomeCallable ListSigningCertificatesCallable(const Model::ListSigningCertificatesRequest& request) const; /** *

Returns information about the signing certificates associated with the * specified IAM user. If none exists, the operation returns an empty list.

*

Although each user is limited to a small number of signing certificates, you * can still paginate the results using the MaxItems and * Marker parameters.

If the UserName field is not * specified, the user name is determined implicitly based on the AWS access key ID * used to sign the request for this API. This operation works for access keys * under the AWS account. Consequently, you can use this operation to manage AWS * account root user credentials even if the AWS account has no associated * users.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListSigningCertificatesAsync(const Model::ListSigningCertificatesRequest& request, const ListSigningCertificatesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the names of the inline policies embedded in the specified IAM * user.

An IAM user can also have managed policies attached to it. To list * the managed policies that are attached to a user, use * ListAttachedUserPolicies. For more information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

You can * paginate the results using the MaxItems and Marker * parameters. If there are no inline policies embedded with the specified user, * the operation returns an empty list.

See Also:

AWS * API Reference

*/ virtual Model::ListUserPoliciesOutcome ListUserPolicies(const Model::ListUserPoliciesRequest& request) const; /** *

Lists the names of the inline policies embedded in the specified IAM * user.

An IAM user can also have managed policies attached to it. To list * the managed policies that are attached to a user, use * ListAttachedUserPolicies. For more information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

You can * paginate the results using the MaxItems and Marker * parameters. If there are no inline policies embedded with the specified user, * the operation returns an empty list.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListUserPoliciesOutcomeCallable ListUserPoliciesCallable(const Model::ListUserPoliciesRequest& request) const; /** *

Lists the names of the inline policies embedded in the specified IAM * user.

An IAM user can also have managed policies attached to it. To list * the managed policies that are attached to a user, use * ListAttachedUserPolicies. For more information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

You can * paginate the results using the MaxItems and Marker * parameters. If there are no inline policies embedded with the specified user, * the operation returns an empty list.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListUserPoliciesAsync(const Model::ListUserPoliciesRequest& request, const ListUserPoliciesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the tags that are attached to the specified user. The returned list of * tags is sorted by tag key. For more information about tagging, see Tagging IAM * Identities in the IAM User Guide.

See Also:

AWS * API Reference

*/ virtual Model::ListUserTagsOutcome ListUserTags(const Model::ListUserTagsRequest& request) const; /** *

Lists the tags that are attached to the specified user. The returned list of * tags is sorted by tag key. For more information about tagging, see Tagging IAM * Identities in the IAM User Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListUserTagsOutcomeCallable ListUserTagsCallable(const Model::ListUserTagsRequest& request) const; /** *

Lists the tags that are attached to the specified user. The returned list of * tags is sorted by tag key. For more information about tagging, see Tagging IAM * Identities in the IAM User Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListUserTagsAsync(const Model::ListUserTagsRequest& request, const ListUserTagsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the IAM users that have the specified path prefix. If no path prefix is * specified, the operation returns all users in the AWS account. If there are * none, the operation returns an empty list.

You can paginate the results * using the MaxItems and Marker * parameters.

See Also:

AWS API * Reference

*/ virtual Model::ListUsersOutcome ListUsers(const Model::ListUsersRequest& request) const; /** *

Lists the IAM users that have the specified path prefix. If no path prefix is * specified, the operation returns all users in the AWS account. If there are * none, the operation returns an empty list.

You can paginate the results * using the MaxItems and Marker * parameters.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListUsersOutcomeCallable ListUsersCallable(const Model::ListUsersRequest& request) const; /** *

Lists the IAM users that have the specified path prefix. If no path prefix is * specified, the operation returns all users in the AWS account. If there are * none, the operation returns an empty list.

You can paginate the results * using the MaxItems and Marker * parameters.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListUsersAsync(const Model::ListUsersRequest& request, const ListUsersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the virtual MFA devices defined in the AWS account by assignment * status. If you do not specify an assignment status, the operation returns a list * of all virtual MFA devices. Assignment status can be Assigned, * Unassigned, or Any.

You can paginate the * results using the MaxItems and Marker * parameters.

See Also:

AWS * API Reference

*/ virtual Model::ListVirtualMFADevicesOutcome ListVirtualMFADevices(const Model::ListVirtualMFADevicesRequest& request) const; /** *

Lists the virtual MFA devices defined in the AWS account by assignment * status. If you do not specify an assignment status, the operation returns a list * of all virtual MFA devices. Assignment status can be Assigned, * Unassigned, or Any.

You can paginate the * results using the MaxItems and Marker * parameters.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListVirtualMFADevicesOutcomeCallable ListVirtualMFADevicesCallable(const Model::ListVirtualMFADevicesRequest& request) const; /** *

Lists the virtual MFA devices defined in the AWS account by assignment * status. If you do not specify an assignment status, the operation returns a list * of all virtual MFA devices. Assignment status can be Assigned, * Unassigned, or Any.

You can paginate the * results using the MaxItems and Marker * parameters.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListVirtualMFADevicesAsync(const Model::ListVirtualMFADevicesRequest& request, const ListVirtualMFADevicesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Adds or updates an inline policy document that is embedded in the specified * IAM group.

A user can also have managed policies attached to it. To * attach a managed policy to a group, use AttachGroupPolicy. To create a * new managed policy, use CreatePolicy. For information about policies, see * Managed * Policies and Inline Policies in the IAM User Guide.

For * information about limits on the number of inline policies that you can embed in * a group, see Limitations * on IAM Entities in the IAM User Guide.

Because policy * documents can be large, you should use POST rather than GET when calling * PutGroupPolicy. For general information about using the Query API * with IAM, go to Making * Query Requests in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::PutGroupPolicyOutcome PutGroupPolicy(const Model::PutGroupPolicyRequest& request) const; /** *

Adds or updates an inline policy document that is embedded in the specified * IAM group.

A user can also have managed policies attached to it. To * attach a managed policy to a group, use AttachGroupPolicy. To create a * new managed policy, use CreatePolicy. For information about policies, see * Managed * Policies and Inline Policies in the IAM User Guide.

For * information about limits on the number of inline policies that you can embed in * a group, see Limitations * on IAM Entities in the IAM User Guide.

Because policy * documents can be large, you should use POST rather than GET when calling * PutGroupPolicy. For general information about using the Query API * with IAM, go to Making * Query Requests in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::PutGroupPolicyOutcomeCallable PutGroupPolicyCallable(const Model::PutGroupPolicyRequest& request) const; /** *

Adds or updates an inline policy document that is embedded in the specified * IAM group.

A user can also have managed policies attached to it. To * attach a managed policy to a group, use AttachGroupPolicy. To create a * new managed policy, use CreatePolicy. For information about policies, see * Managed * Policies and Inline Policies in the IAM User Guide.

For * information about limits on the number of inline policies that you can embed in * a group, see Limitations * on IAM Entities in the IAM User Guide.

Because policy * documents can be large, you should use POST rather than GET when calling * PutGroupPolicy. For general information about using the Query API * with IAM, go to Making * Query Requests in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void PutGroupPolicyAsync(const Model::PutGroupPolicyRequest& request, const PutGroupPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Adds or updates the policy that is specified as the IAM role's permissions * boundary. You can use an AWS managed policy or a customer managed policy to set * the boundary for a role. Use the boundary to control the maximum permissions * that the role can have. Setting a permissions boundary is an advanced feature * that can affect the permissions for the role.

You cannot set the boundary * for a service-linked role.

Policies used as permissions * boundaries do not provide permissions. You must also attach a permissions policy * to the role. To learn how the effective permissions for a role are evaluated, * see IAM * JSON Policy Evaluation Logic in the IAM User Guide.

*

See Also:

AWS * API Reference

*/ virtual Model::PutRolePermissionsBoundaryOutcome PutRolePermissionsBoundary(const Model::PutRolePermissionsBoundaryRequest& request) const; /** *

Adds or updates the policy that is specified as the IAM role's permissions * boundary. You can use an AWS managed policy or a customer managed policy to set * the boundary for a role. Use the boundary to control the maximum permissions * that the role can have. Setting a permissions boundary is an advanced feature * that can affect the permissions for the role.

You cannot set the boundary * for a service-linked role.

Policies used as permissions * boundaries do not provide permissions. You must also attach a permissions policy * to the role. To learn how the effective permissions for a role are evaluated, * see IAM * JSON Policy Evaluation Logic in the IAM User Guide.

*

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::PutRolePermissionsBoundaryOutcomeCallable PutRolePermissionsBoundaryCallable(const Model::PutRolePermissionsBoundaryRequest& request) const; /** *

Adds or updates the policy that is specified as the IAM role's permissions * boundary. You can use an AWS managed policy or a customer managed policy to set * the boundary for a role. Use the boundary to control the maximum permissions * that the role can have. Setting a permissions boundary is an advanced feature * that can affect the permissions for the role.

You cannot set the boundary * for a service-linked role.

Policies used as permissions * boundaries do not provide permissions. You must also attach a permissions policy * to the role. To learn how the effective permissions for a role are evaluated, * see IAM * JSON Policy Evaluation Logic in the IAM User Guide.

*

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void PutRolePermissionsBoundaryAsync(const Model::PutRolePermissionsBoundaryRequest& request, const PutRolePermissionsBoundaryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Adds or updates an inline policy document that is embedded in the specified * IAM role.

When you embed an inline policy in a role, the inline policy is * used as part of the role's access (permissions) policy. The role's trust policy * is created at the same time as the role, using CreateRole. You can update * a role's trust policy using UpdateAssumeRolePolicy. For more information * about IAM roles, go to Using * Roles to Delegate Permissions and Federate Identities.

A role can * also have a managed policy attached to it. To attach a managed policy to a role, * use AttachRolePolicy. To create a new managed policy, use * CreatePolicy. For information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

For * information about limits on the number of inline policies that you can embed * with a role, see Limitations * on IAM Entities in the IAM User Guide.

Because policy * documents can be large, you should use POST rather than GET when calling * PutRolePolicy. For general information about using the Query API * with IAM, go to Making * Query Requests in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::PutRolePolicyOutcome PutRolePolicy(const Model::PutRolePolicyRequest& request) const; /** *

Adds or updates an inline policy document that is embedded in the specified * IAM role.

When you embed an inline policy in a role, the inline policy is * used as part of the role's access (permissions) policy. The role's trust policy * is created at the same time as the role, using CreateRole. You can update * a role's trust policy using UpdateAssumeRolePolicy. For more information * about IAM roles, go to Using * Roles to Delegate Permissions and Federate Identities.

A role can * also have a managed policy attached to it. To attach a managed policy to a role, * use AttachRolePolicy. To create a new managed policy, use * CreatePolicy. For information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

For * information about limits on the number of inline policies that you can embed * with a role, see Limitations * on IAM Entities in the IAM User Guide.

Because policy * documents can be large, you should use POST rather than GET when calling * PutRolePolicy. For general information about using the Query API * with IAM, go to Making * Query Requests in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::PutRolePolicyOutcomeCallable PutRolePolicyCallable(const Model::PutRolePolicyRequest& request) const; /** *

Adds or updates an inline policy document that is embedded in the specified * IAM role.

When you embed an inline policy in a role, the inline policy is * used as part of the role's access (permissions) policy. The role's trust policy * is created at the same time as the role, using CreateRole. You can update * a role's trust policy using UpdateAssumeRolePolicy. For more information * about IAM roles, go to Using * Roles to Delegate Permissions and Federate Identities.

A role can * also have a managed policy attached to it. To attach a managed policy to a role, * use AttachRolePolicy. To create a new managed policy, use * CreatePolicy. For information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

For * information about limits on the number of inline policies that you can embed * with a role, see Limitations * on IAM Entities in the IAM User Guide.

Because policy * documents can be large, you should use POST rather than GET when calling * PutRolePolicy. For general information about using the Query API * with IAM, go to Making * Query Requests in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void PutRolePolicyAsync(const Model::PutRolePolicyRequest& request, const PutRolePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Adds or updates the policy that is specified as the IAM user's permissions * boundary. You can use an AWS managed policy or a customer managed policy to set * the boundary for a user. Use the boundary to control the maximum permissions * that the user can have. Setting a permissions boundary is an advanced feature * that can affect the permissions for the user.

Policies that * are used as permissions boundaries do not provide permissions. You must also * attach a permissions policy to the user. To learn how the effective permissions * for a user are evaluated, see IAM * JSON Policy Evaluation Logic in the IAM User Guide.

*

See Also:

AWS * API Reference

*/ virtual Model::PutUserPermissionsBoundaryOutcome PutUserPermissionsBoundary(const Model::PutUserPermissionsBoundaryRequest& request) const; /** *

Adds or updates the policy that is specified as the IAM user's permissions * boundary. You can use an AWS managed policy or a customer managed policy to set * the boundary for a user. Use the boundary to control the maximum permissions * that the user can have. Setting a permissions boundary is an advanced feature * that can affect the permissions for the user.

Policies that * are used as permissions boundaries do not provide permissions. You must also * attach a permissions policy to the user. To learn how the effective permissions * for a user are evaluated, see IAM * JSON Policy Evaluation Logic in the IAM User Guide.

*

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::PutUserPermissionsBoundaryOutcomeCallable PutUserPermissionsBoundaryCallable(const Model::PutUserPermissionsBoundaryRequest& request) const; /** *

Adds or updates the policy that is specified as the IAM user's permissions * boundary. You can use an AWS managed policy or a customer managed policy to set * the boundary for a user. Use the boundary to control the maximum permissions * that the user can have. Setting a permissions boundary is an advanced feature * that can affect the permissions for the user.

Policies that * are used as permissions boundaries do not provide permissions. You must also * attach a permissions policy to the user. To learn how the effective permissions * for a user are evaluated, see IAM * JSON Policy Evaluation Logic in the IAM User Guide.

*

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void PutUserPermissionsBoundaryAsync(const Model::PutUserPermissionsBoundaryRequest& request, const PutUserPermissionsBoundaryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Adds or updates an inline policy document that is embedded in the specified * IAM user.

An IAM user can also have a managed policy attached to it. To * attach a managed policy to a user, use AttachUserPolicy. To create a new * managed policy, use CreatePolicy. For information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

For * information about limits on the number of inline policies that you can embed in * a user, see Limitations * on IAM Entities in the IAM User Guide.

Because policy * documents can be large, you should use POST rather than GET when calling * PutUserPolicy. For general information about using the Query API * with IAM, go to Making * Query Requests in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::PutUserPolicyOutcome PutUserPolicy(const Model::PutUserPolicyRequest& request) const; /** *

Adds or updates an inline policy document that is embedded in the specified * IAM user.

An IAM user can also have a managed policy attached to it. To * attach a managed policy to a user, use AttachUserPolicy. To create a new * managed policy, use CreatePolicy. For information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

For * information about limits on the number of inline policies that you can embed in * a user, see Limitations * on IAM Entities in the IAM User Guide.

Because policy * documents can be large, you should use POST rather than GET when calling * PutUserPolicy. For general information about using the Query API * with IAM, go to Making * Query Requests in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::PutUserPolicyOutcomeCallable PutUserPolicyCallable(const Model::PutUserPolicyRequest& request) const; /** *

Adds or updates an inline policy document that is embedded in the specified * IAM user.

An IAM user can also have a managed policy attached to it. To * attach a managed policy to a user, use AttachUserPolicy. To create a new * managed policy, use CreatePolicy. For information about policies, see Managed * Policies and Inline Policies in the IAM User Guide.

For * information about limits on the number of inline policies that you can embed in * a user, see Limitations * on IAM Entities in the IAM User Guide.

Because policy * documents can be large, you should use POST rather than GET when calling * PutUserPolicy. For general information about using the Query API * with IAM, go to Making * Query Requests in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void PutUserPolicyAsync(const Model::PutUserPolicyRequest& request, const PutUserPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Removes the specified client ID (also known as audience) from the list of * client IDs registered for the specified IAM OpenID Connect (OIDC) provider * resource object.

This operation is idempotent; it does not fail or return * an error if you try to remove a client ID that does not exist.

See * Also:

AWS * API Reference

*/ virtual Model::RemoveClientIDFromOpenIDConnectProviderOutcome RemoveClientIDFromOpenIDConnectProvider(const Model::RemoveClientIDFromOpenIDConnectProviderRequest& request) const; /** *

Removes the specified client ID (also known as audience) from the list of * client IDs registered for the specified IAM OpenID Connect (OIDC) provider * resource object.

This operation is idempotent; it does not fail or return * an error if you try to remove a client ID that does not exist.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::RemoveClientIDFromOpenIDConnectProviderOutcomeCallable RemoveClientIDFromOpenIDConnectProviderCallable(const Model::RemoveClientIDFromOpenIDConnectProviderRequest& request) const; /** *

Removes the specified client ID (also known as audience) from the list of * client IDs registered for the specified IAM OpenID Connect (OIDC) provider * resource object.

This operation is idempotent; it does not fail or return * an error if you try to remove a client ID that does not exist.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void RemoveClientIDFromOpenIDConnectProviderAsync(const Model::RemoveClientIDFromOpenIDConnectProviderRequest& request, const RemoveClientIDFromOpenIDConnectProviderResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Removes the specified IAM role from the specified EC2 instance profile.

*

Make sure that you do not have any Amazon EC2 instances running * with the role you are about to remove from the instance profile. Removing a role * from an instance profile that is associated with a running instance might break * any applications running on the instance.

For more * information about IAM roles, go to Working * with Roles. For more information about instance profiles, go to About * Instance Profiles.

See Also:

AWS * API Reference

*/ virtual Model::RemoveRoleFromInstanceProfileOutcome RemoveRoleFromInstanceProfile(const Model::RemoveRoleFromInstanceProfileRequest& request) const; /** *

Removes the specified IAM role from the specified EC2 instance profile.

*

Make sure that you do not have any Amazon EC2 instances running * with the role you are about to remove from the instance profile. Removing a role * from an instance profile that is associated with a running instance might break * any applications running on the instance.

For more * information about IAM roles, go to Working * with Roles. For more information about instance profiles, go to About * Instance Profiles.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::RemoveRoleFromInstanceProfileOutcomeCallable RemoveRoleFromInstanceProfileCallable(const Model::RemoveRoleFromInstanceProfileRequest& request) const; /** *

Removes the specified IAM role from the specified EC2 instance profile.

*

Make sure that you do not have any Amazon EC2 instances running * with the role you are about to remove from the instance profile. Removing a role * from an instance profile that is associated with a running instance might break * any applications running on the instance.

For more * information about IAM roles, go to Working * with Roles. For more information about instance profiles, go to About * Instance Profiles.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void RemoveRoleFromInstanceProfileAsync(const Model::RemoveRoleFromInstanceProfileRequest& request, const RemoveRoleFromInstanceProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Removes the specified user from the specified group.

See Also:

* AWS * API Reference

*/ virtual Model::RemoveUserFromGroupOutcome RemoveUserFromGroup(const Model::RemoveUserFromGroupRequest& request) const; /** *

Removes the specified user from the specified group.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::RemoveUserFromGroupOutcomeCallable RemoveUserFromGroupCallable(const Model::RemoveUserFromGroupRequest& request) const; /** *

Removes the specified user from the specified group.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void RemoveUserFromGroupAsync(const Model::RemoveUserFromGroupRequest& request, const RemoveUserFromGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Resets the password for a service-specific credential. The new password is * AWS generated and cryptographically strong. It cannot be configured by the user. * Resetting the password immediately invalidates the previous password associated * with this user.

See Also:

AWS * API Reference

*/ virtual Model::ResetServiceSpecificCredentialOutcome ResetServiceSpecificCredential(const Model::ResetServiceSpecificCredentialRequest& request) const; /** *

Resets the password for a service-specific credential. The new password is * AWS generated and cryptographically strong. It cannot be configured by the user. * Resetting the password immediately invalidates the previous password associated * with this user.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ResetServiceSpecificCredentialOutcomeCallable ResetServiceSpecificCredentialCallable(const Model::ResetServiceSpecificCredentialRequest& request) const; /** *

Resets the password for a service-specific credential. The new password is * AWS generated and cryptographically strong. It cannot be configured by the user. * Resetting the password immediately invalidates the previous password associated * with this user.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ResetServiceSpecificCredentialAsync(const Model::ResetServiceSpecificCredentialRequest& request, const ResetServiceSpecificCredentialResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Synchronizes the specified MFA device with its IAM resource object on the AWS * servers.

For more information about creating and working with virtual MFA * devices, go to Using * a Virtual MFA Device in the IAM User Guide.

See Also:

* AWS * API Reference

*/ virtual Model::ResyncMFADeviceOutcome ResyncMFADevice(const Model::ResyncMFADeviceRequest& request) const; /** *

Synchronizes the specified MFA device with its IAM resource object on the AWS * servers.

For more information about creating and working with virtual MFA * devices, go to Using * a Virtual MFA Device in the IAM User Guide.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ResyncMFADeviceOutcomeCallable ResyncMFADeviceCallable(const Model::ResyncMFADeviceRequest& request) const; /** *

Synchronizes the specified MFA device with its IAM resource object on the AWS * servers.

For more information about creating and working with virtual MFA * devices, go to Using * a Virtual MFA Device in the IAM User Guide.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ResyncMFADeviceAsync(const Model::ResyncMFADeviceRequest& request, const ResyncMFADeviceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Sets the specified version of the specified policy as the policy's default * (operative) version.

This operation affects all users, groups, and roles * that the policy is attached to. To list the users, groups, and roles that the * policy is attached to, use the ListEntitiesForPolicy API.

For * information about managed policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::SetDefaultPolicyVersionOutcome SetDefaultPolicyVersion(const Model::SetDefaultPolicyVersionRequest& request) const; /** *

Sets the specified version of the specified policy as the policy's default * (operative) version.

This operation affects all users, groups, and roles * that the policy is attached to. To list the users, groups, and roles that the * policy is attached to, use the ListEntitiesForPolicy API.

For * information about managed policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SetDefaultPolicyVersionOutcomeCallable SetDefaultPolicyVersionCallable(const Model::SetDefaultPolicyVersionRequest& request) const; /** *

Sets the specified version of the specified policy as the policy's default * (operative) version.

This operation affects all users, groups, and roles * that the policy is attached to. To list the users, groups, and roles that the * policy is attached to, use the ListEntitiesForPolicy API.

For * information about managed policies, see Managed * Policies and Inline Policies in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SetDefaultPolicyVersionAsync(const Model::SetDefaultPolicyVersionRequest& request, const SetDefaultPolicyVersionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Sets the specified version of the global endpoint token as the token version * used for the AWS account.

By default, AWS Security Token Service (STS) is * available as a global service, and all STS requests go to a single endpoint at * https://sts.amazonaws.com. AWS recommends using Regional STS * endpoints to reduce latency, build in redundancy, and increase session token * availability. For information about Regional endpoints for STS, see AWS * Regions and Endpoints in the AWS General Reference.

If you * make an STS call to the global endpoint, the resulting session tokens might be * valid in some Regions but not others. It depends on the version that is set in * this operation. Version 1 tokens are valid only in AWS Regions that are * available by default. These tokens do not work in manually enabled Regions, such * as Asia Pacific (Hong Kong). Version 2 tokens are valid in all Regions. However, * version 2 tokens are longer and might affect systems where you temporarily store * tokens. For information, see Activating * and Deactivating STS in an AWS Region in the IAM User Guide.

*

To view the current session token version, see the * GlobalEndpointTokenVersion entry in the response of the * GetAccountSummary operation.

See Also:

AWS * API Reference

*/ virtual Model::SetSecurityTokenServicePreferencesOutcome SetSecurityTokenServicePreferences(const Model::SetSecurityTokenServicePreferencesRequest& request) const; /** *

Sets the specified version of the global endpoint token as the token version * used for the AWS account.

By default, AWS Security Token Service (STS) is * available as a global service, and all STS requests go to a single endpoint at * https://sts.amazonaws.com. AWS recommends using Regional STS * endpoints to reduce latency, build in redundancy, and increase session token * availability. For information about Regional endpoints for STS, see AWS * Regions and Endpoints in the AWS General Reference.

If you * make an STS call to the global endpoint, the resulting session tokens might be * valid in some Regions but not others. It depends on the version that is set in * this operation. Version 1 tokens are valid only in AWS Regions that are * available by default. These tokens do not work in manually enabled Regions, such * as Asia Pacific (Hong Kong). Version 2 tokens are valid in all Regions. However, * version 2 tokens are longer and might affect systems where you temporarily store * tokens. For information, see Activating * and Deactivating STS in an AWS Region in the IAM User Guide.

*

To view the current session token version, see the * GlobalEndpointTokenVersion entry in the response of the * GetAccountSummary operation.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SetSecurityTokenServicePreferencesOutcomeCallable SetSecurityTokenServicePreferencesCallable(const Model::SetSecurityTokenServicePreferencesRequest& request) const; /** *

Sets the specified version of the global endpoint token as the token version * used for the AWS account.

By default, AWS Security Token Service (STS) is * available as a global service, and all STS requests go to a single endpoint at * https://sts.amazonaws.com. AWS recommends using Regional STS * endpoints to reduce latency, build in redundancy, and increase session token * availability. For information about Regional endpoints for STS, see AWS * Regions and Endpoints in the AWS General Reference.

If you * make an STS call to the global endpoint, the resulting session tokens might be * valid in some Regions but not others. It depends on the version that is set in * this operation. Version 1 tokens are valid only in AWS Regions that are * available by default. These tokens do not work in manually enabled Regions, such * as Asia Pacific (Hong Kong). Version 2 tokens are valid in all Regions. However, * version 2 tokens are longer and might affect systems where you temporarily store * tokens. For information, see Activating * and Deactivating STS in an AWS Region in the IAM User Guide.

*

To view the current session token version, see the * GlobalEndpointTokenVersion entry in the response of the * GetAccountSummary operation.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SetSecurityTokenServicePreferencesAsync(const Model::SetSecurityTokenServicePreferencesRequest& request, const SetSecurityTokenServicePreferencesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Simulate how a set of IAM policies and optionally a resource-based policy * works with a list of API operations and AWS resources to determine the policies' * effective permissions. The policies are provided as strings.

The * simulation does not perform the API operations; it only checks the authorization * to determine if the simulated policies allow or deny the operations.

If * you want to simulate existing policies that are attached to an IAM user, group, * or role, use SimulatePrincipalPolicy instead.

Context keys are * variables that are maintained by AWS and its services and which provide details * about the context of an API query request. You can use the * Condition element of an IAM policy to evaluate context keys. To get * the list of context keys that the policies require for correct simulation, use * GetContextKeysForCustomPolicy.

If the output is long, you can use * MaxItems and Marker parameters to paginate the * results.

See Also:

AWS * API Reference

*/ virtual Model::SimulateCustomPolicyOutcome SimulateCustomPolicy(const Model::SimulateCustomPolicyRequest& request) const; /** *

Simulate how a set of IAM policies and optionally a resource-based policy * works with a list of API operations and AWS resources to determine the policies' * effective permissions. The policies are provided as strings.

The * simulation does not perform the API operations; it only checks the authorization * to determine if the simulated policies allow or deny the operations.

If * you want to simulate existing policies that are attached to an IAM user, group, * or role, use SimulatePrincipalPolicy instead.

Context keys are * variables that are maintained by AWS and its services and which provide details * about the context of an API query request. You can use the * Condition element of an IAM policy to evaluate context keys. To get * the list of context keys that the policies require for correct simulation, use * GetContextKeysForCustomPolicy.

If the output is long, you can use * MaxItems and Marker parameters to paginate the * results.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SimulateCustomPolicyOutcomeCallable SimulateCustomPolicyCallable(const Model::SimulateCustomPolicyRequest& request) const; /** *

Simulate how a set of IAM policies and optionally a resource-based policy * works with a list of API operations and AWS resources to determine the policies' * effective permissions. The policies are provided as strings.

The * simulation does not perform the API operations; it only checks the authorization * to determine if the simulated policies allow or deny the operations.

If * you want to simulate existing policies that are attached to an IAM user, group, * or role, use SimulatePrincipalPolicy instead.

Context keys are * variables that are maintained by AWS and its services and which provide details * about the context of an API query request. You can use the * Condition element of an IAM policy to evaluate context keys. To get * the list of context keys that the policies require for correct simulation, use * GetContextKeysForCustomPolicy.

If the output is long, you can use * MaxItems and Marker parameters to paginate the * results.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SimulateCustomPolicyAsync(const Model::SimulateCustomPolicyRequest& request, const SimulateCustomPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Simulate how a set of IAM policies attached to an IAM entity works with a * list of API operations and AWS resources to determine the policies' effective * permissions. The entity can be an IAM user, group, or role. If you specify a * user, then the simulation also includes all of the policies that are attached to * groups that the user belongs to.

You can optionally include a list of one * or more additional policies specified as strings to include in the simulation. * If you want to simulate only policies specified as strings, use * SimulateCustomPolicy instead.

You can also optionally include one * resource-based policy to be evaluated with each of the resources included in the * simulation.

The simulation does not perform the API operations; it only * checks the authorization to determine if the simulated policies allow or deny * the operations.

Note: This API discloses information about the * permissions granted to other users. If you do not want users to see other user's * permissions, then consider allowing them to use SimulateCustomPolicy * instead.

Context keys are variables maintained by AWS and its services * that provide details about the context of an API query request. You can use the * Condition element of an IAM policy to evaluate context keys. To get * the list of context keys that the policies require for correct simulation, use * GetContextKeysForPrincipalPolicy.

If the output is long, you can * use the MaxItems and Marker parameters to paginate the * results.

See Also:

AWS * API Reference

*/ virtual Model::SimulatePrincipalPolicyOutcome SimulatePrincipalPolicy(const Model::SimulatePrincipalPolicyRequest& request) const; /** *

Simulate how a set of IAM policies attached to an IAM entity works with a * list of API operations and AWS resources to determine the policies' effective * permissions. The entity can be an IAM user, group, or role. If you specify a * user, then the simulation also includes all of the policies that are attached to * groups that the user belongs to.

You can optionally include a list of one * or more additional policies specified as strings to include in the simulation. * If you want to simulate only policies specified as strings, use * SimulateCustomPolicy instead.

You can also optionally include one * resource-based policy to be evaluated with each of the resources included in the * simulation.

The simulation does not perform the API operations; it only * checks the authorization to determine if the simulated policies allow or deny * the operations.

Note: This API discloses information about the * permissions granted to other users. If you do not want users to see other user's * permissions, then consider allowing them to use SimulateCustomPolicy * instead.

Context keys are variables maintained by AWS and its services * that provide details about the context of an API query request. You can use the * Condition element of an IAM policy to evaluate context keys. To get * the list of context keys that the policies require for correct simulation, use * GetContextKeysForPrincipalPolicy.

If the output is long, you can * use the MaxItems and Marker parameters to paginate the * results.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SimulatePrincipalPolicyOutcomeCallable SimulatePrincipalPolicyCallable(const Model::SimulatePrincipalPolicyRequest& request) const; /** *

Simulate how a set of IAM policies attached to an IAM entity works with a * list of API operations and AWS resources to determine the policies' effective * permissions. The entity can be an IAM user, group, or role. If you specify a * user, then the simulation also includes all of the policies that are attached to * groups that the user belongs to.

You can optionally include a list of one * or more additional policies specified as strings to include in the simulation. * If you want to simulate only policies specified as strings, use * SimulateCustomPolicy instead.

You can also optionally include one * resource-based policy to be evaluated with each of the resources included in the * simulation.

The simulation does not perform the API operations; it only * checks the authorization to determine if the simulated policies allow or deny * the operations.

Note: This API discloses information about the * permissions granted to other users. If you do not want users to see other user's * permissions, then consider allowing them to use SimulateCustomPolicy * instead.

Context keys are variables maintained by AWS and its services * that provide details about the context of an API query request. You can use the * Condition element of an IAM policy to evaluate context keys. To get * the list of context keys that the policies require for correct simulation, use * GetContextKeysForPrincipalPolicy.

If the output is long, you can * use the MaxItems and Marker parameters to paginate the * results.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SimulatePrincipalPolicyAsync(const Model::SimulatePrincipalPolicyRequest& request, const SimulatePrincipalPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Adds one or more tags to an IAM role. The role can be a regular role or a * service-linked role. If a tag with the same key name already exists, then that * tag is overwritten with the new value.

A tag consists of a key name and * an associated value. By assigning tags to your resources, you can do the * following:

  • Administrative grouping and discovery - * Attach tags to resources to aid in organization and search. For example, you * could search for all resources with the key name Project and the value * MyImportantProject. Or search for all resources with the key name Cost * Center and the value 41200.

  • Access control * - Reference tags in IAM user-based and resource-based policies. You can use tags * to restrict access to only an IAM user or role that has a specified tag * attached. You can also restrict access to only those resources that have a * certain tag attached. For examples of policies that show how to use tags to * control access, see Control * Access Using IAM Tags in the IAM User Guide.

  • * Cost allocation - Use tags to help track which individuals and teams are * using which AWS resources.

  • Make sure that * you have no invalid tags and that you do not exceed the allowed number of tags * per role. In either case, the entire request fails and no tags are added * to the role.

  • AWS always interprets the tag Value * as a single string. If you need to store an array, you can store comma-separated * values in the string. However, you must interpret the value in your code.

    *

For more information about tagging, see Tagging IAM * Identities in the IAM User Guide.

See Also:

AWS API * Reference

*/ virtual Model::TagRoleOutcome TagRole(const Model::TagRoleRequest& request) const; /** *

Adds one or more tags to an IAM role. The role can be a regular role or a * service-linked role. If a tag with the same key name already exists, then that * tag is overwritten with the new value.

A tag consists of a key name and * an associated value. By assigning tags to your resources, you can do the * following:

  • Administrative grouping and discovery - * Attach tags to resources to aid in organization and search. For example, you * could search for all resources with the key name Project and the value * MyImportantProject. Or search for all resources with the key name Cost * Center and the value 41200.

  • Access control * - Reference tags in IAM user-based and resource-based policies. You can use tags * to restrict access to only an IAM user or role that has a specified tag * attached. You can also restrict access to only those resources that have a * certain tag attached. For examples of policies that show how to use tags to * control access, see Control * Access Using IAM Tags in the IAM User Guide.

  • * Cost allocation - Use tags to help track which individuals and teams are * using which AWS resources.

  • Make sure that * you have no invalid tags and that you do not exceed the allowed number of tags * per role. In either case, the entire request fails and no tags are added * to the role.

  • AWS always interprets the tag Value * as a single string. If you need to store an array, you can store comma-separated * values in the string. However, you must interpret the value in your code.

    *

For more information about tagging, see Tagging IAM * Identities in the IAM User Guide.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::TagRoleOutcomeCallable TagRoleCallable(const Model::TagRoleRequest& request) const; /** *

Adds one or more tags to an IAM role. The role can be a regular role or a * service-linked role. If a tag with the same key name already exists, then that * tag is overwritten with the new value.

A tag consists of a key name and * an associated value. By assigning tags to your resources, you can do the * following:

  • Administrative grouping and discovery - * Attach tags to resources to aid in organization and search. For example, you * could search for all resources with the key name Project and the value * MyImportantProject. Or search for all resources with the key name Cost * Center and the value 41200.

  • Access control * - Reference tags in IAM user-based and resource-based policies. You can use tags * to restrict access to only an IAM user or role that has a specified tag * attached. You can also restrict access to only those resources that have a * certain tag attached. For examples of policies that show how to use tags to * control access, see Control * Access Using IAM Tags in the IAM User Guide.

  • * Cost allocation - Use tags to help track which individuals and teams are * using which AWS resources.

  • Make sure that * you have no invalid tags and that you do not exceed the allowed number of tags * per role. In either case, the entire request fails and no tags are added * to the role.

  • AWS always interprets the tag Value * as a single string. If you need to store an array, you can store comma-separated * values in the string. However, you must interpret the value in your code.

    *

For more information about tagging, see Tagging IAM * Identities in the IAM User Guide.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void TagRoleAsync(const Model::TagRoleRequest& request, const TagRoleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Adds one or more tags to an IAM user. If a tag with the same key name already * exists, then that tag is overwritten with the new value.

A tag consists * of a key name and an associated value. By assigning tags to your resources, you * can do the following:

  • Administrative grouping and * discovery - Attach tags to resources to aid in organization and search. For * example, you could search for all resources with the key name Project and * the value MyImportantProject. Or search for all resources with the key * name Cost Center and the value 41200.

  • * Access control - Reference tags in IAM user-based and resource-based * policies. You can use tags to restrict access to only an IAM requesting user or * to a role that has a specified tag attached. You can also restrict access to * only those resources that have a certain tag attached. For examples of policies * that show how to use tags to control access, see Control * Access Using IAM Tags in the IAM User Guide.

  • * Cost allocation - Use tags to help track which individuals and teams are * using which AWS resources.

  • Make sure that * you have no invalid tags and that you do not exceed the allowed number of tags * per role. In either case, the entire request fails and no tags are added * to the role.

  • AWS always interprets the tag Value * as a single string. If you need to store an array, you can store comma-separated * values in the string. However, you must interpret the value in your code.

    *

For more information about tagging, see Tagging IAM * Identities in the IAM User Guide.

See Also:

AWS API * Reference

*/ virtual Model::TagUserOutcome TagUser(const Model::TagUserRequest& request) const; /** *

Adds one or more tags to an IAM user. If a tag with the same key name already * exists, then that tag is overwritten with the new value.

A tag consists * of a key name and an associated value. By assigning tags to your resources, you * can do the following:

  • Administrative grouping and * discovery - Attach tags to resources to aid in organization and search. For * example, you could search for all resources with the key name Project and * the value MyImportantProject. Or search for all resources with the key * name Cost Center and the value 41200.

  • * Access control - Reference tags in IAM user-based and resource-based * policies. You can use tags to restrict access to only an IAM requesting user or * to a role that has a specified tag attached. You can also restrict access to * only those resources that have a certain tag attached. For examples of policies * that show how to use tags to control access, see Control * Access Using IAM Tags in the IAM User Guide.

  • * Cost allocation - Use tags to help track which individuals and teams are * using which AWS resources.

  • Make sure that * you have no invalid tags and that you do not exceed the allowed number of tags * per role. In either case, the entire request fails and no tags are added * to the role.

  • AWS always interprets the tag Value * as a single string. If you need to store an array, you can store comma-separated * values in the string. However, you must interpret the value in your code.

    *

For more information about tagging, see Tagging IAM * Identities in the IAM User Guide.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::TagUserOutcomeCallable TagUserCallable(const Model::TagUserRequest& request) const; /** *

Adds one or more tags to an IAM user. If a tag with the same key name already * exists, then that tag is overwritten with the new value.

A tag consists * of a key name and an associated value. By assigning tags to your resources, you * can do the following:

  • Administrative grouping and * discovery - Attach tags to resources to aid in organization and search. For * example, you could search for all resources with the key name Project and * the value MyImportantProject. Or search for all resources with the key * name Cost Center and the value 41200.

  • * Access control - Reference tags in IAM user-based and resource-based * policies. You can use tags to restrict access to only an IAM requesting user or * to a role that has a specified tag attached. You can also restrict access to * only those resources that have a certain tag attached. For examples of policies * that show how to use tags to control access, see Control * Access Using IAM Tags in the IAM User Guide.

  • * Cost allocation - Use tags to help track which individuals and teams are * using which AWS resources.

  • Make sure that * you have no invalid tags and that you do not exceed the allowed number of tags * per role. In either case, the entire request fails and no tags are added * to the role.

  • AWS always interprets the tag Value * as a single string. If you need to store an array, you can store comma-separated * values in the string. However, you must interpret the value in your code.

    *

For more information about tagging, see Tagging IAM * Identities in the IAM User Guide.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void TagUserAsync(const Model::TagUserRequest& request, const TagUserResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Removes the specified tags from the role. For more information about tagging, * see Tagging IAM * Identities in the IAM User Guide.

See Also:

AWS API * Reference

*/ virtual Model::UntagRoleOutcome UntagRole(const Model::UntagRoleRequest& request) const; /** *

Removes the specified tags from the role. For more information about tagging, * see Tagging IAM * Identities in the IAM User Guide.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UntagRoleOutcomeCallable UntagRoleCallable(const Model::UntagRoleRequest& request) const; /** *

Removes the specified tags from the role. For more information about tagging, * see Tagging IAM * Identities in the IAM User Guide.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UntagRoleAsync(const Model::UntagRoleRequest& request, const UntagRoleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Removes the specified tags from the user. For more information about tagging, * see Tagging IAM * Identities in the IAM User Guide.

See Also:

AWS API * Reference

*/ virtual Model::UntagUserOutcome UntagUser(const Model::UntagUserRequest& request) const; /** *

Removes the specified tags from the user. For more information about tagging, * see Tagging IAM * Identities in the IAM User Guide.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UntagUserOutcomeCallable UntagUserCallable(const Model::UntagUserRequest& request) const; /** *

Removes the specified tags from the user. For more information about tagging, * see Tagging IAM * Identities in the IAM User Guide.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UntagUserAsync(const Model::UntagUserRequest& request, const UntagUserResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Changes the status of the specified access key from Active to Inactive, or * vice versa. This operation can be used to disable a user's key as part of a key * rotation workflow.

If the UserName is not specified, the * user name is determined implicitly based on the AWS access key ID used to sign * the request. This operation works for access keys under the AWS account. * Consequently, you can use this operation to manage AWS account root user * credentials even if the AWS account has no associated users.

For * information about rotating keys, see Managing * Keys and Certificates in the IAM User Guide.

See Also:

* AWS * API Reference

*/ virtual Model::UpdateAccessKeyOutcome UpdateAccessKey(const Model::UpdateAccessKeyRequest& request) const; /** *

Changes the status of the specified access key from Active to Inactive, or * vice versa. This operation can be used to disable a user's key as part of a key * rotation workflow.

If the UserName is not specified, the * user name is determined implicitly based on the AWS access key ID used to sign * the request. This operation works for access keys under the AWS account. * Consequently, you can use this operation to manage AWS account root user * credentials even if the AWS account has no associated users.

For * information about rotating keys, see Managing * Keys and Certificates in the IAM User Guide.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateAccessKeyOutcomeCallable UpdateAccessKeyCallable(const Model::UpdateAccessKeyRequest& request) const; /** *

Changes the status of the specified access key from Active to Inactive, or * vice versa. This operation can be used to disable a user's key as part of a key * rotation workflow.

If the UserName is not specified, the * user name is determined implicitly based on the AWS access key ID used to sign * the request. This operation works for access keys under the AWS account. * Consequently, you can use this operation to manage AWS account root user * credentials even if the AWS account has no associated users.

For * information about rotating keys, see Managing * Keys and Certificates in the IAM User Guide.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateAccessKeyAsync(const Model::UpdateAccessKeyRequest& request, const UpdateAccessKeyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Updates the password policy settings for the AWS account.

    *
  • This operation does not support partial updates. No parameters are * required, but if you do not specify a parameter, that parameter's value reverts * to its default value. See the Request Parameters section for each * parameter's default value. Also note that some parameters do not allow the * default parameter to be explicitly set. Instead, to invoke the default value, do * not include that parameter when you invoke the operation.

*

For more information about using a password policy, see Managing * an IAM Password Policy in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::UpdateAccountPasswordPolicyOutcome UpdateAccountPasswordPolicy(const Model::UpdateAccountPasswordPolicyRequest& request) const; /** *

Updates the password policy settings for the AWS account.

    *
  • This operation does not support partial updates. No parameters are * required, but if you do not specify a parameter, that parameter's value reverts * to its default value. See the Request Parameters section for each * parameter's default value. Also note that some parameters do not allow the * default parameter to be explicitly set. Instead, to invoke the default value, do * not include that parameter when you invoke the operation.

*

For more information about using a password policy, see Managing * an IAM Password Policy in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateAccountPasswordPolicyOutcomeCallable UpdateAccountPasswordPolicyCallable(const Model::UpdateAccountPasswordPolicyRequest& request) const; /** *

Updates the password policy settings for the AWS account.

    *
  • This operation does not support partial updates. No parameters are * required, but if you do not specify a parameter, that parameter's value reverts * to its default value. See the Request Parameters section for each * parameter's default value. Also note that some parameters do not allow the * default parameter to be explicitly set. Instead, to invoke the default value, do * not include that parameter when you invoke the operation.

*

For more information about using a password policy, see Managing * an IAM Password Policy in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateAccountPasswordPolicyAsync(const Model::UpdateAccountPasswordPolicyRequest& request, const UpdateAccountPasswordPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Updates the policy that grants an IAM entity permission to assume a role. * This is typically referred to as the "role trust policy". For more information * about roles, go to Using * Roles to Delegate Permissions and Federate Identities.

See * Also:

AWS * API Reference

*/ virtual Model::UpdateAssumeRolePolicyOutcome UpdateAssumeRolePolicy(const Model::UpdateAssumeRolePolicyRequest& request) const; /** *

Updates the policy that grants an IAM entity permission to assume a role. * This is typically referred to as the "role trust policy". For more information * about roles, go to Using * Roles to Delegate Permissions and Federate Identities.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateAssumeRolePolicyOutcomeCallable UpdateAssumeRolePolicyCallable(const Model::UpdateAssumeRolePolicyRequest& request) const; /** *

Updates the policy that grants an IAM entity permission to assume a role. * This is typically referred to as the "role trust policy". For more information * about roles, go to Using * Roles to Delegate Permissions and Federate Identities.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateAssumeRolePolicyAsync(const Model::UpdateAssumeRolePolicyRequest& request, const UpdateAssumeRolePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Updates the name and/or the path of the specified IAM group.

*

You should understand the implications of changing a group's path or name. * For more information, see Renaming * Users and Groups in the IAM User Guide.

*

The person making the request (the principal), must have permission to change * the role group with the old name and the new name. For example, to change the * group named Managers to MGRs, the principal must have * a policy that allows them to update both groups. If the principal has permission * to update the Managers group, but not the MGRs group, * then the update fails. For more information about permissions, see Access * Management.

See Also:

AWS API * Reference

*/ virtual Model::UpdateGroupOutcome UpdateGroup(const Model::UpdateGroupRequest& request) const; /** *

Updates the name and/or the path of the specified IAM group.

*

You should understand the implications of changing a group's path or name. * For more information, see Renaming * Users and Groups in the IAM User Guide.

*

The person making the request (the principal), must have permission to change * the role group with the old name and the new name. For example, to change the * group named Managers to MGRs, the principal must have * a policy that allows them to update both groups. If the principal has permission * to update the Managers group, but not the MGRs group, * then the update fails. For more information about permissions, see Access * Management.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateGroupOutcomeCallable UpdateGroupCallable(const Model::UpdateGroupRequest& request) const; /** *

Updates the name and/or the path of the specified IAM group.

*

You should understand the implications of changing a group's path or name. * For more information, see Renaming * Users and Groups in the IAM User Guide.

*

The person making the request (the principal), must have permission to change * the role group with the old name and the new name. For example, to change the * group named Managers to MGRs, the principal must have * a policy that allows them to update both groups. If the principal has permission * to update the Managers group, but not the MGRs group, * then the update fails. For more information about permissions, see Access * Management.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateGroupAsync(const Model::UpdateGroupRequest& request, const UpdateGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Changes the password for the specified IAM user.

IAM users can change * their own passwords by calling ChangePassword. For more information about * modifying passwords, see Managing * Passwords in the IAM User Guide.

See Also:

AWS * API Reference

*/ virtual Model::UpdateLoginProfileOutcome UpdateLoginProfile(const Model::UpdateLoginProfileRequest& request) const; /** *

Changes the password for the specified IAM user.

IAM users can change * their own passwords by calling ChangePassword. For more information about * modifying passwords, see Managing * Passwords in the IAM User Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateLoginProfileOutcomeCallable UpdateLoginProfileCallable(const Model::UpdateLoginProfileRequest& request) const; /** *

Changes the password for the specified IAM user.

IAM users can change * their own passwords by calling ChangePassword. For more information about * modifying passwords, see Managing * Passwords in the IAM User Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateLoginProfileAsync(const Model::UpdateLoginProfileRequest& request, const UpdateLoginProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Replaces the existing list of server certificate thumbprints associated with * an OpenID Connect (OIDC) provider resource object with a new list of * thumbprints.

The list that you pass with this operation completely * replaces the existing list of thumbprints. (The lists are not merged.)

*

Typically, you need to update a thumbprint only when the identity provider's * certificate changes, which occurs rarely. However, if the provider's certificate * does change, any attempt to assume an IAM role that specifies the OIDC * provider as a principal fails until the certificate thumbprint is updated.

*

Trust for the OIDC provider is derived from the provider's certificate * and is validated by the thumbprint. Therefore, it is best to limit access to the * UpdateOpenIDConnectProviderThumbprint operation to highly * privileged users.

See Also:

AWS * API Reference

*/ virtual Model::UpdateOpenIDConnectProviderThumbprintOutcome UpdateOpenIDConnectProviderThumbprint(const Model::UpdateOpenIDConnectProviderThumbprintRequest& request) const; /** *

Replaces the existing list of server certificate thumbprints associated with * an OpenID Connect (OIDC) provider resource object with a new list of * thumbprints.

The list that you pass with this operation completely * replaces the existing list of thumbprints. (The lists are not merged.)

*

Typically, you need to update a thumbprint only when the identity provider's * certificate changes, which occurs rarely. However, if the provider's certificate * does change, any attempt to assume an IAM role that specifies the OIDC * provider as a principal fails until the certificate thumbprint is updated.

*

Trust for the OIDC provider is derived from the provider's certificate * and is validated by the thumbprint. Therefore, it is best to limit access to the * UpdateOpenIDConnectProviderThumbprint operation to highly * privileged users.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateOpenIDConnectProviderThumbprintOutcomeCallable UpdateOpenIDConnectProviderThumbprintCallable(const Model::UpdateOpenIDConnectProviderThumbprintRequest& request) const; /** *

Replaces the existing list of server certificate thumbprints associated with * an OpenID Connect (OIDC) provider resource object with a new list of * thumbprints.

The list that you pass with this operation completely * replaces the existing list of thumbprints. (The lists are not merged.)

*

Typically, you need to update a thumbprint only when the identity provider's * certificate changes, which occurs rarely. However, if the provider's certificate * does change, any attempt to assume an IAM role that specifies the OIDC * provider as a principal fails until the certificate thumbprint is updated.

*

Trust for the OIDC provider is derived from the provider's certificate * and is validated by the thumbprint. Therefore, it is best to limit access to the * UpdateOpenIDConnectProviderThumbprint operation to highly * privileged users.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateOpenIDConnectProviderThumbprintAsync(const Model::UpdateOpenIDConnectProviderThumbprintRequest& request, const UpdateOpenIDConnectProviderThumbprintResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Updates the description or maximum session duration setting of a * role.

See Also:

AWS API * Reference

*/ virtual Model::UpdateRoleOutcome UpdateRole(const Model::UpdateRoleRequest& request) const; /** *

Updates the description or maximum session duration setting of a * role.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateRoleOutcomeCallable UpdateRoleCallable(const Model::UpdateRoleRequest& request) const; /** *

Updates the description or maximum session duration setting of a * role.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateRoleAsync(const Model::UpdateRoleRequest& request, const UpdateRoleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Use UpdateRole instead.

Modifies only the description of a * role. This operation performs the same function as the Description * parameter in the UpdateRole operation.

See Also:

* AWS * API Reference

*/ virtual Model::UpdateRoleDescriptionOutcome UpdateRoleDescription(const Model::UpdateRoleDescriptionRequest& request) const; /** *

Use UpdateRole instead.

Modifies only the description of a * role. This operation performs the same function as the Description * parameter in the UpdateRole operation.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateRoleDescriptionOutcomeCallable UpdateRoleDescriptionCallable(const Model::UpdateRoleDescriptionRequest& request) const; /** *

Use UpdateRole instead.

Modifies only the description of a * role. This operation performs the same function as the Description * parameter in the UpdateRole operation.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateRoleDescriptionAsync(const Model::UpdateRoleDescriptionRequest& request, const UpdateRoleDescriptionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Updates the metadata document for an existing SAML provider resource * object.

This operation requires Signature * Version 4.

See Also:

AWS * API Reference

*/ virtual Model::UpdateSAMLProviderOutcome UpdateSAMLProvider(const Model::UpdateSAMLProviderRequest& request) const; /** *

Updates the metadata document for an existing SAML provider resource * object.

This operation requires Signature * Version 4.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateSAMLProviderOutcomeCallable UpdateSAMLProviderCallable(const Model::UpdateSAMLProviderRequest& request) const; /** *

Updates the metadata document for an existing SAML provider resource * object.

This operation requires Signature * Version 4.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateSAMLProviderAsync(const Model::UpdateSAMLProviderRequest& request, const UpdateSAMLProviderResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Sets the status of an IAM user's SSH public key to active or inactive. SSH * public keys that are inactive cannot be used for authentication. This operation * can be used to disable a user's SSH public key as part of a key rotation work * flow.

The SSH public key affected by this operation is used only for * authenticating the associated IAM user to an AWS CodeCommit repository. For more * information about using SSH keys to authenticate to an AWS CodeCommit * repository, see Set * up AWS CodeCommit for SSH Connections in the AWS CodeCommit User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::UpdateSSHPublicKeyOutcome UpdateSSHPublicKey(const Model::UpdateSSHPublicKeyRequest& request) const; /** *

Sets the status of an IAM user's SSH public key to active or inactive. SSH * public keys that are inactive cannot be used for authentication. This operation * can be used to disable a user's SSH public key as part of a key rotation work * flow.

The SSH public key affected by this operation is used only for * authenticating the associated IAM user to an AWS CodeCommit repository. For more * information about using SSH keys to authenticate to an AWS CodeCommit * repository, see Set * up AWS CodeCommit for SSH Connections in the AWS CodeCommit User * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateSSHPublicKeyOutcomeCallable UpdateSSHPublicKeyCallable(const Model::UpdateSSHPublicKeyRequest& request) const; /** *

Sets the status of an IAM user's SSH public key to active or inactive. SSH * public keys that are inactive cannot be used for authentication. This operation * can be used to disable a user's SSH public key as part of a key rotation work * flow.

The SSH public key affected by this operation is used only for * authenticating the associated IAM user to an AWS CodeCommit repository. For more * information about using SSH keys to authenticate to an AWS CodeCommit * repository, see Set * up AWS CodeCommit for SSH Connections in the AWS CodeCommit User * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateSSHPublicKeyAsync(const Model::UpdateSSHPublicKeyRequest& request, const UpdateSSHPublicKeyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Updates the name and/or the path of the specified server certificate stored * in IAM.

For more information about working with server certificates, see * Working * with Server Certificates in the IAM User Guide. This topic also * includes a list of AWS services that can use the server certificates that you * manage with IAM.

You should understand the implications of * changing a server certificate's path or name. For more information, see Renaming * a Server Certificate in the IAM User Guide.

*

The person making the request (the principal), must have permission to change * the server certificate with the old name and the new name. For example, to * change the certificate named ProductionCert to * ProdCert, the principal must have a policy that allows them to * update both certificates. If the principal has permission to update the * ProductionCert group, but not the ProdCert * certificate, then the update fails. For more information about permissions, see * Access * Management in the IAM User Guide.

See Also:

* AWS * API Reference

*/ virtual Model::UpdateServerCertificateOutcome UpdateServerCertificate(const Model::UpdateServerCertificateRequest& request) const; /** *

Updates the name and/or the path of the specified server certificate stored * in IAM.

For more information about working with server certificates, see * Working * with Server Certificates in the IAM User Guide. This topic also * includes a list of AWS services that can use the server certificates that you * manage with IAM.

You should understand the implications of * changing a server certificate's path or name. For more information, see Renaming * a Server Certificate in the IAM User Guide.

*

The person making the request (the principal), must have permission to change * the server certificate with the old name and the new name. For example, to * change the certificate named ProductionCert to * ProdCert, the principal must have a policy that allows them to * update both certificates. If the principal has permission to update the * ProductionCert group, but not the ProdCert * certificate, then the update fails. For more information about permissions, see * Access * Management in the IAM User Guide.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateServerCertificateOutcomeCallable UpdateServerCertificateCallable(const Model::UpdateServerCertificateRequest& request) const; /** *

Updates the name and/or the path of the specified server certificate stored * in IAM.

For more information about working with server certificates, see * Working * with Server Certificates in the IAM User Guide. This topic also * includes a list of AWS services that can use the server certificates that you * manage with IAM.

You should understand the implications of * changing a server certificate's path or name. For more information, see Renaming * a Server Certificate in the IAM User Guide.

*

The person making the request (the principal), must have permission to change * the server certificate with the old name and the new name. For example, to * change the certificate named ProductionCert to * ProdCert, the principal must have a policy that allows them to * update both certificates. If the principal has permission to update the * ProductionCert group, but not the ProdCert * certificate, then the update fails. For more information about permissions, see * Access * Management in the IAM User Guide.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateServerCertificateAsync(const Model::UpdateServerCertificateRequest& request, const UpdateServerCertificateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Sets the status of a service-specific credential to Active or * Inactive. Service-specific credentials that are inactive cannot be * used for authentication to the service. This operation can be used to disable a * user's service-specific credential as part of a credential rotation work * flow.

See Also:

AWS * API Reference

*/ virtual Model::UpdateServiceSpecificCredentialOutcome UpdateServiceSpecificCredential(const Model::UpdateServiceSpecificCredentialRequest& request) const; /** *

Sets the status of a service-specific credential to Active or * Inactive. Service-specific credentials that are inactive cannot be * used for authentication to the service. This operation can be used to disable a * user's service-specific credential as part of a credential rotation work * flow.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateServiceSpecificCredentialOutcomeCallable UpdateServiceSpecificCredentialCallable(const Model::UpdateServiceSpecificCredentialRequest& request) const; /** *

Sets the status of a service-specific credential to Active or * Inactive. Service-specific credentials that are inactive cannot be * used for authentication to the service. This operation can be used to disable a * user's service-specific credential as part of a credential rotation work * flow.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateServiceSpecificCredentialAsync(const Model::UpdateServiceSpecificCredentialRequest& request, const UpdateServiceSpecificCredentialResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Changes the status of the specified user signing certificate from active to * disabled, or vice versa. This operation can be used to disable an IAM user's * signing certificate as part of a certificate rotation work flow.

If the * UserName field is not specified, the user name is determined * implicitly based on the AWS access key ID used to sign the request. This * operation works for access keys under the AWS account. Consequently, you can use * this operation to manage AWS account root user credentials even if the AWS * account has no associated users.

See Also:

AWS * API Reference

*/ virtual Model::UpdateSigningCertificateOutcome UpdateSigningCertificate(const Model::UpdateSigningCertificateRequest& request) const; /** *

Changes the status of the specified user signing certificate from active to * disabled, or vice versa. This operation can be used to disable an IAM user's * signing certificate as part of a certificate rotation work flow.

If the * UserName field is not specified, the user name is determined * implicitly based on the AWS access key ID used to sign the request. This * operation works for access keys under the AWS account. Consequently, you can use * this operation to manage AWS account root user credentials even if the AWS * account has no associated users.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateSigningCertificateOutcomeCallable UpdateSigningCertificateCallable(const Model::UpdateSigningCertificateRequest& request) const; /** *

Changes the status of the specified user signing certificate from active to * disabled, or vice versa. This operation can be used to disable an IAM user's * signing certificate as part of a certificate rotation work flow.

If the * UserName field is not specified, the user name is determined * implicitly based on the AWS access key ID used to sign the request. This * operation works for access keys under the AWS account. Consequently, you can use * this operation to manage AWS account root user credentials even if the AWS * account has no associated users.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateSigningCertificateAsync(const Model::UpdateSigningCertificateRequest& request, const UpdateSigningCertificateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Updates the name and/or the path of the specified IAM user.

*

You should understand the implications of changing an IAM user's path or * name. For more information, see Renaming * an IAM User and Renaming * an IAM Group in the IAM User Guide.

To * change a user name, the requester must have appropriate permissions on both the * source object and the target object. For example, to change Bob to Robert, the * entity making the request must have permission on Bob and Robert, or must have * permission on all (*). For more information about permissions, see Permissions * and Policies.

See Also:

AWS API * Reference

*/ virtual Model::UpdateUserOutcome UpdateUser(const Model::UpdateUserRequest& request) const; /** *

Updates the name and/or the path of the specified IAM user.

*

You should understand the implications of changing an IAM user's path or * name. For more information, see Renaming * an IAM User and Renaming * an IAM Group in the IAM User Guide.

To * change a user name, the requester must have appropriate permissions on both the * source object and the target object. For example, to change Bob to Robert, the * entity making the request must have permission on Bob and Robert, or must have * permission on all (*). For more information about permissions, see Permissions * and Policies.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateUserOutcomeCallable UpdateUserCallable(const Model::UpdateUserRequest& request) const; /** *

Updates the name and/or the path of the specified IAM user.

*

You should understand the implications of changing an IAM user's path or * name. For more information, see Renaming * an IAM User and Renaming * an IAM Group in the IAM User Guide.

To * change a user name, the requester must have appropriate permissions on both the * source object and the target object. For example, to change Bob to Robert, the * entity making the request must have permission on Bob and Robert, or must have * permission on all (*). For more information about permissions, see Permissions * and Policies.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateUserAsync(const Model::UpdateUserRequest& request, const UpdateUserResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Uploads an SSH public key and associates it with the specified IAM user.

*

The SSH public key uploaded by this operation can be used only for * authenticating the associated IAM user to an AWS CodeCommit repository. For more * information about using SSH keys to authenticate to an AWS CodeCommit * repository, see Set * up AWS CodeCommit for SSH Connections in the AWS CodeCommit User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::UploadSSHPublicKeyOutcome UploadSSHPublicKey(const Model::UploadSSHPublicKeyRequest& request) const; /** *

Uploads an SSH public key and associates it with the specified IAM user.

*

The SSH public key uploaded by this operation can be used only for * authenticating the associated IAM user to an AWS CodeCommit repository. For more * information about using SSH keys to authenticate to an AWS CodeCommit * repository, see Set * up AWS CodeCommit for SSH Connections in the AWS CodeCommit User * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UploadSSHPublicKeyOutcomeCallable UploadSSHPublicKeyCallable(const Model::UploadSSHPublicKeyRequest& request) const; /** *

Uploads an SSH public key and associates it with the specified IAM user.

*

The SSH public key uploaded by this operation can be used only for * authenticating the associated IAM user to an AWS CodeCommit repository. For more * information about using SSH keys to authenticate to an AWS CodeCommit * repository, see Set * up AWS CodeCommit for SSH Connections in the AWS CodeCommit User * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UploadSSHPublicKeyAsync(const Model::UploadSSHPublicKeyRequest& request, const UploadSSHPublicKeyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Uploads a server certificate entity for the AWS account. The server * certificate entity includes a public key certificate, a private key, and an * optional certificate chain, which should all be PEM-encoded.

We recommend * that you use AWS Certificate * Manager to provision, manage, and deploy your server certificates. With ACM * you can request a certificate, deploy it to AWS resources, and let ACM handle * certificate renewals for you. Certificates provided by ACM are free. For more * information about using ACM, see the AWS Certificate Manager * User Guide.

For more information about working with server * certificates, see Working * with Server Certificates in the IAM User Guide. This topic includes a * list of AWS services that can use the server certificates that you manage with * IAM.

For information about the number of server certificates you can * upload, see Limitations * on IAM Entities and Objects in the IAM User Guide.

*

Because the body of the public key certificate, private key, and the * certificate chain can be large, you should use POST rather than GET when calling * UploadServerCertificate. For information about setting up * signatures and authorization through the API, go to Signing * AWS API Requests in the AWS General Reference. For general * information about using the Query API with IAM, go to Calling * the API by Making HTTP Query Requests in the IAM User Guide.

*

See Also:

AWS * API Reference

*/ virtual Model::UploadServerCertificateOutcome UploadServerCertificate(const Model::UploadServerCertificateRequest& request) const; /** *

Uploads a server certificate entity for the AWS account. The server * certificate entity includes a public key certificate, a private key, and an * optional certificate chain, which should all be PEM-encoded.

We recommend * that you use AWS Certificate * Manager to provision, manage, and deploy your server certificates. With ACM * you can request a certificate, deploy it to AWS resources, and let ACM handle * certificate renewals for you. Certificates provided by ACM are free. For more * information about using ACM, see the AWS Certificate Manager * User Guide.

For more information about working with server * certificates, see Working * with Server Certificates in the IAM User Guide. This topic includes a * list of AWS services that can use the server certificates that you manage with * IAM.

For information about the number of server certificates you can * upload, see Limitations * on IAM Entities and Objects in the IAM User Guide.

*

Because the body of the public key certificate, private key, and the * certificate chain can be large, you should use POST rather than GET when calling * UploadServerCertificate. For information about setting up * signatures and authorization through the API, go to Signing * AWS API Requests in the AWS General Reference. For general * information about using the Query API with IAM, go to Calling * the API by Making HTTP Query Requests in the IAM User Guide.

*

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UploadServerCertificateOutcomeCallable UploadServerCertificateCallable(const Model::UploadServerCertificateRequest& request) const; /** *

Uploads a server certificate entity for the AWS account. The server * certificate entity includes a public key certificate, a private key, and an * optional certificate chain, which should all be PEM-encoded.

We recommend * that you use AWS Certificate * Manager to provision, manage, and deploy your server certificates. With ACM * you can request a certificate, deploy it to AWS resources, and let ACM handle * certificate renewals for you. Certificates provided by ACM are free. For more * information about using ACM, see the AWS Certificate Manager * User Guide.

For more information about working with server * certificates, see Working * with Server Certificates in the IAM User Guide. This topic includes a * list of AWS services that can use the server certificates that you manage with * IAM.

For information about the number of server certificates you can * upload, see Limitations * on IAM Entities and Objects in the IAM User Guide.

*

Because the body of the public key certificate, private key, and the * certificate chain can be large, you should use POST rather than GET when calling * UploadServerCertificate. For information about setting up * signatures and authorization through the API, go to Signing * AWS API Requests in the AWS General Reference. For general * information about using the Query API with IAM, go to Calling * the API by Making HTTP Query Requests in the IAM User Guide.

*

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UploadServerCertificateAsync(const Model::UploadServerCertificateRequest& request, const UploadServerCertificateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Uploads an X.509 signing certificate and associates it with the specified IAM * user. Some AWS services use X.509 signing certificates to validate requests that * are signed with a corresponding private key. When you upload the certificate, * its default status is Active.

If the UserName * is not specified, the IAM user name is determined implicitly based on the AWS * access key ID used to sign the request. This operation works for access keys * under the AWS account. Consequently, you can use this operation to manage AWS * account root user credentials even if the AWS account has no associated * users.

Because the body of an X.509 certificate can be large, you * should use POST rather than GET when calling * UploadSigningCertificate. For information about setting up * signatures and authorization through the API, go to Signing * AWS API Requests in the AWS General Reference. For general * information about using the Query API with IAM, go to Making * Query Requests in the IAM User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::UploadSigningCertificateOutcome UploadSigningCertificate(const Model::UploadSigningCertificateRequest& request) const; /** *

Uploads an X.509 signing certificate and associates it with the specified IAM * user. Some AWS services use X.509 signing certificates to validate requests that * are signed with a corresponding private key. When you upload the certificate, * its default status is Active.

If the UserName * is not specified, the IAM user name is determined implicitly based on the AWS * access key ID used to sign the request. This operation works for access keys * under the AWS account. Consequently, you can use this operation to manage AWS * account root user credentials even if the AWS account has no associated * users.

Because the body of an X.509 certificate can be large, you * should use POST rather than GET when calling * UploadSigningCertificate. For information about setting up * signatures and authorization through the API, go to Signing * AWS API Requests in the AWS General Reference. For general * information about using the Query API with IAM, go to Making * Query Requests in the IAM User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UploadSigningCertificateOutcomeCallable UploadSigningCertificateCallable(const Model::UploadSigningCertificateRequest& request) const; /** *

Uploads an X.509 signing certificate and associates it with the specified IAM * user. Some AWS services use X.509 signing certificates to validate requests that * are signed with a corresponding private key. When you upload the certificate, * its default status is Active.

If the UserName * is not specified, the IAM user name is determined implicitly based on the AWS * access key ID used to sign the request. This operation works for access keys * under the AWS account. Consequently, you can use this operation to manage AWS * account root user credentials even if the AWS account has no associated * users.

Because the body of an X.509 certificate can be large, you * should use POST rather than GET when calling * UploadSigningCertificate. For information about setting up * signatures and authorization through the API, go to Signing * AWS API Requests in the AWS General Reference. For general * information about using the Query API with IAM, go to Making * Query Requests in the IAM User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UploadSigningCertificateAsync(const Model::UploadSigningCertificateRequest& request, const UploadSigningCertificateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void AddClientIDToOpenIDConnectProviderAsyncHelper(const Model::AddClientIDToOpenIDConnectProviderRequest& request, const AddClientIDToOpenIDConnectProviderResponseReceivedHandler& handler, const std::shared_ptr& context) const; void AddRoleToInstanceProfileAsyncHelper(const Model::AddRoleToInstanceProfileRequest& request, const AddRoleToInstanceProfileResponseReceivedHandler& handler, const std::shared_ptr& context) const; void AddUserToGroupAsyncHelper(const Model::AddUserToGroupRequest& request, const AddUserToGroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void AttachGroupPolicyAsyncHelper(const Model::AttachGroupPolicyRequest& request, const AttachGroupPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void AttachRolePolicyAsyncHelper(const Model::AttachRolePolicyRequest& request, const AttachRolePolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void AttachUserPolicyAsyncHelper(const Model::AttachUserPolicyRequest& request, const AttachUserPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ChangePasswordAsyncHelper(const Model::ChangePasswordRequest& request, const ChangePasswordResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateAccessKeyAsyncHelper(const Model::CreateAccessKeyRequest& request, const CreateAccessKeyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateAccountAliasAsyncHelper(const Model::CreateAccountAliasRequest& request, const CreateAccountAliasResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateGroupAsyncHelper(const Model::CreateGroupRequest& request, const CreateGroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateInstanceProfileAsyncHelper(const Model::CreateInstanceProfileRequest& request, const CreateInstanceProfileResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateLoginProfileAsyncHelper(const Model::CreateLoginProfileRequest& request, const CreateLoginProfileResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateOpenIDConnectProviderAsyncHelper(const Model::CreateOpenIDConnectProviderRequest& request, const CreateOpenIDConnectProviderResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreatePolicyAsyncHelper(const Model::CreatePolicyRequest& request, const CreatePolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreatePolicyVersionAsyncHelper(const Model::CreatePolicyVersionRequest& request, const CreatePolicyVersionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateRoleAsyncHelper(const Model::CreateRoleRequest& request, const CreateRoleResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateSAMLProviderAsyncHelper(const Model::CreateSAMLProviderRequest& request, const CreateSAMLProviderResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateServiceLinkedRoleAsyncHelper(const Model::CreateServiceLinkedRoleRequest& request, const CreateServiceLinkedRoleResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateServiceSpecificCredentialAsyncHelper(const Model::CreateServiceSpecificCredentialRequest& request, const CreateServiceSpecificCredentialResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateUserAsyncHelper(const Model::CreateUserRequest& request, const CreateUserResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateVirtualMFADeviceAsyncHelper(const Model::CreateVirtualMFADeviceRequest& request, const CreateVirtualMFADeviceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeactivateMFADeviceAsyncHelper(const Model::DeactivateMFADeviceRequest& request, const DeactivateMFADeviceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteAccessKeyAsyncHelper(const Model::DeleteAccessKeyRequest& request, const DeleteAccessKeyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteAccountAliasAsyncHelper(const Model::DeleteAccountAliasRequest& request, const DeleteAccountAliasResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteAccountPasswordPolicyAsyncHelper(const Model::DeleteAccountPasswordPolicyRequest& request, const DeleteAccountPasswordPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteGroupAsyncHelper(const Model::DeleteGroupRequest& request, const DeleteGroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteGroupPolicyAsyncHelper(const Model::DeleteGroupPolicyRequest& request, const DeleteGroupPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteInstanceProfileAsyncHelper(const Model::DeleteInstanceProfileRequest& request, const DeleteInstanceProfileResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteLoginProfileAsyncHelper(const Model::DeleteLoginProfileRequest& request, const DeleteLoginProfileResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteOpenIDConnectProviderAsyncHelper(const Model::DeleteOpenIDConnectProviderRequest& request, const DeleteOpenIDConnectProviderResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeletePolicyAsyncHelper(const Model::DeletePolicyRequest& request, const DeletePolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeletePolicyVersionAsyncHelper(const Model::DeletePolicyVersionRequest& request, const DeletePolicyVersionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteRoleAsyncHelper(const Model::DeleteRoleRequest& request, const DeleteRoleResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteRolePermissionsBoundaryAsyncHelper(const Model::DeleteRolePermissionsBoundaryRequest& request, const DeleteRolePermissionsBoundaryResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteRolePolicyAsyncHelper(const Model::DeleteRolePolicyRequest& request, const DeleteRolePolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteSAMLProviderAsyncHelper(const Model::DeleteSAMLProviderRequest& request, const DeleteSAMLProviderResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteSSHPublicKeyAsyncHelper(const Model::DeleteSSHPublicKeyRequest& request, const DeleteSSHPublicKeyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteServerCertificateAsyncHelper(const Model::DeleteServerCertificateRequest& request, const DeleteServerCertificateResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteServiceLinkedRoleAsyncHelper(const Model::DeleteServiceLinkedRoleRequest& request, const DeleteServiceLinkedRoleResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteServiceSpecificCredentialAsyncHelper(const Model::DeleteServiceSpecificCredentialRequest& request, const DeleteServiceSpecificCredentialResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteSigningCertificateAsyncHelper(const Model::DeleteSigningCertificateRequest& request, const DeleteSigningCertificateResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteUserAsyncHelper(const Model::DeleteUserRequest& request, const DeleteUserResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteUserPermissionsBoundaryAsyncHelper(const Model::DeleteUserPermissionsBoundaryRequest& request, const DeleteUserPermissionsBoundaryResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteUserPolicyAsyncHelper(const Model::DeleteUserPolicyRequest& request, const DeleteUserPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteVirtualMFADeviceAsyncHelper(const Model::DeleteVirtualMFADeviceRequest& request, const DeleteVirtualMFADeviceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DetachGroupPolicyAsyncHelper(const Model::DetachGroupPolicyRequest& request, const DetachGroupPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DetachRolePolicyAsyncHelper(const Model::DetachRolePolicyRequest& request, const DetachRolePolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DetachUserPolicyAsyncHelper(const Model::DetachUserPolicyRequest& request, const DetachUserPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void EnableMFADeviceAsyncHelper(const Model::EnableMFADeviceRequest& request, const EnableMFADeviceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GenerateCredentialReportAsyncHelper(const Model::GenerateCredentialReportRequest& request, const GenerateCredentialReportResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GenerateOrganizationsAccessReportAsyncHelper(const Model::GenerateOrganizationsAccessReportRequest& request, const GenerateOrganizationsAccessReportResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GenerateServiceLastAccessedDetailsAsyncHelper(const Model::GenerateServiceLastAccessedDetailsRequest& request, const GenerateServiceLastAccessedDetailsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetAccessKeyLastUsedAsyncHelper(const Model::GetAccessKeyLastUsedRequest& request, const GetAccessKeyLastUsedResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetAccountAuthorizationDetailsAsyncHelper(const Model::GetAccountAuthorizationDetailsRequest& request, const GetAccountAuthorizationDetailsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetAccountPasswordPolicyAsyncHelper(const Model::GetAccountPasswordPolicyRequest& request, const GetAccountPasswordPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetAccountSummaryAsyncHelper(const Model::GetAccountSummaryRequest& request, const GetAccountSummaryResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetContextKeysForCustomPolicyAsyncHelper(const Model::GetContextKeysForCustomPolicyRequest& request, const GetContextKeysForCustomPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetContextKeysForPrincipalPolicyAsyncHelper(const Model::GetContextKeysForPrincipalPolicyRequest& request, const GetContextKeysForPrincipalPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetCredentialReportAsyncHelper(const Model::GetCredentialReportRequest& request, const GetCredentialReportResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetGroupAsyncHelper(const Model::GetGroupRequest& request, const GetGroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetGroupPolicyAsyncHelper(const Model::GetGroupPolicyRequest& request, const GetGroupPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetInstanceProfileAsyncHelper(const Model::GetInstanceProfileRequest& request, const GetInstanceProfileResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetLoginProfileAsyncHelper(const Model::GetLoginProfileRequest& request, const GetLoginProfileResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetOpenIDConnectProviderAsyncHelper(const Model::GetOpenIDConnectProviderRequest& request, const GetOpenIDConnectProviderResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetOrganizationsAccessReportAsyncHelper(const Model::GetOrganizationsAccessReportRequest& request, const GetOrganizationsAccessReportResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetPolicyAsyncHelper(const Model::GetPolicyRequest& request, const GetPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetPolicyVersionAsyncHelper(const Model::GetPolicyVersionRequest& request, const GetPolicyVersionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetRoleAsyncHelper(const Model::GetRoleRequest& request, const GetRoleResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetRolePolicyAsyncHelper(const Model::GetRolePolicyRequest& request, const GetRolePolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetSAMLProviderAsyncHelper(const Model::GetSAMLProviderRequest& request, const GetSAMLProviderResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetSSHPublicKeyAsyncHelper(const Model::GetSSHPublicKeyRequest& request, const GetSSHPublicKeyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetServerCertificateAsyncHelper(const Model::GetServerCertificateRequest& request, const GetServerCertificateResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetServiceLastAccessedDetailsAsyncHelper(const Model::GetServiceLastAccessedDetailsRequest& request, const GetServiceLastAccessedDetailsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetServiceLastAccessedDetailsWithEntitiesAsyncHelper(const Model::GetServiceLastAccessedDetailsWithEntitiesRequest& request, const GetServiceLastAccessedDetailsWithEntitiesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetServiceLinkedRoleDeletionStatusAsyncHelper(const Model::GetServiceLinkedRoleDeletionStatusRequest& request, const GetServiceLinkedRoleDeletionStatusResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetUserAsyncHelper(const Model::GetUserRequest& request, const GetUserResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetUserPolicyAsyncHelper(const Model::GetUserPolicyRequest& request, const GetUserPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListAccessKeysAsyncHelper(const Model::ListAccessKeysRequest& request, const ListAccessKeysResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListAccountAliasesAsyncHelper(const Model::ListAccountAliasesRequest& request, const ListAccountAliasesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListAttachedGroupPoliciesAsyncHelper(const Model::ListAttachedGroupPoliciesRequest& request, const ListAttachedGroupPoliciesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListAttachedRolePoliciesAsyncHelper(const Model::ListAttachedRolePoliciesRequest& request, const ListAttachedRolePoliciesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListAttachedUserPoliciesAsyncHelper(const Model::ListAttachedUserPoliciesRequest& request, const ListAttachedUserPoliciesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListEntitiesForPolicyAsyncHelper(const Model::ListEntitiesForPolicyRequest& request, const ListEntitiesForPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListGroupPoliciesAsyncHelper(const Model::ListGroupPoliciesRequest& request, const ListGroupPoliciesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListGroupsAsyncHelper(const Model::ListGroupsRequest& request, const ListGroupsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListGroupsForUserAsyncHelper(const Model::ListGroupsForUserRequest& request, const ListGroupsForUserResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListInstanceProfilesAsyncHelper(const Model::ListInstanceProfilesRequest& request, const ListInstanceProfilesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListInstanceProfilesForRoleAsyncHelper(const Model::ListInstanceProfilesForRoleRequest& request, const ListInstanceProfilesForRoleResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListMFADevicesAsyncHelper(const Model::ListMFADevicesRequest& request, const ListMFADevicesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListOpenIDConnectProvidersAsyncHelper(const Model::ListOpenIDConnectProvidersRequest& request, const ListOpenIDConnectProvidersResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListPoliciesAsyncHelper(const Model::ListPoliciesRequest& request, const ListPoliciesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListPoliciesGrantingServiceAccessAsyncHelper(const Model::ListPoliciesGrantingServiceAccessRequest& request, const ListPoliciesGrantingServiceAccessResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListPolicyVersionsAsyncHelper(const Model::ListPolicyVersionsRequest& request, const ListPolicyVersionsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListRolePoliciesAsyncHelper(const Model::ListRolePoliciesRequest& request, const ListRolePoliciesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListRoleTagsAsyncHelper(const Model::ListRoleTagsRequest& request, const ListRoleTagsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListRolesAsyncHelper(const Model::ListRolesRequest& request, const ListRolesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListSAMLProvidersAsyncHelper(const Model::ListSAMLProvidersRequest& request, const ListSAMLProvidersResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListSSHPublicKeysAsyncHelper(const Model::ListSSHPublicKeysRequest& request, const ListSSHPublicKeysResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListServerCertificatesAsyncHelper(const Model::ListServerCertificatesRequest& request, const ListServerCertificatesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListServiceSpecificCredentialsAsyncHelper(const Model::ListServiceSpecificCredentialsRequest& request, const ListServiceSpecificCredentialsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListSigningCertificatesAsyncHelper(const Model::ListSigningCertificatesRequest& request, const ListSigningCertificatesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListUserPoliciesAsyncHelper(const Model::ListUserPoliciesRequest& request, const ListUserPoliciesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListUserTagsAsyncHelper(const Model::ListUserTagsRequest& request, const ListUserTagsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListUsersAsyncHelper(const Model::ListUsersRequest& request, const ListUsersResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListVirtualMFADevicesAsyncHelper(const Model::ListVirtualMFADevicesRequest& request, const ListVirtualMFADevicesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PutGroupPolicyAsyncHelper(const Model::PutGroupPolicyRequest& request, const PutGroupPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PutRolePermissionsBoundaryAsyncHelper(const Model::PutRolePermissionsBoundaryRequest& request, const PutRolePermissionsBoundaryResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PutRolePolicyAsyncHelper(const Model::PutRolePolicyRequest& request, const PutRolePolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PutUserPermissionsBoundaryAsyncHelper(const Model::PutUserPermissionsBoundaryRequest& request, const PutUserPermissionsBoundaryResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PutUserPolicyAsyncHelper(const Model::PutUserPolicyRequest& request, const PutUserPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void RemoveClientIDFromOpenIDConnectProviderAsyncHelper(const Model::RemoveClientIDFromOpenIDConnectProviderRequest& request, const RemoveClientIDFromOpenIDConnectProviderResponseReceivedHandler& handler, const std::shared_ptr& context) const; void RemoveRoleFromInstanceProfileAsyncHelper(const Model::RemoveRoleFromInstanceProfileRequest& request, const RemoveRoleFromInstanceProfileResponseReceivedHandler& handler, const std::shared_ptr& context) const; void RemoveUserFromGroupAsyncHelper(const Model::RemoveUserFromGroupRequest& request, const RemoveUserFromGroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ResetServiceSpecificCredentialAsyncHelper(const Model::ResetServiceSpecificCredentialRequest& request, const ResetServiceSpecificCredentialResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ResyncMFADeviceAsyncHelper(const Model::ResyncMFADeviceRequest& request, const ResyncMFADeviceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SetDefaultPolicyVersionAsyncHelper(const Model::SetDefaultPolicyVersionRequest& request, const SetDefaultPolicyVersionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SetSecurityTokenServicePreferencesAsyncHelper(const Model::SetSecurityTokenServicePreferencesRequest& request, const SetSecurityTokenServicePreferencesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SimulateCustomPolicyAsyncHelper(const Model::SimulateCustomPolicyRequest& request, const SimulateCustomPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SimulatePrincipalPolicyAsyncHelper(const Model::SimulatePrincipalPolicyRequest& request, const SimulatePrincipalPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void TagRoleAsyncHelper(const Model::TagRoleRequest& request, const TagRoleResponseReceivedHandler& handler, const std::shared_ptr& context) const; void TagUserAsyncHelper(const Model::TagUserRequest& request, const TagUserResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UntagRoleAsyncHelper(const Model::UntagRoleRequest& request, const UntagRoleResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UntagUserAsyncHelper(const Model::UntagUserRequest& request, const UntagUserResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateAccessKeyAsyncHelper(const Model::UpdateAccessKeyRequest& request, const UpdateAccessKeyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateAccountPasswordPolicyAsyncHelper(const Model::UpdateAccountPasswordPolicyRequest& request, const UpdateAccountPasswordPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateAssumeRolePolicyAsyncHelper(const Model::UpdateAssumeRolePolicyRequest& request, const UpdateAssumeRolePolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateGroupAsyncHelper(const Model::UpdateGroupRequest& request, const UpdateGroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateLoginProfileAsyncHelper(const Model::UpdateLoginProfileRequest& request, const UpdateLoginProfileResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateOpenIDConnectProviderThumbprintAsyncHelper(const Model::UpdateOpenIDConnectProviderThumbprintRequest& request, const UpdateOpenIDConnectProviderThumbprintResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateRoleAsyncHelper(const Model::UpdateRoleRequest& request, const UpdateRoleResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateRoleDescriptionAsyncHelper(const Model::UpdateRoleDescriptionRequest& request, const UpdateRoleDescriptionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateSAMLProviderAsyncHelper(const Model::UpdateSAMLProviderRequest& request, const UpdateSAMLProviderResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateSSHPublicKeyAsyncHelper(const Model::UpdateSSHPublicKeyRequest& request, const UpdateSSHPublicKeyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateServerCertificateAsyncHelper(const Model::UpdateServerCertificateRequest& request, const UpdateServerCertificateResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateServiceSpecificCredentialAsyncHelper(const Model::UpdateServiceSpecificCredentialRequest& request, const UpdateServiceSpecificCredentialResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateSigningCertificateAsyncHelper(const Model::UpdateSigningCertificateRequest& request, const UpdateSigningCertificateResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateUserAsyncHelper(const Model::UpdateUserRequest& request, const UpdateUserResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UploadSSHPublicKeyAsyncHelper(const Model::UploadSSHPublicKeyRequest& request, const UploadSSHPublicKeyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UploadServerCertificateAsyncHelper(const Model::UploadServerCertificateRequest& request, const UploadServerCertificateResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UploadSigningCertificateAsyncHelper(const Model::UploadSigningCertificateRequest& request, const UploadSigningCertificateResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace IAM } // namespace Aws