import { SelectAttributesProps } from './SelectAttributesProps';
import { DatastoreProps } from './DatastoreProps';
import { FilterProps } from './FilterProps';
import { AddAttributesProps } from './AddAttributesProps';
import { ChannelProps } from './ChannelProps';
import { DeviceShadowEnrichProps } from './DeviceShadowEnrichProps';
import { MathProps } from './MathProps';
import { LambdaProps } from './LambdaProps';
import { DeviceRegistryEnrichProps } from './DeviceRegistryEnrichProps';
import { RemoveAttributesProps } from './RemoveAttributesProps';
/**
  An activity that performs a transformation on a message.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-activity.html">the AWS Docs</a>
*/
export interface ActivityProps {
    /** <code>SelectAttributes</code>  <a name="cfn-iotanalytics-pipeline-activity-selectattributes"></a>
  Creates a new message using only the specified attributes from the original message.<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> */
    selectAttributes?: SelectAttributesProps;
    /** <code>Datastore</code>  <a name="cfn-iotanalytics-pipeline-activity-datastore"></a>
  Specifies where to store the processed message data.<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> */
    datastore?: DatastoreProps;
    /** <code>Filter</code>  <a name="cfn-iotanalytics-pipeline-activity-filter"></a>
  Filters a message based on its 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> */
    filter?: FilterProps;
    /** <code>AddAttributes</code>  <a name="cfn-iotanalytics-pipeline-activity-addattributes"></a>
  Adds other attributes based on existing attributes in the message.<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> */
    addAttributes?: AddAttributesProps;
    /** <code>Channel</code>  <a name="cfn-iotanalytics-pipeline-activity-channel"></a>
  Determines the source of the messages to be processed.<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> */
    channel?: ChannelProps;
    /** <code>DeviceShadowEnrich</code>  <a name="cfn-iotanalytics-pipeline-activity-deviceshadowenrich"></a>
  Adds information from the AWS IoT Device Shadows service to a message.<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> */
    deviceShadowEnrich?: DeviceShadowEnrichProps;
    /** <code>Math</code>  <a name="cfn-iotanalytics-pipeline-activity-math"></a>
  Computes an arithmetic expression using the message’s attributes and adds it to the message.<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> */
    math?: MathProps;
    /** <code>Lambda</code>  <a name="cfn-iotanalytics-pipeline-activity-lambda"></a>
  Runs a Lambda function to modify the message.<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> */
    lambda?: LambdaProps;
    /** <code>DeviceRegistryEnrich</code>  <a name="cfn-iotanalytics-pipeline-activity-deviceregistryenrich"></a>
  Adds data from the AWS IoT device registry to your message.<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> */
    deviceRegistryEnrich?: DeviceRegistryEnrichProps;
    /** <code>RemoveAttributes</code>  <a name="cfn-iotanalytics-pipeline-activity-removeattributes"></a>
  Removes attributes from a message.<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> */
    removeAttributes?: RemoveAttributesProps;
}
