Skip to content

update_user_pool

update_user_pool(
    user_pool_id: UserPoolIdType,
    *,
    config_overrides: Optional[CognitoIdentityProviderClientConfig] = None,
    policies: Optional[UserPoolPolicyType] = None,
    deletion_protection: Optional[DeletionProtectionType] = None,
    lambda_config: Optional[LambdaConfigType] = None,
    auto_verified_attributes: Optional[VerifiedAttributesListType] = None,
    sms_verification_message: Optional[SmsVerificationMessageType] = None,
    email_verification_message: Optional[EmailVerificationMessageType] = None,
    email_verification_subject: Optional[EmailVerificationSubjectType] = None,
    verification_message_template: Optional[VerificationMessageTemplateType] = None,
    sms_authentication_message: Optional[SmsVerificationMessageType] = None,
    user_attribute_update_settings: Optional[UserAttributeUpdateSettingsType] = None,
    mfa_configuration: Optional[UserPoolMfaType] = None,
    device_configuration: Optional[DeviceConfigurationType] = None,
    email_configuration: Optional[EmailConfigurationType] = None,
    sms_configuration: Optional[SmsConfigurationType] = None,
    user_pool_tags: Optional[UserPoolTagsType] = None,
    admin_create_user_config: Optional[AdminCreateUserConfigType] = None,
    user_pool_add_ons: Optional[UserPoolAddOnsType] = None,
    account_recovery_setting: Optional[AccountRecoverySettingType] = None,
    pool_name: Optional[UserPoolNameType] = None,
    user_pool_tier: Optional[UserPoolTierType] = None,
    key_configuration: Optional[KeyConfigurationType] = None,
    issuer_configuration: Optional[IssuerConfigurationType] = None,
    acr_configuration: Optional[AcrConfigurationType] = None,
) -> UpdateUserPoolResponse

Updates the configuration of a user pool. To avoid setting parameters to Amazon Cognito defaults, construct this API request to pass the existing configuration of your user pool, modified to include the changes that you want to make.

If you don't provide a value for an attribute, Amazon Cognito sets it to its default value.

In secondary regions for user pools with multi-region replication, regional configurations for email, SMS, Lambda functions, and tags can be updated. Both global and regional settings must be provided as inputs, with global settings required to match existing values to maintain consistency across replicas.

This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with Amazon Pinpoint. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.

