Creates a replica of an existing user pool in a specified Amazon Web Services Region. The replica enables multi-region replication for high availability and disaster recovery. To create a replica, you must have permissions to create user pools in the target Region.
Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.
Learn more
Parameters:
-
user_pool_id
(UserPoolIdType)
–
The ID of the user pool to replicate.
-
region_name
(RegionNameType)
–
The Amazon Web Services Region where you want to create the replica user pool.
-
user_pool_tags
(Optional[UserPoolTagsType], default:
None
)
–
A map of tags to assign to the replica user pool. Each tag consists of a key and an optional value, both of which you define. You can maintain tags independently on replica user pools.
Raises:
-
FeatureUnavailableInTierException
–
This exception is thrown when a feature that you attempted to use or configure isn't included in your user pool's current feature plan. This can occur when:
To resolve this issue, upgrade your user pool to a feature plan that includes the feature.
-
InternalErrorException
–
This exception is thrown when Amazon Cognito encounters an internal error.
-
InvalidParameterException
–
This exception is thrown when the Amazon Cognito service encounters an invalid parameter.
-
LimitExceededException
–
This exception is thrown when a user exceeds the limit for a requested Amazon Web Services resource.
-
NotAuthorizedException
–
This exception is thrown when a user isn't authorized.
-
OperationNotEnabledException
–
This exception is thrown when an operation is not available in the current region or for the current user pool configuration. This can occur when attempting to perform operations that are not supported in secondary replica regions.
-
ResourceNotFoundException
–
This exception is thrown when the Amazon Cognito service can't find the requested resource.
-
TooManyRequestsException
–
This exception is thrown when the user has made too many requests for a given operation.
-
UserPoolTaggingException
–
This exception is thrown when a user pool tag can't be set or updated.
-
UnknownServiceError
–
The service returned an error code this client does not model.
Examples:
Example create a replica of a user pool in a new Region
The following example creates a replica of a user pool in the ap-south-1 Region.
>>> await client.create_user_pool_replica(user_pool_id='us-east-1_abcd12345', region_name='ap-south-1')
Source code in docs_src/capo_cognito_identity_provider/_services/async_cognito_identity_provider.py
| async def create_user_pool_replica(
self,
user_pool_id: "capo_cognito_identity_provider.types.user_pool_id_type.UserPoolIdType",
region_name: "capo_cognito_identity_provider.types.region_name_type.RegionNameType",
*,
config_overrides: Optional[AsyncCognitoIdentityProviderClientConfig] = None,
user_pool_tags: Optional[
"capo_cognito_identity_provider.types.user_pool_tags_type.UserPoolTagsType"
] = None,
) -> "capo_cognito_identity_provider.types.create_user_pool_replica_response.CreateUserPoolReplicaResponse":
"""<p>Creates a replica of an existing user pool in a specified Amazon Web Services Region. The replica enables multi-region replication for high availability and disaster recovery. To create a replica, you must have permissions to create user pools in the target Region.</p> <note> <p>Amazon Cognito evaluates Identity and Access Management (IAM) policies in requests for this API operation. For this operation, you must use IAM credentials to authorize requests, and you must grant yourself the corresponding IAM permission in a policy.</p> <p class="title"> <b>Learn more</b> </p> <ul> <li> <p> <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html">Signing Amazon Web Services API Requests</a> </p> </li> <li> <p> <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html">Using the Amazon Cognito user pools API and user pool endpoints</a> </p> </li> </ul> </note>
Args:
user_pool_id: <p>The ID of the user pool to replicate.</p>
region_name: <p>The Amazon Web Services Region where you want to create the replica user pool.</p>
user_pool_tags: <p>A map of tags to assign to the replica user pool. Each tag consists of a key and an optional value, both of which you define. You can maintain tags independently on replica user pools.</p>
Raises:
capo_cognito_identity_provider.errors.feature_unavailable_in_tier_exception.FeatureUnavailableInTierException: <p>This exception is thrown when a feature that you attempted to use or configure isn't included in your user pool's current feature plan. This can occur when:</p> <ul> <li> <p>You configure a feature that your feature plan doesn't support.</p> </li> <li> <p>You make a request that uses a feature that requires a higher feature plan.</p> </li> </ul> <p>To resolve this issue, upgrade your user pool to a feature plan that includes the feature.</p>
capo_cognito_identity_provider.errors.internal_error_exception.InternalErrorException: <p>This exception is thrown when Amazon Cognito encounters an internal error.</p>
capo_cognito_identity_provider.errors.invalid_parameter_exception.InvalidParameterException: <p>This exception is thrown when the Amazon Cognito service encounters an invalid parameter.</p>
capo_cognito_identity_provider.errors.limit_exceeded_exception.LimitExceededException: <p>This exception is thrown when a user exceeds the limit for a requested Amazon Web Services resource.</p>
capo_cognito_identity_provider.errors.not_authorized_exception.NotAuthorizedException: <p>This exception is thrown when a user isn't authorized.</p>
capo_cognito_identity_provider.errors.operation_not_enabled_exception.OperationNotEnabledException: <p>This exception is thrown when an operation is not available in the current region or for the current user pool configuration. This can occur when attempting to perform operations that are not supported in secondary replica regions.</p>
capo_cognito_identity_provider.errors.resource_not_found_exception.ResourceNotFoundException: <p>This exception is thrown when the Amazon Cognito service can't find the requested resource.</p>
capo_cognito_identity_provider.errors.too_many_requests_exception.TooManyRequestsException: <p>This exception is thrown when the user has made too many requests for a given operation.</p>
capo_cognito_identity_provider.errors.user_pool_tagging_exception.UserPoolTaggingException: <p>This exception is thrown when a user pool tag can't be set or updated.</p>
capo_cognito_identity_provider.errors.UnknownServiceError: The service returned an error code this client does not model.
Examples:
Example create a replica of a user pool in a new Region
The following example creates a replica of a user pool in the ap-south-1 Region.
>>> await client.create_user_pool_replica(user_pool_id='us-east-1_abcd12345', region_name='ap-south-1')
"""
async def _handler(
req: "AsyncOperationRequest[capo_cognito_identity_provider.types.create_user_pool_replica_request.CreateUserPoolReplicaRequest]",
) -> AsyncOperationResponse[
"capo_cognito_identity_provider.types.create_user_pool_replica_response.CreateUserPoolReplicaResponse"
]:
import capo_cognito_identity_provider._operations.aws_cognito_identity_provider_service.create_user_pool_replica
(
output,
http_response,
) = await capo_cognito_identity_provider._operations.aws_cognito_identity_provider_service.create_user_pool_replica.async_create_user_pool_replica(
req.options, req.input
)
return AsyncOperationResponse(output=output, response=http_response)
interceptors_, options_ = self.operation_options(
config_overrides, OperationLogging("CreateUserPoolReplica")
)
input_: capo_cognito_identity_provider.types.create_user_pool_replica_request.CreateUserPoolReplicaRequest = {
"user_pool_id": user_pool_id,
"region_name": region_name,
}
if user_pool_tags is not None:
input_["user_pool_tags"] = user_pool_tags
response = await aexecute_pipeline(
AsyncOperationRequest(input=input_, options=options_),
handler=_handler,
interceptors=list(interceptors_),
)
await response.response.aclose()
return response.output
|