import { SourceProps } from './app/SourceProps';
import { Value } from '../../cloudformation/Value';
import { DataSourceProps } from './app/DataSourceProps';
import { EnvironmentVariableProps } from './app/EnvironmentVariableProps';
import { SslConfigurationProps } from './app/SslConfigurationProps';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
/**
  Creates an app for a specified stack. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html">Creating Apps</a>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-app.html">the AWS Docs</a>
*/
export type App = AwsResource<'AWS::OpsWorks::App', AppProperties>;
export declare function app(appProps: AppProperties): App;
/**
  Creates an app for a specified stack. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html">Creating Apps</a>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworks-app.html">the AWS Docs</a>
*/
export interface AppProperties {
    /** <code>AppSource</code>  <a name="cfn-opsworks-app-appsource"></a>
  A <code>Source</code> object that specifies the app 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> */
    appSource?: SourceProps;
    /** <code>Attributes</code>  <a name="cfn-opsworks-app-attributes"></a>
  One or more user-defined key/value pairs to be added to the stack attributes.<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> */
    attributes?: Value<{
        [key: string]: Value<string>;
    }>;
    /** <code>DataSources</code>  <a name="cfn-opsworks-app-datasources"></a>
  The app’s data source.<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> */
    dataSources?: DataSourceProps[];
    /** <code>Description</code>  <a name="cfn-opsworks-app-description"></a>
  A description of the 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> */
    description?: Value<string>;
    /** <code>Domains</code>  <a name="cfn-opsworks-app-domains"></a>
  The app virtual host settings, with multiple domains separated by commas. For example: <code>'www.example.com, example.com'</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> */
    domains?: Value<Value<string>[]>;
    /** <code>EnableSsl</code>  <a name="cfn-opsworks-app-enablessl"></a>
  Whether to enable SSL for the 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> */
    enableSsl?: Value<boolean>;
    /** <code>Environment</code>  <a name="cfn-opsworks-app-environment"></a>
  An array of <code>EnvironmentVariable</code> objects that specify environment variables to be associated with the app. After you deploy the app, these variables are defined on the associated app server instance. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html#workingapps-creating-environment"> Environment Variables</a>.<br />
  There is no specific limit on the number of environment variables. However, the size of the associated data structure - which includes the variables’ names, values, and protected flag values - cannot exceed 20 KB. This limit should accommodate most if not all use cases. Exceeding it will cause an exception with the message, “Environment: is too large (maximum is 20KB).”<br />
  If you have specified one or more environment variables, you cannot modify the stack’s Chef version.
  
  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> */
    environment?: EnvironmentVariableProps[];
    /** <code>Name</code>  <a name="cfn-opsworks-app-name"></a>
  The app name.<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>Shortname</code>  <a name="cfn-opsworks-app-shortname"></a>
  The app’s short name.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    shortname?: Value<string>;
    /** <code>SslConfiguration</code>  <a name="cfn-opsworks-app-sslconfiguration"></a>
  An <code>SslConfiguration</code> object with the SSL configuration.<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> */
    sslConfiguration?: SslConfigurationProps;
    /** <code>StackId</code>  <a name="cfn-opsworks-app-stackid"></a>
  The stack ID.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    stackId: Value<string>;
    /** <code>Type</code>  <a name="cfn-opsworks-app-type"></a>
  The app type. Each supported type is associated with a particular layer. For example, PHP applications are associated with a PHP layer. AWS OpsWorks Stacks deploys an application to those instances that are members of the corresponding layer. If your app isn’t one of the standard types, or you prefer to implement your own Deploy recipes, specify <code>other</code>.<br />
  
  Required: Yes<br />
  
  Allowed values: <code>aws-flow-ruby | java | nodejs | other | php | rails | static</code><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> */
    type: Value<'aws-flow-ruby' | 'java' | 'nodejs' | 'other' | 'php' | 'rails' | 'static'>;
}