If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In sandbox mode , you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see SMS message settings for Amazon Cognito user pools in the Amazon Cognito Developer Guide.

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 you want to update.

  • policies (Optional[UserPoolPolicyType], default: None ) –

    The password policy and sign-in policy in the user pool. The password policy sets options like password complexity requirements and password history. The sign-in policy sets the options available to applications in choice-based authentication.

  • deletion_protection (Optional[DeletionProtectionType], default: None ) –

    When active, DeletionProtection prevents accidental deletion of your user pool. Before you can delete a user pool that you have protected against deletion, you must deactivate this feature.

    When you try to delete a protected user pool in a DeleteUserPool API request, Amazon Cognito returns an InvalidParameterException error. To delete a protected user pool, send a new DeleteUserPool request after you deactivate deletion protection in an UpdateUserPool API request.

  • lambda_config (Optional[LambdaConfigType], default: None ) –

    A collection of user pool Lambda triggers. Amazon Cognito invokes triggers at several possible stages of authentication operations. Triggers can modify the outcome of the operations that invoked them.

  • auto_verified_attributes (Optional[VerifiedAttributesListType], default: None ) –

    The attributes that you want your user pool to automatically verify. Possible values: email, phone_number. For more information see Verifying contact information at sign-up.

  • sms_verification_message (Optional[SmsVerificationMessageType], default: None ) –

    This parameter is no longer used.

  • email_verification_message (Optional[EmailVerificationMessageType], default: None ) –

    This parameter is no longer used.

  • email_verification_subject (Optional[EmailVerificationSubjectType], default: None ) –

    This parameter is no longer used.

  • verification_message_template (Optional[VerificationMessageTemplateType], default: None ) –

    The template for the verification message that your user pool delivers to users who set an email address or phone number attribute.

    Set the email message type that corresponds to your DefaultEmailOption selection. For CONFIRM_WITH_LINK, specify an EmailMessageByLink and leave EmailMessage blank. For CONFIRM_WITH_CODE, specify an EmailMessage and leave EmailMessageByLink blank. When you supply both parameters with either choice, Amazon Cognito returns an error.

  • sms_authentication_message (Optional[SmsVerificationMessageType], default: None ) –

    The contents of the SMS message that your user pool sends to users in SMS authentication.

  • user_attribute_update_settings (Optional[UserAttributeUpdateSettingsType], default: None ) –

    The settings for updates to user attributes. These settings include the property AttributesRequireVerificationBeforeUpdate, a user-pool setting that tells Amazon Cognito how to handle changes to the value of your users' email address and phone number attributes. For more information, see Verifying updates to email addresses and phone numbers.

  • mfa_configuration (Optional[UserPoolMfaType], default: None ) –

    Sets multi-factor authentication (MFA) to be on, off, or optional. When ON, all users must set up MFA before they can sign in. When OPTIONAL, your application must make a client-side determination of whether a user wants to register an MFA device. For user pools with adaptive authentication with threat protection, choose OPTIONAL.

    When MfaConfiguration is OPTIONAL, managed login doesn't automatically prompt users to set up MFA. Amazon Cognito generates MFA prompts in API responses and in managed login for users who have chosen and configured a preferred MFA factor.

  • device_configuration (Optional[DeviceConfigurationType], default: None ) –

    The device-remembering configuration for a user pool. Device remembering or device tracking is a "Remember me on this device" option for user pools that perform authentication with the device key of a trusted device in the back end, instead of a user-provided MFA code. For more information about device authentication, see Working with user devices in your user pool. A null value indicates that you have deactivated device remembering in your user pool.

    When you provide a value for any DeviceConfiguration field, you activate the Amazon Cognito device-remembering feature. For more information, see Working with devices.

  • email_configuration (Optional[EmailConfigurationType], default: None ) –

    The email configuration of your user pool. The email configuration type sets your preferred sending method, Amazon Web Services Region, and sender for email invitation and verification messages from your user pool.

  • sms_configuration (Optional[SmsConfigurationType], default: None ) –

    The SMS configuration with the settings for your Amazon Cognito user pool to send SMS message with Amazon Simple Notification Service. To send SMS messages with Amazon SNS in the Amazon Web Services Region that you want, the Amazon Cognito user pool uses an Identity and Access Management (IAM) role in your Amazon Web Services account. For more information see SMS message settings.

  • user_pool_tags (Optional[UserPoolTagsType], default: None ) –

    The tag keys and values to assign to the user pool. A tag is a label that you can use to categorize and manage user pools in different ways, such as by purpose, owner, environment, or other criteria.

  • admin_create_user_config (Optional[AdminCreateUserConfigType], default: None ) –

    The configuration for administrative creation of users. Includes the template for the invitation message for new users, the duration of temporary passwords, and permitting self-service sign-up.

  • user_pool_add_ons (Optional[UserPoolAddOnsType], default: None ) –

    Contains settings for activation of threat protection, including the operating mode and additional authentication types. To log user security information but take no action, set to AUDIT. To configure automatic security responses to potentially unwanted traffic to your user pool, set to ENFORCED.

    For more information, see Adding advanced security to a user pool. To activate this setting, your user pool must be on the Plus tier.

  • account_recovery_setting (Optional[AccountRecoverySettingType], default: None ) –

    The available verified method a user can use to recover their password when they call ForgotPassword. You can use this setting to define a preferred method when a user has more than one method available. With this setting, SMS doesn't qualify for a valid password recovery mechanism if the user also has SMS multi-factor authentication (MFA) activated. In the absence of this setting, Amazon Cognito uses the legacy behavior to determine the recovery method where SMS is preferred through email.

  • pool_name (Optional[UserPoolNameType], default: None ) –

    The updated name of your user pool.

  • user_pool_tier (Optional[UserPoolTierType], default: None ) –

    The user pool feature plan, or tier. This parameter determines the eligibility of the user pool for features like managed login, access-token customization, and threat protection. Defaults to ESSENTIALS.

  • key_configuration (Optional[KeyConfigurationType], default: None ) –

    The key configuration for the user pool. In secondary regions, this parameter must match the existing configuration and cannot be modified.

  • issuer_configuration (Optional[IssuerConfigurationType], default: None ) –

    The issuer configuration for the user pool. In secondary regions, this parameter must match the existing configuration and cannot be modified.

  • acr_configuration (Optional[AcrConfigurationType], default: None ) –

    The custom names for the authentication context class reference (ACR) levels in your user pool. This configuration has the same behavior as it does when you create a user pool: you customize only the URI name that Amazon Cognito reports for each of the four fixed ACR levels, and any level that you don't specify keeps its default name. Each name must be unique across all four levels, including default names.

    Configuring custom ACR level names requires the Essentials or Plus feature plan. To activate this setting, your user pool must be in the Essentials tier or higher.

