Amplify / Client / create_app

create_app#

Amplify.Client.create_app(**kwargs)#

Creates a new Amplify app.

See also: AWS API Documentation

Request Syntax

response = client.create_app(
    name='string',
    description='string',
    repository='string',
    platform='WEB'|'WEB_DYNAMIC'|'WEB_COMPUTE',
    iamServiceRoleArn='string',
    oauthToken='string',
    accessToken='string',
    environmentVariables={
        'string': 'string'
    },
    enableBranchAutoBuild=True|False,
    enableBranchAutoDeletion=True|False,
    enableBasicAuth=True|False,
    basicAuthCredentials='string',
    customRules=[
        {
            'source': 'string',
            'target': 'string',
            'status': 'string',
            'condition': 'string'
        },
    ],
    tags={
        'string': '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'
    },
    cacheConfig={
        'type': 'AMPLIFY_MANAGED'|'AMPLIFY_MANAGED_NO_COOKIES'
    }
)
Parameters:
  • name (string) –

    [REQUIRED]

    The name of the Amplify app.

  • description (string) – The description of 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 version 14 or later, you must set the platform type to WEB_COMPUTE and set the artifacts baseDirectory to .next in the application’s build settings. For an example of the build specification settings, see Amplify build settings for a Next.js 14 SSG application in the Amplify Hosting User Guide.

  • iamServiceRoleArn (string) – The AWS Identity and Access Management (IAM) service role for an Amplify app.

  • oauthToken (string) –

    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 create a new 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 in the Amplify User Guide .

  • accessToken (string) –

    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 create a new 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 in the Amplify User Guide .

  • environmentVariables (dict) –

    The environment variables map for an Amplify app.

    For a list of the environment variables that are accessible to Amplify by default, see Amplify Environment variables in the Amplify Hosting User Guide.

    • (string) –

      • (string) –

  • enableBranchAutoBuild (boolean) – Enables the auto building of branches for an Amplify app.

  • enableBranchAutoDeletion (boolean) – Automatically disconnects a branch in the Amplify console when you delete a branch from your Git repository.

  • enableBasicAuth (boolean) – Enables basic authorization for an Amplify app. This will apply to all branches that are part of this app.

  • basicAuthCredentials (string) – The credentials for basic authorization for an Amplify app. You must base64-encode the authorization credentials and provide them in the format user:password.

  • customRules (list) –

    The custom rewrite and redirect 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.

  • tags (dict) –

    The tag for an Amplify app.

    • (string) –

      • (string) –

  • buildSpec (string) – The build specification (build spec) for an Amplify app.

  • customHeaders (string) – The custom HTTP headers for an Amplify app.

  • enableAutoBranchCreation (boolean) – Enables automated branch creation for an Amplify app.

  • autoBranchCreationPatterns (list) –

    The automated branch creation glob patterns for an Amplify app.

    • (string) –

  • autoBranchCreationConfig (dict) –

    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.

  • cacheConfig (dict) –

    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. This is the default setting.

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

Return type:

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),
        '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'
        }
    }
}

Response Structure

  • (dict) –

    • app (dict) –

      Represents the different branches of a repository for building, deploying, and hosting an 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) –

        Creates a date and time for the Amplify app.

      • updateTime (datetime) –

        Updates the date and time for the Amplify app.

      • iamServiceRoleArn (string) –

        The AWS Identity and Access Management (IAM) service role for the Amazon Resource Name (ARN) of 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 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. This is the default setting.

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

Exceptions

  • Amplify.Client.exceptions.BadRequestException

  • Amplify.Client.exceptions.UnauthorizedException

  • Amplify.Client.exceptions.InternalFailureException

  • Amplify.Client.exceptions.LimitExceededException

  • Amplify.Client.exceptions.DependentServiceFailureException