

This is the new *CloudFormation Template Reference Guide*. Please update your bookmarks and links. For help getting started with CloudFormation, see the [AWS CloudFormation User Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

# AWS::Amplify::App
<a name="aws-resource-amplify-app"></a>

 The AWS::Amplify::App resource specifies Apps in Amplify Hosting. An App is a collection of branches. 

## Syntax
<a name="aws-resource-amplify-app-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-amplify-app-syntax.json"></a>

```
{
  "Type" : "AWS::Amplify::App",
  "Properties" : {
      "[AccessToken](#cfn-amplify-app-accesstoken)" : String,
      "[AutoBranchCreationConfig](#cfn-amplify-app-autobranchcreationconfig)" : AutoBranchCreationConfig,
      "[BasicAuthConfig](#cfn-amplify-app-basicauthconfig)" : BasicAuthConfig,
      "[BuildSpec](#cfn-amplify-app-buildspec)" : String,
      "[CacheConfig](#cfn-amplify-app-cacheconfig)" : CacheConfig,
      "[ComputeRoleArn](#cfn-amplify-app-computerolearn)" : String,
      "[CustomHeaders](#cfn-amplify-app-customheaders)" : String,
      "[CustomRules](#cfn-amplify-app-customrules)" : [ CustomRule, ... ],
      "[Description](#cfn-amplify-app-description)" : String,
      "[EnableBranchAutoDeletion](#cfn-amplify-app-enablebranchautodeletion)" : Boolean,
      "[EnvironmentVariables](#cfn-amplify-app-environmentvariables)" : [ EnvironmentVariable, ... ],
      "[IAMServiceRole](#cfn-amplify-app-iamservicerole)" : String,
      "[JobConfig](#cfn-amplify-app-jobconfig)" : JobConfig,
      "[Name](#cfn-amplify-app-name)" : String,
      "[OauthToken](#cfn-amplify-app-oauthtoken)" : String,
      "[Platform](#cfn-amplify-app-platform)" : String,
      "[Repository](#cfn-amplify-app-repository)" : String,
      "[Tags](#cfn-amplify-app-tags)" : [ Tag, ... ]
    }
}
```

### YAML
<a name="aws-resource-amplify-app-syntax.yaml"></a>

```
Type: AWS::Amplify::App
Properties:
  [AccessToken](#cfn-amplify-app-accesstoken): String
  [AutoBranchCreationConfig](#cfn-amplify-app-autobranchcreationconfig): 
    AutoBranchCreationConfig
  [BasicAuthConfig](#cfn-amplify-app-basicauthconfig): 
    BasicAuthConfig
  [BuildSpec](#cfn-amplify-app-buildspec): String
  [CacheConfig](#cfn-amplify-app-cacheconfig): 
    CacheConfig
  [ComputeRoleArn](#cfn-amplify-app-computerolearn): String
  [CustomHeaders](#cfn-amplify-app-customheaders): String
  [CustomRules](#cfn-amplify-app-customrules): 
    - CustomRule
  [Description](#cfn-amplify-app-description): String
  [EnableBranchAutoDeletion](#cfn-amplify-app-enablebranchautodeletion): Boolean
  [EnvironmentVariables](#cfn-amplify-app-environmentvariables): 
    - EnvironmentVariable
  [IAMServiceRole](#cfn-amplify-app-iamservicerole): String
  [JobConfig](#cfn-amplify-app-jobconfig): 
    JobConfig
  [Name](#cfn-amplify-app-name): String
  [OauthToken](#cfn-amplify-app-oauthtoken): String
  [Platform](#cfn-amplify-app-platform): String
  [Repository](#cfn-amplify-app-repository): String
  [Tags](#cfn-amplify-app-tags): 
    - Tag
```

## Properties
<a name="aws-resource-amplify-app-properties"></a>

`AccessToken`  <a name="cfn-amplify-app-accesstoken"></a>
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](https://docs.aws.amazon.com/amplify/latest/userguide/setting-up-GitHub-access.html#migrating-to-github-app-auth) in the *Amplify User Guide* .  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `255`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`AutoBranchCreationConfig`  <a name="cfn-amplify-app-autobranchcreationconfig"></a>
 Sets the configuration for your automatic branch creation.   
*Required*: No  
*Type*: [AutoBranchCreationConfig](aws-properties-amplify-app-autobranchcreationconfig.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`BasicAuthConfig`  <a name="cfn-amplify-app-basicauthconfig"></a>
The credentials for basic authorization for an Amplify app. You must base64-encode the authorization credentials and provide them in the format `user:password`.  
*Required*: No  
*Type*: [BasicAuthConfig](aws-properties-amplify-app-basicauthconfig.md)  
*Pattern*: `(?s).*`  
*Maximum*: `2000`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`BuildSpec`  <a name="cfn-amplify-app-buildspec"></a>
The build specification (build spec) for an Amplify app.   
*Required*: No  
*Type*: String  
*Pattern*: `(?s).+`  
*Minimum*: `1`  
*Maximum*: `25000`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`CacheConfig`  <a name="cfn-amplify-app-cacheconfig"></a>
The cache configuration for the Amplify app. If you don't specify the cache configuration `type`, Amplify uses the default `AMPLIFY_MANAGED` setting.  
*Required*: No  
*Type*: [CacheConfig](aws-properties-amplify-app-cacheconfig.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ComputeRoleArn`  <a name="cfn-amplify-app-computerolearn"></a>
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 AWS 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*.  
*Required*: No  
*Type*: String  
*Pattern*: `(?s).*`  
*Minimum*: `0`  
*Maximum*: `1000`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`CustomHeaders`  <a name="cfn-amplify-app-customheaders"></a>
The custom HTTP headers for an Amplify app.  
*Required*: No  
*Type*: String  
*Pattern*: `(?s).*`  
*Minimum*: `0`  
*Maximum*: `25000`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`CustomRules`  <a name="cfn-amplify-app-customrules"></a>
The custom rewrite and redirect rules for an Amplify app.   
*Required*: No  
*Type*: Array of [CustomRule](aws-properties-amplify-app-customrule.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Description`  <a name="cfn-amplify-app-description"></a>
The description of the Amplify app.   
*Required*: No  
*Type*: String  
*Pattern*: `(?s).*`  
*Maximum*: `1000`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`EnableBranchAutoDeletion`  <a name="cfn-amplify-app-enablebranchautodeletion"></a>
Automatically disconnect a branch in Amplify Hosting when you delete a branch from your Git repository.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`EnvironmentVariables`  <a name="cfn-amplify-app-environmentvariables"></a>
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*.  
*Required*: No  
*Type*: Array of [EnvironmentVariable](aws-properties-amplify-app-environmentvariable.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`IAMServiceRole`  <a name="cfn-amplify-app-iamservicerole"></a>
AWS Identity and Access Management (IAM) service role for the Amazon Resource Name (ARN) of the Amplify app.   
*Required*: No  
*Type*: String  
*Pattern*: `(?s).*`  
*Minimum*: `1`  
*Maximum*: `1000`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`JobConfig`  <a name="cfn-amplify-app-jobconfig"></a>
The configuration details that apply to the jobs for an Amplify app.  
*Required*: No  
*Type*: [JobConfig](aws-properties-amplify-app-jobconfig.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Name`  <a name="cfn-amplify-app-name"></a>
The name of the Amplify app.   
*Required*: Yes  
*Type*: String  
*Pattern*: `(?s).+`  
*Minimum*: `1`  
*Maximum*: `255`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`OauthToken`  <a name="cfn-amplify-app-oauthtoken"></a>
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](https://docs.aws.amazon.com/amplify/latest/userguide/setting-up-GitHub-access.html#migrating-to-github-app-auth) in the *Amplify User Guide* .  
*Required*: No  
*Type*: String  
*Pattern*: `(?s).*`  
*Maximum*: `1000`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Platform`  <a name="cfn-amplify-app-platform"></a>
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](https://docs.aws.amazon.com/amplify/latest/userguide/deploy-nextjs-app.html#build-setting-detection-ssg-14) in the *Amplify Hosting User Guide*.  
*Required*: No  
*Type*: String  
*Allowed values*: `WEB | WEB_DYNAMIC | WEB_COMPUTE`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Repository`  <a name="cfn-amplify-app-repository"></a>
The Git repository for the Amplify app.   
*Required*: No  
*Type*: String  
*Pattern*: `(?s).*`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Tags`  <a name="cfn-amplify-app-tags"></a>
The tag for an Amplify app.   
*Required*: No  
*Type*: Array of [Tag](aws-properties-amplify-app-tag.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-amplify-app-return-values"></a>

### Fn::GetAtt
<a name="aws-resource-amplify-app-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-amplify-app-return-values-fn--getatt-fn--getatt"></a>

`AppId`  <a name="AppId-fn::getatt"></a>
Unique Id for the Amplify App.

`AppName`  <a name="AppName-fn::getatt"></a>
Name for the Amplify App.

`Arn`  <a name="Arn-fn::getatt"></a>
ARN for the Amplify App.

`DefaultDomain`  <a name="DefaultDomain-fn::getatt"></a>
Default domain for the Amplify App.

# AWS::Amplify::App AutoBranchCreationConfig
<a name="aws-properties-amplify-app-autobranchcreationconfig"></a>

 Use the AutoBranchCreationConfig property type to automatically create branches that match a certain pattern. 

## Syntax
<a name="aws-properties-amplify-app-autobranchcreationconfig-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-amplify-app-autobranchcreationconfig-syntax.json"></a>

```
{
  "[AutoBranchCreationPatterns](#cfn-amplify-app-autobranchcreationconfig-autobranchcreationpatterns)" : [ String, ... ],
  "[BasicAuthConfig](#cfn-amplify-app-autobranchcreationconfig-basicauthconfig)" : BasicAuthConfig,
  "[BuildSpec](#cfn-amplify-app-autobranchcreationconfig-buildspec)" : String,
  "[EnableAutoBranchCreation](#cfn-amplify-app-autobranchcreationconfig-enableautobranchcreation)" : Boolean,
  "[EnableAutoBuild](#cfn-amplify-app-autobranchcreationconfig-enableautobuild)" : Boolean,
  "[EnablePerformanceMode](#cfn-amplify-app-autobranchcreationconfig-enableperformancemode)" : Boolean,
  "[EnablePullRequestPreview](#cfn-amplify-app-autobranchcreationconfig-enablepullrequestpreview)" : Boolean,
  "[EnvironmentVariables](#cfn-amplify-app-autobranchcreationconfig-environmentvariables)" : [ EnvironmentVariable, ... ],
  "[Framework](#cfn-amplify-app-autobranchcreationconfig-framework)" : String,
  "[PullRequestEnvironmentName](#cfn-amplify-app-autobranchcreationconfig-pullrequestenvironmentname)" : String,
  "[Stage](#cfn-amplify-app-autobranchcreationconfig-stage)" : String
}
```

### YAML
<a name="aws-properties-amplify-app-autobranchcreationconfig-syntax.yaml"></a>

```
  [AutoBranchCreationPatterns](#cfn-amplify-app-autobranchcreationconfig-autobranchcreationpatterns): 
    - String
  [BasicAuthConfig](#cfn-amplify-app-autobranchcreationconfig-basicauthconfig): 
    BasicAuthConfig
  [BuildSpec](#cfn-amplify-app-autobranchcreationconfig-buildspec): String
  [EnableAutoBranchCreation](#cfn-amplify-app-autobranchcreationconfig-enableautobranchcreation): Boolean
  [EnableAutoBuild](#cfn-amplify-app-autobranchcreationconfig-enableautobuild): Boolean
  [EnablePerformanceMode](#cfn-amplify-app-autobranchcreationconfig-enableperformancemode): Boolean
  [EnablePullRequestPreview](#cfn-amplify-app-autobranchcreationconfig-enablepullrequestpreview): Boolean
  [EnvironmentVariables](#cfn-amplify-app-autobranchcreationconfig-environmentvariables): 
    - EnvironmentVariable
  [Framework](#cfn-amplify-app-autobranchcreationconfig-framework): String
  [PullRequestEnvironmentName](#cfn-amplify-app-autobranchcreationconfig-pullrequestenvironmentname): String
  [Stage](#cfn-amplify-app-autobranchcreationconfig-stage): String
```

## Properties
<a name="aws-properties-amplify-app-autobranchcreationconfig-properties"></a>

`AutoBranchCreationPatterns`  <a name="cfn-amplify-app-autobranchcreationconfig-autobranchcreationpatterns"></a>
Automated branch creation glob patterns for the Amplify app.  
*Required*: No  
*Type*: Array of String  
*Minimum*: `1`  
*Maximum*: `2048`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`BasicAuthConfig`  <a name="cfn-amplify-app-autobranchcreationconfig-basicauthconfig"></a>
Sets password protection for your auto created branch.  
*Required*: No  
*Type*: [BasicAuthConfig](aws-properties-amplify-app-basicauthconfig.md)  
*Pattern*: `(?s).*`  
*Maximum*: `2000`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`BuildSpec`  <a name="cfn-amplify-app-autobranchcreationconfig-buildspec"></a>
 The build specification (build spec) for the autocreated branch.   
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `25000`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`EnableAutoBranchCreation`  <a name="cfn-amplify-app-autobranchcreationconfig-enableautobranchcreation"></a>
Enables automated branch creation for the Amplify app.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`EnableAutoBuild`  <a name="cfn-amplify-app-autobranchcreationconfig-enableautobuild"></a>
Enables auto building for the auto created branch.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`EnablePerformanceMode`  <a name="cfn-amplify-app-autobranchcreationconfig-enableperformancemode"></a>
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.   
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`EnablePullRequestPreview`  <a name="cfn-amplify-app-autobranchcreationconfig-enablepullrequestpreview"></a>
Sets whether pull request previews are enabled for each branch that Amplify Hosting automatically creates for your app. Amplify creates previews by deploying your app to a unique URL whenever a pull request is opened for the branch. Development and QA teams can use this preview to test the pull request before it's merged into a production or integration branch.  
To provide backend support for your preview, Amplify Hosting automatically provisions a temporary backend environment that it deletes when the pull request is closed. If you want to specify a dedicated backend environment for your previews, use the `PullRequestEnvironmentName` property.  
For more information, see [Web Previews](https://docs.aws.amazon.com/amplify/latest/userguide/pr-previews.html) in the *AWS Amplify Hosting User Guide*.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`EnvironmentVariables`  <a name="cfn-amplify-app-autobranchcreationconfig-environmentvariables"></a>
The environment variables for the autocreated branch.   
*Required*: No  
*Type*: Array of [EnvironmentVariable](aws-properties-amplify-app-environmentvariable.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Framework`  <a name="cfn-amplify-app-autobranchcreationconfig-framework"></a>
The framework for the autocreated branch.   
*Required*: No  
*Type*: String  
*Pattern*: `(?s).*`  
*Maximum*: `255`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`PullRequestEnvironmentName`  <a name="cfn-amplify-app-autobranchcreationconfig-pullrequestenvironmentname"></a>
If pull request previews are enabled, you can use this property to specify a dedicated backend environment for your previews. For example, you could specify an environment named `prod`, `test`, or `dev` that you initialized with the Amplify CLI.  
To enable pull request previews, set the `EnablePullRequestPreview` property to `true`.  
If you don't specify an environment, Amplify Hosting provides backend support for each preview by automatically provisioning a temporary backend environment. Amplify deletes this environment when the pull request is closed.  
For more information about creating backend environments, see [Feature Branch Deployments and Team Workflows](https://docs.aws.amazon.com/amplify/latest/userguide/multi-environments.html) in the *AWS Amplify Hosting User Guide*.  
*Required*: No  
*Type*: String  
*Pattern*: `(?s).*`  
*Maximum*: `20`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Stage`  <a name="cfn-amplify-app-autobranchcreationconfig-stage"></a>
Stage for the auto created branch.  
*Required*: No  
*Type*: String  
*Allowed values*: `EXPERIMENTAL | BETA | PULL_REQUEST | PRODUCTION | DEVELOPMENT`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::Amplify::App BasicAuthConfig
<a name="aws-properties-amplify-app-basicauthconfig"></a>

Use the BasicAuthConfig property type to set password protection at an app level to all your branches.

## Syntax
<a name="aws-properties-amplify-app-basicauthconfig-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-amplify-app-basicauthconfig-syntax.json"></a>

```
{
  "[EnableBasicAuth](#cfn-amplify-app-basicauthconfig-enablebasicauth)" : Boolean,
  "[Password](#cfn-amplify-app-basicauthconfig-password)" : String,
  "[Username](#cfn-amplify-app-basicauthconfig-username)" : String
}
```

### YAML
<a name="aws-properties-amplify-app-basicauthconfig-syntax.yaml"></a>

```
  [EnableBasicAuth](#cfn-amplify-app-basicauthconfig-enablebasicauth): Boolean
  [Password](#cfn-amplify-app-basicauthconfig-password): String
  [Username](#cfn-amplify-app-basicauthconfig-username): String
```

## Properties
<a name="aws-properties-amplify-app-basicauthconfig-properties"></a>

`EnableBasicAuth`  <a name="cfn-amplify-app-basicauthconfig-enablebasicauth"></a>
Enables basic authorization for the Amplify app's branches.   
*Required*: No  
*Type*: Boolean  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Password`  <a name="cfn-amplify-app-basicauthconfig-password"></a>
The password for basic authorization.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `255`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Username`  <a name="cfn-amplify-app-basicauthconfig-username"></a>
The user name for basic authorization.  
*Required*: No  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `255`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::Amplify::App CacheConfig
<a name="aws-properties-amplify-app-cacheconfig"></a>

Describes the cache configuration for an Amplify app.

For more information about how Amplify applies an optimal cache configuration for your app based on the type of content that is being served, see [Managing cache configuration](https://docs.aws.amazon.com/amplify/latest/userguide/managing-cache-configuration) in the *Amplify User guide*.

## Syntax
<a name="aws-properties-amplify-app-cacheconfig-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-amplify-app-cacheconfig-syntax.json"></a>

```
{
  "[Type](#cfn-amplify-app-cacheconfig-type)" : String
}
```

### YAML
<a name="aws-properties-amplify-app-cacheconfig-syntax.yaml"></a>

```
  [Type](#cfn-amplify-app-cacheconfig-type): String
```

## Properties
<a name="aws-properties-amplify-app-cacheconfig-properties"></a>

`Type`  <a name="cfn-amplify-app-cacheconfig-type"></a>
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.  
*Required*: No  
*Type*: String  
*Allowed values*: `AMPLIFY_MANAGED | AMPLIFY_MANAGED_NO_COOKIES`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::Amplify::App CustomRule
<a name="aws-properties-amplify-app-customrule"></a>

 The CustomRule property type allows you to specify redirects, rewrites, and reverse proxies. Redirects enable a web app to reroute navigation from one URL to another. 

## Syntax
<a name="aws-properties-amplify-app-customrule-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-amplify-app-customrule-syntax.json"></a>

```
{
  "[Condition](#cfn-amplify-app-customrule-condition)" : String,
  "[Source](#cfn-amplify-app-customrule-source)" : String,
  "[Status](#cfn-amplify-app-customrule-status)" : String,
  "[Target](#cfn-amplify-app-customrule-target)" : String
}
```

### YAML
<a name="aws-properties-amplify-app-customrule-syntax.yaml"></a>

```
  [Condition](#cfn-amplify-app-customrule-condition): String
  [Source](#cfn-amplify-app-customrule-source): String
  [Status](#cfn-amplify-app-customrule-status): String
  [Target](#cfn-amplify-app-customrule-target): String
```

## Properties
<a name="aws-properties-amplify-app-customrule-properties"></a>

`Condition`  <a name="cfn-amplify-app-customrule-condition"></a>
The condition for a URL rewrite or redirect rule, such as a country code.   
*Required*: No  
*Type*: String  
*Pattern*: `(?s).*`  
*Minimum*: `0`  
*Maximum*: `2048`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Source`  <a name="cfn-amplify-app-customrule-source"></a>
 The source pattern for a URL rewrite or redirect rule.   
*Required*: Yes  
*Type*: String  
*Pattern*: `(?s).+`  
*Minimum*: `1`  
*Maximum*: `2048`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Status`  <a name="cfn-amplify-app-customrule-status"></a>
 The status code for a URL rewrite or redirect rule.     
200  
Represents a 200 rewrite rule.  
301  
Represents a 301 (moved pemanently) 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.
*Required*: No  
*Type*: String  
*Pattern*: `.{3,7}`  
*Minimum*: `3`  
*Maximum*: `7`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Target`  <a name="cfn-amplify-app-customrule-target"></a>
 The target pattern for a URL rewrite or redirect rule.   
*Required*: Yes  
*Type*: String  
*Pattern*: `(?s).+`  
*Minimum*: `1`  
*Maximum*: `2048`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::Amplify::App EnvironmentVariable
<a name="aws-properties-amplify-app-environmentvariable"></a>

Environment variables are key-value pairs that are available at build time. Set environment variables for all branches in your app.

## Syntax
<a name="aws-properties-amplify-app-environmentvariable-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-amplify-app-environmentvariable-syntax.json"></a>

```
{
  "[Name](#cfn-amplify-app-environmentvariable-name)" : String,
  "[Value](#cfn-amplify-app-environmentvariable-value)" : String
}
```

### YAML
<a name="aws-properties-amplify-app-environmentvariable-syntax.yaml"></a>

```
  [Name](#cfn-amplify-app-environmentvariable-name): String
  [Value](#cfn-amplify-app-environmentvariable-value): String
```

## Properties
<a name="aws-properties-amplify-app-environmentvariable-properties"></a>

`Name`  <a name="cfn-amplify-app-environmentvariable-name"></a>
The environment variable name.  
*Required*: Yes  
*Type*: String  
*Pattern*: `(?s).*`  
*Maximum*: `255`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Value`  <a name="cfn-amplify-app-environmentvariable-value"></a>
The environment variable value.  
*Required*: Yes  
*Type*: String  
*Pattern*: `(?s).*`  
*Maximum*: `5500`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::Amplify::App JobConfig
<a name="aws-properties-amplify-app-jobconfig"></a>

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

Use `JobConfig` to apply configuration to jobs, such as customizing the build instance size when you create or update an Amplify app. For more information about customizable build instances, see [Custom build instances](https://docs.aws.amazon.com/amplify/latest/userguide/custom-build-instance.html) in the *Amplify User Guide*.

## Syntax
<a name="aws-properties-amplify-app-jobconfig-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-amplify-app-jobconfig-syntax.json"></a>

```
{
  "[BuildComputeType](#cfn-amplify-app-jobconfig-buildcomputetype)" : String
}
```

### YAML
<a name="aws-properties-amplify-app-jobconfig-syntax.yaml"></a>

```
  [BuildComputeType](#cfn-amplify-app-jobconfig-buildcomputetype): String
```

## Properties
<a name="aws-properties-amplify-app-jobconfig-properties"></a>

`BuildComputeType`  <a name="cfn-amplify-app-jobconfig-buildcomputetype"></a>
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\$18GB  
+ vCPUs: 4
+ Memory: 8 GiB
+ Disk space: 128 GB  
LARGE\$116GB  
+ vCPUs: 8
+ Memory: 16 GiB
+ Disk space: 128 GB  
XLARGE\$172GB  
+ vCPUs: 36
+ Memory: 72 GiB
+ Disk space: 256 GB
*Required*: Yes  
*Type*: String  
*Allowed values*: `STANDARD_8GB | LARGE_16GB | XLARGE_72GB`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::Amplify::App Tag
<a name="aws-properties-amplify-app-tag"></a>

The `Tag` property specifies a key-value pair for tagging an `AWS:Amplify::App` resource.

## Syntax
<a name="aws-properties-amplify-app-tag-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-amplify-app-tag-syntax.json"></a>

```
{
  "[Key](#cfn-amplify-app-tag-key)" : String,
  "[Value](#cfn-amplify-app-tag-value)" : String
}
```

### YAML
<a name="aws-properties-amplify-app-tag-syntax.yaml"></a>

```
  [Key](#cfn-amplify-app-tag-key): String
  [Value](#cfn-amplify-app-tag-value): String
```

## Properties
<a name="aws-properties-amplify-app-tag-properties"></a>

`Key`  <a name="cfn-amplify-app-tag-key"></a>
Specifies the key for the tag.  
*Required*: Yes  
*Type*: String  
*Pattern*: `^(?!aws:)[a-zA-Z+-=._:/]+$`  
*Minimum*: `1`  
*Maximum*: `128`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Value`  <a name="cfn-amplify-app-tag-value"></a>
Specifies the value for the tag.  
*Required*: Yes  
*Type*: String  
*Minimum*: `0`  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)