Raises:

  • ConcurrentModificationException –

    This exception is thrown if two or more modifications are happening concurrently.

  • 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:

    • You configure a feature that your feature plan doesn't support.

    • You make a request that uses a feature that requires a higher feature plan.

    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.

  • InvalidEmailRoleAccessPolicyException –

    This exception is thrown when Amazon Cognito isn't allowed to use your email identity. HTTP status code: 400.

  • InvalidParameterException –

    This exception is thrown when the Amazon Cognito service encounters an invalid parameter.

  • InvalidSmsRoleAccessPolicyException –

    This exception is returned when the role provided for SMS configuration doesn't have permission to publish using Amazon SNS.

  • InvalidSmsRoleTrustRelationshipException –

    This exception is thrown when the trust relationship is not valid for the role provided for SMS configuration. This can happen if you don't trust cognito-idp.amazonaws.com or the external ID provided in the role does not match what is provided in the SMS configuration for the user pool.

  • 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.

  • TierChangeNotAllowedException –

    This exception is thrown when you've attempted to change your feature plan but the operation isn't permitted.

  • TooManyRequestsException –

    This exception is thrown when the user has made too many requests for a given operation.

  • UserImportInProgressException –

    This exception is thrown when you're trying to modify a user pool while a user import job is in progress for that pool.

  • 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.

