import { Value } from '../../../cloudformation/Value';
import { InputSchemaProps } from './InputSchemaProps';
import { KinesisStreamsInputProps } from './KinesisStreamsInputProps';
import { KinesisFirehoseInputProps } from './KinesisFirehoseInputProps';
import { InputProcessingConfigurationProps } from './InputProcessingConfigurationProps';
import { InputParallelismProps } from './InputParallelismProps';
/**
  When you configure the application input, you specify the streaming source, the in-application stream name that is created, and the mapping between the two. For more information, see <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html">Configuring Application Input</a>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-input.html">the AWS Docs</a>
*/
export interface InputProps {
    /** <code>NamePrefix</code>  <a name="cfn-kinesisanalytics-application-input-nameprefix"></a>
  Name prefix to use when creating an in-application stream. Suppose that you specify a prefix “MyInApplicationStream.” Amazon Kinesis Analytics then creates one or more (as per the <code>InputParallelism</code> count you specified) in-application streams with names “MyInApplicationStream_001,” “MyInApplicationStream_002,” and so on.<br />
  
  Required: Yes<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>32</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> */
    namePrefix: Value<string>;
    /** <code>InputSchema</code>  <a name="cfn-kinesisanalytics-application-input-inputschema"></a>
  Describes the format of the data in the streaming source, and how each data element maps to corresponding columns in the in-application stream that is being created.<br />
  Also used to describe the format of the reference data source.<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> */
    inputSchema: InputSchemaProps;
    /** <code>KinesisStreamsInput</code>  <a name="cfn-kinesisanalytics-application-input-kinesisstreamsinput"></a>
  If the streaming source is an Amazon Kinesis stream, identifies the stream’s Amazon Resource Name (ARN) and an IAM role that enables Amazon Kinesis Analytics to access the stream on your behalf.<br />
  Note: Either <code>KinesisStreamsInput</code> or <code>KinesisFirehoseInput</code> is required.<br />
  
  Required: Conditional<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> */
    kinesisStreamsInput?: KinesisStreamsInputProps;
    /** <code>KinesisFirehoseInput</code>  <a name="cfn-kinesisanalytics-application-input-kinesisfirehoseinput"></a>
  If the streaming source is an Amazon Kinesis Firehose delivery stream, identifies the delivery stream’s ARN and an IAM role that enables Amazon Kinesis Analytics to access the stream on your behalf.<br />
  Note: Either <code>KinesisStreamsInput</code> or <code>KinesisFirehoseInput</code> is required.<br />
  
  Required: Conditional<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> */
    kinesisFirehoseInput?: KinesisFirehoseInputProps;
    /** <code>InputProcessingConfiguration</code>  <a name="cfn-kinesisanalytics-application-input-inputprocessingconfiguration"></a>
  The <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputprocessingconfiguration.html">InputProcessingConfiguration</a> for the input. An input processor transforms records as they are received from the stream, before the application’s SQL code executes. Currently, the only input processing configuration available is <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-inputlambdaprocessor.html">InputLambdaProcessor</a>.<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> */
    inputProcessingConfiguration?: InputProcessingConfigurationProps;
    /** <code>InputParallelism</code>  <a name="cfn-kinesisanalytics-application-input-inputparallelism"></a>
  Describes the number of in-application streams to create.<br />
  Data from your source is routed to these in-application input streams.<br />
  See <a href="https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html">Configuring Application Input</a>.<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> */
    inputParallelism?: InputParallelismProps;
}
