:doc:`AmplifyBackend <../../amplifybackend>` / Client / update_backend_auth

*******************
update_backend_auth
*******************



.. py:method:: AmplifyBackend.Client.update_backend_auth(**kwargs)

  

  Updates an existing backend authentication resource.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/amplifybackend-2020-08-11/UpdateBackendAuth>`_  


  **Request Syntax**
  ::

    response = client.update_backend_auth(
        AppId='string',
        BackendEnvironmentName='string',
        ResourceConfig={
            'AuthResources': 'USER_POOL_ONLY'|'IDENTITY_POOL_AND_USER_POOL',
            'IdentityPoolConfigs': {
                'UnauthenticatedLogin': True|False
            },
            'Service': 'COGNITO',
            'UserPoolConfigs': {
                'ForgotPassword': {
                    'DeliveryMethod': 'EMAIL'|'SMS',
                    'EmailSettings': {
                        'EmailMessage': 'string',
                        'EmailSubject': 'string'
                    },
                    'SmsSettings': {
                        'SmsMessage': 'string'
                    }
                },
                'Mfa': {
                    'MFAMode': 'ON'|'OFF'|'OPTIONAL',
                    'Settings': {
                        'MfaTypes': [
                            'SMS'|'TOTP',
                        ],
                        'SmsMessage': 'string'
                    }
                },
                'OAuth': {
                    'DomainPrefix': 'string',
                    'OAuthGrantType': 'CODE'|'IMPLICIT',
                    'OAuthScopes': [
                        'PHONE'|'EMAIL'|'OPENID'|'PROFILE'|'AWS_COGNITO_SIGNIN_USER_ADMIN',
                    ],
                    'RedirectSignInURIs': [
                        'string',
                    ],
                    'RedirectSignOutURIs': [
                        'string',
                    ],
                    'SocialProviderSettings': {
                        'Facebook': {
                            'ClientId': 'string',
                            'ClientSecret': 'string'
                        },
                        'Google': {
                            'ClientId': 'string',
                            'ClientSecret': 'string'
                        },
                        'LoginWithAmazon': {
                            'ClientId': 'string',
                            'ClientSecret': 'string'
                        },
                        'SignInWithApple': {
                            'ClientId': 'string',
                            'KeyId': 'string',
                            'PrivateKey': 'string',
                            'TeamId': 'string'
                        }
                    }
                },
                'PasswordPolicy': {
                    'AdditionalConstraints': [
                        'REQUIRE_DIGIT'|'REQUIRE_LOWERCASE'|'REQUIRE_SYMBOL'|'REQUIRE_UPPERCASE',
                    ],
                    'MinimumLength': 123.0
                },
                'VerificationMessage': {
                    'DeliveryMethod': 'EMAIL'|'SMS',
                    'EmailSettings': {
                        'EmailMessage': 'string',
                        'EmailSubject': 'string'
                    },
                    'SmsSettings': {
                        'SmsMessage': 'string'
                    }
                }
            }
        },
        ResourceName='string'
    )
    
  :type AppId: string
  :param AppId: **[REQUIRED]** 

    The app ID.

    

  
  :type BackendEnvironmentName: string
  :param BackendEnvironmentName: **[REQUIRED]** 

    The name of the backend environment.

    

  
  :type ResourceConfig: dict
  :param ResourceConfig: **[REQUIRED]** 

    The resource configuration for this request object.

    

  
    - **AuthResources** *(string) --* **[REQUIRED]** 

      Defines the service name to use when configuring an authentication resource in your Amplify project.

      

    
    - **IdentityPoolConfigs** *(dict) --* 

      Describes the authorization configuration for the Amazon Cognito identity pool, provisioned as a part of your auth resource in the Amplify project.

      

    
      - **UnauthenticatedLogin** *(boolean) --* 

        A boolean value that can be set to allow or disallow guest-level authorization into your Amplify app.

        

      
    
    - **Service** *(string) --* **[REQUIRED]** 

      Defines the service name to use when configuring an authentication resource in your Amplify project.

      

    
    - **UserPoolConfigs** *(dict) --* **[REQUIRED]** 

      Describes the authentication configuration for the Amazon Cognito user pool, provisioned as a part of your auth resource in the Amplify project.

      

    
      - **ForgotPassword** *(dict) --* 

        **(DEPRECATED)** Describes the forgot password policy for your Amazon Cognito user pool, configured as a part of your Amplify project.

        

      
        - **DeliveryMethod** *(string) --* 

          **(DEPRECATED)** Describes which mode to use (either SMS or email) to deliver messages to app users that want to recover their password.

          

        
        - **EmailSettings** *(dict) --* 

          **(DEPRECATED)** The configuration for the email sent when an app user forgets their password.

          

        
          - **EmailMessage** *(string) --* 

            The contents of the email message.

            

          
          - **EmailSubject** *(string) --* 

            The contents of the subject line of the email message.

            

          
        
        - **SmsSettings** *(dict) --* 

          **(DEPRECATED)** The configuration for the SMS message sent when an Amplify app user forgets their password.

          

        
          - **SmsMessage** *(string) --* 

            The contents of the SMS message.

            

          
        
      
      - **Mfa** *(dict) --* 

        Describes whether to apply multi-factor authentication policies for your Amazon Cognito user pool configured as a part of your Amplify project.

        

      
        - **MFAMode** *(string) --* 

          The MFA mode for the backend of your Amplify project.

          

        
        - **Settings** *(dict) --* 

          The settings of your MFA configuration for the backend of your Amplify project.

          

        
          - **MfaTypes** *(list) --* 

            The supported MFA types.

            

          
            - *(string) --* 

            
        
          - **SmsMessage** *(string) --* 

            The body of the SMS message.

            

          
        
      
      - **OAuth** *(dict) --* 

        Describes the OAuth policy and rules for your Amazon Cognito user pool, configured as a part of your Amplify project.

        

      
        - **DomainPrefix** *(string) --* 

          The Amazon Cognito domain prefix used to create a hosted UI for authentication.

          

        
        - **OAuthGrantType** *(string) --* 

          The OAuth grant type to allow app users to authenticate from your Amplify app.

          

        
        - **OAuthScopes** *(list) --* 

          The list of OAuth-related flows that can allow users to authenticate from your Amplify app.

          

        
          - *(string) --* 

          
      
        - **RedirectSignInURIs** *(list) --* 

          Redirect URLs that OAuth uses when a user signs in to an Amplify app.

          

        
          - *(string) --* 

          
      
        - **RedirectSignOutURIs** *(list) --* 

          Redirect URLs that OAuth uses when a user signs out of an Amplify app.

          

        
          - *(string) --* 

          
      
        - **SocialProviderSettings** *(dict) --* 

          Describes third-party social federation configurations for allowing your users to sign in with OAuth.

          

        
          - **Facebook** *(dict) --* 

            Describes third-party social federation configurations for allowing your app users to sign in using OAuth.

            

          
            - **ClientId** *(string) --* 

              Describes the client_id, which can be obtained from the third-party social federation provider.

              

            
            - **ClientSecret** *(string) --* 

              Describes the client_secret, which can be obtained from third-party social federation providers.

              

            
          
          - **Google** *(dict) --* 

            Describes third-party social federation configurations for allowing your app users to sign in using OAuth.

            

          
            - **ClientId** *(string) --* 

              Describes the client_id, which can be obtained from the third-party social federation provider.

              

            
            - **ClientSecret** *(string) --* 

              Describes the client_secret, which can be obtained from third-party social federation providers.

              

            
          
          - **LoginWithAmazon** *(dict) --* 

            Describes third-party social federation configurations for allowing your app users to sign in using OAuth.

            

          
            - **ClientId** *(string) --* 

              Describes the client_id, which can be obtained from the third-party social federation provider.

              

            
            - **ClientSecret** *(string) --* 

              Describes the client_secret, which can be obtained from third-party social federation providers.

              

            
          
          - **SignInWithApple** *(dict) --* 

            Describes Apple social federation configurations for allowing your app users to sign in using OAuth.

            

          
            - **ClientId** *(string) --* 

              Describes the client_id (also called Services ID) that comes from Apple.

              

            
            - **KeyId** *(string) --* 

              Describes the key_id that comes from Apple.

              

            
            - **PrivateKey** *(string) --* 

              Describes the private_key that comes from Apple.

              

            
            - **TeamId** *(string) --* 

              Describes the team_id that comes from Apple.

              

            
          
        
      
      - **PasswordPolicy** *(dict) --* 

        Describes the password policy for your Amazon Cognito user pool, configured as a part of your Amplify project.

        

      
        - **AdditionalConstraints** *(list) --* 

          Describes additional constraints on password requirements to sign in to the auth resource, configured as a part of your Amplify project.

          

        
          - *(string) --* 

          
      
        - **MinimumLength** *(float) --* 

          Describes the minimum length of the password required to sign in to the auth resource, configured as a part of your Amplify project.

          

        
      
      - **VerificationMessage** *(dict) --* 

        Describes the email or SMS verification message for your Amazon Cognito user pool, configured as a part of your Amplify project.

        

      
        - **DeliveryMethod** *(string) --* **[REQUIRED]** 

          The type of verification message to send.

          

        
        - **EmailSettings** *(dict) --* 

          The settings for the email message.

          

        
          - **EmailMessage** *(string) --* 

            The contents of the email message.

            

          
          - **EmailSubject** *(string) --* 

            The contents of the subject line of the email message.

            

          
        
        - **SmsSettings** *(dict) --* 

          The settings for the SMS message.

          

        
          - **SmsMessage** *(string) --* 

            The contents of the SMS message.

            

          
        
      
    
  
  :type ResourceName: string
  :param ResourceName: **[REQUIRED]** 

    The name of this resource.

    

  
  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'AppId': 'string',
          'BackendEnvironmentName': 'string',
          'Error': 'string',
          'JobId': 'string',
          'Operation': 'string',
          'Status': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 

      200 response

      
      

      - **AppId** *(string) --* 

        The app ID.

        
      

      - **BackendEnvironmentName** *(string) --* 

        The name of the backend environment.

        
      

      - **Error** *(string) --* 

        If the request fails, this error is returned.

        
      

      - **JobId** *(string) --* 

        The ID for the job.

        
      

      - **Operation** *(string) --* 

        The name of the operation.

        
      

      - **Status** *(string) --* 

        The current status of the request.

        
  
  **Exceptions**
  
  *   :py:class:`AmplifyBackend.Client.exceptions.NotFoundException`

  
  *   :py:class:`AmplifyBackend.Client.exceptions.GatewayTimeoutException`

  
  *   :py:class:`AmplifyBackend.Client.exceptions.TooManyRequestsException`

  
  *   :py:class:`AmplifyBackend.Client.exceptions.BadRequestException`

  