Source code in docs_src/capo_cognito_identity_provider/_services/cognito_identity_provider.py
def update_user_pool(
    self,
    user_pool_id: "capo_cognito_identity_provider.types.user_pool_id_type.UserPoolIdType",
    *,
    config_overrides: Optional[CognitoIdentityProviderClientConfig] = None,
    policies: Optional[
        "capo_cognito_identity_provider.types.user_pool_policy_type.UserPoolPolicyType"
    ] = None,
    deletion_protection: Optional[
        "capo_cognito_identity_provider.types.deletion_protection_type.DeletionProtectionType"
    ] = None,
    lambda_config: Optional[
        "capo_cognito_identity_provider.types.lambda_config_type.LambdaConfigType"
    ] = None,
    auto_verified_attributes: Optional[
        "capo_cognito_identity_provider.types.verified_attributes_list_type.VerifiedAttributesListType"
    ] = None,
    sms_verification_message: Optional[
        "capo_cognito_identity_provider.types.sms_verification_message_type.SmsVerificationMessageType"
    ] = None,
    email_verification_message: Optional[
        "capo_cognito_identity_provider.types.email_verification_message_type.EmailVerificationMessageType"
    ] = None,
    email_verification_subject: Optional[
        "capo_cognito_identity_provider.types.email_verification_subject_type.EmailVerificationSubjectType"
    ] = None,
    verification_message_template: Optional[
        "capo_cognito_identity_provider.types.verification_message_template_type.VerificationMessageTemplateType"
    ] = None,
    sms_authentication_message: Optional[
        "capo_cognito_identity_provider.types.sms_verification_message_type.SmsVerificationMessageType"
    ] = None,
    user_attribute_update_settings: Optional[
        "capo_cognito_identity_provider.types.user_attribute_update_settings_type.UserAttributeUpdateSettingsType"
    ] = None,
    mfa_configuration: Optional[
        "capo_cognito_identity_provider.types.user_pool_mfa_type.UserPoolMfaType"
    ] = None,
    device_configuration: Optional[
        "capo_cognito_identity_provider.types.device_configuration_type.DeviceConfigurationType"
    ] = None,
    email_configuration: Optional[
        "capo_cognito_identity_provider.types.email_configuration_type.EmailConfigurationType"
    ] = None,
    sms_configuration: Optional[
        "capo_cognito_identity_provider.types.sms_configuration_type.SmsConfigurationType"
    ] = None,
    user_pool_tags: Optional[
        "capo_cognito_identity_provider.types.user_pool_tags_type.UserPoolTagsType"
    ] = None,
    admin_create_user_config: Optional[
        "capo_cognito_identity_provider.types.admin_create_user_config_type.AdminCreateUserConfigType"
    ] = None,
    user_pool_add_ons: Optional[
        "capo_cognito_identity_provider.types.user_pool_add_ons_type.UserPoolAddOnsType"
    ] = None,
    account_recovery_setting: Optional[
        "capo_cognito_identity_provider.types.account_recovery_setting_type.AccountRecoverySettingType"
    ] = None,
    pool_name: Optional[
        "capo_cognito_identity_provider.types.user_pool_name_type.UserPoolNameType"
    ] = None,
    user_pool_tier: Optional[
        "capo_cognito_identity_provider.types.user_pool_tier_type.UserPoolTierType"
    ] = None,
    key_configuration: Optional[
        "capo_cognito_identity_provider.types.key_configuration_type.KeyConfigurationType"
    ] = None,
    issuer_configuration: Optional[
        "capo_cognito_identity_provider.types.issuer_configuration_type.IssuerConfigurationType"
    ] = None,
    acr_configuration: Optional[
        "capo_cognito_identity_provider.types.acr_configuration_type.AcrConfigurationType"
    ] = None,
) -> "capo_cognito_identity_provider.types.update_user_pool_response.UpdateUserPoolResponse":
    """<p>Updates the configuration of a user pool. To avoid setting parameters to Amazon Cognito defaults, construct this API request to pass the existing configuration of your user pool, modified to include the changes that you want to make.</p> <important> <p>If you don't provide a value for an attribute, Amazon Cognito sets it to its default value.</p> </important> <p>In secondary regions for user pools with multi-region replication, regional configurations for email, SMS, Lambda functions, and tags can be updated. Both global and regional settings must be provided as inputs, with global settings required to match existing values to maintain consistency across replicas.</p> <note> <p>This action might generate an SMS text message. Starting June 1, 2021, US telecom carriers require you to register an origination phone number before you can send SMS messages to US phone numbers. If you use SMS text messages in Amazon Cognito, you must register a phone number with <a href="https://console.aws.amazon.com/pinpoint/home/">Amazon Pinpoint</a>. Amazon Cognito uses the registered number automatically. Otherwise, Amazon Cognito users who must receive SMS messages might not be able to sign up, activate their accounts, or sign in.</p> <p>If you have never used SMS text messages with Amazon Cognito or any other Amazon Web Services service, Amazon Simple Notification Service might place your account in the SMS sandbox. In <i> <a href="https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html">sandbox mode</a> </i>, you can send messages only to verified phone numbers. After you test your app while in the sandbox environment, you can move out of the sandbox and into production. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html"> SMS message settings for Amazon Cognito user pools</a> in the <i>Amazon Cognito Developer Guide</i>.</p> </note> <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 you want to update.</p>
        policies: <p>The password policy and sign-in policy in the user pool. The password policy sets options like password complexity requirements and password history. The sign-in policy sets the options available to applications in <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flows-selection-sdk.html#authentication-flows-selection-choice">choice-based authentication</a>.</p>
        deletion_protection: <p>When active, <code>DeletionProtection</code> prevents accidental deletion of your user pool. Before you can delete a user pool that you have protected against deletion, you must deactivate this feature.</p> <p>When you try to delete a protected user pool in a <code>DeleteUserPool</code> API request, Amazon Cognito returns an <code>InvalidParameterException</code> error. To delete a protected user pool, send a new <code>DeleteUserPool</code> request after you deactivate deletion protection in an <code>UpdateUserPool</code> API request.</p>
        lambda_config: <p>A collection of user pool Lambda triggers. Amazon Cognito invokes triggers at several possible stages of authentication operations. Triggers can modify the outcome of the operations that invoked them.</p>
        auto_verified_attributes: <p>The attributes that you want your user pool to automatically verify. Possible values: <b>email</b>, <b>phone_number</b>. For more information see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/signing-up-users-in-your-app.html#allowing-users-to-sign-up-and-confirm-themselves">Verifying contact information at sign-up</a>.</p>
        sms_verification_message: <p>This parameter is no longer used.</p>
        email_verification_message: <p>This parameter is no longer used.</p>
        email_verification_subject: <p>This parameter is no longer used.</p>
        verification_message_template: <p>The template for the verification message that your user pool delivers to users who set an email address or phone number attribute.</p> <p>Set the email message type that corresponds to your <code>DefaultEmailOption</code> selection. For <code>CONFIRM_WITH_LINK</code>, specify an <code>EmailMessageByLink</code> and leave <code>EmailMessage</code> blank. For <code>CONFIRM_WITH_CODE</code>, specify an <code>EmailMessage</code> and leave <code>EmailMessageByLink</code> blank. When you supply both parameters with either choice, Amazon Cognito returns an error.</p>
        sms_authentication_message: <p>The contents of the SMS message that your user pool sends to users in SMS authentication.</p>
        user_attribute_update_settings: <p>The settings for updates to user attributes. These settings include the property <code>AttributesRequireVerificationBeforeUpdate</code>, a user-pool setting that tells Amazon Cognito how to handle changes to the value of your users' email address and phone number attributes. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-email-phone-verification.html#user-pool-settings-verifications-verify-attribute-updates"> Verifying updates to email addresses and phone numbers</a>.</p>
        mfa_configuration: <p>Sets multi-factor authentication (MFA) to be on, off, or optional. When <code>ON</code>, all users must set up MFA before they can sign in. When <code>OPTIONAL</code>, your application must make a client-side determination of whether a user wants to register an MFA device. For user pools with adaptive authentication with threat protection, choose <code>OPTIONAL</code>.</p> <p>When <code>MfaConfiguration</code> is <code>OPTIONAL</code>, managed login doesn't automatically prompt users to set up MFA. Amazon Cognito generates MFA prompts in API responses and in managed login for users who have chosen and configured a preferred MFA factor.</p>
        device_configuration: <p>The device-remembering configuration for a user pool. Device remembering or device tracking is a "Remember me on this device" option for user pools that perform authentication with the device key of a trusted device in the back end, instead of a user-provided MFA code. For more information about device authentication, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-device-tracking.html">Working with user devices in your user pool</a>. A null value indicates that you have deactivated device remembering in your user pool.</p> <note> <p>When you provide a value for any <code>DeviceConfiguration</code> field, you activate the Amazon Cognito device-remembering feature. For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-device-tracking.html">Working with devices</a>.</p> </note>
        email_configuration: <p>The email configuration of your user pool. The email configuration type sets your preferred sending method, Amazon Web Services Region, and sender for email invitation and verification messages from your user pool.</p>
        sms_configuration: <p>The SMS configuration with the settings for your Amazon Cognito user pool to send SMS message with Amazon Simple Notification Service. To send SMS messages with Amazon SNS in the Amazon Web Services Region that you want, the Amazon Cognito user pool uses an Identity and Access Management (IAM) role in your Amazon Web Services account. For more information see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html">SMS message settings</a>.</p>
        user_pool_tags: <p>The tag keys and values to assign to the user pool. A tag is a label that you can use to categorize and manage user pools in different ways, such as by purpose, owner, environment, or other criteria.</p>
        admin_create_user_config: <p>The configuration for administrative creation of users. Includes the template for the invitation message for new users, the duration of temporary passwords, and permitting self-service sign-up.</p>
        user_pool_add_ons: <p>Contains settings for activation of threat protection, including the operating mode and additional authentication types. To log user security information but take no action, set to <code>AUDIT</code>. To configure automatic security responses to potentially unwanted traffic to your user pool, set to <code>ENFORCED</code>.</p> <p>For more information, see <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-advanced-security.html">Adding advanced security to a user pool</a>. To activate this setting, your user pool must be on the <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/feature-plans-features-plus.html"> Plus tier</a>.</p>
        account_recovery_setting: <p>The available verified method a user can use to recover their password when they call <code>ForgotPassword</code>. You can use this setting to define a preferred method when a user has more than one method available. With this setting, SMS doesn't qualify for a valid password recovery mechanism if the user also has SMS multi-factor authentication (MFA) activated. In the absence of this setting, Amazon Cognito uses the legacy behavior to determine the recovery method where SMS is preferred through email.</p>
        pool_name: <p>The updated name of your user pool.</p>
        user_pool_tier: <p>The user pool <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-sign-in-feature-plans.html">feature plan</a>, or tier. This parameter determines the eligibility of the user pool for features like managed login, access-token customization, and threat protection. Defaults to <code>ESSENTIALS</code>.</p>
        key_configuration: <p>The key configuration for the user pool. In secondary regions, this parameter must match the existing configuration and cannot be modified.</p>
        issuer_configuration: <p>The issuer configuration for the user pool. In secondary regions, this parameter must match the existing configuration and cannot be modified.</p>
        acr_configuration: <p>The custom names for the authentication context class reference (ACR) levels in your user pool. This configuration has the same behavior as it does when you create a user pool: you customize only the URI name that Amazon Cognito reports for each of the four fixed ACR levels, and any level that you don't specify keeps its default name. Each name must be unique across all four levels, including default names.</p> <p>Configuring custom ACR level names requires the Essentials or Plus feature plan. To activate this setting, your user pool must be in the <a href="https://docs.aws.amazon.com/cognito/latest/developerguide/feature-plans-features-essentials.html"> Essentials tier</a> or higher.</p>

    Raises:
        capo_cognito_identity_provider.errors.concurrent_modification_exception.ConcurrentModificationException: <p>This exception is thrown if two or more modifications are happening concurrently.</p>
        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_email_role_access_policy_exception.InvalidEmailRoleAccessPolicyException: <p>This exception is thrown when Amazon Cognito isn't allowed to use your email identity. HTTP status code: 400.</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.invalid_sms_role_access_policy_exception.InvalidSmsRoleAccessPolicyException: <p>This exception is returned when the role provided for SMS configuration doesn't have permission to publish using Amazon SNS.</p>
        capo_cognito_identity_provider.errors.invalid_sms_role_trust_relationship_exception.InvalidSmsRoleTrustRelationshipException: <p>This exception is thrown when the trust relationship is not valid for the role provided for SMS configuration. This can happen if you don't trust <code>cognito-idp.amazonaws.com</code> or the external ID provided in the role does not match what is provided in the SMS configuration for the user pool.</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.tier_change_not_allowed_exception.TierChangeNotAllowedException: <p>This exception is thrown when you've attempted to change your feature plan but the operation isn't permitted.</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_import_in_progress_exception.UserImportInProgressException: <p>This exception is thrown when you're trying to modify a user pool while a user import job is in progress for that pool.</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.
    """

    def _handler(
        req: "OperationRequest[capo_cognito_identity_provider.types.update_user_pool_request.UpdateUserPoolRequest]",
    ) -> OperationResponse[
        "capo_cognito_identity_provider.types.update_user_pool_response.UpdateUserPoolResponse"
    ]:
        import capo_cognito_identity_provider._operations.aws_cognito_identity_provider_service.update_user_pool

        output, http_response = (
            capo_cognito_identity_provider._operations.aws_cognito_identity_provider_service.update_user_pool.update_user_pool(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("UpdateUserPool")
    )
    input_: capo_cognito_identity_provider.types.update_user_pool_request.UpdateUserPoolRequest = {
        "user_pool_id": user_pool_id
    }
    if policies is not None:
        input_["policies"] = policies
    if deletion_protection is not None:
        input_["deletion_protection"] = deletion_protection
    if lambda_config is not None:
        input_["lambda_config"] = lambda_config
    if auto_verified_attributes is not None:
        input_["auto_verified_attributes"] = auto_verified_attributes
    if sms_verification_message is not None:
        input_["sms_verification_message"] = sms_verification_message
    if email_verification_message is not None:
        input_["email_verification_message"] = email_verification_message
    if email_verification_subject is not None:
        input_["email_verification_subject"] = email_verification_subject
    if verification_message_template is not None:
        input_["verification_message_template"] = verification_message_template
    if sms_authentication_message is not None:
        input_["sms_authentication_message"] = sms_authentication_message
    if user_attribute_update_settings is not None:
        input_["user_attribute_update_settings"] = user_attribute_update_settings
    if mfa_configuration is not None:
        input_["mfa_configuration"] = mfa_configuration
    if device_configuration is not None:
        input_["device_configuration"] = device_configuration
    if email_configuration is not None:
        input_["email_configuration"] = email_configuration
    if sms_configuration is not None:
        input_["sms_configuration"] = sms_configuration
    if user_pool_tags is not None:
        input_["user_pool_tags"] = user_pool_tags
    if admin_create_user_config is not None:
        input_["admin_create_user_config"] = admin_create_user_config
    if user_pool_add_ons is not None:
        input_["user_pool_add_ons"] = user_pool_add_ons
    if account_recovery_setting is not None:
        input_["account_recovery_setting"] = account_recovery_setting
    if pool_name is not None:
        input_["pool_name"] = pool_name
    if user_pool_tier is not None:
        input_["user_pool_tier"] = user_pool_tier
    if key_configuration is not None:
        input_["key_configuration"] = key_configuration
    if issuer_configuration is not None:
        input_["issuer_configuration"] = issuer_configuration
    if acr_configuration is not None:
        input_["acr_configuration"] = acr_configuration

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output