Skip to content

create_app

create_app(
    name: Name,
    *,
    config_overrides: Optional[AmplifyClientConfig] = None,
    description: Optional[Description] = None,
    repository: Optional[Repository] = None,
    platform: Optional[Platform] = None,
    compute_role_arn: Optional[ComputeRoleArn] = None,
    iam_service_role_arn: Optional[ServiceRoleArn] = None,
    oauth_token: Optional[OauthToken] = None,
    access_token: Optional[AccessToken] = None,
    environment_variables: Optional[EnvironmentVariables] = None,
    enable_branch_auto_build: Optional[EnableBranchAutoBuild] = None,
    enable_branch_auto_deletion: Optional[EnableBranchAutoDeletion] = None,
    enable_basic_auth: Optional[EnableBasicAuth] = None,
    basic_auth_credentials: Optional[BasicAuthCredentials] = None,
    custom_rules: Optional[CustomRules] = None,
    tags: Optional[TagMap] = None,
    build_spec: Optional[BuildSpec] = None,
    custom_headers: Optional[CustomHeaders] = None,
    enable_auto_branch_creation: Optional[EnableAutoBranchCreation] = None,
    auto_branch_creation_patterns: Optional[AutoBranchCreationPatterns] = None,
    auto_branch_creation_config: Optional[AutoBranchCreationConfig] = None,
    job_config: Optional[JobConfig] = None,
    cache_config: Optional[CacheConfig] = None,
) -> CreateAppResult

Creates a new Amplify app.

Parameters:

  • name (Name) –

    The name of the Amplify app.

  • description (Optional[Description], default: None ) –

    The description of the Amplify app.

  • repository (Optional[Repository], default: None ) –

    The Git repository for the Amplify app.

  • platform (Optional[Platform], default: None ) –

    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.

  • compute_role_arn (Optional[ComputeRoleArn], default: None ) –

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

  • iam_service_role_arn (Optional[ServiceRoleArn], default: None ) –

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

  • oauth_token (Optional[OauthToken], default: None ) –

    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 .

  • access_token (Optional[AccessToken], default: None ) –

    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 .

  • environment_variables (Optional[EnvironmentVariables], default: None ) –

    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.

  • enable_branch_auto_build (Optional[EnableBranchAutoBuild], default: None ) –

    Enables the auto building of branches for an Amplify app.

  • enable_branch_auto_deletion (Optional[EnableBranchAutoDeletion], default: None ) –

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

  • enable_basic_auth (Optional[EnableBasicAuth], default: None ) –

    Enables basic authorization for an Amplify app. This will apply to all branches that are part of this app.

  • basic_auth_credentials (Optional[BasicAuthCredentials], default: None ) –

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

  • custom_rules (Optional[CustomRules], default: None ) –

    The custom rewrite and redirect rules for an Amplify app.

  • tags (Optional[TagMap], default: None ) –

    The tag for an Amplify app.

  • build_spec (Optional[BuildSpec], default: None ) –

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

  • custom_headers (Optional[CustomHeaders], default: None ) –

    The custom HTTP headers for an Amplify app.

  • enable_auto_branch_creation (Optional[EnableAutoBranchCreation], default: None ) –

    Enables automated branch creation for an Amplify app.

  • auto_branch_creation_patterns (Optional[AutoBranchCreationPatterns], default: None ) –

    The automated branch creation glob patterns for an Amplify app.

  • auto_branch_creation_config (Optional[AutoBranchCreationConfig], default: None ) –

    The automated branch creation configuration for an Amplify app.

  • job_config (Optional[JobConfig], default: None ) –

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

  • cache_config (Optional[CacheConfig], default: None ) –

    The cache configuration for the Amplify app.

Raises:

Source code in docs_src/capo_amplify/_services/amplify.py
def create_app(
    self,
    name: "capo_amplify.types.name.Name",
    *,
    config_overrides: Optional[AmplifyClientConfig] = None,
    description: Optional["capo_amplify.types.description.Description"] = None,
    repository: Optional["capo_amplify.types.repository.Repository"] = None,
    platform: Optional["capo_amplify.types.platform.Platform"] = None,
    compute_role_arn: Optional[
        "capo_amplify.types.compute_role_arn.ComputeRoleArn"
    ] = None,
    iam_service_role_arn: Optional[
        "capo_amplify.types.service_role_arn.ServiceRoleArn"
    ] = None,
    oauth_token: Optional["capo_amplify.types.oauth_token.OauthToken"] = None,
    access_token: Optional["capo_amplify.types.access_token.AccessToken"] = None,
    environment_variables: Optional[
        "capo_amplify.types.environment_variables.EnvironmentVariables"
    ] = None,
    enable_branch_auto_build: Optional[
        "capo_amplify.types.enable_branch_auto_build.EnableBranchAutoBuild"
    ] = None,
    enable_branch_auto_deletion: Optional[
        "capo_amplify.types.enable_branch_auto_deletion.EnableBranchAutoDeletion"
    ] = None,
    enable_basic_auth: Optional[
        "capo_amplify.types.enable_basic_auth.EnableBasicAuth"
    ] = None,
    basic_auth_credentials: Optional[
        "capo_amplify.types.basic_auth_credentials.BasicAuthCredentials"
    ] = None,
    custom_rules: Optional["capo_amplify.types.custom_rules.CustomRules"] = None,
    tags: Optional["capo_amplify.types.tag_map.TagMap"] = None,
    build_spec: Optional["capo_amplify.types.build_spec.BuildSpec"] = None,
    custom_headers: Optional[
        "capo_amplify.types.custom_headers.CustomHeaders"
    ] = None,
    enable_auto_branch_creation: Optional[
        "capo_amplify.types.enable_auto_branch_creation.EnableAutoBranchCreation"
    ] = None,
    auto_branch_creation_patterns: Optional[
        "capo_amplify.types.auto_branch_creation_patterns.AutoBranchCreationPatterns"
    ] = None,
    auto_branch_creation_config: Optional[
        "capo_amplify.types.auto_branch_creation_config.AutoBranchCreationConfig"
    ] = None,
    job_config: Optional["capo_amplify.types.job_config.JobConfig"] = None,
    cache_config: Optional["capo_amplify.types.cache_config.CacheConfig"] = None,
) -> "capo_amplify.types.create_app_result.CreateAppResult":
    """<p>Creates a new Amplify app. </p>

    Args:
        name: <p>The name of the Amplify app. </p>
        description: <p>The description of the Amplify app. </p>
        repository: <p>The Git repository for the Amplify app. </p>
        platform: <p>The platform for the Amplify app. For a static app, set the platform type to <code>WEB</code>. For a dynamic server-side rendered (SSR) app, set the platform type to <code>WEB_COMPUTE</code>. For an app requiring Amplify Hosting's original SSR support only, set the platform type to <code>WEB_DYNAMIC</code>.</p> <p>If you are deploying an SSG only app with Next.js version 14 or later, you must set the platform type to <code>WEB_COMPUTE</code> and set the artifacts <code>baseDirectory</code> to <code>.next</code> in the application's build settings. For an example of the build specification settings, see <a href="https://docs.aws.amazon.com/amplify/latest/userguide/deploy-nextjs-app.html#build-setting-detection-ssg-14">Amplify build settings for a Next.js 14 SSG application</a> in the <i>Amplify Hosting User Guide</i>.</p>
        compute_role_arn: <p>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 <a href="https://docs.aws.amazon.com/amplify/latest/userguide/amplify-SSR-compute-role.html">Adding an SSR Compute role</a> in the <i>Amplify User Guide</i>.</p>
        iam_service_role_arn: <p>The Amazon Resource Name (ARN) of the IAM service role for the Amplify app.</p>
        oauth_token: <p>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.</p> <p>Use <code>oauthToken</code> for repository providers other than GitHub, such as Bitbucket or CodeCommit. To authorize access to GitHub as your repository provider, use <code>accessToken</code>.</p> <p>You must specify either <code>oauthToken</code> or <code>accessToken</code> when you create a new app.</p> <p>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 <a href="https://docs.aws.amazon.com/amplify/latest/userguide/setting-up-GitHub-access.html#migrating-to-github-app-auth">Migrating an existing OAuth app to the Amplify GitHub App</a> in the <i>Amplify User Guide</i> .</p>
        access_token: <p>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.</p> <p>Use <code>accessToken</code> for GitHub repositories only. To authorize access to a repository provider such as Bitbucket or CodeCommit, use <code>oauthToken</code>.</p> <p>You must specify either <code>accessToken</code> or <code>oauthToken</code> when you create a new app.</p> <p>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 <a href="https://docs.aws.amazon.com/amplify/latest/userguide/setting-up-GitHub-access.html#migrating-to-github-app-auth">Migrating an existing OAuth app to the Amplify GitHub App</a> in the <i>Amplify User Guide</i> .</p>
        environment_variables: <p>The environment variables map for an Amplify app. </p> <p>For a list of the environment variables that are accessible to Amplify by default, see <a href="https://docs.aws.amazon.com/amplify/latest/userguide/amplify-console-environment-variables.html">Amplify Environment variables</a> in the <i>Amplify Hosting User Guide</i>.</p>
        enable_branch_auto_build: <p>Enables the auto building of branches for an Amplify app. </p>
        enable_branch_auto_deletion: <p>Automatically disconnects a branch in the Amplify console when you delete a branch from your Git repository. </p>
        enable_basic_auth: <p>Enables basic authorization for an Amplify app. This will apply to all branches that are part of this app. </p>
        basic_auth_credentials: <p>The credentials for basic authorization for an Amplify app. You must base64-encode the authorization credentials and provide them in the format <code>user:password</code>.</p>
        custom_rules: <p>The custom rewrite and redirect rules for an Amplify app. </p>
        tags: <p>The tag for an Amplify app. </p>
        build_spec: <p>The build specification (build spec) for an Amplify app. </p>
        custom_headers: <p>The custom HTTP headers for an Amplify app.</p>
        enable_auto_branch_creation: <p>Enables automated branch creation for an Amplify app. </p>
        auto_branch_creation_patterns: <p>The automated branch creation glob patterns for an Amplify app. </p>
        auto_branch_creation_config: <p>The automated branch creation configuration for an Amplify app. </p>
        job_config: <p>Describes the configuration details that apply to the jobs for an Amplify app.</p>
        cache_config: <p>The cache configuration for the Amplify app.</p>

    Raises:
        capo_amplify.errors.bad_request_exception.BadRequestException: <p>A request contains unexpected data. </p>
        capo_amplify.errors.dependent_service_failure_exception.DependentServiceFailureException: <p>An operation failed because a dependent service threw an exception. </p>
        capo_amplify.errors.internal_failure_exception.InternalFailureException: <p>The service failed to perform an operation due to an internal issue. </p>
        capo_amplify.errors.limit_exceeded_exception.LimitExceededException: <p>A resource could not be created because service quotas were exceeded. </p>
        capo_amplify.errors.unauthorized_exception.UnauthorizedException: <p>An operation failed due to a lack of access. </p>
        capo_amplify.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_amplify.types.create_app_request.CreateAppRequest]",
    ) -> OperationResponse["capo_amplify.types.create_app_result.CreateAppResult"]:
        import capo_amplify._operations.amplify.create_app

        output, http_response = (
            capo_amplify._operations.amplify.create_app.create_app(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    def _redact_input(
        input_: "capo_amplify.types.create_app_request.CreateAppRequest",
    ) -> dict[str, Any]:
        import capo_amplify.types.create_app_request

        return capo_amplify.types.create_app_request.redact_sensitive(input_)

    def _redact_output(
        output: "capo_amplify.types.create_app_result.CreateAppResult",
    ) -> dict[str, Any]:
        import capo_amplify.types.create_app_result

        return capo_amplify.types.create_app_result.redact_sensitive(output)

    interceptors_, options_ = self.operation_options(
        config_overrides,
        OperationLogging(
            "CreateApp", redact_input=_redact_input, redact_output=_redact_output
        ),
    )
    input_: capo_amplify.types.create_app_request.CreateAppRequest = {"name": name}
    if description is not None:
        input_["description"] = description
    if repository is not None:
        input_["repository"] = repository
    if platform is not None:
        input_["platform"] = platform
    if compute_role_arn is not None:
        input_["compute_role_arn"] = compute_role_arn
    if iam_service_role_arn is not None:
        input_["iam_service_role_arn"] = iam_service_role_arn
    if oauth_token is not None:
        input_["oauth_token"] = oauth_token
    if access_token is not None:
        input_["access_token"] = access_token
    if environment_variables is not None:
        input_["environment_variables"] = environment_variables
    if enable_branch_auto_build is not None:
        input_["enable_branch_auto_build"] = enable_branch_auto_build
    if enable_branch_auto_deletion is not None:
        input_["enable_branch_auto_deletion"] = enable_branch_auto_deletion
    if enable_basic_auth is not None:
        input_["enable_basic_auth"] = enable_basic_auth
    if basic_auth_credentials is not None:
        input_["basic_auth_credentials"] = basic_auth_credentials
    if custom_rules is not None:
        input_["custom_rules"] = custom_rules
    if tags is not None:
        input_["tags"] = tags
    if build_spec is not None:
        input_["build_spec"] = build_spec
    if custom_headers is not None:
        input_["custom_headers"] = custom_headers
    if enable_auto_branch_creation is not None:
        input_["enable_auto_branch_creation"] = enable_auto_branch_creation
    if auto_branch_creation_patterns is not None:
        input_["auto_branch_creation_patterns"] = auto_branch_creation_patterns
    if auto_branch_creation_config is not None:
        input_["auto_branch_creation_config"] = auto_branch_creation_config
    if job_config is not None:
        input_["job_config"] = job_config
    if cache_config is not None:
        input_["cache_config"] = cache_config

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