/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Http { class HttpClient; class HttpClientFactory; } // namespace Http namespace Utils { template< typename R, typename E> class Outcome; namespace Threading { class Executor; } // namespace Threading } // namespace Utils namespace Auth { class AWSCredentials; class AWSCredentialsProvider; } // namespace Auth namespace Client { class RetryStrategy; } // namespace Client namespace CognitoIdentity { namespace Model { class CreateIdentityPoolRequest; class DeleteIdentitiesRequest; class DeleteIdentityPoolRequest; class DescribeIdentityRequest; class DescribeIdentityPoolRequest; class GetCredentialsForIdentityRequest; class GetIdRequest; class GetIdentityPoolRolesRequest; class GetOpenIdTokenRequest; class GetOpenIdTokenForDeveloperIdentityRequest; class GetPrincipalTagAttributeMapRequest; class ListIdentitiesRequest; class ListIdentityPoolsRequest; class ListTagsForResourceRequest; class LookupDeveloperIdentityRequest; class MergeDeveloperIdentitiesRequest; class SetIdentityPoolRolesRequest; class SetPrincipalTagAttributeMapRequest; class TagResourceRequest; class UnlinkDeveloperIdentityRequest; class UnlinkIdentityRequest; class UntagResourceRequest; class UpdateIdentityPoolRequest; typedef Aws::Utils::Outcome CreateIdentityPoolOutcome; typedef Aws::Utils::Outcome DeleteIdentitiesOutcome; typedef Aws::Utils::Outcome DeleteIdentityPoolOutcome; typedef Aws::Utils::Outcome DescribeIdentityOutcome; typedef Aws::Utils::Outcome DescribeIdentityPoolOutcome; typedef Aws::Utils::Outcome GetCredentialsForIdentityOutcome; typedef Aws::Utils::Outcome GetIdOutcome; typedef Aws::Utils::Outcome GetIdentityPoolRolesOutcome; typedef Aws::Utils::Outcome GetOpenIdTokenOutcome; typedef Aws::Utils::Outcome GetOpenIdTokenForDeveloperIdentityOutcome; typedef Aws::Utils::Outcome GetPrincipalTagAttributeMapOutcome; typedef Aws::Utils::Outcome ListIdentitiesOutcome; typedef Aws::Utils::Outcome ListIdentityPoolsOutcome; typedef Aws::Utils::Outcome ListTagsForResourceOutcome; typedef Aws::Utils::Outcome LookupDeveloperIdentityOutcome; typedef Aws::Utils::Outcome MergeDeveloperIdentitiesOutcome; typedef Aws::Utils::Outcome SetIdentityPoolRolesOutcome; typedef Aws::Utils::Outcome SetPrincipalTagAttributeMapOutcome; typedef Aws::Utils::Outcome TagResourceOutcome; typedef Aws::Utils::Outcome UnlinkDeveloperIdentityOutcome; typedef Aws::Utils::Outcome UnlinkIdentityOutcome; typedef Aws::Utils::Outcome UntagResourceOutcome; typedef Aws::Utils::Outcome UpdateIdentityPoolOutcome; typedef std::future CreateIdentityPoolOutcomeCallable; typedef std::future DeleteIdentitiesOutcomeCallable; typedef std::future DeleteIdentityPoolOutcomeCallable; typedef std::future DescribeIdentityOutcomeCallable; typedef std::future DescribeIdentityPoolOutcomeCallable; typedef std::future GetCredentialsForIdentityOutcomeCallable; typedef std::future GetIdOutcomeCallable; typedef std::future GetIdentityPoolRolesOutcomeCallable; typedef std::future GetOpenIdTokenOutcomeCallable; typedef std::future GetOpenIdTokenForDeveloperIdentityOutcomeCallable; typedef std::future GetPrincipalTagAttributeMapOutcomeCallable; typedef std::future ListIdentitiesOutcomeCallable; typedef std::future ListIdentityPoolsOutcomeCallable; typedef std::future ListTagsForResourceOutcomeCallable; typedef std::future LookupDeveloperIdentityOutcomeCallable; typedef std::future MergeDeveloperIdentitiesOutcomeCallable; typedef std::future SetIdentityPoolRolesOutcomeCallable; typedef std::future SetPrincipalTagAttributeMapOutcomeCallable; typedef std::future TagResourceOutcomeCallable; typedef std::future UnlinkDeveloperIdentityOutcomeCallable; typedef std::future UnlinkIdentityOutcomeCallable; typedef std::future UntagResourceOutcomeCallable; typedef std::future UpdateIdentityPoolOutcomeCallable; } // namespace Model class CognitoIdentityClient; typedef std::function&) > CreateIdentityPoolResponseReceivedHandler; typedef std::function&) > DeleteIdentitiesResponseReceivedHandler; typedef std::function&) > DeleteIdentityPoolResponseReceivedHandler; typedef std::function&) > DescribeIdentityResponseReceivedHandler; typedef std::function&) > DescribeIdentityPoolResponseReceivedHandler; typedef std::function&) > GetCredentialsForIdentityResponseReceivedHandler; typedef std::function&) > GetIdResponseReceivedHandler; typedef std::function&) > GetIdentityPoolRolesResponseReceivedHandler; typedef std::function&) > GetOpenIdTokenResponseReceivedHandler; typedef std::function&) > GetOpenIdTokenForDeveloperIdentityResponseReceivedHandler; typedef std::function&) > GetPrincipalTagAttributeMapResponseReceivedHandler; typedef std::function&) > ListIdentitiesResponseReceivedHandler; typedef std::function&) > ListIdentityPoolsResponseReceivedHandler; typedef std::function&) > ListTagsForResourceResponseReceivedHandler; typedef std::function&) > LookupDeveloperIdentityResponseReceivedHandler; typedef std::function&) > MergeDeveloperIdentitiesResponseReceivedHandler; typedef std::function&) > SetIdentityPoolRolesResponseReceivedHandler; typedef std::function&) > SetPrincipalTagAttributeMapResponseReceivedHandler; typedef std::function&) > TagResourceResponseReceivedHandler; typedef std::function&) > UnlinkDeveloperIdentityResponseReceivedHandler; typedef std::function&) > UnlinkIdentityResponseReceivedHandler; typedef std::function&) > UntagResourceResponseReceivedHandler; typedef std::function&) > UpdateIdentityPoolResponseReceivedHandler; /** * 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: typedef Aws::Client::AWSJsonClient BASECLASS; /** * 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 = Aws::Client::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 = Aws::Client::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 = Aws::Client::ClientConfiguration()); 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; /** *

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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateIdentityPoolOutcomeCallable CreateIdentityPoolCallable(const Model::CreateIdentityPoolRequest& request) const; /** *

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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateIdentityPoolAsync(const Model::CreateIdentityPoolRequest& request, const CreateIdentityPoolResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteIdentitiesOutcomeCallable DeleteIdentitiesCallable(const Model::DeleteIdentitiesRequest& request) const; /** *

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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteIdentitiesAsync(const Model::DeleteIdentitiesRequest& request, const DeleteIdentitiesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteIdentityPoolOutcomeCallable DeleteIdentityPoolCallable(const Model::DeleteIdentityPoolRequest& request) const; /** *

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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteIdentityPoolAsync(const Model::DeleteIdentityPoolRequest& request, const DeleteIdentityPoolResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeIdentityOutcomeCallable DescribeIdentityCallable(const Model::DescribeIdentityRequest& request) const; /** *

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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeIdentityAsync(const Model::DescribeIdentityRequest& request, const DescribeIdentityResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeIdentityPoolOutcomeCallable DescribeIdentityPoolCallable(const Model::DescribeIdentityPoolRequest& request) const; /** *

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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeIdentityPoolAsync(const Model::DescribeIdentityPoolRequest& request, const DescribeIdentityPoolResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetCredentialsForIdentityOutcomeCallable GetCredentialsForIdentityCallable(const Model::GetCredentialsForIdentityRequest& request) const; /** *

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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetCredentialsForIdentityAsync(const Model::GetCredentialsForIdentityRequest& request, const GetCredentialsForIdentityResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetIdOutcomeCallable GetIdCallable(const Model::GetIdRequest& request) const; /** *

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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetIdAsync(const Model::GetIdRequest& request, const GetIdResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

Gets the roles for an identity pool.

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

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetIdentityPoolRolesOutcomeCallable GetIdentityPoolRolesCallable(const Model::GetIdentityPoolRolesRequest& request) const; /** *

Gets the roles for an identity pool.

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

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetIdentityPoolRolesAsync(const Model::GetIdentityPoolRolesRequest& request, const GetIdentityPoolRolesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetOpenIdTokenOutcomeCallable GetOpenIdTokenCallable(const Model::GetOpenIdTokenRequest& request) const; /** *

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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetOpenIdTokenAsync(const Model::GetOpenIdTokenRequest& request, const GetOpenIdTokenResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetOpenIdTokenForDeveloperIdentityOutcomeCallable GetOpenIdTokenForDeveloperIdentityCallable(const Model::GetOpenIdTokenForDeveloperIdentityRequest& request) const; /** *

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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetOpenIdTokenForDeveloperIdentityAsync(const Model::GetOpenIdTokenForDeveloperIdentityRequest& request, const GetOpenIdTokenForDeveloperIdentityResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

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

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetPrincipalTagAttributeMapOutcomeCallable GetPrincipalTagAttributeMapCallable(const Model::GetPrincipalTagAttributeMapRequest& request) const; /** *

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

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetPrincipalTagAttributeMapAsync(const Model::GetPrincipalTagAttributeMapRequest& request, const GetPrincipalTagAttributeMapResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

Lists the identities in an identity pool.

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

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListIdentitiesOutcomeCallable ListIdentitiesCallable(const Model::ListIdentitiesRequest& request) const; /** *

Lists the identities in an identity pool.

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

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListIdentitiesAsync(const Model::ListIdentitiesRequest& request, const ListIdentitiesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListIdentityPoolsOutcomeCallable ListIdentityPoolsCallable(const Model::ListIdentityPoolsRequest& request) const; /** *

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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListIdentityPoolsAsync(const Model::ListIdentityPoolsRequest& request, const ListIdentityPoolsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const; /** *

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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::LookupDeveloperIdentityOutcomeCallable LookupDeveloperIdentityCallable(const Model::LookupDeveloperIdentityRequest& request) const; /** *

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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void LookupDeveloperIdentityAsync(const Model::LookupDeveloperIdentityRequest& request, const LookupDeveloperIdentityResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::MergeDeveloperIdentitiesOutcomeCallable MergeDeveloperIdentitiesCallable(const Model::MergeDeveloperIdentitiesRequest& request) const; /** *

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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void MergeDeveloperIdentitiesAsync(const Model::MergeDeveloperIdentitiesRequest& request, const MergeDeveloperIdentitiesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SetIdentityPoolRolesOutcomeCallable SetIdentityPoolRolesCallable(const Model::SetIdentityPoolRolesRequest& request) const; /** *

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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SetIdentityPoolRolesAsync(const Model::SetIdentityPoolRolesRequest& request, const SetIdentityPoolRolesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

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

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SetPrincipalTagAttributeMapOutcomeCallable SetPrincipalTagAttributeMapCallable(const Model::SetPrincipalTagAttributeMapRequest& request) const; /** *

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

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SetPrincipalTagAttributeMapAsync(const Model::SetPrincipalTagAttributeMapRequest& request, const SetPrincipalTagAttributeMapResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const; /** *

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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UnlinkDeveloperIdentityOutcomeCallable UnlinkDeveloperIdentityCallable(const Model::UnlinkDeveloperIdentityRequest& request) const; /** *

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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UnlinkDeveloperIdentityAsync(const Model::UnlinkDeveloperIdentityRequest& request, const UnlinkDeveloperIdentityResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UnlinkIdentityOutcomeCallable UnlinkIdentityCallable(const Model::UnlinkIdentityRequest& request) const; /** *

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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UnlinkIdentityAsync(const Model::UnlinkIdentityRequest& request, const UnlinkIdentityResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const; /** *

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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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

Updates an identity pool.

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

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateIdentityPoolOutcomeCallable UpdateIdentityPoolCallable(const Model::UpdateIdentityPoolRequest& request) const; /** *

Updates an identity pool.

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

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateIdentityPoolAsync(const Model::UpdateIdentityPoolRequest& request, const UpdateIdentityPoolResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void CreateIdentityPoolAsyncHelper(const Model::CreateIdentityPoolRequest& request, const CreateIdentityPoolResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteIdentitiesAsyncHelper(const Model::DeleteIdentitiesRequest& request, const DeleteIdentitiesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteIdentityPoolAsyncHelper(const Model::DeleteIdentityPoolRequest& request, const DeleteIdentityPoolResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeIdentityAsyncHelper(const Model::DescribeIdentityRequest& request, const DescribeIdentityResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeIdentityPoolAsyncHelper(const Model::DescribeIdentityPoolRequest& request, const DescribeIdentityPoolResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetCredentialsForIdentityAsyncHelper(const Model::GetCredentialsForIdentityRequest& request, const GetCredentialsForIdentityResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetIdAsyncHelper(const Model::GetIdRequest& request, const GetIdResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetIdentityPoolRolesAsyncHelper(const Model::GetIdentityPoolRolesRequest& request, const GetIdentityPoolRolesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetOpenIdTokenAsyncHelper(const Model::GetOpenIdTokenRequest& request, const GetOpenIdTokenResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetOpenIdTokenForDeveloperIdentityAsyncHelper(const Model::GetOpenIdTokenForDeveloperIdentityRequest& request, const GetOpenIdTokenForDeveloperIdentityResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetPrincipalTagAttributeMapAsyncHelper(const Model::GetPrincipalTagAttributeMapRequest& request, const GetPrincipalTagAttributeMapResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListIdentitiesAsyncHelper(const Model::ListIdentitiesRequest& request, const ListIdentitiesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListIdentityPoolsAsyncHelper(const Model::ListIdentityPoolsRequest& request, const ListIdentityPoolsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void LookupDeveloperIdentityAsyncHelper(const Model::LookupDeveloperIdentityRequest& request, const LookupDeveloperIdentityResponseReceivedHandler& handler, const std::shared_ptr& context) const; void MergeDeveloperIdentitiesAsyncHelper(const Model::MergeDeveloperIdentitiesRequest& request, const MergeDeveloperIdentitiesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SetIdentityPoolRolesAsyncHelper(const Model::SetIdentityPoolRolesRequest& request, const SetIdentityPoolRolesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SetPrincipalTagAttributeMapAsyncHelper(const Model::SetPrincipalTagAttributeMapRequest& request, const SetPrincipalTagAttributeMapResponseReceivedHandler& handler, const std::shared_ptr& context) const; void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UnlinkDeveloperIdentityAsyncHelper(const Model::UnlinkDeveloperIdentityRequest& request, const UnlinkDeveloperIdentityResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UnlinkIdentityAsyncHelper(const Model::UnlinkIdentityRequest& request, const UnlinkIdentityResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateIdentityPoolAsyncHelper(const Model::UpdateIdentityPoolRequest& request, const UpdateIdentityPoolResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace CognitoIdentity } // namespace Aws