import { S3ActionProps } from './S3ActionProps';
import { CloudwatchAlarmActionProps } from './CloudwatchAlarmActionProps';
import { IotEventsActionProps } from './IotEventsActionProps';
import { FirehoseActionProps } from './FirehoseActionProps';
import { RepublishActionProps } from './RepublishActionProps';
import { KafkaActionProps } from './KafkaActionProps';
import { StepFunctionsActionProps } from './StepFunctionsActionProps';
import { DynamoDBActionProps } from './DynamoDBActionProps';
import { HttpActionProps } from './HttpActionProps';
import { OpenSearchActionProps } from './OpenSearchActionProps';
import { DynamoDBv2ActionProps } from './DynamoDBv2ActionProps';
import { CloudwatchMetricActionProps } from './CloudwatchMetricActionProps';
import { IotSiteWiseActionProps } from './IotSiteWiseActionProps';
import { ElasticsearchActionProps } from './ElasticsearchActionProps';
import { SqsActionProps } from './SqsActionProps';
import { KinesisActionProps } from './KinesisActionProps';
import { CloudwatchLogsActionProps } from './CloudwatchLogsActionProps';
import { TimestreamActionProps } from './TimestreamActionProps';
import { IotAnalyticsActionProps } from './IotAnalyticsActionProps';
import { SnsActionProps } from './SnsActionProps';
import { LambdaActionProps } from './LambdaActionProps';
import { LocationActionProps } from './LocationActionProps';
/**
  Describes the actions associated with a rule.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html">the AWS Docs</a>
*/
export interface ActionProps {
    /** <code>S3</code>  <a name="cfn-iot-topicrule-action-s3"></a>
  Write to an Amazon S3 bucket.<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> */
    s3?: S3ActionProps;
    /** <code>CloudwatchAlarm</code>  <a name="cfn-iot-topicrule-action-cloudwatchalarm"></a>
  Change the state of a CloudWatch alarm.<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> */
    cloudwatchAlarm?: CloudwatchAlarmActionProps;
    /** <code>IotEvents</code>  <a name="cfn-iot-topicrule-action-iotevents"></a>
  Sends an input to an AWS IoT Events detector.<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> */
    iotEvents?: IotEventsActionProps;
    /** <code>Firehose</code>  <a name="cfn-iot-topicrule-action-firehose"></a>
  Write to an Amazon Kinesis Firehose stream.<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> */
    firehose?: FirehoseActionProps;
    /** <code>Republish</code>  <a name="cfn-iot-topicrule-action-republish"></a>
  Publish to another MQTT topic.<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> */
    republish?: RepublishActionProps;
    /** <code>Kafka</code>  <a name="cfn-iot-topicrule-action-kafka"></a>
  Send messages to an Amazon Managed Streaming for Apache Kafka (Amazon MSK) or self-managed Apache Kafka cluster.<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> */
    kafka?: KafkaActionProps;
    /** <code>StepFunctions</code>  <a name="cfn-iot-topicrule-action-stepfunctions"></a>
  Starts execution of a Step Functions state machine.<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> */
    stepFunctions?: StepFunctionsActionProps;
    /** <code>DynamoDB</code>  <a name="cfn-iot-topicrule-action-dynamodb"></a>
  Write to a DynamoDB table.<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> */
    dynamoDB?: DynamoDBActionProps;
    /** <code>Http</code>  <a name="cfn-iot-topicrule-action-http"></a>
  Send data to an HTTPS endpoint.<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> */
    http?: HttpActionProps;
    /** <code>OpenSearch</code>  <a name="cfn-iot-topicrule-action-opensearch"></a>
  Write data to an Amazon OpenSearch Service domain.<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> */
    openSearch?: OpenSearchActionProps;
    /** <code>DynamoDBv2</code>  <a name="cfn-iot-topicrule-action-dynamodbv2"></a>
  Write to a DynamoDB table. This is a new version of the DynamoDB action. It allows you to write each attribute in an MQTT message payload into a separate DynamoDB column.<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> */
    dynamoDBv2?: DynamoDBv2ActionProps;
    /** <code>CloudwatchMetric</code>  <a name="cfn-iot-topicrule-action-cloudwatchmetric"></a>
  Capture a CloudWatch metric.<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> */
    cloudwatchMetric?: CloudwatchMetricActionProps;
    /** <code>IotSiteWise</code>  <a name="cfn-iot-topicrule-action-iotsitewise"></a>
  Sends data from the MQTT message that triggered the rule to AWS IoT SiteWise asset properties.<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> */
    iotSiteWise?: IotSiteWiseActionProps;
    /** <code>Elasticsearch</code>  <a name="cfn-iot-topicrule-action-elasticsearch"></a>
  Write data to an Amazon OpenSearch Service domain.<br />
  The <code>Elasticsearch</code> action can only be used by existing rule actions. To create a new rule action or to update an existing rule action, use the <code>OpenSearch</code> rule action instead. For more information, see <a href="https://docs.aws.amazon.com/iot/latest/apireference/API_OpenSearchAction.html">OpenSearchAction</a>.
  
  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> */
    elasticsearch?: ElasticsearchActionProps;
    /** <code>Sqs</code>  <a name="cfn-iot-topicrule-action-sqs"></a>
  Publish to an Amazon SQS queue.<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> */
    sqs?: SqsActionProps;
    /** <code>Kinesis</code>  <a name="cfn-iot-topicrule-action-kinesis"></a>
  Write data to an Amazon Kinesis stream.<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> */
    kinesis?: KinesisActionProps;
    /** <code>CloudwatchLogs</code>  <a name="cfn-iot-topicrule-action-cloudwatchlogs"></a>
  Sends data to CloudWatch.<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> */
    cloudwatchLogs?: CloudwatchLogsActionProps;
    /** <code>Timestream</code>  <a name="cfn-iot-topicrule-action-timestream"></a>
  Writes attributes from an MQTT 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> */
    timestream?: TimestreamActionProps;
    /** <code>IotAnalytics</code>  <a name="cfn-iot-topicrule-action-iotanalytics"></a>
  Sends message data to an AWS IoT Analytics channel.<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> */
    iotAnalytics?: IotAnalyticsActionProps;
    /** <code>Sns</code>  <a name="cfn-iot-topicrule-action-sns"></a>
  Publish to an Amazon SNS topic.<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> */
    sns?: SnsActionProps;
    /** <code>Lambda</code>  <a name="cfn-iot-topicrule-action-lambda"></a>
  Invoke a Lambda function.<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?: LambdaActionProps;
    /** <code>Location</code>  <a name="cfn-iot-topicrule-action-location"></a>
  Sends device location data to <a href="https://docs.aws.amazon.com/location/latest/developerguide/welcome.html">Amazon Location Service</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> */
    location?: LocationActionProps;
}
