Current section
Files
Jump to
Current section
Files
src/aws_cognito_identity.erl
%% WARNING: DO NOT EDIT, AUTO-GENERATED CODE!
%% See https://github.com/aws-beam/aws-codegen for more details.
%% @doc 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 Security Token Service (STS) to access temporary,
%% limited-privilege Amazon Web Services credentials.
%%
%% For a description of the authentication flow from the Amazon Cognito
%% Developer Guide
%% see Authentication
%% Flow:
%% https://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flow.html.
%%
%% For more information see Amazon Cognito Federated
%% Identities:
%% https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html.
-module(aws_cognito_identity).
-export([create_identity_pool/2,
create_identity_pool/3,
delete_identities/2,
delete_identities/3,
delete_identity_pool/2,
delete_identity_pool/3,
describe_identity/2,
describe_identity/3,
describe_identity_pool/2,
describe_identity_pool/3,
get_credentials_for_identity/2,
get_credentials_for_identity/3,
get_id/2,
get_id/3,
get_identity_pool_roles/2,
get_identity_pool_roles/3,
get_open_id_token/2,
get_open_id_token/3,
get_open_id_token_for_developer_identity/2,
get_open_id_token_for_developer_identity/3,
get_principal_tag_attribute_map/2,
get_principal_tag_attribute_map/3,
list_identities/2,
list_identities/3,
list_identity_pools/2,
list_identity_pools/3,
list_tags_for_resource/2,
list_tags_for_resource/3,
lookup_developer_identity/2,
lookup_developer_identity/3,
merge_developer_identities/2,
merge_developer_identities/3,
set_identity_pool_roles/2,
set_identity_pool_roles/3,
set_principal_tag_attribute_map/2,
set_principal_tag_attribute_map/3,
tag_resource/2,
tag_resource/3,
unlink_developer_identity/2,
unlink_developer_identity/3,
unlink_identity/2,
unlink_identity/3,
untag_resource/2,
untag_resource/3,
update_identity_pool/2,
update_identity_pool/3]).
-include_lib("hackney/include/hackney_lib.hrl").
%% Example:
%% get_credentials_for_identity_response() :: #{
%% <<"Credentials">> => credentials(),
%% <<"IdentityId">> => string()
%% }
-type get_credentials_for_identity_response() :: #{binary() => any()}.
%% Example:
%% unlink_identity_input() :: #{
%% <<"IdentityId">> := string(),
%% <<"Logins">> := map(),
%% <<"LoginsToRemove">> := list(string())
%% }
-type unlink_identity_input() :: #{binary() => any()}.
%% Example:
%% get_open_id_token_for_developer_identity_response() :: #{
%% <<"IdentityId">> => string(),
%% <<"Token">> => string()
%% }
-type get_open_id_token_for_developer_identity_response() :: #{binary() => any()}.
%% Example:
%% merge_developer_identities_response() :: #{
%% <<"IdentityId">> => string()
%% }
-type merge_developer_identities_response() :: #{binary() => any()}.
%% Example:
%% developer_user_already_registered_exception() :: #{
%% <<"message">> => string()
%% }
-type developer_user_already_registered_exception() :: #{binary() => any()}.
%% Example:
%% describe_identity_pool_input() :: #{
%% <<"IdentityPoolId">> := string()
%% }
-type describe_identity_pool_input() :: #{binary() => any()}.
%% Example:
%% identity_pool() :: #{
%% <<"AllowClassicFlow">> => boolean(),
%% <<"AllowUnauthenticatedIdentities">> => boolean(),
%% <<"CognitoIdentityProviders">> => list(cognito_identity_provider()),
%% <<"DeveloperProviderName">> => string(),
%% <<"IdentityPoolId">> => string(),
%% <<"IdentityPoolName">> => string(),
%% <<"IdentityPoolTags">> => map(),
%% <<"OpenIdConnectProviderARNs">> => list(string()),
%% <<"SamlProviderARNs">> => list(string()),
%% <<"SupportedLoginProviders">> => map()
%% }
-type identity_pool() :: #{binary() => any()}.
%% Example:
%% untag_resource_response() :: #{
%% }
-type untag_resource_response() :: #{binary() => any()}.
%% Example:
%% get_identity_pool_roles_response() :: #{
%% <<"IdentityPoolId">> => string(),
%% <<"RoleMappings">> => map(),
%% <<"Roles">> => map()
%% }
-type get_identity_pool_roles_response() :: #{binary() => any()}.
%% Example:
%% unlink_developer_identity_input() :: #{
%% <<"DeveloperProviderName">> := string(),
%% <<"DeveloperUserIdentifier">> := string(),
%% <<"IdentityId">> := string(),
%% <<"IdentityPoolId">> := string()
%% }
-type unlink_developer_identity_input() :: #{binary() => any()}.
%% Example:
%% list_identity_pools_input() :: #{
%% <<"MaxResults">> := integer(),
%% <<"NextToken">> => string()
%% }
-type list_identity_pools_input() :: #{binary() => any()}.
%% Example:
%% delete_identities_response() :: #{
%% <<"UnprocessedIdentityIds">> => list(unprocessed_identity_id())
%% }
-type delete_identities_response() :: #{binary() => any()}.
%% Example:
%% get_identity_pool_roles_input() :: #{
%% <<"IdentityPoolId">> := string()
%% }
-type get_identity_pool_roles_input() :: #{binary() => any()}.
%% Example:
%% credentials() :: #{
%% <<"AccessKeyId">> => string(),
%% <<"Expiration">> => non_neg_integer(),
%% <<"SecretKey">> => string(),
%% <<"SessionToken">> => string()
%% }
-type credentials() :: #{binary() => any()}.
%% Example:
%% lookup_developer_identity_response() :: #{
%% <<"DeveloperUserIdentifierList">> => list(string()),
%% <<"IdentityId">> => string(),
%% <<"NextToken">> => string()
%% }
-type lookup_developer_identity_response() :: #{binary() => any()}.
%% Example:
%% unprocessed_identity_id() :: #{
%% <<"ErrorCode">> => list(any()),
%% <<"IdentityId">> => string()
%% }
-type unprocessed_identity_id() :: #{binary() => any()}.
%% Example:
%% too_many_requests_exception() :: #{
%% <<"message">> => string()
%% }
-type too_many_requests_exception() :: #{binary() => any()}.
%% Example:
%% set_identity_pool_roles_input() :: #{
%% <<"IdentityPoolId">> := string(),
%% <<"RoleMappings">> => map(),
%% <<"Roles">> := map()
%% }
-type set_identity_pool_roles_input() :: #{binary() => any()}.
%% Example:
%% identity_description() :: #{
%% <<"CreationDate">> => non_neg_integer(),
%% <<"IdentityId">> => string(),
%% <<"LastModifiedDate">> => non_neg_integer(),
%% <<"Logins">> => list(string())
%% }
-type identity_description() :: #{binary() => any()}.
%% Example:
%% list_identity_pools_response() :: #{
%% <<"IdentityPools">> => list(identity_pool_short_description()),
%% <<"NextToken">> => string()
%% }
-type list_identity_pools_response() :: #{binary() => any()}.
%% Example:
%% get_credentials_for_identity_input() :: #{
%% <<"CustomRoleArn">> => string(),
%% <<"IdentityId">> := string(),
%% <<"Logins">> => map()
%% }
-type get_credentials_for_identity_input() :: #{binary() => any()}.
%% Example:
%% invalid_identity_pool_configuration_exception() :: #{
%% <<"message">> => string()
%% }
-type invalid_identity_pool_configuration_exception() :: #{binary() => any()}.
%% Example:
%% set_principal_tag_attribute_map_input() :: #{
%% <<"IdentityPoolId">> := string(),
%% <<"IdentityProviderName">> := string(),
%% <<"PrincipalTags">> => map(),
%% <<"UseDefaults">> => boolean()
%% }
-type set_principal_tag_attribute_map_input() :: #{binary() => any()}.
%% Example:
%% rules_configuration_type() :: #{
%% <<"Rules">> => list(mapping_rule())
%% }
-type rules_configuration_type() :: #{binary() => any()}.
%% Example:
%% resource_not_found_exception() :: #{
%% <<"message">> => string()
%% }
-type resource_not_found_exception() :: #{binary() => any()}.
%% Example:
%% mapping_rule() :: #{
%% <<"Claim">> => string(),
%% <<"MatchType">> => list(any()),
%% <<"RoleARN">> => string(),
%% <<"Value">> => string()
%% }
-type mapping_rule() :: #{binary() => any()}.
%% Example:
%% delete_identities_input() :: #{
%% <<"IdentityIdsToDelete">> := list(string())
%% }
-type delete_identities_input() :: #{binary() => any()}.
%% Example:
%% describe_identity_input() :: #{
%% <<"IdentityId">> := string()
%% }
-type describe_identity_input() :: #{binary() => any()}.
%% Example:
%% list_identities_input() :: #{
%% <<"HideDisabled">> => boolean(),
%% <<"IdentityPoolId">> := string(),
%% <<"MaxResults">> := integer(),
%% <<"NextToken">> => string()
%% }
-type list_identities_input() :: #{binary() => any()}.
%% Example:
%% get_open_id_token_response() :: #{
%% <<"IdentityId">> => string(),
%% <<"Token">> => string()
%% }
-type get_open_id_token_response() :: #{binary() => any()}.
%% Example:
%% identity_pool_short_description() :: #{
%% <<"IdentityPoolId">> => string(),
%% <<"IdentityPoolName">> => string()
%% }
-type identity_pool_short_description() :: #{binary() => any()}.
%% Example:
%% role_mapping() :: #{
%% <<"AmbiguousRoleResolution">> => list(any()),
%% <<"RulesConfiguration">> => rules_configuration_type(),
%% <<"Type">> => list(any())
%% }
-type role_mapping() :: #{binary() => any()}.
%% Example:
%% get_principal_tag_attribute_map_input() :: #{
%% <<"IdentityPoolId">> := string(),
%% <<"IdentityProviderName">> := string()
%% }
-type get_principal_tag_attribute_map_input() :: #{binary() => any()}.
%% Example:
%% merge_developer_identities_input() :: #{
%% <<"DestinationUserIdentifier">> := string(),
%% <<"DeveloperProviderName">> := string(),
%% <<"IdentityPoolId">> := string(),
%% <<"SourceUserIdentifier">> := string()
%% }
-type merge_developer_identities_input() :: #{binary() => any()}.
%% Example:
%% list_tags_for_resource_response() :: #{
%% <<"Tags">> => map()
%% }
-type list_tags_for_resource_response() :: #{binary() => any()}.
%% Example:
%% set_principal_tag_attribute_map_response() :: #{
%% <<"IdentityPoolId">> => string(),
%% <<"IdentityProviderName">> => string(),
%% <<"PrincipalTags">> => map(),
%% <<"UseDefaults">> => boolean()
%% }
-type set_principal_tag_attribute_map_response() :: #{binary() => any()}.
%% Example:
%% tag_resource_input() :: #{
%% <<"ResourceArn">> := string(),
%% <<"Tags">> := map()
%% }
-type tag_resource_input() :: #{binary() => any()}.
%% Example:
%% cognito_identity_provider() :: #{
%% <<"ClientId">> => string(),
%% <<"ProviderName">> => string(),
%% <<"ServerSideTokenCheck">> => boolean()
%% }
-type cognito_identity_provider() :: #{binary() => any()}.
%% Example:
%% create_identity_pool_input() :: #{
%% <<"AllowClassicFlow">> => boolean(),
%% <<"AllowUnauthenticatedIdentities">> := boolean(),
%% <<"CognitoIdentityProviders">> => list(cognito_identity_provider()),
%% <<"DeveloperProviderName">> => string(),
%% <<"IdentityPoolName">> := string(),
%% <<"IdentityPoolTags">> => map(),
%% <<"OpenIdConnectProviderARNs">> => list(string()),
%% <<"SamlProviderARNs">> => list(string()),
%% <<"SupportedLoginProviders">> => map()
%% }
-type create_identity_pool_input() :: #{binary() => any()}.
%% Example:
%% not_authorized_exception() :: #{
%% <<"message">> => string()
%% }
-type not_authorized_exception() :: #{binary() => any()}.
%% Example:
%% invalid_parameter_exception() :: #{
%% <<"message">> => string()
%% }
-type invalid_parameter_exception() :: #{binary() => any()}.
%% Example:
%% untag_resource_input() :: #{
%% <<"ResourceArn">> := string(),
%% <<"TagKeys">> := list(string())
%% }
-type untag_resource_input() :: #{binary() => any()}.
%% Example:
%% tag_resource_response() :: #{
%% }
-type tag_resource_response() :: #{binary() => any()}.
%% Example:
%% lookup_developer_identity_input() :: #{
%% <<"DeveloperUserIdentifier">> => string(),
%% <<"IdentityId">> => string(),
%% <<"IdentityPoolId">> := string(),
%% <<"MaxResults">> => integer(),
%% <<"NextToken">> => string()
%% }
-type lookup_developer_identity_input() :: #{binary() => any()}.
%% Example:
%% get_id_input() :: #{
%% <<"AccountId">> => string(),
%% <<"IdentityPoolId">> := string(),
%% <<"Logins">> => map()
%% }
-type get_id_input() :: #{binary() => any()}.
%% Example:
%% concurrent_modification_exception() :: #{
%% <<"message">> => string()
%% }
-type concurrent_modification_exception() :: #{binary() => any()}.
%% Example:
%% get_open_id_token_for_developer_identity_input() :: #{
%% <<"IdentityId">> => string(),
%% <<"IdentityPoolId">> := string(),
%% <<"Logins">> := map(),
%% <<"PrincipalTags">> => map(),
%% <<"TokenDuration">> => float()
%% }
-type get_open_id_token_for_developer_identity_input() :: #{binary() => any()}.
%% Example:
%% list_tags_for_resource_input() :: #{
%% <<"ResourceArn">> := string()
%% }
-type list_tags_for_resource_input() :: #{binary() => any()}.
%% Example:
%% list_identities_response() :: #{
%% <<"Identities">> => list(identity_description()),
%% <<"IdentityPoolId">> => string(),
%% <<"NextToken">> => string()
%% }
-type list_identities_response() :: #{binary() => any()}.
%% Example:
%% limit_exceeded_exception() :: #{
%% <<"message">> => string()
%% }
-type limit_exceeded_exception() :: #{binary() => any()}.
%% Example:
%% delete_identity_pool_input() :: #{
%% <<"IdentityPoolId">> := string()
%% }
-type delete_identity_pool_input() :: #{binary() => any()}.
%% Example:
%% external_service_exception() :: #{
%% <<"message">> => string()
%% }
-type external_service_exception() :: #{binary() => any()}.
%% Example:
%% get_open_id_token_input() :: #{
%% <<"IdentityId">> := string(),
%% <<"Logins">> => map()
%% }
-type get_open_id_token_input() :: #{binary() => any()}.
%% Example:
%% get_principal_tag_attribute_map_response() :: #{
%% <<"IdentityPoolId">> => string(),
%% <<"IdentityProviderName">> => string(),
%% <<"PrincipalTags">> => map(),
%% <<"UseDefaults">> => boolean()
%% }
-type get_principal_tag_attribute_map_response() :: #{binary() => any()}.
%% Example:
%% resource_conflict_exception() :: #{
%% <<"message">> => string()
%% }
-type resource_conflict_exception() :: #{binary() => any()}.
%% Example:
%% get_id_response() :: #{
%% <<"IdentityId">> => string()
%% }
-type get_id_response() :: #{binary() => any()}.
%% Example:
%% internal_error_exception() :: #{
%% <<"message">> => string()
%% }
-type internal_error_exception() :: #{binary() => any()}.
-type create_identity_pool_errors() ::
internal_error_exception() |
resource_conflict_exception() |
limit_exceeded_exception() |
invalid_parameter_exception() |
not_authorized_exception() |
too_many_requests_exception().
-type delete_identities_errors() ::
internal_error_exception() |
invalid_parameter_exception() |
too_many_requests_exception().
-type delete_identity_pool_errors() ::
internal_error_exception() |
invalid_parameter_exception() |
not_authorized_exception() |
resource_not_found_exception() |
too_many_requests_exception().
-type describe_identity_errors() ::
internal_error_exception() |
invalid_parameter_exception() |
not_authorized_exception() |
resource_not_found_exception() |
too_many_requests_exception().
-type describe_identity_pool_errors() ::
internal_error_exception() |
invalid_parameter_exception() |
not_authorized_exception() |
resource_not_found_exception() |
too_many_requests_exception().
-type get_credentials_for_identity_errors() ::
internal_error_exception() |
resource_conflict_exception() |
external_service_exception() |
invalid_parameter_exception() |
not_authorized_exception() |
resource_not_found_exception() |
invalid_identity_pool_configuration_exception() |
too_many_requests_exception().
-type get_id_errors() ::
internal_error_exception() |
resource_conflict_exception() |
external_service_exception() |
limit_exceeded_exception() |
invalid_parameter_exception() |
not_authorized_exception() |
resource_not_found_exception() |
too_many_requests_exception().
-type get_identity_pool_roles_errors() ::
internal_error_exception() |
resource_conflict_exception() |
invalid_parameter_exception() |
not_authorized_exception() |
resource_not_found_exception() |
too_many_requests_exception().
-type get_open_id_token_errors() ::
internal_error_exception() |
resource_conflict_exception() |
external_service_exception() |
invalid_parameter_exception() |
not_authorized_exception() |
resource_not_found_exception() |
too_many_requests_exception().
-type get_open_id_token_for_developer_identity_errors() ::
internal_error_exception() |
resource_conflict_exception() |
invalid_parameter_exception() |
not_authorized_exception() |
resource_not_found_exception() |
too_many_requests_exception() |
developer_user_already_registered_exception().
-type get_principal_tag_attribute_map_errors() ::
internal_error_exception() |
invalid_parameter_exception() |
not_authorized_exception() |
resource_not_found_exception() |
too_many_requests_exception().
-type list_identities_errors() ::
internal_error_exception() |
invalid_parameter_exception() |
not_authorized_exception() |
resource_not_found_exception() |
too_many_requests_exception().
-type list_identity_pools_errors() ::
internal_error_exception() |
invalid_parameter_exception() |
not_authorized_exception() |
resource_not_found_exception() |
too_many_requests_exception().
-type list_tags_for_resource_errors() ::
internal_error_exception() |
invalid_parameter_exception() |
not_authorized_exception() |
resource_not_found_exception() |
too_many_requests_exception().
-type lookup_developer_identity_errors() ::
internal_error_exception() |
resource_conflict_exception() |
invalid_parameter_exception() |
not_authorized_exception() |
resource_not_found_exception() |
too_many_requests_exception().
-type merge_developer_identities_errors() ::
internal_error_exception() |
resource_conflict_exception() |
invalid_parameter_exception() |
not_authorized_exception() |
resource_not_found_exception() |
too_many_requests_exception().
-type set_identity_pool_roles_errors() ::
internal_error_exception() |
resource_conflict_exception() |
concurrent_modification_exception() |
invalid_parameter_exception() |
not_authorized_exception() |
resource_not_found_exception() |
too_many_requests_exception().
-type set_principal_tag_attribute_map_errors() ::
internal_error_exception() |
invalid_parameter_exception() |
not_authorized_exception() |
resource_not_found_exception() |
too_many_requests_exception().
-type tag_resource_errors() ::
internal_error_exception() |
invalid_parameter_exception() |
not_authorized_exception() |
resource_not_found_exception() |
too_many_requests_exception().
-type unlink_developer_identity_errors() ::
internal_error_exception() |
resource_conflict_exception() |
invalid_parameter_exception() |
not_authorized_exception() |
resource_not_found_exception() |
too_many_requests_exception().
-type unlink_identity_errors() ::
internal_error_exception() |
resource_conflict_exception() |
external_service_exception() |
invalid_parameter_exception() |
not_authorized_exception() |
resource_not_found_exception() |
too_many_requests_exception().
-type untag_resource_errors() ::
internal_error_exception() |
invalid_parameter_exception() |
not_authorized_exception() |
resource_not_found_exception() |
too_many_requests_exception().
-type update_identity_pool_errors() ::
internal_error_exception() |
resource_conflict_exception() |
limit_exceeded_exception() |
concurrent_modification_exception() |
invalid_parameter_exception() |
not_authorized_exception() |
resource_not_found_exception() |
too_many_requests_exception().
%%====================================================================
%% API
%%====================================================================
%% @doc Creates a new identity pool.
%%
%% The identity pool is a store of user identity
%% information that is specific to your Amazon Web Services account. The keys
%% for
%% `SupportedLoginProviders' are as follows:
%%
%% Facebook: `graph.facebook.com'
%%
%% Google: `accounts.google.com'
%%
%% Sign in With Apple: `appleid.apple.com'
%%
%% Amazon: `www.amazon.com'
%%
%% Twitter: `api.twitter.com'
%%
%% Digits: `www.digits.com'
%%
%% If you don't provide a value for a parameter, Amazon Cognito sets it
%% to its default value.
%%
%% You must use Amazon Web Services developer credentials to call this
%% operation.
-spec create_identity_pool(aws_client:aws_client(), create_identity_pool_input()) ->
{ok, identity_pool(), tuple()} |
{error, any()} |
{error, create_identity_pool_errors(), tuple()}.
create_identity_pool(Client, Input)
when is_map(Client), is_map(Input) ->
create_identity_pool(Client, Input, []).
-spec create_identity_pool(aws_client:aws_client(), create_identity_pool_input(), proplists:proplist()) ->
{ok, identity_pool(), tuple()} |
{error, any()} |
{error, create_identity_pool_errors(), tuple()}.
create_identity_pool(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"CreateIdentityPool">>, Input, Options).
%% @doc Deletes identities from an identity pool.
%%
%% You can specify a list of 1-60 identities
%% that you want to delete.
%%
%% You must use Amazon Web Services developer credentials to call this
%% operation.
-spec delete_identities(aws_client:aws_client(), delete_identities_input()) ->
{ok, delete_identities_response(), tuple()} |
{error, any()} |
{error, delete_identities_errors(), tuple()}.
delete_identities(Client, Input)
when is_map(Client), is_map(Input) ->
delete_identities(Client, Input, []).
-spec delete_identities(aws_client:aws_client(), delete_identities_input(), proplists:proplist()) ->
{ok, delete_identities_response(), tuple()} |
{error, any()} |
{error, delete_identities_errors(), tuple()}.
delete_identities(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteIdentities">>, Input, Options).
%% @doc Deletes an identity pool.
%%
%% Once a pool is deleted, users will not be able to
%% authenticate with the pool.
%%
%% You must use Amazon Web Services developer credentials to call this
%% operation.
-spec delete_identity_pool(aws_client:aws_client(), delete_identity_pool_input()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, delete_identity_pool_errors(), tuple()}.
delete_identity_pool(Client, Input)
when is_map(Client), is_map(Input) ->
delete_identity_pool(Client, Input, []).
-spec delete_identity_pool(aws_client:aws_client(), delete_identity_pool_input(), proplists:proplist()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, delete_identity_pool_errors(), tuple()}.
delete_identity_pool(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DeleteIdentityPool">>, Input, Options).
%% @doc Returns metadata related to the given identity, including when the
%% identity was
%% created and any associated linked logins.
%%
%% You must use Amazon Web Services developer credentials to call this
%% operation.
-spec describe_identity(aws_client:aws_client(), describe_identity_input()) ->
{ok, identity_description(), tuple()} |
{error, any()} |
{error, describe_identity_errors(), tuple()}.
describe_identity(Client, Input)
when is_map(Client), is_map(Input) ->
describe_identity(Client, Input, []).
-spec describe_identity(aws_client:aws_client(), describe_identity_input(), proplists:proplist()) ->
{ok, identity_description(), tuple()} |
{error, any()} |
{error, describe_identity_errors(), tuple()}.
describe_identity(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeIdentity">>, Input, Options).
%% @doc Gets details about a particular identity pool, including the pool
%% name, ID
%% description, creation date, and current number of users.
%%
%% You must use Amazon Web Services developer credentials to call this
%% operation.
-spec describe_identity_pool(aws_client:aws_client(), describe_identity_pool_input()) ->
{ok, identity_pool(), tuple()} |
{error, any()} |
{error, describe_identity_pool_errors(), tuple()}.
describe_identity_pool(Client, Input)
when is_map(Client), is_map(Input) ->
describe_identity_pool(Client, Input, []).
-spec describe_identity_pool(aws_client:aws_client(), describe_identity_pool_input(), proplists:proplist()) ->
{ok, identity_pool(), tuple()} |
{error, any()} |
{error, describe_identity_pool_errors(), tuple()}.
describe_identity_pool(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"DescribeIdentityPool">>, Input, Options).
%% @doc 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
%% 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.
-spec get_credentials_for_identity(aws_client:aws_client(), get_credentials_for_identity_input()) ->
{ok, get_credentials_for_identity_response(), tuple()} |
{error, any()} |
{error, get_credentials_for_identity_errors(), tuple()}.
get_credentials_for_identity(Client, Input)
when is_map(Client), is_map(Input) ->
get_credentials_for_identity(Client, Input, []).
-spec get_credentials_for_identity(aws_client:aws_client(), get_credentials_for_identity_input(), proplists:proplist()) ->
{ok, get_credentials_for_identity_response(), tuple()} |
{error, any()} |
{error, get_credentials_for_identity_errors(), tuple()}.
get_credentials_for_identity(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetCredentialsForIdentity">>, Input, Options).
%% @doc Generates (or retrieves) IdentityID.
%%
%% Supplying multiple logins will create an
%% implicit linked account.
%%
%% This is a public API. You do not need any credentials to call this API.
-spec get_id(aws_client:aws_client(), get_id_input()) ->
{ok, get_id_response(), tuple()} |
{error, any()} |
{error, get_id_errors(), tuple()}.
get_id(Client, Input)
when is_map(Client), is_map(Input) ->
get_id(Client, Input, []).
-spec get_id(aws_client:aws_client(), get_id_input(), proplists:proplist()) ->
{ok, get_id_response(), tuple()} |
{error, any()} |
{error, get_id_errors(), tuple()}.
get_id(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetId">>, Input, Options).
%% @doc Gets the roles for an identity pool.
%%
%% You must use Amazon Web Services developer credentials to call this
%% operation.
-spec get_identity_pool_roles(aws_client:aws_client(), get_identity_pool_roles_input()) ->
{ok, get_identity_pool_roles_response(), tuple()} |
{error, any()} |
{error, get_identity_pool_roles_errors(), tuple()}.
get_identity_pool_roles(Client, Input)
when is_map(Client), is_map(Input) ->
get_identity_pool_roles(Client, Input, []).
-spec get_identity_pool_roles(aws_client:aws_client(), get_identity_pool_roles_input(), proplists:proplist()) ->
{ok, get_identity_pool_roles_response(), tuple()} |
{error, any()} |
{error, get_identity_pool_roles_errors(), tuple()}.
get_identity_pool_roles(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetIdentityPoolRoles">>, Input, Options).
%% @doc 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.
-spec get_open_id_token(aws_client:aws_client(), get_open_id_token_input()) ->
{ok, get_open_id_token_response(), tuple()} |
{error, any()} |
{error, get_open_id_token_errors(), tuple()}.
get_open_id_token(Client, Input)
when is_map(Client), is_map(Input) ->
get_open_id_token(Client, Input, []).
-spec get_open_id_token(aws_client:aws_client(), get_open_id_token_input(), proplists:proplist()) ->
{ok, get_open_id_token_response(), tuple()} |
{error, any()} |
{error, get_open_id_token_errors(), tuple()}.
get_open_id_token(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetOpenIdToken">>, Input, Options).
%% @doc 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 Amazon Web Services developer credentials to call this
%% operation.
-spec get_open_id_token_for_developer_identity(aws_client:aws_client(), get_open_id_token_for_developer_identity_input()) ->
{ok, get_open_id_token_for_developer_identity_response(), tuple()} |
{error, any()} |
{error, get_open_id_token_for_developer_identity_errors(), tuple()}.
get_open_id_token_for_developer_identity(Client, Input)
when is_map(Client), is_map(Input) ->
get_open_id_token_for_developer_identity(Client, Input, []).
-spec get_open_id_token_for_developer_identity(aws_client:aws_client(), get_open_id_token_for_developer_identity_input(), proplists:proplist()) ->
{ok, get_open_id_token_for_developer_identity_response(), tuple()} |
{error, any()} |
{error, get_open_id_token_for_developer_identity_errors(), tuple()}.
get_open_id_token_for_developer_identity(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetOpenIdTokenForDeveloperIdentity">>, Input, Options).
%% @doc Use `GetPrincipalTagAttributeMap' to list all mappings between
%% `PrincipalTags' and user attributes.
-spec get_principal_tag_attribute_map(aws_client:aws_client(), get_principal_tag_attribute_map_input()) ->
{ok, get_principal_tag_attribute_map_response(), tuple()} |
{error, any()} |
{error, get_principal_tag_attribute_map_errors(), tuple()}.
get_principal_tag_attribute_map(Client, Input)
when is_map(Client), is_map(Input) ->
get_principal_tag_attribute_map(Client, Input, []).
-spec get_principal_tag_attribute_map(aws_client:aws_client(), get_principal_tag_attribute_map_input(), proplists:proplist()) ->
{ok, get_principal_tag_attribute_map_response(), tuple()} |
{error, any()} |
{error, get_principal_tag_attribute_map_errors(), tuple()}.
get_principal_tag_attribute_map(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"GetPrincipalTagAttributeMap">>, Input, Options).
%% @doc Lists the identities in an identity pool.
%%
%% You must use Amazon Web Services developer credentials to call this
%% operation.
-spec list_identities(aws_client:aws_client(), list_identities_input()) ->
{ok, list_identities_response(), tuple()} |
{error, any()} |
{error, list_identities_errors(), tuple()}.
list_identities(Client, Input)
when is_map(Client), is_map(Input) ->
list_identities(Client, Input, []).
-spec list_identities(aws_client:aws_client(), list_identities_input(), proplists:proplist()) ->
{ok, list_identities_response(), tuple()} |
{error, any()} |
{error, list_identities_errors(), tuple()}.
list_identities(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListIdentities">>, Input, Options).
%% @doc Lists all of the Cognito identity pools registered for your account.
%%
%% You must use Amazon Web Services developer credentials to call this
%% operation.
-spec list_identity_pools(aws_client:aws_client(), list_identity_pools_input()) ->
{ok, list_identity_pools_response(), tuple()} |
{error, any()} |
{error, list_identity_pools_errors(), tuple()}.
list_identity_pools(Client, Input)
when is_map(Client), is_map(Input) ->
list_identity_pools(Client, Input, []).
-spec list_identity_pools(aws_client:aws_client(), list_identity_pools_input(), proplists:proplist()) ->
{ok, list_identity_pools_response(), tuple()} |
{error, any()} |
{error, list_identity_pools_errors(), tuple()}.
list_identity_pools(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListIdentityPools">>, Input, Options).
%% @doc 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.
-spec list_tags_for_resource(aws_client:aws_client(), list_tags_for_resource_input()) ->
{ok, list_tags_for_resource_response(), tuple()} |
{error, any()} |
{error, list_tags_for_resource_errors(), tuple()}.
list_tags_for_resource(Client, Input)
when is_map(Client), is_map(Input) ->
list_tags_for_resource(Client, Input, []).
-spec list_tags_for_resource(aws_client:aws_client(), list_tags_for_resource_input(), proplists:proplist()) ->
{ok, list_tags_for_resource_response(), tuple()} |
{error, any()} |
{error, list_tags_for_resource_errors(), tuple()}.
list_tags_for_resource(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"ListTagsForResource">>, Input, Options).
%% @doc 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 Amazon Web Services developer credentials to call this
%% operation.
-spec lookup_developer_identity(aws_client:aws_client(), lookup_developer_identity_input()) ->
{ok, lookup_developer_identity_response(), tuple()} |
{error, any()} |
{error, lookup_developer_identity_errors(), tuple()}.
lookup_developer_identity(Client, Input)
when is_map(Client), is_map(Input) ->
lookup_developer_identity(Client, Input, []).
-spec lookup_developer_identity(aws_client:aws_client(), lookup_developer_identity_input(), proplists:proplist()) ->
{ok, lookup_developer_identity_response(), tuple()} |
{error, any()} |
{error, lookup_developer_identity_errors(), tuple()}.
lookup_developer_identity(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"LookupDeveloperIdentity">>, Input, Options).
%% @doc Merges two users having different `IdentityId's, 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 Amazon Web Services developer credentials to call this
%% operation.
-spec merge_developer_identities(aws_client:aws_client(), merge_developer_identities_input()) ->
{ok, merge_developer_identities_response(), tuple()} |
{error, any()} |
{error, merge_developer_identities_errors(), tuple()}.
merge_developer_identities(Client, Input)
when is_map(Client), is_map(Input) ->
merge_developer_identities(Client, Input, []).
-spec merge_developer_identities(aws_client:aws_client(), merge_developer_identities_input(), proplists:proplist()) ->
{ok, merge_developer_identities_response(), tuple()} |
{error, any()} |
{error, merge_developer_identities_errors(), tuple()}.
merge_developer_identities(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"MergeDeveloperIdentities">>, Input, Options).
%% @doc Sets the roles for an identity pool.
%%
%% These roles are used when making calls to `GetCredentialsForIdentity'
%% action.
%%
%% You must use Amazon Web Services developer credentials to call this
%% operation.
-spec set_identity_pool_roles(aws_client:aws_client(), set_identity_pool_roles_input()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, set_identity_pool_roles_errors(), tuple()}.
set_identity_pool_roles(Client, Input)
when is_map(Client), is_map(Input) ->
set_identity_pool_roles(Client, Input, []).
-spec set_identity_pool_roles(aws_client:aws_client(), set_identity_pool_roles_input(), proplists:proplist()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, set_identity_pool_roles_errors(), tuple()}.
set_identity_pool_roles(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"SetIdentityPoolRoles">>, Input, Options).
%% @doc You can use this operation to use default (username and clientID)
%% attribute or custom
%% attribute mappings.
-spec set_principal_tag_attribute_map(aws_client:aws_client(), set_principal_tag_attribute_map_input()) ->
{ok, set_principal_tag_attribute_map_response(), tuple()} |
{error, any()} |
{error, set_principal_tag_attribute_map_errors(), tuple()}.
set_principal_tag_attribute_map(Client, Input)
when is_map(Client), is_map(Input) ->
set_principal_tag_attribute_map(Client, Input, []).
-spec set_principal_tag_attribute_map(aws_client:aws_client(), set_principal_tag_attribute_map_input(), proplists:proplist()) ->
{ok, set_principal_tag_attribute_map_response(), tuple()} |
{error, any()} |
{error, set_principal_tag_attribute_map_errors(), tuple()}.
set_principal_tag_attribute_map(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"SetPrincipalTagAttributeMap">>, Input, Options).
%% @doc 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.
-spec tag_resource(aws_client:aws_client(), tag_resource_input()) ->
{ok, tag_resource_response(), tuple()} |
{error, any()} |
{error, tag_resource_errors(), tuple()}.
tag_resource(Client, Input)
when is_map(Client), is_map(Input) ->
tag_resource(Client, Input, []).
-spec tag_resource(aws_client:aws_client(), tag_resource_input(), proplists:proplist()) ->
{ok, tag_resource_response(), tuple()} |
{error, any()} |
{error, tag_resource_errors(), tuple()}.
tag_resource(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"TagResource">>, Input, Options).
%% @doc 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 Amazon Web Services developer credentials to call this
%% operation.
-spec unlink_developer_identity(aws_client:aws_client(), unlink_developer_identity_input()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, unlink_developer_identity_errors(), tuple()}.
unlink_developer_identity(Client, Input)
when is_map(Client), is_map(Input) ->
unlink_developer_identity(Client, Input, []).
-spec unlink_developer_identity(aws_client:aws_client(), unlink_developer_identity_input(), proplists:proplist()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, unlink_developer_identity_errors(), tuple()}.
unlink_developer_identity(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UnlinkDeveloperIdentity">>, Input, Options).
%% @doc 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.
-spec unlink_identity(aws_client:aws_client(), unlink_identity_input()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, unlink_identity_errors(), tuple()}.
unlink_identity(Client, Input)
when is_map(Client), is_map(Input) ->
unlink_identity(Client, Input, []).
-spec unlink_identity(aws_client:aws_client(), unlink_identity_input(), proplists:proplist()) ->
{ok, undefined, tuple()} |
{error, any()} |
{error, unlink_identity_errors(), tuple()}.
unlink_identity(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UnlinkIdentity">>, Input, Options).
%% @doc Removes the specified tags from the specified Amazon Cognito identity
%% pool.
%%
%% You can use
%% this action up to 5 times per second, per account
-spec untag_resource(aws_client:aws_client(), untag_resource_input()) ->
{ok, untag_resource_response(), tuple()} |
{error, any()} |
{error, untag_resource_errors(), tuple()}.
untag_resource(Client, Input)
when is_map(Client), is_map(Input) ->
untag_resource(Client, Input, []).
-spec untag_resource(aws_client:aws_client(), untag_resource_input(), proplists:proplist()) ->
{ok, untag_resource_response(), tuple()} |
{error, any()} |
{error, untag_resource_errors(), tuple()}.
untag_resource(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UntagResource">>, Input, Options).
%% @doc Updates the configuration of an identity pool.
%%
%% If you don't provide a value for a parameter, Amazon Cognito sets it
%% to its default value.
%%
%% You must use Amazon Web Services developer credentials to call this
%% operation.
-spec update_identity_pool(aws_client:aws_client(), identity_pool()) ->
{ok, identity_pool(), tuple()} |
{error, any()} |
{error, update_identity_pool_errors(), tuple()}.
update_identity_pool(Client, Input)
when is_map(Client), is_map(Input) ->
update_identity_pool(Client, Input, []).
-spec update_identity_pool(aws_client:aws_client(), identity_pool(), proplists:proplist()) ->
{ok, identity_pool(), tuple()} |
{error, any()} |
{error, update_identity_pool_errors(), tuple()}.
update_identity_pool(Client, Input, Options)
when is_map(Client), is_map(Input), is_list(Options) ->
request(Client, <<"UpdateIdentityPool">>, Input, Options).
%%====================================================================
%% Internal functions
%%====================================================================
-spec request(aws_client:aws_client(), binary(), map(), list()) ->
{ok, Result, {integer(), list(), hackney:client()}} |
{error, Error, {integer(), list(), hackney:client()}} |
{error, term()} when
Result :: map() | undefined,
Error :: map().
request(Client, Action, Input, Options) ->
RequestFun = fun() -> do_request(Client, Action, Input, Options) end,
aws_request:request(RequestFun, Options).
do_request(Client, Action, Input0, Options) ->
Client1 = Client#{service => <<"cognito-identity">>},
Host = build_host(<<"cognito-identity">>, Client1),
URL = build_url(Host, Client1),
Headers = [
{<<"Host">>, Host},
{<<"Content-Type">>, <<"application/x-amz-json-1.1">>},
{<<"X-Amz-Target">>, <<"AWSCognitoIdentityService.", Action/binary>>}
],
Input = Input0,
Payload = jsx:encode(Input),
SignedHeaders = aws_request:sign_request(Client1, <<"POST">>, URL, Headers, Payload),
Response = hackney:request(post, URL, SignedHeaders, Payload, Options),
handle_response(Response).
handle_response({ok, 200, ResponseHeaders, Client}) ->
case hackney:body(Client) of
{ok, <<>>} ->
{ok, undefined, {200, ResponseHeaders, Client}};
{ok, Body} ->
Result = jsx:decode(Body),
{ok, Result, {200, ResponseHeaders, Client}}
end;
handle_response({ok, StatusCode, ResponseHeaders, Client}) ->
{ok, Body} = hackney:body(Client),
Error = jsx:decode(Body),
{error, Error, {StatusCode, ResponseHeaders, Client}};
handle_response({error, Reason}) ->
{error, Reason}.
build_host(_EndpointPrefix, #{region := <<"local">>, endpoint := Endpoint}) ->
Endpoint;
build_host(_EndpointPrefix, #{region := <<"local">>}) ->
<<"localhost">>;
build_host(EndpointPrefix, #{region := Region, endpoint := Endpoint}) ->
aws_util:binary_join([EndpointPrefix, Region, Endpoint], <<".">>).
build_url(Host, Client) ->
Proto = aws_client:proto(Client),
Port = aws_client:port(Client),
aws_util:binary_join([Proto, <<"://">>, Host, <<":">>, Port, <<"/">>], <<"">>).