import { AutoBranchCreationConfigProps } from './app/AutoBranchCreationConfigProps';
import { Value } from '../../cloudformation/Value';
import { EnvironmentVariableProps } from './app/EnvironmentVariableProps';
import { CustomRuleProps } from './app/CustomRuleProps';
import { BasicAuthConfigProps } from './app/BasicAuthConfigProps';
import { Tag } from '../Tag';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type AppAttributes = {
    AppId: Attribute<string>;
    Arn: Attribute<string>;
    DefaultDomain: Attribute<string>;
    AppName: Attribute<string>;
};
export type App = AwsResource<'AWS::Amplify::App', AppProperties, AppAttributes>;
/**
  The AWS::Amplify::App resource specifies Apps in Amplify Hosting. An App is a collection of branches.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html">the AWS Docs</a>
*/
export declare function app(appProps: AppProperties): App;
/**
  The AWS::Amplify::App resource specifies Apps in Amplify Hosting. An App is a collection of branches.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html">the AWS Docs</a>
*/
export interface AppProperties {
    /** <code>AutoBranchCreationConfig</code>  <a name="cfn-amplify-app-autobranchcreationconfig"></a>
  Sets the configuration for your automatic branch creation.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    autoBranchCreationConfig?: AutoBranchCreationConfigProps;
    /** <code>OauthToken</code>  <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.<br />
  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>.<br />
  You must specify either <code>OauthToken</code> or <code>AccessToken</code> when you create a new app.<br />
  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
  Amplify User Guide: <br />
  
  Length Constraints:: aximum length of 1000.<br />
  
  Pattern:: ?s).*<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    oauthToken?: Value<string>;
    /** <code>Description</code>  <a name="cfn-amplify-app-description"></a>
  The description for an Amplify app.<br />
  
  Length Constraints:: aximum length of 1000.<br />
  
  Pattern:: ?s).*<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    description?: Value<string>;
    /** <code>Platform</code>  <a name="cfn-amplify-app-platform"></a>
  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>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    platform?: Value<string>;
    /** <code>EnableBranchAutoDeletion</code>  <a name="cfn-amplify-app-enablebranchautodeletion"></a>
  Automatically disconnect a branch in Amplify Hosting when you delete a branch from your Git repository.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    enableBranchAutoDeletion?: Value<boolean>;
    /** <code>Name</code>  <a name="cfn-amplify-app-name"></a>
  The name for an Amplify app.<br />
  
  Length Constraints:: inimum length of 1. Maximum length of 255.<br />
  
  Pattern:: ?s).+<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    name: Value<string>;
    /** <code>Repository</code>  <a name="cfn-amplify-app-repository"></a>
  The repository for an Amplify app.<br />
  
  Pattern:: ?s).*<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    repository?: Value<string>;
    /** <code>EnvironmentVariables</code>  <a name="cfn-amplify-app-environmentvariables"></a>
  The environment variables map for an Amplify app.<br />
  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
  Amplify Hosting User Guide: br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    environmentVariables?: EnvironmentVariableProps[];
    /** <code>AccessToken</code>  <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.<br />
  Use <code>AccessToken</code> for GitHub repositories only. To authorize access to a repository provider such as Bitbucket or CodeCommit, use <code>OauthToken</code>.<br />
  You must specify either <code>AccessToken</code> or <code>OauthToken</code> when you create a new app.<br />
  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
  Amplify User Guide: <br />
  
  Length Constraints:: inimum length of 1. Maximum length of 255.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    accessToken?: Value<string>;
    /** <code>BuildSpec</code>  <a name="cfn-amplify-app-buildspec"></a>
  The build specification (build spec) for an Amplify app.<br />
  
  Length Constraints:: inimum length of 1. Maximum length of 25000.<br />
  
  Pattern:: ?s).+<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    buildSpec?: Value<string>;
    /** <code>CustomRules</code>  <a name="cfn-amplify-app-customrules"></a>
  The custom rewrite and redirect rules for an Amplify app.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    customRules?: CustomRuleProps[];
    /** <code>BasicAuthConfig</code>  <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 <code>user:password</code>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    basicAuthConfig?: BasicAuthConfigProps;
    /** <code>CustomHeaders</code>  <a name="cfn-amplify-app-customheaders"></a>
  The custom HTTP headers for an Amplify app.<br />
  
  Length Constraints:: inimum length of 0. Maximum length of 25000.<br />
  
  Pattern:: ?s).*<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    customHeaders?: Value<string>;
    /** <code>Tags</code>  <a name="cfn-amplify-app-tags"></a>
  The tag for an Amplify app.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    tags?: Tag[];
    /** <code>IAMServiceRole</code>  <a name="cfn-amplify-app-iamservicerole"></a>
  The AWS Identity and Access Management (IAM) service role for the Amazon Resource Name (ARN) of the Amplify app.<br />
  
  Length Constraints:: inimum length of 0. Maximum length of 1000.<br />
  
  Pattern:: ?s).*<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    iAMServiceRole?: Value<string>;
}
