import { Value } from '../../cloudformation/Value';
import { Tag } from '../Tag';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
/**
  The <code>AWS::CodeDeploy::Application</code> resource creates an AWS CodeDeploy application. In CodeDeploy, an application is a name that functions as a container to ensure that the correct combination of revision, deployment configuration, and deployment group are referenced during a deployment. You can use the <code>AWS::CodeDeploy::DeploymentGroup</code> resource to associate the application with a CodeDeploy deployment group. For more information, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-steps.html">CodeDeploy Deployments</a> in the <em>AWS CodeDeploy User Guide</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html">the AWS Docs</a>
*/
export type Application = AwsResource<'AWS::CodeDeploy::Application', ApplicationProperties>;
export declare function application(applicationProps?: ApplicationProperties): Application;
/**
  The <code>AWS::CodeDeploy::Application</code> resource creates an AWS CodeDeploy application. In CodeDeploy, an application is a name that functions as a container to ensure that the correct combination of revision, deployment configuration, and deployment group are referenced during a deployment. You can use the <code>AWS::CodeDeploy::DeploymentGroup</code> resource to associate the application with a CodeDeploy deployment group. For more information, see <a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-steps.html">CodeDeploy Deployments</a> in the <em>AWS CodeDeploy User Guide</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html">the AWS Docs</a>
*/
export interface ApplicationProperties {
    /** <code>ApplicationName</code>  <a name="cfn-codedeploy-application-applicationname"></a>
  A name for the application. If you don’t specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the application name. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html">Name Type</a>.<br />
  Updates to <code>ApplicationName</code> are not supported.
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>100</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    applicationName?: Value<string>;
    /** <code>ComputePlatform</code>  <a name="cfn-codedeploy-application-computeplatform"></a>
  The compute platform that CodeDeploy deploys the application to.<br />
  
  Required: No<br />
  
  Allowed values: <code>ECS | Lambda | Server</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    computePlatform?: Value<'ECS' | 'Lambda' | 'Server'>;
    /** <code>Tags</code>  <a name="cfn-codedeploy-application-tags"></a>
  The metadata that you apply to CodeDeploy applications to help you organize and categorize them. Each tag consists of a key and an optional value, both of which you define.<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[];
}
