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

*************
create_branch
*************



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

  

  Creates a new branch for an Amplify app.

  

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


  **Request Syntax**
  ::

    response = client.create_branch(
        appId='string',
        branchName='string',
        description='string',
        stage='PRODUCTION'|'BETA'|'DEVELOPMENT'|'EXPERIMENTAL'|'PULL_REQUEST',
        framework='string',
        enableNotification=True|False,
        enableAutoBuild=True|False,
        enableSkewProtection=True|False,
        environmentVariables={
            'string': 'string'
        },
        basicAuthCredentials='string',
        enableBasicAuth=True|False,
        enablePerformanceMode=True|False,
        tags={
            'string': 'string'
        },
        buildSpec='string',
        ttl='string',
        displayName='string',
        enablePullRequestPreview=True|False,
        pullRequestEnvironmentName='string',
        backendEnvironmentArn='string',
        backend={
            'stackArn': 'string'
        },
        computeRoleArn='string'
    )
    
  :type appId: string
  :param appId: **[REQUIRED]** 

    The unique ID for an Amplify app.

    

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

    The name for the branch.

    

  
  :type description: string
  :param description: 

    The description for the branch.

    

  
  :type stage: string
  :param stage: 

    Describes the current stage for the branch.

    

  
  :type framework: string
  :param framework: 

    The framework for the branch.

    

  
  :type enableNotification: boolean
  :param enableNotification: 

    Enables notifications for the branch.

    

  
  :type enableAutoBuild: boolean
  :param enableAutoBuild: 

    Enables auto building for the branch.

    

  
  :type enableSkewProtection: boolean
  :param enableSkewProtection: 

    Specifies whether the skew protection feature is enabled for the branch.

     

    Deployment skew protection is available to Amplify applications to eliminate version skew issues between client and servers in web applications. When you apply skew protection to a branch, you can ensure that your clients always interact with the correct version of server-side assets, regardless of when a deployment occurs. For more information about skew protection, see `Skew protection for Amplify deployments <https://docs.aws.amazon.com/amplify/latest/userguide/skew-protection.html>`__ in the *Amplify User Guide*.

    

  
  :type environmentVariables: dict
  :param environmentVariables: 

    The environment variables for the branch.

    

  
    - *(string) --* 

    
      - *(string) --* 

      


  :type basicAuthCredentials: string
  :param basicAuthCredentials: 

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

    

  
  :type enableBasicAuth: boolean
  :param enableBasicAuth: 

    Enables basic authorization for the branch.

    

  
  :type enablePerformanceMode: boolean
  :param enablePerformanceMode: 

    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.

    

  
  :type tags: dict
  :param tags: 

    The tag for the branch.

    

  
    - *(string) --* 

    
      - *(string) --* 

      


  :type buildSpec: string
  :param buildSpec: 

    The build specification (build spec) for the branch.

    

  
  :type ttl: string
  :param ttl: 

    The content Time To Live (TTL) for the website in seconds.

    

  
  :type displayName: string
  :param displayName: 

    The display name for a branch. This is used as the default domain prefix.

    

  
  :type enablePullRequestPreview: boolean
  :param enablePullRequestPreview: 

    Enables pull request previews for this branch.

    

  
  :type pullRequestEnvironmentName: string
  :param pullRequestEnvironmentName: 

    The Amplify environment name for the pull request.

    

  
  :type backendEnvironmentArn: string
  :param backendEnvironmentArn: 

    The Amazon Resource Name (ARN) for a backend environment that is part of a Gen 1 Amplify app.

     

    This field is available to Amplify Gen 1 apps only where the backend is created using Amplify Studio or the Amplify command line interface (CLI).

    

  
  :type backend: dict
  :param backend: 

    The backend for a ``Branch`` of an Amplify app. Use for a backend created from an CloudFormation stack.

     

    This field is available to Amplify Gen 2 apps only. When you deploy an application with Amplify Gen 2, you provision the app's backend infrastructure using Typescript code.

    

  
    - **stackArn** *(string) --* 

      The Amazon Resource Name (ARN) for the CloudFormation stack.

      

    
  
  :type computeRoleArn: string
  :param computeRoleArn: 

    The Amazon Resource Name (ARN) of the IAM role to assign to a branch of 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*.

    

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

    
    ::

      {
          'branch': {
              'branchArn': 'string',
              'branchName': 'string',
              'description': 'string',
              'tags': {
                  'string': 'string'
              },
              'stage': 'PRODUCTION'|'BETA'|'DEVELOPMENT'|'EXPERIMENTAL'|'PULL_REQUEST',
              'displayName': 'string',
              'enableNotification': True|False,
              'createTime': datetime(2015, 1, 1),
              'updateTime': datetime(2015, 1, 1),
              'environmentVariables': {
                  'string': 'string'
              },
              'enableAutoBuild': True|False,
              'enableSkewProtection': True|False,
              'customDomains': [
                  'string',
              ],
              'framework': 'string',
              'activeJobId': 'string',
              'totalNumberOfJobs': 'string',
              'enableBasicAuth': True|False,
              'enablePerformanceMode': True|False,
              'thumbnailUrl': 'string',
              'basicAuthCredentials': 'string',
              'buildSpec': 'string',
              'ttl': 'string',
              'associatedResources': [
                  'string',
              ],
              'enablePullRequestPreview': True|False,
              'pullRequestEnvironmentName': 'string',
              'destinationBranch': 'string',
              'sourceBranch': 'string',
              'backendEnvironmentArn': 'string',
              'backend': {
                  'stackArn': 'string'
              },
              'computeRoleArn': 'string'
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 

      The result structure for create branch request.

      
      

      - **branch** *(dict) --* 

        Describes the branch for an Amplify app, which maps to a third-party repository branch.

        
        

        - **branchArn** *(string) --* 

          The Amazon Resource Name (ARN) for a branch that is part of an Amplify app.

          
        

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

          The name for the branch that is part of an Amplify app.

          
        

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

          The description for the branch that is part of an Amplify app.

          
        

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

          The tag for the branch of an Amplify app.

          
          

          - *(string) --* 
            

            - *(string) --* 
      
    
        

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

          The current stage for the branch that is part of an Amplify app.

          
        

        - **displayName** *(string) --* 

          The display name for the branch. This is used as the default domain prefix.

          
        

        - **enableNotification** *(boolean) --* 

          Enables notifications for a branch that is part of an Amplify app.

          
        

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

          A timestamp of when Amplify created the branch.

          
        

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

          A timestamp for the last updated time for a branch.

          
        

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

          The environment variables specific to a branch of an Amplify app.

          
          

          - *(string) --* 
            

            - *(string) --* 
      
    
        

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

          Enables auto-building on push for a branch of an Amplify app.

          
        

        - **enableSkewProtection** *(boolean) --* 

          Specifies whether the skew protection feature is enabled for the branch.

           

          Deployment skew protection is available to Amplify applications to eliminate version skew issues between client and servers in web applications. When you apply skew protection to a branch, you can ensure that your clients always interact with the correct version of server-side assets, regardless of when a deployment occurs. For more information about skew protection, see `Skew protection for Amplify deployments <https://docs.aws.amazon.com/amplify/latest/userguide/skew-protection.html>`__ in the *Amplify User Guide*.

          
        

        - **customDomains** *(list) --* 

          The custom domains for a branch of an Amplify app.

          
          

          - *(string) --* 
      
        

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

          The framework for a branch of an Amplify app.

          
        

        - **activeJobId** *(string) --* 

          The ID of the active job for a branch of an Amplify app.

          
        

        - **totalNumberOfJobs** *(string) --* 

          The total number of jobs that are part of an Amplify app.

          
        

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

          Enables basic authorization for a branch of an Amplify app.

          
        

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

          
        

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

          The thumbnail URL for the branch of an Amplify app.

          
        

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

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

          
        

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

          The build specification (build spec) content for the branch of an Amplify app.

          
        

        - **ttl** *(string) --* 

          The content Time to Live (TTL) for the website in seconds.

          
        

        - **associatedResources** *(list) --* 

          A list of custom resources that are linked to this branch.

          
          

          - *(string) --* 
      
        

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

          Enables pull request previews for the branch.

          
        

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

          The Amplify environment name for the pull request.

          
        

        - **destinationBranch** *(string) --* 

          The destination branch if the branch is a pull request branch.

          
        

        - **sourceBranch** *(string) --* 

          The source branch if the branch is a pull request branch.

          
        

        - **backendEnvironmentArn** *(string) --* 

          The Amazon Resource Name (ARN) for a backend environment that is part of an Amplify app.

           

          This property is available to Amplify Gen 1 apps only. When you deploy an application with Amplify Gen 2, you provision the app's backend infrastructure using Typescript code.

          
        

        - **backend** *(dict) --* 

          Describes the backend associated with an Amplify ``Branch``.

           

          This property is available to Amplify Gen 2 apps only. When you deploy an application with Amplify Gen 2, you provision the app's backend infrastructure using Typescript code.

          
          

          - **stackArn** *(string) --* 

            The Amazon Resource Name (ARN) for the CloudFormation stack.

            
      
        

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

          The Amazon Resource Name (ARN) of the IAM role for a branch of 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*.

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

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

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

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

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

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

  