import { Value } from '../../cloudformation/Value';
import { Tag } from '../Tag';
import { ActivityProps } from './pipeline/ActivityProps';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type PipelineAttributes = {
    Id: Attribute<string>;
};
export type Pipeline = AwsResource<'AWS::IoTAnalytics::Pipeline', PipelineProperties, PipelineAttributes>;
/**
  The AWS::IoTAnalytics::Pipeline resource consumes messages from one or more channels and allows you to process the messages before storing them in a data store. You must specify both a <code>channel</code> and a <code>datastore</code> activity and, optionally, as many as 23 additional activities in the <code>pipelineActivities</code> array. For more information, see <a href="https://docs.aws.amazon.com/iotanalytics/latest/userguide/welcome.html#aws-iot-analytics-how"> How to Use AWS IoT Analytics</a> in the <em>AWS IoT Analytics User Guide</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-pipeline.html">the AWS Docs</a>
*/
export declare function pipeline(pipelineProps: PipelineProperties): Pipeline;
/**
  The AWS::IoTAnalytics::Pipeline resource consumes messages from one or more channels and allows you to process the messages before storing them in a data store. You must specify both a <code>channel</code> and a <code>datastore</code> activity and, optionally, as many as 23 additional activities in the <code>pipelineActivities</code> array. For more information, see <a href="https://docs.aws.amazon.com/iotanalytics/latest/userguide/welcome.html#aws-iot-analytics-how"> How to Use AWS IoT Analytics</a> in the <em>AWS IoT Analytics User Guide</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotanalytics-pipeline.html">the AWS Docs</a>
*/
export interface PipelineProperties {
    /** <code>PipelineName</code>  <a name="cfn-iotanalytics-pipeline-pipelinename"></a>
  The name of the pipeline.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>128</code><br />
  
  Pattern: <code>(^(?!_{2}))(^[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> */
    pipelineName?: Value<string>;
    /** <code>Tags</code>  <a name="cfn-iotanalytics-pipeline-tags"></a>
  Metadata which can be used to manage the pipeline.<br />
  For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html">Tag</a>.<br />
  
  Required: No<br />
  
  Maximum: <code>50</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> */
    tags?: Tag[];
    /** <code>PipelineActivities</code>  <a name="cfn-iotanalytics-pipeline-pipelineactivities"></a>
  A list of “PipelineActivity” objects. Activities perform transformations on your messages, such as removing, renaming or adding message attributes; filtering messages based on attribute values; invoking your Lambda functions on messages for advanced processing; or performing mathematical transformations to normalize device data.<br />
  The list can be 2-25 <strong>PipelineActivity</strong> objects and must contain both a <code>channel</code> and a <code>datastore</code> activity. Each entry in the list must contain only one activity, for example:<br />
  <code>pipelineActivities = [ { &quot;channel&quot;: { ... } }, { &quot;lambda&quot;: { ... } }, ... ]</code><br />
  
  Required: Yes<br />
  
  Maximum: <code>25</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> */
    pipelineActivities: ActivityProps[];
}
