/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace RolesAnywhere { /** *

Identity and Access Management Roles Anywhere provides a secure way for your * workloads such as servers, containers, and applications that run outside of * Amazon Web Services to obtain temporary Amazon Web Services credentials. Your * workloads can use the same IAM policies and roles you have for native Amazon Web * Services applications to access Amazon Web Services resources. Using IAM Roles * Anywhere eliminates the need to manage long-term credentials for workloads * running outside of Amazon Web Services.

To use IAM Roles Anywhere, your * workloads must use X.509 certificates issued by their certificate authority * (CA). You register the CA with IAM Roles Anywhere as a trust anchor to establish * trust between your public key infrastructure (PKI) and IAM Roles Anywhere. If * you don't manage your own PKI system, you can use Private Certificate Authority * to create a CA and then use that to establish trust with IAM Roles Anywhere. *

This guide describes the IAM Roles Anywhere operations that you can call * programmatically. For more information about IAM Roles Anywhere, see the IAM * Roles Anywhere User Guide.

*/ class AWS_ROLESANYWHERE_API RolesAnywhereClient : public Aws::Client::AWSJsonClient, public Aws::Client::ClientWithAsyncTemplateMethods { public: typedef Aws::Client::AWSJsonClient BASECLASS; static const char* SERVICE_NAME; static const char* ALLOCATION_TAG; typedef RolesAnywhereClientConfiguration ClientConfigurationType; typedef RolesAnywhereEndpointProvider EndpointProviderType; /** * 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. */ RolesAnywhereClient(const Aws::RolesAnywhere::RolesAnywhereClientConfiguration& clientConfiguration = Aws::RolesAnywhere::RolesAnywhereClientConfiguration(), std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG)); /** * 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. */ RolesAnywhereClient(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::RolesAnywhere::RolesAnywhereClientConfiguration& clientConfiguration = Aws::RolesAnywhere::RolesAnywhereClientConfiguration()); /** * 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 */ RolesAnywhereClient(const std::shared_ptr& credentialsProvider, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::RolesAnywhere::RolesAnywhereClientConfiguration& clientConfiguration = Aws::RolesAnywhere::RolesAnywhereClientConfiguration()); /* Legacy constructors due deprecation */ /** * 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. */ RolesAnywhereClient(const Aws::Client::ClientConfiguration& 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. */ RolesAnywhereClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& 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 */ RolesAnywhereClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ virtual ~RolesAnywhereClient(); /** *

Creates a profile, a list of the roles that Roles Anywhere service is * trusted to assume. You use profiles to intersect permissions with IAM managed * policies.

Required permissions: * rolesanywhere:CreateProfile.

See Also:

AWS * API Reference

*/ virtual Model::CreateProfileOutcome CreateProfile(const Model::CreateProfileRequest& request) const; /** * A Callable wrapper for CreateProfile that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateProfileOutcomeCallable CreateProfileCallable(const CreateProfileRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::CreateProfile, request); } /** * An Async wrapper for CreateProfile that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateProfileAsync(const CreateProfileRequestT& request, const CreateProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::CreateProfile, request, handler, context); } /** *

Creates a trust anchor to establish trust between IAM Roles Anywhere and your * certificate authority (CA). You can define a trust anchor as a reference to an * Private Certificate Authority (Private CA) or by uploading a CA certificate. * Your Amazon Web Services workloads can authenticate with the trust anchor using * certificates issued by the CA in exchange for temporary Amazon Web Services * credentials.

Required permissions: * rolesanywhere:CreateTrustAnchor.

See Also:

AWS * API Reference

*/ virtual Model::CreateTrustAnchorOutcome CreateTrustAnchor(const Model::CreateTrustAnchorRequest& request) const; /** * A Callable wrapper for CreateTrustAnchor that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateTrustAnchorOutcomeCallable CreateTrustAnchorCallable(const CreateTrustAnchorRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::CreateTrustAnchor, request); } /** * An Async wrapper for CreateTrustAnchor that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateTrustAnchorAsync(const CreateTrustAnchorRequestT& request, const CreateTrustAnchorResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::CreateTrustAnchor, request, handler, context); } /** *

Deletes a certificate revocation list (CRL).

Required permissions: * rolesanywhere:DeleteCrl.

See Also:

AWS * API Reference

*/ virtual Model::DeleteCrlOutcome DeleteCrl(const Model::DeleteCrlRequest& request) const; /** * A Callable wrapper for DeleteCrl that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteCrlOutcomeCallable DeleteCrlCallable(const DeleteCrlRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::DeleteCrl, request); } /** * An Async wrapper for DeleteCrl that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteCrlAsync(const DeleteCrlRequestT& request, const DeleteCrlResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::DeleteCrl, request, handler, context); } /** *

Deletes a profile.

Required permissions: * rolesanywhere:DeleteProfile.

See Also:

AWS * API Reference

*/ virtual Model::DeleteProfileOutcome DeleteProfile(const Model::DeleteProfileRequest& request) const; /** * A Callable wrapper for DeleteProfile that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteProfileOutcomeCallable DeleteProfileCallable(const DeleteProfileRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::DeleteProfile, request); } /** * An Async wrapper for DeleteProfile that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteProfileAsync(const DeleteProfileRequestT& request, const DeleteProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::DeleteProfile, request, handler, context); } /** *

Deletes a trust anchor.

Required permissions: * rolesanywhere:DeleteTrustAnchor.

See Also:

AWS * API Reference

*/ virtual Model::DeleteTrustAnchorOutcome DeleteTrustAnchor(const Model::DeleteTrustAnchorRequest& request) const; /** * A Callable wrapper for DeleteTrustAnchor that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteTrustAnchorOutcomeCallable DeleteTrustAnchorCallable(const DeleteTrustAnchorRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::DeleteTrustAnchor, request); } /** * An Async wrapper for DeleteTrustAnchor that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteTrustAnchorAsync(const DeleteTrustAnchorRequestT& request, const DeleteTrustAnchorResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::DeleteTrustAnchor, request, handler, context); } /** *

Disables a certificate revocation list (CRL).

Required * permissions: rolesanywhere:DisableCrl.

See * Also:

AWS * API Reference

*/ virtual Model::DisableCrlOutcome DisableCrl(const Model::DisableCrlRequest& request) const; /** * A Callable wrapper for DisableCrl that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DisableCrlOutcomeCallable DisableCrlCallable(const DisableCrlRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::DisableCrl, request); } /** * An Async wrapper for DisableCrl that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DisableCrlAsync(const DisableCrlRequestT& request, const DisableCrlResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::DisableCrl, request, handler, context); } /** *

Disables a profile. When disabled, temporary credential requests with this * profile fail.

Required permissions: * rolesanywhere:DisableProfile.

See Also:

AWS * API Reference

*/ virtual Model::DisableProfileOutcome DisableProfile(const Model::DisableProfileRequest& request) const; /** * A Callable wrapper for DisableProfile that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DisableProfileOutcomeCallable DisableProfileCallable(const DisableProfileRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::DisableProfile, request); } /** * An Async wrapper for DisableProfile that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DisableProfileAsync(const DisableProfileRequestT& request, const DisableProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::DisableProfile, request, handler, context); } /** *

Disables a trust anchor. When disabled, temporary credential requests * specifying this trust anchor are unauthorized.

Required permissions: * rolesanywhere:DisableTrustAnchor.

See Also:

* AWS * API Reference

*/ virtual Model::DisableTrustAnchorOutcome DisableTrustAnchor(const Model::DisableTrustAnchorRequest& request) const; /** * A Callable wrapper for DisableTrustAnchor that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DisableTrustAnchorOutcomeCallable DisableTrustAnchorCallable(const DisableTrustAnchorRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::DisableTrustAnchor, request); } /** * An Async wrapper for DisableTrustAnchor that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DisableTrustAnchorAsync(const DisableTrustAnchorRequestT& request, const DisableTrustAnchorResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::DisableTrustAnchor, request, handler, context); } /** *

Enables a certificate revocation list (CRL). When enabled, certificates * stored in the CRL are unauthorized to receive session credentials.

* Required permissions: rolesanywhere:EnableCrl. *

See Also:

AWS * API Reference

*/ virtual Model::EnableCrlOutcome EnableCrl(const Model::EnableCrlRequest& request) const; /** * A Callable wrapper for EnableCrl that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::EnableCrlOutcomeCallable EnableCrlCallable(const EnableCrlRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::EnableCrl, request); } /** * An Async wrapper for EnableCrl that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void EnableCrlAsync(const EnableCrlRequestT& request, const EnableCrlResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::EnableCrl, request, handler, context); } /** *

Enables temporary credential requests for a profile.

Required * permissions: rolesanywhere:EnableProfile.

See * Also:

AWS * API Reference

*/ virtual Model::EnableProfileOutcome EnableProfile(const Model::EnableProfileRequest& request) const; /** * A Callable wrapper for EnableProfile that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::EnableProfileOutcomeCallable EnableProfileCallable(const EnableProfileRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::EnableProfile, request); } /** * An Async wrapper for EnableProfile that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void EnableProfileAsync(const EnableProfileRequestT& request, const EnableProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::EnableProfile, request, handler, context); } /** *

Enables a trust anchor. When enabled, certificates in the trust anchor chain * are authorized for trust validation.

Required permissions: * rolesanywhere:EnableTrustAnchor.

See Also:

AWS * API Reference

*/ virtual Model::EnableTrustAnchorOutcome EnableTrustAnchor(const Model::EnableTrustAnchorRequest& request) const; /** * A Callable wrapper for EnableTrustAnchor that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::EnableTrustAnchorOutcomeCallable EnableTrustAnchorCallable(const EnableTrustAnchorRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::EnableTrustAnchor, request); } /** * An Async wrapper for EnableTrustAnchor that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void EnableTrustAnchorAsync(const EnableTrustAnchorRequestT& request, const EnableTrustAnchorResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::EnableTrustAnchor, request, handler, context); } /** *

Gets a certificate revocation list (CRL).

Required permissions: * rolesanywhere:GetCrl.

See Also:

AWS * API Reference

*/ virtual Model::GetCrlOutcome GetCrl(const Model::GetCrlRequest& request) const; /** * A Callable wrapper for GetCrl that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetCrlOutcomeCallable GetCrlCallable(const GetCrlRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::GetCrl, request); } /** * An Async wrapper for GetCrl that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetCrlAsync(const GetCrlRequestT& request, const GetCrlResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::GetCrl, request, handler, context); } /** *

Gets a profile.

Required permissions: * rolesanywhere:GetProfile.

See Also:

AWS * API Reference

*/ virtual Model::GetProfileOutcome GetProfile(const Model::GetProfileRequest& request) const; /** * A Callable wrapper for GetProfile that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetProfileOutcomeCallable GetProfileCallable(const GetProfileRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::GetProfile, request); } /** * An Async wrapper for GetProfile that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetProfileAsync(const GetProfileRequestT& request, const GetProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::GetProfile, request, handler, context); } /** *

Gets a subject, which associates a certificate identity with * authentication attempts. The subject stores auditing information such as the * status of the last authentication attempt, the certificate data used in the * attempt, and the last time the associated identity attempted authentication. *

Required permissions: rolesanywhere:GetSubject. *

See Also:

AWS * API Reference

*/ virtual Model::GetSubjectOutcome GetSubject(const Model::GetSubjectRequest& request) const; /** * A Callable wrapper for GetSubject that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetSubjectOutcomeCallable GetSubjectCallable(const GetSubjectRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::GetSubject, request); } /** * An Async wrapper for GetSubject that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetSubjectAsync(const GetSubjectRequestT& request, const GetSubjectResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::GetSubject, request, handler, context); } /** *

Gets a trust anchor.

Required permissions: * rolesanywhere:GetTrustAnchor.

See Also:

AWS * API Reference

*/ virtual Model::GetTrustAnchorOutcome GetTrustAnchor(const Model::GetTrustAnchorRequest& request) const; /** * A Callable wrapper for GetTrustAnchor that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetTrustAnchorOutcomeCallable GetTrustAnchorCallable(const GetTrustAnchorRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::GetTrustAnchor, request); } /** * An Async wrapper for GetTrustAnchor that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetTrustAnchorAsync(const GetTrustAnchorRequestT& request, const GetTrustAnchorResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::GetTrustAnchor, request, handler, context); } /** *

Imports the certificate revocation list (CRL). A CRL is a list of * certificates that have been revoked by the issuing certificate Authority (CA). * IAM Roles Anywhere validates against the CRL before issuing credentials.

*

Required permissions: rolesanywhere:ImportCrl. *

See Also:

AWS * API Reference

*/ virtual Model::ImportCrlOutcome ImportCrl(const Model::ImportCrlRequest& request) const; /** * A Callable wrapper for ImportCrl that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ImportCrlOutcomeCallable ImportCrlCallable(const ImportCrlRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::ImportCrl, request); } /** * An Async wrapper for ImportCrl that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ImportCrlAsync(const ImportCrlRequestT& request, const ImportCrlResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::ImportCrl, request, handler, context); } /** *

Lists all certificate revocation lists (CRL) in the authenticated account and * Amazon Web Services Region.

Required permissions: * rolesanywhere:ListCrls.

See Also:

AWS * API Reference

*/ virtual Model::ListCrlsOutcome ListCrls(const Model::ListCrlsRequest& request) const; /** * A Callable wrapper for ListCrls that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListCrlsOutcomeCallable ListCrlsCallable(const ListCrlsRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::ListCrls, request); } /** * An Async wrapper for ListCrls that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListCrlsAsync(const ListCrlsRequestT& request, const ListCrlsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::ListCrls, request, handler, context); } /** *

Lists all profiles in the authenticated account and Amazon Web Services * Region.

Required permissions: * rolesanywhere:ListProfiles.

See Also:

AWS * API Reference

*/ virtual Model::ListProfilesOutcome ListProfiles(const Model::ListProfilesRequest& request) const; /** * A Callable wrapper for ListProfiles that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListProfilesOutcomeCallable ListProfilesCallable(const ListProfilesRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::ListProfiles, request); } /** * An Async wrapper for ListProfiles that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListProfilesAsync(const ListProfilesRequestT& request, const ListProfilesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::ListProfiles, request, handler, context); } /** *

Lists the subjects in the authenticated account and Amazon Web Services * Region.

Required permissions: * rolesanywhere:ListSubjects.

See Also:

AWS * API Reference

*/ virtual Model::ListSubjectsOutcome ListSubjects(const Model::ListSubjectsRequest& request) const; /** * A Callable wrapper for ListSubjects that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListSubjectsOutcomeCallable ListSubjectsCallable(const ListSubjectsRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::ListSubjects, request); } /** * An Async wrapper for ListSubjects that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListSubjectsAsync(const ListSubjectsRequestT& request, const ListSubjectsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::ListSubjects, request, handler, context); } /** *

Lists the tags attached to the resource.

Required permissions: * rolesanywhere:ListTagsForResource.

See Also:

* AWS * API Reference

*/ virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; /** * A Callable wrapper for ListTagsForResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const ListTagsForResourceRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::ListTagsForResource, request); } /** * An Async wrapper for ListTagsForResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTagsForResourceAsync(const ListTagsForResourceRequestT& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::ListTagsForResource, request, handler, context); } /** *

Lists the trust anchors in the authenticated account and Amazon Web Services * Region.

Required permissions: * rolesanywhere:ListTrustAnchors.

See Also:

AWS * API Reference

*/ virtual Model::ListTrustAnchorsOutcome ListTrustAnchors(const Model::ListTrustAnchorsRequest& request) const; /** * A Callable wrapper for ListTrustAnchors that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTrustAnchorsOutcomeCallable ListTrustAnchorsCallable(const ListTrustAnchorsRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::ListTrustAnchors, request); } /** * An Async wrapper for ListTrustAnchors that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTrustAnchorsAsync(const ListTrustAnchorsRequestT& request, const ListTrustAnchorsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::ListTrustAnchors, request, handler, context); } /** *

Attaches a list of notification settings to a trust anchor.

A * notification setting includes information such as event name, threshold, status * of the notification setting, and the channel to notify.

Required * permissions: rolesanywhere:PutNotificationSettings. *

See Also:

AWS * API Reference

*/ virtual Model::PutNotificationSettingsOutcome PutNotificationSettings(const Model::PutNotificationSettingsRequest& request) const; /** * A Callable wrapper for PutNotificationSettings that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PutNotificationSettingsOutcomeCallable PutNotificationSettingsCallable(const PutNotificationSettingsRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::PutNotificationSettings, request); } /** * An Async wrapper for PutNotificationSettings that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PutNotificationSettingsAsync(const PutNotificationSettingsRequestT& request, const PutNotificationSettingsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::PutNotificationSettings, request, handler, context); } /** *

Resets the custom notification setting to IAM Roles Anywhere default * setting.

Required permissions: * rolesanywhere:ResetNotificationSettings.

See Also:

* AWS * API Reference

*/ virtual Model::ResetNotificationSettingsOutcome ResetNotificationSettings(const Model::ResetNotificationSettingsRequest& request) const; /** * A Callable wrapper for ResetNotificationSettings that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ResetNotificationSettingsOutcomeCallable ResetNotificationSettingsCallable(const ResetNotificationSettingsRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::ResetNotificationSettings, request); } /** * An Async wrapper for ResetNotificationSettings that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ResetNotificationSettingsAsync(const ResetNotificationSettingsRequestT& request, const ResetNotificationSettingsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::ResetNotificationSettings, request, handler, context); } /** *

Attaches tags to a resource.

Required permissions: * rolesanywhere:TagResource.

See Also:

AWS * API Reference

*/ virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; /** * A Callable wrapper for TagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::TagResourceOutcomeCallable TagResourceCallable(const TagResourceRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::TagResource, request); } /** * An Async wrapper for TagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void TagResourceAsync(const TagResourceRequestT& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::TagResource, request, handler, context); } /** *

Removes tags from the resource.

Required permissions: * rolesanywhere:UntagResource.

See Also:

AWS * API Reference

*/ virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; /** * A Callable wrapper for UntagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UntagResourceOutcomeCallable UntagResourceCallable(const UntagResourceRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::UntagResource, request); } /** * An Async wrapper for UntagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UntagResourceAsync(const UntagResourceRequestT& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::UntagResource, request, handler, context); } /** *

Updates the certificate revocation list (CRL). A CRL is a list of * certificates that have been revoked by the issuing certificate authority (CA). * IAM Roles Anywhere validates against the CRL before issuing credentials.

* Required permissions: rolesanywhere:UpdateCrl. *

See Also:

AWS * API Reference

*/ virtual Model::UpdateCrlOutcome UpdateCrl(const Model::UpdateCrlRequest& request) const; /** * A Callable wrapper for UpdateCrl that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateCrlOutcomeCallable UpdateCrlCallable(const UpdateCrlRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::UpdateCrl, request); } /** * An Async wrapper for UpdateCrl that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateCrlAsync(const UpdateCrlRequestT& request, const UpdateCrlResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::UpdateCrl, request, handler, context); } /** *

Updates a profile, a list of the roles that IAM Roles Anywhere service * is trusted to assume. You use profiles to intersect permissions with IAM managed * policies.

Required permissions: * rolesanywhere:UpdateProfile.

See Also:

AWS * API Reference

*/ virtual Model::UpdateProfileOutcome UpdateProfile(const Model::UpdateProfileRequest& request) const; /** * A Callable wrapper for UpdateProfile that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateProfileOutcomeCallable UpdateProfileCallable(const UpdateProfileRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::UpdateProfile, request); } /** * An Async wrapper for UpdateProfile that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateProfileAsync(const UpdateProfileRequestT& request, const UpdateProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::UpdateProfile, request, handler, context); } /** *

Updates a trust anchor. You establish trust between IAM Roles Anywhere and * your certificate authority (CA) by configuring a trust anchor. You can define a * trust anchor as a reference to an Private Certificate Authority (Private CA) or * by uploading a CA certificate. Your Amazon Web Services workloads can * authenticate with the trust anchor using certificates issued by the CA in * exchange for temporary Amazon Web Services credentials.

Required * permissions: rolesanywhere:UpdateTrustAnchor.

See * Also:

AWS * API Reference

*/ virtual Model::UpdateTrustAnchorOutcome UpdateTrustAnchor(const Model::UpdateTrustAnchorRequest& request) const; /** * A Callable wrapper for UpdateTrustAnchor that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateTrustAnchorOutcomeCallable UpdateTrustAnchorCallable(const UpdateTrustAnchorRequestT& request) const { return SubmitCallable(&RolesAnywhereClient::UpdateTrustAnchor, request); } /** * An Async wrapper for UpdateTrustAnchor that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateTrustAnchorAsync(const UpdateTrustAnchorRequestT& request, const UpdateTrustAnchorResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&RolesAnywhereClient::UpdateTrustAnchor, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const RolesAnywhereClientConfiguration& clientConfiguration); RolesAnywhereClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace RolesAnywhere } // namespace Aws