:doc:`Amplify <../../amplify>` / Client / update_app

**********
update_app
**********



.. py:method:: Amplify.Client.update_app(**kwargs)

  

  Updates an existing Amplify app.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/amplify-2017-07-25/UpdateApp>`_  


  **Request Syntax**
  ::

    response = client.update_app(
        appId='string',
        name='string',
        description='string',
        platform='WEB'|'WEB_DYNAMIC'|'WEB_COMPUTE',
        computeRoleArn='string',
        iamServiceRoleArn='string',
        environmentVariables={
            'string': 'string'
        },
        enableBranchAutoBuild=True|False,
        enableBranchAutoDeletion=True|False,
        enableBasicAuth=True|False,
        basicAuthCredentials='string',
        customRules=[
            {
                'source': 'string',
                'target': 'string',
                'status': 'string',
                'condition': 'string'
            },
        ],
        buildSpec='string',
        customHeaders='string',
        enableAutoBranchCreation=True|False,
        autoBranchCreationPatterns=[
            'string',
        ],
        autoBranchCreationConfig={
            'stage': 'PRODUCTION'|'BETA'|'DEVELOPMENT'|'EXPERIMENTAL'|'PULL_REQUEST',
            'framework': 'string',
            'enableAutoBuild': True|False,
            'environmentVariables': {
                'string': 'string'
            },
            'basicAuthCredentials': 'string',
            'enableBasicAuth': True|False,
            'enablePerformanceMode': True|False,
            'buildSpec': 'string',
            'enablePullRequestPreview': True|False,
            'pullRequestEnvironmentName': 'string'
        },
        repository='string',
        oauthToken='string',
        accessToken='string',
        jobConfig={
            'buildComputeType': 'STANDARD_8GB'|'LARGE_16GB'|'XLARGE_72GB'
        },
        cacheConfig={
            'type': 'AMPLIFY_MANAGED'|'AMPLIFY_MANAGED_NO_COOKIES'
        }
    )
    
  :type appId: string
  :param appId: **[REQUIRED]** 

    The unique ID for an Amplify app.

    

  
  :type name: string
  :param name: 

    The name for an Amplify app.

    

  
  :type description: string
  :param description: 

    The description for an Amplify app.

    

  
  :type platform: string
  :param platform: 

    The platform for the Amplify app. For a static app, set the platform type to ``WEB``. For a dynamic server-side rendered (SSR) app, set the platform type to ``WEB_COMPUTE``. For an app requiring Amplify Hosting's original SSR support only, set the platform type to ``WEB_DYNAMIC``.

     

    If you are deploying an SSG only app with Next.js version 14 or later, you must set the platform type to ``WEB_COMPUTE``.

    

  
  :type computeRoleArn: string
  :param computeRoleArn: 

    The Amazon Resource Name (ARN) of the IAM role to assign to an SSR app. The SSR Compute role allows the Amplify Hosting compute service to securely access specific Amazon Web Services resources based on the role's permissions. For more information about the SSR Compute role, see `Adding an SSR Compute role <https://docs.aws.amazon.com/amplify/latest/userguide/amplify-SSR-compute-role.html>`__ in the *Amplify User Guide*.

    

  
  :type iamServiceRoleArn: string
  :param iamServiceRoleArn: 

    The Amazon Resource Name (ARN) of the IAM service role for the Amplify app.

    

  
  :type environmentVariables: dict
  :param environmentVariables: 

    The environment variables for an Amplify app.

    

  
    - *(string) --* 

    
      - *(string) --* 

      


  :type enableBranchAutoBuild: boolean
  :param enableBranchAutoBuild: 

    Enables branch auto-building for an Amplify app.

    

  
  :type enableBranchAutoDeletion: boolean
  :param enableBranchAutoDeletion: 

    Automatically disconnects a branch in the Amplify console when you delete a branch from your Git repository.

    

  
  :type enableBasicAuth: boolean
  :param enableBasicAuth: 

    Enables basic authorization for an Amplify app.

    

  
  :type basicAuthCredentials: string
  :param basicAuthCredentials: 

    The basic authorization credentials for an Amplify app. You must base64-encode the authorization credentials and provide them in the format ``user:password``.

    

  
  :type customRules: list
  :param customRules: 

    The custom redirect and rewrite rules for an Amplify app.

    

  
    - *(dict) --* 

      Describes a custom rewrite or redirect rule.

      

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

        The source pattern for a URL rewrite or redirect rule.

        

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

        The target pattern for a URL rewrite or redirect rule.

        

      
      - **status** *(string) --* 

        The status code for a URL rewrite or redirect rule.

          200  

        Represents a 200 rewrite rule.

          301  

        Represents a 301 (moved permanently) redirect rule. This and all future requests should be directed to the target URL.

          302  

        Represents a 302 temporary redirect rule.

          404  

        Represents a 404 redirect rule.

          404-200  

        Represents a 404 rewrite rule.

        

      
      - **condition** *(string) --* 

        The condition for a URL rewrite or redirect rule, such as a country code.

        

      
    

  :type buildSpec: string
  :param buildSpec: 

    The build specification (build spec) for an Amplify app.

    

  
  :type customHeaders: string
  :param customHeaders: 

    The custom HTTP headers for an Amplify app.

    

  
  :type enableAutoBranchCreation: boolean
  :param enableAutoBranchCreation: 

    Enables automated branch creation for an Amplify app.

    

  
  :type autoBranchCreationPatterns: list
  :param autoBranchCreationPatterns: 

    Describes the automated branch creation glob patterns for an Amplify app.

    

  
    - *(string) --* 

    

  :type autoBranchCreationConfig: dict
  :param autoBranchCreationConfig: 

    The automated branch creation configuration for an Amplify app.

    

  
    - **stage** *(string) --* 

      Describes the current stage for the autocreated branch.

      

    
    - **framework** *(string) --* 

      The framework for the autocreated branch.

      

    
    - **enableAutoBuild** *(boolean) --* 

      Enables auto building for the autocreated branch.

      

    
    - **environmentVariables** *(dict) --* 

      The environment variables for the autocreated branch.

      

    
      - *(string) --* 

      
        - *(string) --* 

        
  

    - **basicAuthCredentials** *(string) --* 

      The basic authorization credentials for the autocreated branch. You must base64-encode the authorization credentials and provide them in the format ``user:password``.

      

    
    - **enableBasicAuth** *(boolean) --* 

      Enables basic authorization for the autocreated branch.

      

    
    - **enablePerformanceMode** *(boolean) --* 

      Enables performance mode for the branch.

       

      Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out.

      

    
    - **buildSpec** *(string) --* 

      The build specification (build spec) for the autocreated branch.

      

    
    - **enablePullRequestPreview** *(boolean) --* 

      Enables pull request previews for the autocreated branch.

      

    
    - **pullRequestEnvironmentName** *(string) --* 

      The Amplify environment name for the pull request.

      

    
  
  :type repository: string
  :param repository: 

    The name of the Git repository for an Amplify app.

    

  
  :type oauthToken: string
  :param oauthToken: 

    The OAuth token for a third-party source control system for an Amplify app. The OAuth token is used to create a webhook and a read-only deploy key using SSH cloning. The OAuth token is not stored.

     

    Use ``oauthToken`` for repository providers other than GitHub, such as Bitbucket or CodeCommit.

     

    To authorize access to GitHub as your repository provider, use ``accessToken``.

     

    You must specify either ``oauthToken`` or ``accessToken`` when you update an app.

     

    Existing Amplify apps deployed from a GitHub repository using OAuth continue to work with CI/CD. However, we strongly recommend that you migrate these apps to use the GitHub App. For more information, see `Migrating an existing OAuth app to the Amplify GitHub App <https://docs.aws.amazon.com/amplify/latest/userguide/setting-up-GitHub-access.html#migrating-to-github-app-auth>`__ in the *Amplify User Guide* .

    

  
  :type accessToken: string
  :param accessToken: 

    The personal access token for a GitHub repository for an Amplify app. The personal access token is used to authorize access to a GitHub repository using the Amplify GitHub App. The token is not stored.

     

    Use ``accessToken`` for GitHub repositories only. To authorize access to a repository provider such as Bitbucket or CodeCommit, use ``oauthToken``.

     

    You must specify either ``accessToken`` or ``oauthToken`` when you update an app.

     

    Existing Amplify apps deployed from a GitHub repository using OAuth continue to work with CI/CD. However, we strongly recommend that you migrate these apps to use the GitHub App. For more information, see `Migrating an existing OAuth app to the Amplify GitHub App <https://docs.aws.amazon.com/amplify/latest/userguide/setting-up-GitHub-access.html#migrating-to-github-app-auth>`__ in the *Amplify User Guide* .

    

  
  :type jobConfig: dict
  :param jobConfig: 

    Describes the configuration details that apply to the jobs for an Amplify app.

    

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

      Specifies the size of the build instance. Amplify supports three instance sizes: ``STANDARD_8GB``, ``LARGE_16GB``, and ``XLARGE_72GB``. If you don't specify a value, Amplify uses the ``STANDARD_8GB`` default.

       

      The following list describes the CPU, memory, and storage capacity for each build instance type:

        STANDARD_8GB  

      
      * vCPUs: 4
       
      * Memory: 8 GiB
       
      * Disk space: 128 GB
      

        LARGE_16GB  

      
      * vCPUs: 8
       
      * Memory: 16 GiB
       
      * Disk space: 128 GB
      

        XLARGE_72GB  

      
      * vCPUs: 36
       
      * Memory: 72 GiB
       
      * Disk space: 256 GB
      

      

    
  
  :type cacheConfig: dict
  :param cacheConfig: 

    The cache configuration for the Amplify app.

    

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

      The type of cache configuration to use for an Amplify app.

       

      The ``AMPLIFY_MANAGED`` cache configuration automatically applies an optimized cache configuration for your app based on its platform, routing rules, and rewrite rules.

       

      The ``AMPLIFY_MANAGED_NO_COOKIES`` cache configuration type is the same as ``AMPLIFY_MANAGED``, except that it excludes all cookies from the cache key. This is the default setting.

      

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

    
    ::

      {
          'app': {
              'appId': 'string',
              'appArn': 'string',
              'name': 'string',
              'tags': {
                  'string': 'string'
              },
              'description': 'string',
              'repository': 'string',
              'platform': 'WEB'|'WEB_DYNAMIC'|'WEB_COMPUTE',
              'createTime': datetime(2015, 1, 1),
              'updateTime': datetime(2015, 1, 1),
              'computeRoleArn': 'string',
              'iamServiceRoleArn': 'string',
              'environmentVariables': {
                  'string': 'string'
              },
              'defaultDomain': 'string',
              'enableBranchAutoBuild': True|False,
              'enableBranchAutoDeletion': True|False,
              'enableBasicAuth': True|False,
              'basicAuthCredentials': 'string',
              'customRules': [
                  {
                      'source': 'string',
                      'target': 'string',
                      'status': 'string',
                      'condition': 'string'
                  },
              ],
              'productionBranch': {
                  'lastDeployTime': datetime(2015, 1, 1),
                  'status': 'string',
                  'thumbnailUrl': 'string',
                  'branchName': 'string'
              },
              'buildSpec': 'string',
              'customHeaders': 'string',
              'enableAutoBranchCreation': True|False,
              'autoBranchCreationPatterns': [
                  'string',
              ],
              'autoBranchCreationConfig': {
                  'stage': 'PRODUCTION'|'BETA'|'DEVELOPMENT'|'EXPERIMENTAL'|'PULL_REQUEST',
                  'framework': 'string',
                  'enableAutoBuild': True|False,
                  'environmentVariables': {
                      'string': 'string'
                  },
                  'basicAuthCredentials': 'string',
                  'enableBasicAuth': True|False,
                  'enablePerformanceMode': True|False,
                  'buildSpec': 'string',
                  'enablePullRequestPreview': True|False,
                  'pullRequestEnvironmentName': 'string'
              },
              'repositoryCloneMethod': 'SSH'|'TOKEN'|'SIGV4',
              'cacheConfig': {
                  'type': 'AMPLIFY_MANAGED'|'AMPLIFY_MANAGED_NO_COOKIES'
              },
              'webhookCreateTime': datetime(2015, 1, 1),
              'wafConfiguration': {
                  'webAclArn': 'string',
                  'wafStatus': 'ASSOCIATING'|'ASSOCIATION_FAILED'|'ASSOCIATION_SUCCESS'|'DISASSOCIATING'|'DISASSOCIATION_FAILED',
                  'statusReason': 'string'
              },
              'jobConfig': {
                  'buildComputeType': 'STANDARD_8GB'|'LARGE_16GB'|'XLARGE_72GB'
              }
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 

      The result structure for an Amplify app update request.

      
      

      - **app** *(dict) --* 

        Represents the updated Amplify app.

        
        

        - **appId** *(string) --* 

          The unique ID of the Amplify app.

          
        

        - **appArn** *(string) --* 

          The Amazon Resource Name (ARN) of the Amplify app.

          
        

        - **name** *(string) --* 

          The name for the Amplify app.

          
        

        - **tags** *(dict) --* 

          The tag for the Amplify app.

          
          

          - *(string) --* 
            

            - *(string) --* 
      
    
        

        - **description** *(string) --* 

          The description for the Amplify app.

          
        

        - **repository** *(string) --* 

          The Git repository for the Amplify app.

          
        

        - **platform** *(string) --* 

          The platform for the Amplify app. For a static app, set the platform type to ``WEB``. For a dynamic server-side rendered (SSR) app, set the platform type to ``WEB_COMPUTE``. For an app requiring Amplify Hosting's original SSR support only, set the platform type to ``WEB_DYNAMIC``.

           

          If you are deploying an SSG only app with Next.js 14 or later, you must use the platform type ``WEB_COMPUTE``.

          
        

        - **createTime** *(datetime) --* 

          A timestamp of when Amplify created the application.

          
        

        - **updateTime** *(datetime) --* 

          A timestamp of when Amplify updated the application.

          
        

        - **computeRoleArn** *(string) --* 

          The Amazon Resource Name (ARN) of the IAM role for an SSR app. The Compute role allows the Amplify Hosting compute service to securely access specific Amazon Web Services resources based on the role's permissions. For more information about the SSR Compute role, see `Adding an SSR Compute role <https://docs.aws.amazon.com/amplify/latest/userguide/amplify-SSR-compute-role.html>`__ in the *Amplify User Guide*.

          
        

        - **iamServiceRoleArn** *(string) --* 

          The Amazon Resource Name (ARN) of the IAM service role for the Amplify app.

          
        

        - **environmentVariables** *(dict) --* 

          The environment variables for the Amplify app.

           

          For a list of the environment variables that are accessible to Amplify by default, see `Amplify Environment variables <https://docs.aws.amazon.com/amplify/latest/userguide/amplify-console-environment-variables.html>`__ in the *Amplify Hosting User Guide*.

          
          

          - *(string) --* 
            

            - *(string) --* 
      
    
        

        - **defaultDomain** *(string) --* 

          The default domain for the Amplify app.

          
        

        - **enableBranchAutoBuild** *(boolean) --* 

          Enables the auto-building of branches for the Amplify app.

          
        

        - **enableBranchAutoDeletion** *(boolean) --* 

          Automatically disconnect a branch in the Amplify console when you delete a branch from your Git repository.

          
        

        - **enableBasicAuth** *(boolean) --* 

          Enables basic authorization for the Amplify app's branches.

          
        

        - **basicAuthCredentials** *(string) --* 

          The basic authorization credentials for branches for the Amplify app. You must base64-encode the authorization credentials and provide them in the format ``user:password``.

          
        

        - **customRules** *(list) --* 

          Describes the custom redirect and rewrite rules for the Amplify app.

          
          

          - *(dict) --* 

            Describes a custom rewrite or redirect rule.

            
            

            - **source** *(string) --* 

              The source pattern for a URL rewrite or redirect rule.

              
            

            - **target** *(string) --* 

              The target pattern for a URL rewrite or redirect rule.

              
            

            - **status** *(string) --* 

              The status code for a URL rewrite or redirect rule.

                200  

              Represents a 200 rewrite rule.

                301  

              Represents a 301 (moved permanently) redirect rule. This and all future requests should be directed to the target URL.

                302  

              Represents a 302 temporary redirect rule.

                404  

              Represents a 404 redirect rule.

                404-200  

              Represents a 404 rewrite rule.

              
            

            - **condition** *(string) --* 

              The condition for a URL rewrite or redirect rule, such as a country code.

              
        
      
        

        - **productionBranch** *(dict) --* 

          Describes the information about a production branch of the Amplify app.

          
          

          - **lastDeployTime** *(datetime) --* 

            The last deploy time of the production branch.

            
          

          - **status** *(string) --* 

            The status of the production branch.

            
          

          - **thumbnailUrl** *(string) --* 

            The thumbnail URL for the production branch.

            
          

          - **branchName** *(string) --* 

            The branch name for the production branch.

            
      
        

        - **buildSpec** *(string) --* 

          Describes the content of the build specification (build spec) for the Amplify app.

          
        

        - **customHeaders** *(string) --* 

          Describes the custom HTTP headers for the Amplify app.

          
        

        - **enableAutoBranchCreation** *(boolean) --* 

          Enables automated branch creation for the Amplify app.

          
        

        - **autoBranchCreationPatterns** *(list) --* 

          Describes the automated branch creation glob patterns for the Amplify app.

          
          

          - *(string) --* 
      
        

        - **autoBranchCreationConfig** *(dict) --* 

          Describes the automated branch creation configuration for the Amplify app.

          
          

          - **stage** *(string) --* 

            Describes the current stage for the autocreated branch.

            
          

          - **framework** *(string) --* 

            The framework for the autocreated branch.

            
          

          - **enableAutoBuild** *(boolean) --* 

            Enables auto building for the autocreated branch.

            
          

          - **environmentVariables** *(dict) --* 

            The environment variables for the autocreated branch.

            
            

            - *(string) --* 
              

              - *(string) --* 
        
      
          

          - **basicAuthCredentials** *(string) --* 

            The basic authorization credentials for the autocreated branch. You must base64-encode the authorization credentials and provide them in the format ``user:password``.

            
          

          - **enableBasicAuth** *(boolean) --* 

            Enables basic authorization for the autocreated branch.

            
          

          - **enablePerformanceMode** *(boolean) --* 

            Enables performance mode for the branch.

             

            Performance mode optimizes for faster hosting performance by keeping content cached at the edge for a longer interval. When performance mode is enabled, hosting configuration or code changes can take up to 10 minutes to roll out.

            
          

          - **buildSpec** *(string) --* 

            The build specification (build spec) for the autocreated branch.

            
          

          - **enablePullRequestPreview** *(boolean) --* 

            Enables pull request previews for the autocreated branch.

            
          

          - **pullRequestEnvironmentName** *(string) --* 

            The Amplify environment name for the pull request.

            
      
        

        - **repositoryCloneMethod** *(string) --* 

          .. note::

            

            This is for internal use.

            

           

          The Amplify service uses this parameter to specify the authentication protocol to use to access the Git repository for an Amplify app. Amplify specifies ``TOKEN`` for a GitHub repository, ``SIGV4`` for an Amazon Web Services CodeCommit repository, and ``SSH`` for GitLab and Bitbucket repositories.

          
        

        - **cacheConfig** *(dict) --* 

          The cache configuration for the Amplify app. If you don't specify the cache configuration ``type``, Amplify uses the default ``AMPLIFY_MANAGED`` setting.

          
          

          - **type** *(string) --* 

            The type of cache configuration to use for an Amplify app.

             

            The ``AMPLIFY_MANAGED`` cache configuration automatically applies an optimized cache configuration for your app based on its platform, routing rules, and rewrite rules.

             

            The ``AMPLIFY_MANAGED_NO_COOKIES`` cache configuration type is the same as ``AMPLIFY_MANAGED``, except that it excludes all cookies from the cache key. This is the default setting.

            
      
        

        - **webhookCreateTime** *(datetime) --* 

          A timestamp of when Amplify created the webhook in your Git repository.

          
        

        - **wafConfiguration** *(dict) --* 

          Describes the Firewall configuration for the Amplify app. Firewall support enables you to protect your hosted applications with a direct integration with WAF.

          
          

          - **webAclArn** *(string) --* 

            The Amazon Resource Name (ARN) for the web ACL associated with an Amplify app.

            
          

          - **wafStatus** *(string) --* 

            The status of the process to associate or disassociate a web ACL to an Amplify app.

            
          

          - **statusReason** *(string) --* 

            The reason for the current status of the Firewall configuration.

            
      
        

        - **jobConfig** *(dict) --* 

          The configuration details that apply to the jobs for an Amplify app.

          
          

          - **buildComputeType** *(string) --* 

            Specifies the size of the build instance. Amplify supports three instance sizes: ``STANDARD_8GB``, ``LARGE_16GB``, and ``XLARGE_72GB``. If you don't specify a value, Amplify uses the ``STANDARD_8GB`` default.

             

            The following list describes the CPU, memory, and storage capacity for each build instance type:

              STANDARD_8GB  

            
            * vCPUs: 4
             
            * Memory: 8 GiB
             
            * Disk space: 128 GB
            

              LARGE_16GB  

            
            * vCPUs: 8
             
            * Memory: 16 GiB
             
            * Disk space: 128 GB
            

              XLARGE_72GB  

            
            * vCPUs: 36
             
            * Memory: 72 GiB
             
            * Disk space: 256 GB
            

            
      
    
  
  **Exceptions**
  
  *   :py:class:`Amplify.Client.exceptions.BadRequestException`

  
  *   :py:class:`Amplify.Client.exceptions.NotFoundException`

  
  *   :py:class:`Amplify.Client.exceptions.UnauthorizedException`

  
  *   :py:class:`Amplify.Client.exceptions.InternalFailureException`

  