/**
* 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