/** * 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 CognitoIdentity { /** * Amazon Cognito Federated Identities

Amazon Cognito * Federated Identities is a web service that delivers scoped temporary credentials * to mobile devices and other untrusted environments. It uniquely identifies a * device and supplies the user with a consistent identity over the lifetime of an * application.

Using Amazon Cognito Federated Identities, you can enable * authentication with one or more third-party identity providers (Facebook, * Google, or Login with Amazon) or an Amazon Cognito user pool, and you can also * choose to support unauthenticated access from your app. Cognito delivers a * unique identifier for each user and acts as an OpenID token provider trusted by * AWS Security Token Service (STS) to access temporary, limited-privilege AWS * credentials.

For a description of the authentication flow from the Amazon * Cognito Developer Guide see Authentication * Flow.

For more information see Amazon * Cognito Federated Identities.

*/ class AWS_COGNITOIDENTITY_API CognitoIdentityClient : 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 CognitoIdentityClientConfiguration ClientConfigurationType; typedef CognitoIdentityEndpointProvider 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. */ CognitoIdentityClient(const Aws::CognitoIdentity::CognitoIdentityClientConfiguration& clientConfiguration = Aws::CognitoIdentity::CognitoIdentityClientConfiguration(), 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. */ CognitoIdentityClient(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::CognitoIdentity::CognitoIdentityClientConfiguration& clientConfiguration = Aws::CognitoIdentity::CognitoIdentityClientConfiguration()); /** * 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 */ CognitoIdentityClient(const std::shared_ptr& credentialsProvider, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::CognitoIdentity::CognitoIdentityClientConfiguration& clientConfiguration = Aws::CognitoIdentity::CognitoIdentityClientConfiguration()); /* 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. */ CognitoIdentityClient(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. */ CognitoIdentityClient(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 */ CognitoIdentityClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ virtual ~CognitoIdentityClient(); /** *

Creates a new identity pool. The identity pool is a store of user identity * information that is specific to your AWS account. The keys for * SupportedLoginProviders are as follows:

  • Facebook: * graph.facebook.com

  • Google: * accounts.google.com

  • Amazon: * www.amazon.com

  • Twitter: * api.twitter.com

  • Digits: * www.digits.com

You must use AWS Developer * credentials to call this API.

See Also:

AWS * API Reference

*/ virtual Model::CreateIdentityPoolOutcome CreateIdentityPool(const Model::CreateIdentityPoolRequest& request) const; /** * A Callable wrapper for CreateIdentityPool that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateIdentityPoolOutcomeCallable CreateIdentityPoolCallable(const CreateIdentityPoolRequestT& request) const { return SubmitCallable(&CognitoIdentityClient::CreateIdentityPool, request); } /** * An Async wrapper for CreateIdentityPool that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateIdentityPoolAsync(const CreateIdentityPoolRequestT& request, const CreateIdentityPoolResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CognitoIdentityClient::CreateIdentityPool, request, handler, context); } /** *

Deletes identities from an identity pool. You can specify a list of 1-60 * identities that you want to delete.

You must use AWS Developer * credentials to call this API.

See Also:

AWS * API Reference

*/ virtual Model::DeleteIdentitiesOutcome DeleteIdentities(const Model::DeleteIdentitiesRequest& request) const; /** * A Callable wrapper for DeleteIdentities that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteIdentitiesOutcomeCallable DeleteIdentitiesCallable(const DeleteIdentitiesRequestT& request) const { return SubmitCallable(&CognitoIdentityClient::DeleteIdentities, request); } /** * An Async wrapper for DeleteIdentities that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteIdentitiesAsync(const DeleteIdentitiesRequestT& request, const DeleteIdentitiesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CognitoIdentityClient::DeleteIdentities, request, handler, context); } /** *

Deletes an identity pool. Once a pool is deleted, users will not be able to * authenticate with the pool.

You must use AWS Developer credentials to * call this API.

See Also:

AWS * API Reference

*/ virtual Model::DeleteIdentityPoolOutcome DeleteIdentityPool(const Model::DeleteIdentityPoolRequest& request) const; /** * A Callable wrapper for DeleteIdentityPool that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteIdentityPoolOutcomeCallable DeleteIdentityPoolCallable(const DeleteIdentityPoolRequestT& request) const { return SubmitCallable(&CognitoIdentityClient::DeleteIdentityPool, request); } /** * An Async wrapper for DeleteIdentityPool that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteIdentityPoolAsync(const DeleteIdentityPoolRequestT& request, const DeleteIdentityPoolResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CognitoIdentityClient::DeleteIdentityPool, request, handler, context); } /** *

Returns metadata related to the given identity, including when the identity * was created and any associated linked logins.

You must use AWS Developer * credentials to call this API.

See Also:

AWS * API Reference

*/ virtual Model::DescribeIdentityOutcome DescribeIdentity(const Model::DescribeIdentityRequest& request) const; /** * A Callable wrapper for DescribeIdentity that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeIdentityOutcomeCallable DescribeIdentityCallable(const DescribeIdentityRequestT& request) const { return SubmitCallable(&CognitoIdentityClient::DescribeIdentity, request); } /** * An Async wrapper for DescribeIdentity that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeIdentityAsync(const DescribeIdentityRequestT& request, const DescribeIdentityResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CognitoIdentityClient::DescribeIdentity, request, handler, context); } /** *

Gets details about a particular identity pool, including the pool name, ID * description, creation date, and current number of users.

You must use AWS * Developer credentials to call this API.

See Also:

AWS * API Reference

*/ virtual Model::DescribeIdentityPoolOutcome DescribeIdentityPool(const Model::DescribeIdentityPoolRequest& request) const; /** * A Callable wrapper for DescribeIdentityPool that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeIdentityPoolOutcomeCallable DescribeIdentityPoolCallable(const DescribeIdentityPoolRequestT& request) const { return SubmitCallable(&CognitoIdentityClient::DescribeIdentityPool, request); } /** * An Async wrapper for DescribeIdentityPool that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeIdentityPoolAsync(const DescribeIdentityPoolRequestT& request, const DescribeIdentityPoolResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CognitoIdentityClient::DescribeIdentityPool, request, handler, context); } /** *

Returns credentials for the provided identity ID. Any provided logins will be * validated against supported login providers. If the token is for * cognito-identity.amazonaws.com, it will be passed through to AWS Security Token * Service with the appropriate role for the token.

This is a public API. * You do not need any credentials to call this API.

See Also:

AWS * API Reference

*/ virtual Model::GetCredentialsForIdentityOutcome GetCredentialsForIdentity(const Model::GetCredentialsForIdentityRequest& request) const; /** * A Callable wrapper for GetCredentialsForIdentity that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetCredentialsForIdentityOutcomeCallable GetCredentialsForIdentityCallable(const GetCredentialsForIdentityRequestT& request) const { return SubmitCallable(&CognitoIdentityClient::GetCredentialsForIdentity, request); } /** * An Async wrapper for GetCredentialsForIdentity that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetCredentialsForIdentityAsync(const GetCredentialsForIdentityRequestT& request, const GetCredentialsForIdentityResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CognitoIdentityClient::GetCredentialsForIdentity, request, handler, context); } /** *

Generates (or retrieves) a Cognito ID. Supplying multiple logins will create * an implicit linked account.

This is a public API. You do not need any * credentials to call this API.

See Also:

AWS * API Reference

*/ virtual Model::GetIdOutcome GetId(const Model::GetIdRequest& request) const; /** * A Callable wrapper for GetId that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetIdOutcomeCallable GetIdCallable(const GetIdRequestT& request) const { return SubmitCallable(&CognitoIdentityClient::GetId, request); } /** * An Async wrapper for GetId that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetIdAsync(const GetIdRequestT& request, const GetIdResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CognitoIdentityClient::GetId, request, handler, context); } /** *

Gets the roles for an identity pool.

You must use AWS Developer * credentials to call this API.

See Also:

AWS * API Reference

*/ virtual Model::GetIdentityPoolRolesOutcome GetIdentityPoolRoles(const Model::GetIdentityPoolRolesRequest& request) const; /** * A Callable wrapper for GetIdentityPoolRoles that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetIdentityPoolRolesOutcomeCallable GetIdentityPoolRolesCallable(const GetIdentityPoolRolesRequestT& request) const { return SubmitCallable(&CognitoIdentityClient::GetIdentityPoolRoles, request); } /** * An Async wrapper for GetIdentityPoolRoles that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetIdentityPoolRolesAsync(const GetIdentityPoolRolesRequestT& request, const GetIdentityPoolRolesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CognitoIdentityClient::GetIdentityPoolRoles, request, handler, context); } /** *

Gets an OpenID token, using a known Cognito ID. This known Cognito ID is * returned by GetId. You can optionally add additional logins for the * identity. Supplying multiple logins creates an implicit link.

The OpenID * token is valid for 10 minutes.

This is a public API. You do not need any * credentials to call this API.

See Also:

AWS * API Reference

*/ virtual Model::GetOpenIdTokenOutcome GetOpenIdToken(const Model::GetOpenIdTokenRequest& request) const; /** * A Callable wrapper for GetOpenIdToken that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetOpenIdTokenOutcomeCallable GetOpenIdTokenCallable(const GetOpenIdTokenRequestT& request) const { return SubmitCallable(&CognitoIdentityClient::GetOpenIdToken, request); } /** * An Async wrapper for GetOpenIdToken that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetOpenIdTokenAsync(const GetOpenIdTokenRequestT& request, const GetOpenIdTokenResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CognitoIdentityClient::GetOpenIdToken, request, handler, context); } /** *

Registers (or retrieves) a Cognito IdentityId and an OpenID * Connect token for a user authenticated by your backend authentication process. * Supplying multiple logins will create an implicit linked account. You can only * specify one developer provider as part of the Logins map, which is * linked to the identity pool. The developer provider is the "domain" by which * Cognito will refer to your users.

You can use * GetOpenIdTokenForDeveloperIdentity to create a new identity and to * link new logins (that is, user credentials issued by a public provider or * developer provider) to an existing identity. When you want to create a new * identity, the IdentityId should be null. When you want to associate * a new login with an existing authenticated/unauthenticated identity, you can do * so by providing the existing IdentityId. This API will create the * identity in the specified IdentityPoolId.

You must use AWS * Developer credentials to call this API.

See Also:

AWS * API Reference

*/ virtual Model::GetOpenIdTokenForDeveloperIdentityOutcome GetOpenIdTokenForDeveloperIdentity(const Model::GetOpenIdTokenForDeveloperIdentityRequest& request) const; /** * A Callable wrapper for GetOpenIdTokenForDeveloperIdentity that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetOpenIdTokenForDeveloperIdentityOutcomeCallable GetOpenIdTokenForDeveloperIdentityCallable(const GetOpenIdTokenForDeveloperIdentityRequestT& request) const { return SubmitCallable(&CognitoIdentityClient::GetOpenIdTokenForDeveloperIdentity, request); } /** * An Async wrapper for GetOpenIdTokenForDeveloperIdentity that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetOpenIdTokenForDeveloperIdentityAsync(const GetOpenIdTokenForDeveloperIdentityRequestT& request, const GetOpenIdTokenForDeveloperIdentityResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CognitoIdentityClient::GetOpenIdTokenForDeveloperIdentity, request, handler, context); } /** *

Use GetPrincipalTagAttributeMap to list all mappings between * PrincipalTags and user attributes.

See Also:

AWS * API Reference

*/ virtual Model::GetPrincipalTagAttributeMapOutcome GetPrincipalTagAttributeMap(const Model::GetPrincipalTagAttributeMapRequest& request) const; /** * A Callable wrapper for GetPrincipalTagAttributeMap that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetPrincipalTagAttributeMapOutcomeCallable GetPrincipalTagAttributeMapCallable(const GetPrincipalTagAttributeMapRequestT& request) const { return SubmitCallable(&CognitoIdentityClient::GetPrincipalTagAttributeMap, request); } /** * An Async wrapper for GetPrincipalTagAttributeMap that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetPrincipalTagAttributeMapAsync(const GetPrincipalTagAttributeMapRequestT& request, const GetPrincipalTagAttributeMapResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CognitoIdentityClient::GetPrincipalTagAttributeMap, request, handler, context); } /** *

Lists the identities in an identity pool.

You must use AWS Developer * credentials to call this API.

See Also:

AWS * API Reference

*/ virtual Model::ListIdentitiesOutcome ListIdentities(const Model::ListIdentitiesRequest& request) const; /** * A Callable wrapper for ListIdentities that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListIdentitiesOutcomeCallable ListIdentitiesCallable(const ListIdentitiesRequestT& request) const { return SubmitCallable(&CognitoIdentityClient::ListIdentities, request); } /** * An Async wrapper for ListIdentities that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListIdentitiesAsync(const ListIdentitiesRequestT& request, const ListIdentitiesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CognitoIdentityClient::ListIdentities, request, handler, context); } /** *

Lists all of the Cognito identity pools registered for your account.

*

You must use AWS Developer credentials to call this API.

See * Also:

AWS * API Reference

*/ virtual Model::ListIdentityPoolsOutcome ListIdentityPools(const Model::ListIdentityPoolsRequest& request) const; /** * A Callable wrapper for ListIdentityPools that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListIdentityPoolsOutcomeCallable ListIdentityPoolsCallable(const ListIdentityPoolsRequestT& request) const { return SubmitCallable(&CognitoIdentityClient::ListIdentityPools, request); } /** * An Async wrapper for ListIdentityPools that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListIdentityPoolsAsync(const ListIdentityPoolsRequestT& request, const ListIdentityPoolsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CognitoIdentityClient::ListIdentityPools, request, handler, context); } /** *

Lists the tags that are assigned to an Amazon Cognito identity pool.

A * tag is a label that you can apply to identity pools to categorize and manage * them in different ways, such as by purpose, owner, environment, or other * criteria.

You can use this action up to 10 times per second, per * account.

See Also:

AWS * API Reference

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

Retrieves the IdentityID associated with a * DeveloperUserIdentifier or the list of * DeveloperUserIdentifier values associated with an * IdentityId for an existing identity. Either IdentityID * or DeveloperUserIdentifier must not be null. If you supply only one * of these values, the other value will be searched in the database and returned * as a part of the response. If you supply both, * DeveloperUserIdentifier will be matched against * IdentityID. If the values are verified against the database, the * response returns both values and is the same as the request. Otherwise a * ResourceConflictException is thrown.

* LookupDeveloperIdentity is intended for low-throughput control * plane operations: for example, to enable customer service to locate an identity * ID by username. If you are using it for higher-volume operations such as user * authentication, your requests are likely to be throttled. * GetOpenIdTokenForDeveloperIdentity is a better option for higher-volume * operations for user authentication.

You must use AWS Developer * credentials to call this API.

See Also:

AWS * API Reference

*/ virtual Model::LookupDeveloperIdentityOutcome LookupDeveloperIdentity(const Model::LookupDeveloperIdentityRequest& request) const; /** * A Callable wrapper for LookupDeveloperIdentity that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::LookupDeveloperIdentityOutcomeCallable LookupDeveloperIdentityCallable(const LookupDeveloperIdentityRequestT& request) const { return SubmitCallable(&CognitoIdentityClient::LookupDeveloperIdentity, request); } /** * An Async wrapper for LookupDeveloperIdentity that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void LookupDeveloperIdentityAsync(const LookupDeveloperIdentityRequestT& request, const LookupDeveloperIdentityResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CognitoIdentityClient::LookupDeveloperIdentity, request, handler, context); } /** *

Merges two users having different IdentityIds, existing in the * same identity pool, and identified by the same developer provider. You can use * this action to request that discrete users be merged and identified as a single * user in the Cognito environment. Cognito associates the given source user * (SourceUserIdentifier) with the IdentityId of the * DestinationUserIdentifier. Only developer-authenticated users can * be merged. If the users to be merged are associated with the same public * provider, but as two different users, an exception will be thrown.

The * number of linked logins is limited to 20. So, the number of linked logins for * the source user, SourceUserIdentifier, and the destination user, * DestinationUserIdentifier, together should not be larger than 20. * Otherwise, an exception will be thrown.

You must use AWS Developer * credentials to call this API.

See Also:

AWS * API Reference

*/ virtual Model::MergeDeveloperIdentitiesOutcome MergeDeveloperIdentities(const Model::MergeDeveloperIdentitiesRequest& request) const; /** * A Callable wrapper for MergeDeveloperIdentities that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::MergeDeveloperIdentitiesOutcomeCallable MergeDeveloperIdentitiesCallable(const MergeDeveloperIdentitiesRequestT& request) const { return SubmitCallable(&CognitoIdentityClient::MergeDeveloperIdentities, request); } /** * An Async wrapper for MergeDeveloperIdentities that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void MergeDeveloperIdentitiesAsync(const MergeDeveloperIdentitiesRequestT& request, const MergeDeveloperIdentitiesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CognitoIdentityClient::MergeDeveloperIdentities, request, handler, context); } /** *

Sets the roles for an identity pool. These roles are used when making calls * to GetCredentialsForIdentity action.

You must use AWS Developer * credentials to call this API.

See Also:

AWS * API Reference

*/ virtual Model::SetIdentityPoolRolesOutcome SetIdentityPoolRoles(const Model::SetIdentityPoolRolesRequest& request) const; /** * A Callable wrapper for SetIdentityPoolRoles that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::SetIdentityPoolRolesOutcomeCallable SetIdentityPoolRolesCallable(const SetIdentityPoolRolesRequestT& request) const { return SubmitCallable(&CognitoIdentityClient::SetIdentityPoolRoles, request); } /** * An Async wrapper for SetIdentityPoolRoles that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void SetIdentityPoolRolesAsync(const SetIdentityPoolRolesRequestT& request, const SetIdentityPoolRolesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CognitoIdentityClient::SetIdentityPoolRoles, request, handler, context); } /** *

You can use this operation to use default (username and clientID) attribute * or custom attribute mappings.

See Also:

AWS * API Reference

*/ virtual Model::SetPrincipalTagAttributeMapOutcome SetPrincipalTagAttributeMap(const Model::SetPrincipalTagAttributeMapRequest& request) const; /** * A Callable wrapper for SetPrincipalTagAttributeMap that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::SetPrincipalTagAttributeMapOutcomeCallable SetPrincipalTagAttributeMapCallable(const SetPrincipalTagAttributeMapRequestT& request) const { return SubmitCallable(&CognitoIdentityClient::SetPrincipalTagAttributeMap, request); } /** * An Async wrapper for SetPrincipalTagAttributeMap that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void SetPrincipalTagAttributeMapAsync(const SetPrincipalTagAttributeMapRequestT& request, const SetPrincipalTagAttributeMapResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CognitoIdentityClient::SetPrincipalTagAttributeMap, request, handler, context); } /** *

Assigns a set of tags to the specified Amazon Cognito identity pool. A tag is * a label that you can use to categorize and manage identity pools in different * ways, such as by purpose, owner, environment, or other criteria.

Each tag * consists of a key and value, both of which you define. A key is a general * category for more specific values. For example, if you have two versions of an * identity pool, one for testing and another for production, you might assign an * Environment tag key to both identity pools. The value of this key * might be Test for one identity pool and Production for * the other.

Tags are useful for cost tracking and access control. You can * activate your tags so that they appear on the Billing and Cost Management * console, where you can track the costs associated with your identity pools. In * an IAM policy, you can constrain permissions for identity pools based on * specific tags or tag values.

You can use this action up to 5 times per * second, per account. An identity pool can have as many as 50 tags.

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(&CognitoIdentityClient::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(&CognitoIdentityClient::TagResource, request, handler, context); } /** *

Unlinks a DeveloperUserIdentifier from an existing identity. * Unlinked developer users will be considered new identities next time they are * seen. If, for a given Cognito identity, you remove all federated identities as * well as the developer user identifier, the Cognito identity becomes * inaccessible.

You must use AWS Developer credentials to call this * API.

See Also:

AWS * API Reference

*/ virtual Model::UnlinkDeveloperIdentityOutcome UnlinkDeveloperIdentity(const Model::UnlinkDeveloperIdentityRequest& request) const; /** * A Callable wrapper for UnlinkDeveloperIdentity that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UnlinkDeveloperIdentityOutcomeCallable UnlinkDeveloperIdentityCallable(const UnlinkDeveloperIdentityRequestT& request) const { return SubmitCallable(&CognitoIdentityClient::UnlinkDeveloperIdentity, request); } /** * An Async wrapper for UnlinkDeveloperIdentity that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UnlinkDeveloperIdentityAsync(const UnlinkDeveloperIdentityRequestT& request, const UnlinkDeveloperIdentityResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CognitoIdentityClient::UnlinkDeveloperIdentity, request, handler, context); } /** *

Unlinks a federated identity from an existing account. Unlinked logins will * be considered new identities next time they are seen. Removing the last linked * login will make this identity inaccessible.

This is a public API. You do * not need any credentials to call this API.

See Also:

AWS * API Reference

*/ virtual Model::UnlinkIdentityOutcome UnlinkIdentity(const Model::UnlinkIdentityRequest& request) const; /** * A Callable wrapper for UnlinkIdentity that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UnlinkIdentityOutcomeCallable UnlinkIdentityCallable(const UnlinkIdentityRequestT& request) const { return SubmitCallable(&CognitoIdentityClient::UnlinkIdentity, request); } /** * An Async wrapper for UnlinkIdentity that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UnlinkIdentityAsync(const UnlinkIdentityRequestT& request, const UnlinkIdentityResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CognitoIdentityClient::UnlinkIdentity, request, handler, context); } /** *

Removes the specified tags from the specified Amazon Cognito identity pool. * You can use this action up to 5 times per second, per account

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(&CognitoIdentityClient::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(&CognitoIdentityClient::UntagResource, request, handler, context); } /** *

Updates an identity pool.

You must use AWS Developer credentials to * call this API.

See Also:

AWS * API Reference

*/ virtual Model::UpdateIdentityPoolOutcome UpdateIdentityPool(const Model::UpdateIdentityPoolRequest& request) const; /** * A Callable wrapper for UpdateIdentityPool that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateIdentityPoolOutcomeCallable UpdateIdentityPoolCallable(const UpdateIdentityPoolRequestT& request) const { return SubmitCallable(&CognitoIdentityClient::UpdateIdentityPool, request); } /** * An Async wrapper for UpdateIdentityPool that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateIdentityPoolAsync(const UpdateIdentityPoolRequestT& request, const UpdateIdentityPoolResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CognitoIdentityClient::UpdateIdentityPool, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const CognitoIdentityClientConfiguration& clientConfiguration); CognitoIdentityClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace CognitoIdentity } // namespace Aws