import { Value } from '../../cloudformation/Value';
import { RunConfigurationProps } from './application/RunConfigurationProps';
import { ApplicationMaintenanceConfigurationProps } from './application/ApplicationMaintenanceConfigurationProps';
import { ApplicationConfigurationProps } from './application/ApplicationConfigurationProps';
import { Tag } from '../Tag';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
/**
  Creates an Amazon Kinesis Data Analytics application. For information about creating a Kinesis Data Analytics application, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/java/getting-started.html">Creating an Application</a>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html">the AWS Docs</a>
*/
export type Application = AwsResource<'AWS::KinesisAnalyticsV2::Application', ApplicationProperties>;
export declare function application(applicationProps: ApplicationProperties): Application;
/**
  Creates an Amazon Kinesis Data Analytics application. For information about creating a Kinesis Data Analytics application, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/java/getting-started.html">Creating an Application</a>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisanalyticsv2-application.html">the AWS Docs</a>
*/
export interface ApplicationProperties {
    /** <code>ApplicationName</code>  <a name="cfn-kinesisanalyticsv2-application-applicationname"></a>
  The name of the application.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>128</code><br />
  
  Pattern: <code>[a-zA-Z0-9_.-]+</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>RuntimeEnvironment</code>  <a name="cfn-kinesisanalyticsv2-application-runtimeenvironment"></a>
  The runtime environment for the application.<br />
  
  Required: Yes<br />
  
  Allowed values: <code>FLINK-1_11 | FLINK-1_13 | FLINK-1_15 | FLINK-1_6 | FLINK-1_8 | SQL-1_0 | ZEPPELIN-FLINK-1_0 | ZEPPELIN-FLINK-2_0</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> */
    runtimeEnvironment: Value<'FLINK-1_11' | 'FLINK-1_13' | 'FLINK-1_15' | 'FLINK-1_6' | 'FLINK-1_8' | 'SQL-1_0' | 'ZEPPELIN-FLINK-1_0' | 'ZEPPELIN-FLINK-2_0'>;
    /** <code>RunConfiguration</code>  <a name="cfn-kinesisanalyticsv2-application-runconfiguration"></a>
  Property description not available.<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> */
    runConfiguration?: RunConfigurationProps;
    /** <code>ApplicationMode</code>  <a name="cfn-kinesisanalyticsv2-application-applicationmode"></a>
  To create a Kinesis Data Analytics Studio notebook, you must set the mode to <code>INTERACTIVE</code>. However, for a Kinesis Data Analytics for Apache Flink application, the mode is optional.<br />
  
  Required: No<br />
  
  Allowed values: <code>INTERACTIVE | STREAMING</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> */
    applicationMode?: Value<'INTERACTIVE' | 'STREAMING'>;
    /** <code>ApplicationMaintenanceConfiguration</code>  <a name="cfn-kinesisanalyticsv2-application-applicationmaintenanceconfiguration"></a>
  Property description not available.<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> */
    applicationMaintenanceConfiguration?: ApplicationMaintenanceConfigurationProps;
    /** <code>ApplicationConfiguration</code>  <a name="cfn-kinesisanalyticsv2-application-applicationconfiguration"></a>
  Use this parameter to configure the application.<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> */
    applicationConfiguration?: ApplicationConfigurationProps;
    /** <code>ApplicationDescription</code>  <a name="cfn-kinesisanalyticsv2-application-applicationdescription"></a>
  The description of the application.<br />
  
  Required: No<br />
  
  Minimum: <code>0</code><br />
  
  Maximum: <code>1024</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> */
    applicationDescription?: Value<string>;
    /** <code>Tags</code>  <a name="cfn-kinesisanalyticsv2-application-tags"></a>
  A list of one or more tags to assign to the application. A tag is a key-value pair that identifies an application. Note that the maximum number of application tags includes system tags. The maximum number of user-defined application tags is 50.<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>ServiceExecutionRole</code>  <a name="cfn-kinesisanalyticsv2-application-serviceexecutionrole"></a>
  Specifies the IAM role that the application uses to access external resources.<br />
  
  Required: Yes<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>2048</code><br />
  
  Pattern: <code>arn:.*</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> */
    serviceExecutionRole: Value<string>;
}
