/**
* 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 RAM
{
/**
* This is the Resource Access Manager API Reference. This documentation
* provides descriptions and syntax for each of the actions and data types in RAM.
* RAM is a service that helps you securely share your Amazon Web Services
* resources to other Amazon Web Services accounts. If you use Organizations to
* manage your accounts, then you can share your resources with your entire
* organization or to organizational units (OUs). For supported resource types, you
* can also share resources with individual Identity and Access Management (IAM)
* roles and users.
To learn more about RAM, see the following
* resources:
*/
class AWS_RAM_API RAMClient : 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 RAMClientConfiguration ClientConfigurationType;
typedef RAMEndpointProvider 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.
*/
RAMClient(const Aws::RAM::RAMClientConfiguration& clientConfiguration = Aws::RAM::RAMClientConfiguration(),
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.
*/
RAMClient(const Aws::Auth::AWSCredentials& credentials,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::RAM::RAMClientConfiguration& clientConfiguration = Aws::RAM::RAMClientConfiguration());
/**
* 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
*/
RAMClient(const std::shared_ptr& credentialsProvider,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::RAM::RAMClientConfiguration& clientConfiguration = Aws::RAM::RAMClientConfiguration());
/* 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.
*/
RAMClient(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.
*/
RAMClient(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
*/
RAMClient(const std::shared_ptr& credentialsProvider,
const Aws::Client::ClientConfiguration& clientConfiguration);
/* End of legacy constructors due deprecation */
virtual ~RAMClient();
/**
* Accepts an invitation to a resource share from another Amazon Web Services
* account. After you accept the invitation, the resources included in the resource
* share are available to interact with in the relevant Amazon Web Services
* Management Consoles and tools.
See Also:
AWS
* API Reference
*/
virtual Model::AcceptResourceShareInvitationOutcome AcceptResourceShareInvitation(const Model::AcceptResourceShareInvitationRequest& request) const;
/**
* A Callable wrapper for AcceptResourceShareInvitation that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AcceptResourceShareInvitationOutcomeCallable AcceptResourceShareInvitationCallable(const AcceptResourceShareInvitationRequestT& request) const
{
return SubmitCallable(&RAMClient::AcceptResourceShareInvitation, request);
}
/**
* An Async wrapper for AcceptResourceShareInvitation that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AcceptResourceShareInvitationAsync(const AcceptResourceShareInvitationRequestT& request, const AcceptResourceShareInvitationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::AcceptResourceShareInvitation, request, handler, context);
}
/**
* Adds the specified list of principals and list of resources to a resource
* share. Principals that already have access to this resource share immediately
* receive access to the added resources. Newly added principals immediately
* receive access to the resources shared in this resource share.
See
* Also:
AWS
* API Reference
*/
virtual Model::AssociateResourceShareOutcome AssociateResourceShare(const Model::AssociateResourceShareRequest& request) const;
/**
* A Callable wrapper for AssociateResourceShare that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateResourceShareOutcomeCallable AssociateResourceShareCallable(const AssociateResourceShareRequestT& request) const
{
return SubmitCallable(&RAMClient::AssociateResourceShare, request);
}
/**
* An Async wrapper for AssociateResourceShare that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateResourceShareAsync(const AssociateResourceShareRequestT& request, const AssociateResourceShareResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::AssociateResourceShare, request, handler, context);
}
/**
* Adds or replaces the RAM permission for a resource type included in a
* resource share. You can have exactly one permission associated with each
* resource type in the resource share. You can add a new RAM permission only if
* there are currently no resources of that resource type currently in the resource
* share.
See Also:
AWS
* API Reference
*/
virtual Model::AssociateResourceSharePermissionOutcome AssociateResourceSharePermission(const Model::AssociateResourceSharePermissionRequest& request) const;
/**
* A Callable wrapper for AssociateResourceSharePermission that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateResourceSharePermissionOutcomeCallable AssociateResourceSharePermissionCallable(const AssociateResourceSharePermissionRequestT& request) const
{
return SubmitCallable(&RAMClient::AssociateResourceSharePermission, request);
}
/**
* An Async wrapper for AssociateResourceSharePermission that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateResourceSharePermissionAsync(const AssociateResourceSharePermissionRequestT& request, const AssociateResourceSharePermissionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::AssociateResourceSharePermission, request, handler, context);
}
/**
* Creates a customer managed permission for a specified resource type that you
* can attach to resource shares. It is created in the Amazon Web Services Region
* in which you call the operation.
See Also:
AWS
* API Reference
*/
virtual Model::CreatePermissionOutcome CreatePermission(const Model::CreatePermissionRequest& request) const;
/**
* A Callable wrapper for CreatePermission that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreatePermissionOutcomeCallable CreatePermissionCallable(const CreatePermissionRequestT& request) const
{
return SubmitCallable(&RAMClient::CreatePermission, request);
}
/**
* An Async wrapper for CreatePermission that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreatePermissionAsync(const CreatePermissionRequestT& request, const CreatePermissionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::CreatePermission, request, handler, context);
}
/**
* Creates a new version of the specified customer managed permission. The new
* version is automatically set as the default version of the customer managed
* permission. New resource shares automatically use the default permission.
* Existing resource shares continue to use their original permission versions, but
* you can use ReplacePermissionAssociations to update them.
If the
* specified customer managed permission already has the maximum of 5 versions,
* then you must delete one of the existing versions before you can create a new
* one.
See Also:
AWS
* API Reference
*/
virtual Model::CreatePermissionVersionOutcome CreatePermissionVersion(const Model::CreatePermissionVersionRequest& request) const;
/**
* A Callable wrapper for CreatePermissionVersion that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreatePermissionVersionOutcomeCallable CreatePermissionVersionCallable(const CreatePermissionVersionRequestT& request) const
{
return SubmitCallable(&RAMClient::CreatePermissionVersion, request);
}
/**
* An Async wrapper for CreatePermissionVersion that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreatePermissionVersionAsync(const CreatePermissionVersionRequestT& request, const CreatePermissionVersionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::CreatePermissionVersion, request, handler, context);
}
/**
* Creates a resource share. You can provide a list of the Amazon
* Resource Names (ARNs) for the resources that you want to share, a list of
* principals you want to share the resources with, and the permissions to grant
* those principals.
Sharing a resource makes it available for use by
* principals outside of the Amazon Web Services account that created the resource.
* Sharing doesn't change any permissions or quotas that apply to the resource in
* the account that created it.
See Also:
AWS
* API Reference
*/
virtual Model::CreateResourceShareOutcome CreateResourceShare(const Model::CreateResourceShareRequest& request) const;
/**
* A Callable wrapper for CreateResourceShare that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateResourceShareOutcomeCallable CreateResourceShareCallable(const CreateResourceShareRequestT& request) const
{
return SubmitCallable(&RAMClient::CreateResourceShare, request);
}
/**
* An Async wrapper for CreateResourceShare that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateResourceShareAsync(const CreateResourceShareRequestT& request, const CreateResourceShareResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::CreateResourceShare, request, handler, context);
}
/**
* Deletes the specified customer managed permission in the Amazon Web Services
* Region in which you call this operation. You can delete a customer managed
* permission only if it isn't attached to any resource share. The operation
* deletes all versions associated with the customer managed
* permission.
See Also:
AWS
* API Reference
*/
virtual Model::DeletePermissionOutcome DeletePermission(const Model::DeletePermissionRequest& request) const;
/**
* A Callable wrapper for DeletePermission that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeletePermissionOutcomeCallable DeletePermissionCallable(const DeletePermissionRequestT& request) const
{
return SubmitCallable(&RAMClient::DeletePermission, request);
}
/**
* An Async wrapper for DeletePermission that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeletePermissionAsync(const DeletePermissionRequestT& request, const DeletePermissionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::DeletePermission, request, handler, context);
}
/**
* Deletes one version of a customer managed permission. The version you specify
* must not be attached to any resource share and must not be the default version
* for the permission.
If a customer managed permission has the maximum of 5
* versions, then you must delete at least one version before you can create
* another.
See Also:
AWS
* API Reference
*/
virtual Model::DeletePermissionVersionOutcome DeletePermissionVersion(const Model::DeletePermissionVersionRequest& request) const;
/**
* A Callable wrapper for DeletePermissionVersion that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeletePermissionVersionOutcomeCallable DeletePermissionVersionCallable(const DeletePermissionVersionRequestT& request) const
{
return SubmitCallable(&RAMClient::DeletePermissionVersion, request);
}
/**
* An Async wrapper for DeletePermissionVersion that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeletePermissionVersionAsync(const DeletePermissionVersionRequestT& request, const DeletePermissionVersionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::DeletePermissionVersion, request, handler, context);
}
/**
* Deletes the specified resource share.
This doesn't delete
* any of the resources that were associated with the resource share; it only stops
* the sharing of those resources through this resource share.
* See Also:
AWS
* API Reference
*/
virtual Model::DeleteResourceShareOutcome DeleteResourceShare(const Model::DeleteResourceShareRequest& request) const;
/**
* A Callable wrapper for DeleteResourceShare that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteResourceShareOutcomeCallable DeleteResourceShareCallable(const DeleteResourceShareRequestT& request) const
{
return SubmitCallable(&RAMClient::DeleteResourceShare, request);
}
/**
* An Async wrapper for DeleteResourceShare that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteResourceShareAsync(const DeleteResourceShareRequestT& request, const DeleteResourceShareResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::DeleteResourceShare, request, handler, context);
}
/**
* Removes the specified principals or resources from participating in the
* specified resource share.
See Also:
AWS
* API Reference
*/
virtual Model::DisassociateResourceShareOutcome DisassociateResourceShare(const Model::DisassociateResourceShareRequest& request) const;
/**
* A Callable wrapper for DisassociateResourceShare that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DisassociateResourceShareOutcomeCallable DisassociateResourceShareCallable(const DisassociateResourceShareRequestT& request) const
{
return SubmitCallable(&RAMClient::DisassociateResourceShare, request);
}
/**
* An Async wrapper for DisassociateResourceShare that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DisassociateResourceShareAsync(const DisassociateResourceShareRequestT& request, const DisassociateResourceShareResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::DisassociateResourceShare, request, handler, context);
}
/**
* Removes a managed permission from a resource share. Permission changes take
* effect immediately. You can remove a managed permission from a resource share
* only if there are currently no resources of the relevant resource type currently
* attached to the resource share.
See Also:
AWS
* API Reference
*/
virtual Model::DisassociateResourceSharePermissionOutcome DisassociateResourceSharePermission(const Model::DisassociateResourceSharePermissionRequest& request) const;
/**
* A Callable wrapper for DisassociateResourceSharePermission that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DisassociateResourceSharePermissionOutcomeCallable DisassociateResourceSharePermissionCallable(const DisassociateResourceSharePermissionRequestT& request) const
{
return SubmitCallable(&RAMClient::DisassociateResourceSharePermission, request);
}
/**
* An Async wrapper for DisassociateResourceSharePermission that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DisassociateResourceSharePermissionAsync(const DisassociateResourceSharePermissionRequestT& request, const DisassociateResourceSharePermissionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::DisassociateResourceSharePermission, request, handler, context);
}
/**
* Enables resource sharing within your organization in Organizations. This
* operation creates a service-linked role called
* AWSServiceRoleForResourceAccessManager
that has the IAM managed
* policy named AWSResourceAccessManagerServiceRolePolicy attached. This role
* permits RAM to retrieve information about the organization and its structure.
* This lets you share resources with all of the accounts in the calling account's
* organization by specifying the organization ID, or all of the accounts in an
* organizational unit (OU) by specifying the OU ID. Until you enable sharing
* within the organization, you can specify only individual Amazon Web Services
* accounts, or for supported resource types, IAM roles and users.
You must
* call this operation from an IAM role or user in the organization's management
* account.
See Also:
AWS
* API Reference
*/
virtual Model::EnableSharingWithAwsOrganizationOutcome EnableSharingWithAwsOrganization(const Model::EnableSharingWithAwsOrganizationRequest& request) const;
/**
* A Callable wrapper for EnableSharingWithAwsOrganization that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::EnableSharingWithAwsOrganizationOutcomeCallable EnableSharingWithAwsOrganizationCallable(const EnableSharingWithAwsOrganizationRequestT& request) const
{
return SubmitCallable(&RAMClient::EnableSharingWithAwsOrganization, request);
}
/**
* An Async wrapper for EnableSharingWithAwsOrganization that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void EnableSharingWithAwsOrganizationAsync(const EnableSharingWithAwsOrganizationRequestT& request, const EnableSharingWithAwsOrganizationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::EnableSharingWithAwsOrganization, request, handler, context);
}
/**
* Retrieves the contents of a managed permission in JSON format.
See
* Also:
AWS
* API Reference
*/
virtual Model::GetPermissionOutcome GetPermission(const Model::GetPermissionRequest& request) const;
/**
* A Callable wrapper for GetPermission that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetPermissionOutcomeCallable GetPermissionCallable(const GetPermissionRequestT& request) const
{
return SubmitCallable(&RAMClient::GetPermission, request);
}
/**
* An Async wrapper for GetPermission that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetPermissionAsync(const GetPermissionRequestT& request, const GetPermissionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::GetPermission, request, handler, context);
}
/**
* Retrieves the resource policies for the specified resources that you own and
* have shared.
See Also:
AWS
* API Reference
*/
virtual Model::GetResourcePoliciesOutcome GetResourcePolicies(const Model::GetResourcePoliciesRequest& request) const;
/**
* A Callable wrapper for GetResourcePolicies that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetResourcePoliciesOutcomeCallable GetResourcePoliciesCallable(const GetResourcePoliciesRequestT& request) const
{
return SubmitCallable(&RAMClient::GetResourcePolicies, request);
}
/**
* An Async wrapper for GetResourcePolicies that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetResourcePoliciesAsync(const GetResourcePoliciesRequestT& request, const GetResourcePoliciesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::GetResourcePolicies, request, handler, context);
}
/**
* Retrieves the lists of resources and principals that associated for resource
* shares that you own.
See Also:
AWS
* API Reference
*/
virtual Model::GetResourceShareAssociationsOutcome GetResourceShareAssociations(const Model::GetResourceShareAssociationsRequest& request) const;
/**
* A Callable wrapper for GetResourceShareAssociations that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetResourceShareAssociationsOutcomeCallable GetResourceShareAssociationsCallable(const GetResourceShareAssociationsRequestT& request) const
{
return SubmitCallable(&RAMClient::GetResourceShareAssociations, request);
}
/**
* An Async wrapper for GetResourceShareAssociations that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetResourceShareAssociationsAsync(const GetResourceShareAssociationsRequestT& request, const GetResourceShareAssociationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::GetResourceShareAssociations, request, handler, context);
}
/**
* Retrieves details about invitations that you have received for resource
* shares.
See Also:
AWS
* API Reference
*/
virtual Model::GetResourceShareInvitationsOutcome GetResourceShareInvitations(const Model::GetResourceShareInvitationsRequest& request) const;
/**
* A Callable wrapper for GetResourceShareInvitations that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetResourceShareInvitationsOutcomeCallable GetResourceShareInvitationsCallable(const GetResourceShareInvitationsRequestT& request) const
{
return SubmitCallable(&RAMClient::GetResourceShareInvitations, request);
}
/**
* An Async wrapper for GetResourceShareInvitations that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetResourceShareInvitationsAsync(const GetResourceShareInvitationsRequestT& request, const GetResourceShareInvitationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::GetResourceShareInvitations, request, handler, context);
}
/**
* Retrieves details about the resource shares that you own or that are shared
* with you.
See Also:
AWS
* API Reference
*/
virtual Model::GetResourceSharesOutcome GetResourceShares(const Model::GetResourceSharesRequest& request) const;
/**
* A Callable wrapper for GetResourceShares that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetResourceSharesOutcomeCallable GetResourceSharesCallable(const GetResourceSharesRequestT& request) const
{
return SubmitCallable(&RAMClient::GetResourceShares, request);
}
/**
* An Async wrapper for GetResourceShares that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetResourceSharesAsync(const GetResourceSharesRequestT& request, const GetResourceSharesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::GetResourceShares, request, handler, context);
}
/**
* Lists the resources in a resource share that is shared with you but for which
* the invitation is still PENDING
. That means that you haven't
* accepted or rejected the invitation and the invitation hasn't
* expired.
See Also:
AWS
* API Reference
*/
virtual Model::ListPendingInvitationResourcesOutcome ListPendingInvitationResources(const Model::ListPendingInvitationResourcesRequest& request) const;
/**
* A Callable wrapper for ListPendingInvitationResources that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListPendingInvitationResourcesOutcomeCallable ListPendingInvitationResourcesCallable(const ListPendingInvitationResourcesRequestT& request) const
{
return SubmitCallable(&RAMClient::ListPendingInvitationResources, request);
}
/**
* An Async wrapper for ListPendingInvitationResources that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListPendingInvitationResourcesAsync(const ListPendingInvitationResourcesRequestT& request, const ListPendingInvitationResourcesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::ListPendingInvitationResources, request, handler, context);
}
/**
* Lists information about the managed permission and its associations to any
* resource shares that use this managed permission. This lets you see which
* resource shares use which versions of the specified managed
* permission.
See Also:
AWS
* API Reference
*/
virtual Model::ListPermissionAssociationsOutcome ListPermissionAssociations(const Model::ListPermissionAssociationsRequest& request) const;
/**
* A Callable wrapper for ListPermissionAssociations that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListPermissionAssociationsOutcomeCallable ListPermissionAssociationsCallable(const ListPermissionAssociationsRequestT& request) const
{
return SubmitCallable(&RAMClient::ListPermissionAssociations, request);
}
/**
* An Async wrapper for ListPermissionAssociations that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListPermissionAssociationsAsync(const ListPermissionAssociationsRequestT& request, const ListPermissionAssociationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::ListPermissionAssociations, request, handler, context);
}
/**
* Lists the available versions of the specified RAM permission.
See
* Also:
AWS
* API Reference
*/
virtual Model::ListPermissionVersionsOutcome ListPermissionVersions(const Model::ListPermissionVersionsRequest& request) const;
/**
* A Callable wrapper for ListPermissionVersions that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListPermissionVersionsOutcomeCallable ListPermissionVersionsCallable(const ListPermissionVersionsRequestT& request) const
{
return SubmitCallable(&RAMClient::ListPermissionVersions, request);
}
/**
* An Async wrapper for ListPermissionVersions that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListPermissionVersionsAsync(const ListPermissionVersionsRequestT& request, const ListPermissionVersionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::ListPermissionVersions, request, handler, context);
}
/**
* Retrieves a list of available RAM permissions that you can use for the
* supported resource types.
See Also:
AWS
* API Reference
*/
virtual Model::ListPermissionsOutcome ListPermissions(const Model::ListPermissionsRequest& request) const;
/**
* A Callable wrapper for ListPermissions that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListPermissionsOutcomeCallable ListPermissionsCallable(const ListPermissionsRequestT& request) const
{
return SubmitCallable(&RAMClient::ListPermissions, request);
}
/**
* An Async wrapper for ListPermissions that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListPermissionsAsync(const ListPermissionsRequestT& request, const ListPermissionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::ListPermissions, request, handler, context);
}
/**
* Lists the principals that you are sharing resources with or that are sharing
* resources with you.
See Also:
AWS
* API Reference
*/
virtual Model::ListPrincipalsOutcome ListPrincipals(const Model::ListPrincipalsRequest& request) const;
/**
* A Callable wrapper for ListPrincipals that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListPrincipalsOutcomeCallable ListPrincipalsCallable(const ListPrincipalsRequestT& request) const
{
return SubmitCallable(&RAMClient::ListPrincipals, request);
}
/**
* An Async wrapper for ListPrincipals that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListPrincipalsAsync(const ListPrincipalsRequestT& request, const ListPrincipalsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::ListPrincipals, request, handler, context);
}
/**
* Retrieves the current status of the asynchronous tasks performed by RAM when
* you perform the ReplacePermissionAssociationsWork
* operation.
See Also:
AWS
* API Reference
*/
virtual Model::ListReplacePermissionAssociationsWorkOutcome ListReplacePermissionAssociationsWork(const Model::ListReplacePermissionAssociationsWorkRequest& request) const;
/**
* A Callable wrapper for ListReplacePermissionAssociationsWork that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListReplacePermissionAssociationsWorkOutcomeCallable ListReplacePermissionAssociationsWorkCallable(const ListReplacePermissionAssociationsWorkRequestT& request) const
{
return SubmitCallable(&RAMClient::ListReplacePermissionAssociationsWork, request);
}
/**
* An Async wrapper for ListReplacePermissionAssociationsWork that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListReplacePermissionAssociationsWorkAsync(const ListReplacePermissionAssociationsWorkRequestT& request, const ListReplacePermissionAssociationsWorkResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::ListReplacePermissionAssociationsWork, request, handler, context);
}
/**
* Lists the RAM permissions that are associated with a resource
* share.
See Also:
AWS
* API Reference
*/
virtual Model::ListResourceSharePermissionsOutcome ListResourceSharePermissions(const Model::ListResourceSharePermissionsRequest& request) const;
/**
* A Callable wrapper for ListResourceSharePermissions that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListResourceSharePermissionsOutcomeCallable ListResourceSharePermissionsCallable(const ListResourceSharePermissionsRequestT& request) const
{
return SubmitCallable(&RAMClient::ListResourceSharePermissions, request);
}
/**
* An Async wrapper for ListResourceSharePermissions that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListResourceSharePermissionsAsync(const ListResourceSharePermissionsRequestT& request, const ListResourceSharePermissionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::ListResourceSharePermissions, request, handler, context);
}
/**
* Lists the resource types that can be shared by RAM.
See Also:
* AWS
* API Reference
*/
virtual Model::ListResourceTypesOutcome ListResourceTypes(const Model::ListResourceTypesRequest& request) const;
/**
* A Callable wrapper for ListResourceTypes that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListResourceTypesOutcomeCallable ListResourceTypesCallable(const ListResourceTypesRequestT& request) const
{
return SubmitCallable(&RAMClient::ListResourceTypes, request);
}
/**
* An Async wrapper for ListResourceTypes that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListResourceTypesAsync(const ListResourceTypesRequestT& request, const ListResourceTypesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::ListResourceTypes, request, handler, context);
}
/**
* Lists the resources that you added to a resource share or the resources that
* are shared with you.
See Also:
AWS
* API Reference
*/
virtual Model::ListResourcesOutcome ListResources(const Model::ListResourcesRequest& request) const;
/**
* A Callable wrapper for ListResources that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListResourcesOutcomeCallable ListResourcesCallable(const ListResourcesRequestT& request) const
{
return SubmitCallable(&RAMClient::ListResources, request);
}
/**
* An Async wrapper for ListResources that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListResourcesAsync(const ListResourcesRequestT& request, const ListResourcesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::ListResources, request, handler, context);
}
/**
* When you attach a resource-based policy to a resource, RAM automatically
* creates a resource share of
* featureSet
=CREATED_FROM_POLICY
with a managed
* permission that has the same IAM permissions as the original resource-based
* policy. However, this type of managed permission is visible to only the resource
* share owner, and the associated resource share can't be modified by using
* RAM.
This operation creates a separate, fully manageable customer managed
* permission that has the same IAM permissions as the original resource-based
* policy. You can associate this customer managed permission to any resource
* shares.
Before you use PromoteResourceShareCreatedFromPolicy, you
* should first run this operation to ensure that you have an appropriate customer
* managed permission that can be associated with the promoted resource share.
* -
The original CREATED_FROM_POLICY
policy isn't
* deleted, and resource shares using that original policy aren't automatically
* updated.
-
You can't modify a CREATED_FROM_POLICY
* resource share so you can't associate the new customer managed permission by
* using ReplacePermsissionAssociations
. However, if you use
* PromoteResourceShareCreatedFromPolicy, that operation automatically
* associates the fully manageable customer managed permission to the newly
* promoted STANDARD
resource share.
-
After you
* promote a resource share, if the original CREATED_FROM_POLICY
* managed permission has no other associations to A resource share, then RAM
* automatically deletes it.
See Also:
AWS
* API Reference
*/
virtual Model::PromotePermissionCreatedFromPolicyOutcome PromotePermissionCreatedFromPolicy(const Model::PromotePermissionCreatedFromPolicyRequest& request) const;
/**
* A Callable wrapper for PromotePermissionCreatedFromPolicy that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PromotePermissionCreatedFromPolicyOutcomeCallable PromotePermissionCreatedFromPolicyCallable(const PromotePermissionCreatedFromPolicyRequestT& request) const
{
return SubmitCallable(&RAMClient::PromotePermissionCreatedFromPolicy, request);
}
/**
* An Async wrapper for PromotePermissionCreatedFromPolicy that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PromotePermissionCreatedFromPolicyAsync(const PromotePermissionCreatedFromPolicyRequestT& request, const PromotePermissionCreatedFromPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::PromotePermissionCreatedFromPolicy, request, handler, context);
}
/**
* When you attach a resource-based policy to a resource, RAM automatically
* creates a resource share of
* featureSet
=CREATED_FROM_POLICY
with a managed
* permission that has the same IAM permissions as the original resource-based
* policy. However, this type of managed permission is visible to only the resource
* share owner, and the associated resource share can't be modified by using
* RAM.
This operation promotes the resource share to a
* STANDARD
resource share that is fully manageable in RAM. When you
* promote a resource share, you can then manage the resource share in RAM and it
* becomes visible to all of the principals you shared it with.
* Before you perform this operation, you should first run
* PromotePermissionCreatedFromPolicyto ensure that you have an appropriate
* customer managed permission that can be associated with this resource share
* after its is promoted. If this operation can't find a managed permission that
* exactly matches the existing CREATED_FROM_POLICY
permission, then
* this operation fails.
See Also:
AWS
* API Reference
*/
virtual Model::PromoteResourceShareCreatedFromPolicyOutcome PromoteResourceShareCreatedFromPolicy(const Model::PromoteResourceShareCreatedFromPolicyRequest& request) const;
/**
* A Callable wrapper for PromoteResourceShareCreatedFromPolicy that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PromoteResourceShareCreatedFromPolicyOutcomeCallable PromoteResourceShareCreatedFromPolicyCallable(const PromoteResourceShareCreatedFromPolicyRequestT& request) const
{
return SubmitCallable(&RAMClient::PromoteResourceShareCreatedFromPolicy, request);
}
/**
* An Async wrapper for PromoteResourceShareCreatedFromPolicy that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PromoteResourceShareCreatedFromPolicyAsync(const PromoteResourceShareCreatedFromPolicyRequestT& request, const PromoteResourceShareCreatedFromPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::PromoteResourceShareCreatedFromPolicy, request, handler, context);
}
/**
* Rejects an invitation to a resource share from another Amazon Web Services
* account.
See Also:
AWS
* API Reference
*/
virtual Model::RejectResourceShareInvitationOutcome RejectResourceShareInvitation(const Model::RejectResourceShareInvitationRequest& request) const;
/**
* A Callable wrapper for RejectResourceShareInvitation that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::RejectResourceShareInvitationOutcomeCallable RejectResourceShareInvitationCallable(const RejectResourceShareInvitationRequestT& request) const
{
return SubmitCallable(&RAMClient::RejectResourceShareInvitation, request);
}
/**
* An Async wrapper for RejectResourceShareInvitation that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void RejectResourceShareInvitationAsync(const RejectResourceShareInvitationRequestT& request, const RejectResourceShareInvitationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::RejectResourceShareInvitation, request, handler, context);
}
/**
* Updates all resource shares that use a managed permission to a different
* managed permission. This operation always applies the default version of the
* target managed permission. You can optionally specify that the update applies to
* only resource shares that currently use a specified version. This enables you to
* update to the latest version, without changing the which managed permission is
* used.
You can use this operation to update all of your resource shares to
* use the current default version of the permission by specifying the same value
* for the fromPermissionArn
and toPermissionArn
* parameters.
You can use the optional fromPermissionVersion
* parameter to update only those resources that use a specified version of the
* managed permission to the new managed permission.
To
* successfully perform this operation, you must have permission to update the
* resource-based policy on all affected resource types.
See
* Also:
AWS
* API Reference
*/
virtual Model::ReplacePermissionAssociationsOutcome ReplacePermissionAssociations(const Model::ReplacePermissionAssociationsRequest& request) const;
/**
* A Callable wrapper for ReplacePermissionAssociations that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ReplacePermissionAssociationsOutcomeCallable ReplacePermissionAssociationsCallable(const ReplacePermissionAssociationsRequestT& request) const
{
return SubmitCallable(&RAMClient::ReplacePermissionAssociations, request);
}
/**
* An Async wrapper for ReplacePermissionAssociations that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ReplacePermissionAssociationsAsync(const ReplacePermissionAssociationsRequestT& request, const ReplacePermissionAssociationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::ReplacePermissionAssociations, request, handler, context);
}
/**
* Designates the specified version number as the default version for the
* specified customer managed permission. New resource shares automatically use
* this new default permission. Existing resource shares continue to use their
* original permission version, but you can use
* ReplacePermissionAssociations to update them.
See Also:
* AWS
* API Reference
*/
virtual Model::SetDefaultPermissionVersionOutcome SetDefaultPermissionVersion(const Model::SetDefaultPermissionVersionRequest& request) const;
/**
* A Callable wrapper for SetDefaultPermissionVersion that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::SetDefaultPermissionVersionOutcomeCallable SetDefaultPermissionVersionCallable(const SetDefaultPermissionVersionRequestT& request) const
{
return SubmitCallable(&RAMClient::SetDefaultPermissionVersion, request);
}
/**
* An Async wrapper for SetDefaultPermissionVersion that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void SetDefaultPermissionVersionAsync(const SetDefaultPermissionVersionRequestT& request, const SetDefaultPermissionVersionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::SetDefaultPermissionVersion, request, handler, context);
}
/**
* Adds the specified tag keys and values to a resource share or managed
* permission. If you choose a resource share, the tags are attached to only the
* resource share, not to the resources that are in the resource share.
The
* tags on a managed permission are the same for all versions of the managed
* permission.
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(&RAMClient::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(&RAMClient::TagResource, request, handler, context);
}
/**
* Removes the specified tag key and value pairs from the specified resource
* share or managed permission.
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(&RAMClient::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(&RAMClient::UntagResource, request, handler, context);
}
/**
* Modifies some of the properties of the specified resource
* share.
See Also:
AWS
* API Reference
*/
virtual Model::UpdateResourceShareOutcome UpdateResourceShare(const Model::UpdateResourceShareRequest& request) const;
/**
* A Callable wrapper for UpdateResourceShare that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateResourceShareOutcomeCallable UpdateResourceShareCallable(const UpdateResourceShareRequestT& request) const
{
return SubmitCallable(&RAMClient::UpdateResourceShare, request);
}
/**
* An Async wrapper for UpdateResourceShare that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateResourceShareAsync(const UpdateResourceShareRequestT& request, const UpdateResourceShareResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&RAMClient::UpdateResourceShare, request, handler, context);
}
void OverrideEndpoint(const Aws::String& endpoint);
std::shared_ptr& accessEndpointProvider();
private:
friend class Aws::Client::ClientWithAsyncTemplateMethods;
void init(const RAMClientConfiguration& clientConfiguration);
RAMClientConfiguration m_clientConfiguration;
std::shared_ptr m_executor;
std::shared_ptr m_endpointProvider;
};
} // namespace RAM
} // namespace Aws