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