Skip to content
v2.277.0

Experimental

@aws-cdk/aws-iot-alpha is an experimental (alpha) package: its API may change in any release, without a major version bump.

ActionConfig Struct ​

Properties for an topic rule action.

Example ​

ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import * as iot_alpha from '@aws-cdk/aws-iot-alpha';
const actionConfig: iot_alpha.ActionConfig = {
  configuration: {
    cloudwatchAlarm: {
      alarmName: 'alarmName',
      roleArn: 'roleArn',
      stateReason: 'stateReason',
      stateValue: 'stateValue',
    },
    cloudwatchLogs: {
      logGroupName: 'logGroupName',
      roleArn: 'roleArn',

      // the properties below are optional
      batchMode: false,
    },
    cloudwatchMetric: {
      metricName: 'metricName',
      metricNamespace: 'metricNamespace',
      metricUnit: 'metricUnit',
      metricValue: 'metricValue',
      roleArn: 'roleArn',

      // the properties below are optional
      metricTimestamp: 'metricTimestamp',
    },
    dynamoDb: {
      hashKeyField: 'hashKeyField',
      hashKeyValue: 'hashKeyValue',
      roleArn: 'roleArn',
      tableName: 'tableName',

      // the properties below are optional
      hashKeyType: 'hashKeyType',
      payloadField: 'payloadField',
      rangeKeyField: 'rangeKeyField',
      rangeKeyType: 'rangeKeyType',
      rangeKeyValue: 'rangeKeyValue',
    },
    dynamoDBv2: {
      putItem: {
        tableName: 'tableName',
      },
      roleArn: 'roleArn',
    },
    elasticsearch: {
      endpoint: 'endpoint',
      id: 'id',
      index: 'index',
      roleArn: 'roleArn',
      type: 'type',
    },
    firehose: {
      deliveryStreamName: 'deliveryStreamName',
      roleArn: 'roleArn',

      // the properties below are optional
      batchMode: false,
      separator: 'separator',
    },
    http: {
      url: 'url',

      // the properties below are optional
      auth: {
        sigv4: {
          roleArn: 'roleArn',
          serviceName: 'serviceName',
          signingRegion: 'signingRegion',
        },
      },
      batchConfig: {
        batchAcrossTopics: false,
        maxBatchOpenMs: 123,
        maxBatchSize: 123,
        maxBatchSizeBytes: 123,
      },
      confirmationUrl: 'confirmationUrl',
      enableBatching: false,
      headers: [{
        key: 'key',
        value: 'value',
      }],
    },
    influxDb: {
      databaseName: 'databaseName',
      destinationArn: 'destinationArn',
      roleArn: 'roleArn',
      tableName: 'tableName',

      // the properties below are optional
      batchConfig: {
        batchAcrossTopics: false,
        maxBatchOpenMs: 123,
        maxBatchSize: 123,
        maxBatchSizeBytes: 123,
      },
      organization: 'organization',
      tags: {
        tagsKey: 'tags',
      },
      timestampUnit: 'timestampUnit',
    },
    iotAnalytics: {
      channelName: 'channelName',
      roleArn: 'roleArn',

      // the properties below are optional
      batchMode: false,
    },
    iotEvents: {
      inputName: 'inputName',
      roleArn: 'roleArn',

      // the properties below are optional
      batchMode: false,
      messageId: 'messageId',
    },
    iotSiteWise: {
      putAssetPropertyValueEntries: [{
        propertyValues: [{
          timestamp: {
            timeInSeconds: 'timeInSeconds',

            // the properties below are optional
            offsetInNanos: 'offsetInNanos',
          },
          value: {
            booleanValue: 'booleanValue',
            doubleValue: 'doubleValue',
            integerValue: 'integerValue',
            stringValue: 'stringValue',
          },

          // the properties below are optional
          quality: 'quality',
        }],

        // the properties below are optional
        assetId: 'assetId',
        entryId: 'entryId',
        propertyAlias: 'propertyAlias',
        propertyId: 'propertyId',
      }],
      roleArn: 'roleArn',
    },
    kafka: {
      clientProperties: {
        clientPropertiesKey: 'clientProperties',
      },
      destinationArn: 'destinationArn',
      topic: 'topic',

      // the properties below are optional
      headers: [{
        key: 'key',
        value: 'value',
      }],
      key: 'key',
      partition: 'partition',
    },
    kinesis: {
      roleArn: 'roleArn',
      streamName: 'streamName',

      // the properties below are optional
      partitionKey: 'partitionKey',
    },
    lambda: {
      functionArn: 'functionArn',
    },
    location: {
      deviceId: 'deviceId',
      latitude: 'latitude',
      longitude: 'longitude',
      roleArn: 'roleArn',
      trackerName: 'trackerName',

      // the properties below are optional
      timestamp: {
        value: 'value',

        // the properties below are optional
        unit: 'unit',
      },
    },
    openSearch: {
      endpoint: 'endpoint',
      id: 'id',
      index: 'index',
      roleArn: 'roleArn',
      type: 'type',
    },
    republish: {
      roleArn: 'roleArn',
      topic: 'topic',

      // the properties below are optional
      headers: {
        contentType: 'contentType',
        correlationData: 'correlationData',
        messageExpiry: 'messageExpiry',
        payloadFormatIndicator: 'payloadFormatIndicator',
        responseTopic: 'responseTopic',
        userProperties: [{
          key: 'key',
          value: 'value',
        }],
      },
      qos: 123,
    },
    s3: {
      bucketName: 'bucketName',
      key: 'key',
      roleArn: 'roleArn',

      // the properties below are optional
      cannedAcl: 'cannedAcl',
    },
    sns: {
      roleArn: 'roleArn',
      targetArn: 'targetArn',

      // the properties below are optional
      messageFormat: 'messageFormat',
    },
    sqs: {
      queueUrl: 'queueUrl',
      roleArn: 'roleArn',

      // the properties below are optional
      useBase64: false,
    },
    stepFunctions: {
      roleArn: 'roleArn',
      stateMachineName: 'stateMachineName',

      // the properties below are optional
      executionNamePrefix: 'executionNamePrefix',
    },
    timestream: {
      databaseName: 'databaseName',
      dimensions: [{
        name: 'name',
        value: 'value',
      }],
      roleArn: 'roleArn',
      tableName: 'tableName',

      // the properties below are optional
      timestamp: {
        unit: 'unit',
        value: 'value',
      },
    },
  },
};
python
from aws_cdk.aws_iot.ActionProperty import ActionProperty
from aws_cdk.aws_iot.CloudwatchAlarmActionProperty import CloudwatchAlarmActionProperty
from aws_cdk.aws_iot.CloudwatchLogsActionProperty import CloudwatchLogsActionProperty
from aws_cdk.aws_iot.CloudwatchMetricActionProperty import CloudwatchMetricActionProperty
from aws_cdk.aws_iot.DynamoDBActionProperty import DynamoDBActionProperty
from aws_cdk.aws_iot.DynamoDBv2ActionProperty import DynamoDBv2ActionProperty
from aws_cdk.aws_iot.PutItemInputProperty import PutItemInputProperty
from aws_cdk.aws_iot.ElasticsearchActionProperty import ElasticsearchActionProperty
from aws_cdk.aws_iot.FirehoseActionProperty import FirehoseActionProperty
from aws_cdk.aws_iot.HttpActionProperty import HttpActionProperty
from aws_cdk.aws_iot.HttpAuthorizationProperty import HttpAuthorizationProperty
from aws_cdk.aws_iot.SigV4AuthorizationProperty import SigV4AuthorizationProperty
from aws_cdk.aws_iot.BatchConfigProperty import BatchConfigProperty
from aws_cdk.aws_iot.HttpActionHeaderProperty import HttpActionHeaderProperty
from aws_cdk.aws_iot.InfluxDBActionProperty import InfluxDBActionProperty
from aws_cdk.aws_iot.InfluxDBBatchConfigProperty import InfluxDBBatchConfigProperty
from aws_cdk.aws_iot.IotAnalyticsActionProperty import IotAnalyticsActionProperty
from aws_cdk.aws_iot.IotEventsActionProperty import IotEventsActionProperty
from aws_cdk.aws_iot.IotSiteWiseActionProperty import IotSiteWiseActionProperty
from aws_cdk.aws_iot.PutAssetPropertyValueEntryProperty import PutAssetPropertyValueEntryProperty
from aws_cdk.aws_iot.AssetPropertyValueProperty import AssetPropertyValueProperty
from aws_cdk.aws_iot.AssetPropertyTimestampProperty import AssetPropertyTimestampProperty
from aws_cdk.aws_iot.AssetPropertyVariantProperty import AssetPropertyVariantProperty
from aws_cdk.aws_iot.KafkaActionProperty import KafkaActionProperty
from aws_cdk.aws_iot.KafkaActionHeaderProperty import KafkaActionHeaderProperty
from aws_cdk.aws_iot.KinesisActionProperty import KinesisActionProperty
from aws_cdk.aws_iot.LambdaActionProperty import LambdaActionProperty
from aws_cdk.aws_iot.LocationActionProperty import LocationActionProperty
from aws_cdk.aws_iot.TimestampProperty import TimestampProperty
from aws_cdk.aws_iot.OpenSearchActionProperty import OpenSearchActionProperty
from aws_cdk.aws_iot.RepublishActionProperty import RepublishActionProperty
from aws_cdk.aws_iot.RepublishActionHeadersProperty import RepublishActionHeadersProperty
from aws_cdk.aws_iot.UserPropertyProperty import UserPropertyProperty
from aws_cdk.aws_iot.S3ActionProperty import S3ActionProperty
from aws_cdk.aws_iot.SnsActionProperty import SnsActionProperty
from aws_cdk.aws_iot.SqsActionProperty import SqsActionProperty
from aws_cdk.aws_iot.StepFunctionsActionProperty import StepFunctionsActionProperty
from aws_cdk.aws_iot.TimestreamActionProperty import TimestreamActionProperty
from aws_cdk.aws_iot.TimestreamDimensionProperty import TimestreamDimensionProperty
from aws_cdk.aws_iot.TimestreamTimestampProperty import TimestreamTimestampProperty
# The code below shows an example of how to instantiate this type.
# The values are placeholders you should change.
import aws_cdk.aws_iot_alpha as iot_alpha

action_config = iot_alpha.ActionConfig(
    configuration=ActionProperty(
        cloudwatch_alarm=CloudwatchAlarmActionProperty(
            alarm_name="alarmName",
            role_arn="roleArn",
            state_reason="stateReason",
            state_value="stateValue"
        ),
        cloudwatch_logs=CloudwatchLogsActionProperty(
            log_group_name="logGroupName",
            role_arn="roleArn",

            # the properties below are optional
            batch_mode=False
        ),
        cloudwatch_metric=CloudwatchMetricActionProperty(
            metric_name="metricName",
            metric_namespace="metricNamespace",
            metric_unit="metricUnit",
            metric_value="metricValue",
            role_arn="roleArn",

            # the properties below are optional
            metric_timestamp="metricTimestamp"
        ),
        dynamo_db=DynamoDBActionProperty(
            hash_key_field="hashKeyField",
            hash_key_value="hashKeyValue",
            role_arn="roleArn",
            table_name="tableName",

            # the properties below are optional
            hash_key_type="hashKeyType",
            payload_field="payloadField",
            range_key_field="rangeKeyField",
            range_key_type="rangeKeyType",
            range_key_value="rangeKeyValue"
        ),
        dynamo_d_bv2=DynamoDBv2ActionProperty(
            put_item=PutItemInputProperty(
                table_name="tableName"
            ),
            role_arn="roleArn"
        ),
        elasticsearch=ElasticsearchActionProperty(
            endpoint="endpoint",
            id="id",
            index="index",
            role_arn="roleArn",
            type="type"
        ),
        firehose=FirehoseActionProperty(
            delivery_stream_name="deliveryStreamName",
            role_arn="roleArn",

            # the properties below are optional
            batch_mode=False,
            separator="separator"
        ),
        http=HttpActionProperty(
            url="url",

            # the properties below are optional
            auth=HttpAuthorizationProperty(
                sigv4=SigV4AuthorizationProperty(
                    role_arn="roleArn",
                    service_name="serviceName",
                    signing_region="signingRegion"
                )
            ),
            batch_config=BatchConfigProperty(
                batch_across_topics=False,
                max_batch_open_ms=123,
                max_batch_size=123,
                max_batch_size_bytes=123
            ),
            confirmation_url="confirmationUrl",
            enable_batching=False,
            headers=[HttpActionHeaderProperty(
                key="key",
                value="value"
            )]
        ),
        influx_db=InfluxDBActionProperty(
            database_name="databaseName",
            destination_arn="destinationArn",
            role_arn="roleArn",
            table_name="tableName",

            # the properties below are optional
            batch_config=InfluxDBBatchConfigProperty(
                batch_across_topics=False,
                max_batch_open_ms=123,
                max_batch_size=123,
                max_batch_size_bytes=123
            ),
            organization="organization",
            tags={
                "tags_key": "tags"
            },
            timestamp_unit="timestampUnit"
        ),
        iot_analytics=IotAnalyticsActionProperty(
            channel_name="channelName",
            role_arn="roleArn",

            # the properties below are optional
            batch_mode=False
        ),
        iot_events=IotEventsActionProperty(
            input_name="inputName",
            role_arn="roleArn",

            # the properties below are optional
            batch_mode=False,
            message_id="messageId"
        ),
        iot_site_wise=IotSiteWiseActionProperty(
            put_asset_property_value_entries=[PutAssetPropertyValueEntryProperty(
                property_values=[AssetPropertyValueProperty(
                    timestamp=AssetPropertyTimestampProperty(
                        time_in_seconds="timeInSeconds",

                        # the properties below are optional
                        offset_in_nanos="offsetInNanos"
                    ),
                    value=AssetPropertyVariantProperty(
                        boolean_value="booleanValue",
                        double_value="doubleValue",
                        integer_value="integerValue",
                        string_value="stringValue"
                    ),

                    # the properties below are optional
                    quality="quality"
                )],

                # the properties below are optional
                asset_id="assetId",
                entry_id="entryId",
                property_alias="propertyAlias",
                property_id="propertyId"
            )],
            role_arn="roleArn"
        ),
        kafka=KafkaActionProperty(
            client_properties={
                "client_properties_key": "clientProperties"
            },
            destination_arn="destinationArn",
            topic="topic",

            # the properties below are optional
            headers=[KafkaActionHeaderProperty(
                key="key",
                value="value"
            )],
            key="key",
            partition="partition"
        ),
        kinesis=KinesisActionProperty(
            role_arn="roleArn",
            stream_name="streamName",

            # the properties below are optional
            partition_key="partitionKey"
        ),
        lambda_=LambdaActionProperty(
            function_arn="functionArn"
        ),
        location=LocationActionProperty(
            device_id="deviceId",
            latitude="latitude",
            longitude="longitude",
            role_arn="roleArn",
            tracker_name="trackerName",

            # the properties below are optional
            timestamp=TimestampProperty(
                value="value",

                # the properties below are optional
                unit="unit"
            )
        ),
        open_search=OpenSearchActionProperty(
            endpoint="endpoint",
            id="id",
            index="index",
            role_arn="roleArn",
            type="type"
        ),
        republish=RepublishActionProperty(
            role_arn="roleArn",
            topic="topic",

            # the properties below are optional
            headers=RepublishActionHeadersProperty(
                content_type="contentType",
                correlation_data="correlationData",
                message_expiry="messageExpiry",
                payload_format_indicator="payloadFormatIndicator",
                response_topic="responseTopic",
                user_properties=[UserPropertyProperty(
                    key="key",
                    value="value"
                )]
            ),
            qos=123
        ),
        s3=S3ActionProperty(
            bucket_name="bucketName",
            key="key",
            role_arn="roleArn",

            # the properties below are optional
            canned_acl="cannedAcl"
        ),
        sns=SnsActionProperty(
            role_arn="roleArn",
            target_arn="targetArn",

            # the properties below are optional
            message_format="messageFormat"
        ),
        sqs=SqsActionProperty(
            queue_url="queueUrl",
            role_arn="roleArn",

            # the properties below are optional
            use_base64=False
        ),
        step_functions=StepFunctionsActionProperty(
            role_arn="roleArn",
            state_machine_name="stateMachineName",

            # the properties below are optional
            execution_name_prefix="executionNamePrefix"
        ),
        timestream=TimestreamActionProperty(
            database_name="databaseName",
            dimensions=[TimestreamDimensionProperty(
                name="name",
                value="value"
            )],
            role_arn="roleArn",
            table_name="tableName",

            # the properties below are optional
            timestamp=TimestreamTimestampProperty(
                unit="unit",
                value="value"
            )
        )
    )
)
java
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import software.amazon.awscdk.services.iot.alpha.*;

ActionConfig actionConfig = ActionConfig.builder()
        .configuration(ActionProperty.builder()
                .cloudwatchAlarm(CloudwatchAlarmActionProperty.builder()
                        .alarmName("alarmName")
                        .roleArn("roleArn")
                        .stateReason("stateReason")
                        .stateValue("stateValue")
                        .build())
                .cloudwatchLogs(CloudwatchLogsActionProperty.builder()
                        .logGroupName("logGroupName")
                        .roleArn("roleArn")

                        // the properties below are optional
                        .batchMode(false)
                        .build())
                .cloudwatchMetric(CloudwatchMetricActionProperty.builder()
                        .metricName("metricName")
                        .metricNamespace("metricNamespace")
                        .metricUnit("metricUnit")
                        .metricValue("metricValue")
                        .roleArn("roleArn")

                        // the properties below are optional
                        .metricTimestamp("metricTimestamp")
                        .build())
                .dynamoDb(DynamoDBActionProperty.builder()
                        .hashKeyField("hashKeyField")
                        .hashKeyValue("hashKeyValue")
                        .roleArn("roleArn")
                        .tableName("tableName")

                        // the properties below are optional
                        .hashKeyType("hashKeyType")
                        .payloadField("payloadField")
                        .rangeKeyField("rangeKeyField")
                        .rangeKeyType("rangeKeyType")
                        .rangeKeyValue("rangeKeyValue")
                        .build())
                .dynamoDBv2(DynamoDBv2ActionProperty.builder()
                        .putItem(PutItemInputProperty.builder()
                                .tableName("tableName")
                                .build())
                        .roleArn("roleArn")
                        .build())
                .elasticsearch(ElasticsearchActionProperty.builder()
                        .endpoint("endpoint")
                        .id("id")
                        .index("index")
                        .roleArn("roleArn")
                        .type("type")
                        .build())
                .firehose(FirehoseActionProperty.builder()
                        .deliveryStreamName("deliveryStreamName")
                        .roleArn("roleArn")

                        // the properties below are optional
                        .batchMode(false)
                        .separator("separator")
                        .build())
                .http(HttpActionProperty.builder()
                        .url("url")

                        // the properties below are optional
                        .auth(HttpAuthorizationProperty.builder()
                                .sigv4(SigV4AuthorizationProperty.builder()
                                        .roleArn("roleArn")
                                        .serviceName("serviceName")
                                        .signingRegion("signingRegion")
                                        .build())
                                .build())
                        .batchConfig(BatchConfigProperty.builder()
                                .batchAcrossTopics(false)
                                .maxBatchOpenMs(123)
                                .maxBatchSize(123)
                                .maxBatchSizeBytes(123)
                                .build())
                        .confirmationUrl("confirmationUrl")
                        .enableBatching(false)
                        .headers(List.of(HttpActionHeaderProperty.builder()
                                .key("key")
                                .value("value")
                                .build()))
                        .build())
                .influxDb(InfluxDBActionProperty.builder()
                        .databaseName("databaseName")
                        .destinationArn("destinationArn")
                        .roleArn("roleArn")
                        .tableName("tableName")

                        // the properties below are optional
                        .batchConfig(InfluxDBBatchConfigProperty.builder()
                                .batchAcrossTopics(false)
                                .maxBatchOpenMs(123)
                                .maxBatchSize(123)
                                .maxBatchSizeBytes(123)
                                .build())
                        .organization("organization")
                        .tags(Map.of(
                                "tagsKey", "tags"))
                        .timestampUnit("timestampUnit")
                        .build())
                .iotAnalytics(IotAnalyticsActionProperty.builder()
                        .channelName("channelName")
                        .roleArn("roleArn")

                        // the properties below are optional
                        .batchMode(false)
                        .build())
                .iotEvents(IotEventsActionProperty.builder()
                        .inputName("inputName")
                        .roleArn("roleArn")

                        // the properties below are optional
                        .batchMode(false)
                        .messageId("messageId")
                        .build())
                .iotSiteWise(IotSiteWiseActionProperty.builder()
                        .putAssetPropertyValueEntries(List.of(PutAssetPropertyValueEntryProperty.builder()
                                .propertyValues(List.of(AssetPropertyValueProperty.builder()
                                        .timestamp(AssetPropertyTimestampProperty.builder()
                                                .timeInSeconds("timeInSeconds")

                                                // the properties below are optional
                                                .offsetInNanos("offsetInNanos")
                                                .build())
                                        .value(AssetPropertyVariantProperty.builder()
                                                .booleanValue("booleanValue")
                                                .doubleValue("doubleValue")
                                                .integerValue("integerValue")
                                                .stringValue("stringValue")
                                                .build())

                                        // the properties below are optional
                                        .quality("quality")
                                        .build()))

                                // the properties below are optional
                                .assetId("assetId")
                                .entryId("entryId")
                                .propertyAlias("propertyAlias")
                                .propertyId("propertyId")
                                .build()))
                        .roleArn("roleArn")
                        .build())
                .kafka(KafkaActionProperty.builder()
                        .clientProperties(Map.of(
                                "clientPropertiesKey", "clientProperties"))
                        .destinationArn("destinationArn")
                        .topic("topic")

                        // the properties below are optional
                        .headers(List.of(KafkaActionHeaderProperty.builder()
                                .key("key")
                                .value("value")
                                .build()))
                        .key("key")
                        .partition("partition")
                        .build())
                .kinesis(KinesisActionProperty.builder()
                        .roleArn("roleArn")
                        .streamName("streamName")

                        // the properties below are optional
                        .partitionKey("partitionKey")
                        .build())
                .lambda(LambdaActionProperty.builder()
                        .functionArn("functionArn")
                        .build())
                .location(LocationActionProperty.builder()
                        .deviceId("deviceId")
                        .latitude("latitude")
                        .longitude("longitude")
                        .roleArn("roleArn")
                        .trackerName("trackerName")

                        // the properties below are optional
                        .timestamp(TimestampProperty.builder()
                                .value("value")

                                // the properties below are optional
                                .unit("unit")
                                .build())
                        .build())
                .openSearch(OpenSearchActionProperty.builder()
                        .endpoint("endpoint")
                        .id("id")
                        .index("index")
                        .roleArn("roleArn")
                        .type("type")
                        .build())
                .republish(RepublishActionProperty.builder()
                        .roleArn("roleArn")
                        .topic("topic")

                        // the properties below are optional
                        .headers(RepublishActionHeadersProperty.builder()
                                .contentType("contentType")
                                .correlationData("correlationData")
                                .messageExpiry("messageExpiry")
                                .payloadFormatIndicator("payloadFormatIndicator")
                                .responseTopic("responseTopic")
                                .userProperties(List.of(UserPropertyProperty.builder()
                                        .key("key")
                                        .value("value")
                                        .build()))
                                .build())
                        .qos(123)
                        .build())
                .s3(S3ActionProperty.builder()
                        .bucketName("bucketName")
                        .key("key")
                        .roleArn("roleArn")

                        // the properties below are optional
                        .cannedAcl("cannedAcl")
                        .build())
                .sns(SnsActionProperty.builder()
                        .roleArn("roleArn")
                        .targetArn("targetArn")

                        // the properties below are optional
                        .messageFormat("messageFormat")
                        .build())
                .sqs(SqsActionProperty.builder()
                        .queueUrl("queueUrl")
                        .roleArn("roleArn")

                        // the properties below are optional
                        .useBase64(false)
                        .build())
                .stepFunctions(StepFunctionsActionProperty.builder()
                        .roleArn("roleArn")
                        .stateMachineName("stateMachineName")

                        // the properties below are optional
                        .executionNamePrefix("executionNamePrefix")
                        .build())
                .timestream(TimestreamActionProperty.builder()
                        .databaseName("databaseName")
                        .dimensions(List.of(TimestreamDimensionProperty.builder()
                                .name("name")
                                .value("value")
                                .build()))
                        .roleArn("roleArn")
                        .tableName("tableName")

                        // the properties below are optional
                        .timestamp(TimestreamTimestampProperty.builder()
                                .unit("unit")
                                .value("value")
                                .build())
                        .build())
                .build())
        .build();
csharp
// Install: dotnet add package Amazon.CDK.AWS.IoT.Alpha
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
using Amazon.CDK.AWS.IoT.Alpha;

var actionConfig = new ActionConfig {
    Configuration = new ActionProperty {
        CloudwatchAlarm = new CloudwatchAlarmActionProperty {
            AlarmName = "alarmName",
            RoleArn = "roleArn",
            StateReason = "stateReason",
            StateValue = "stateValue"
        },
        CloudwatchLogs = new CloudwatchLogsActionProperty {
            LogGroupName = "logGroupName",
            RoleArn = "roleArn",

            // the properties below are optional
            BatchMode = false
        },
        CloudwatchMetric = new CloudwatchMetricActionProperty {
            MetricName = "metricName",
            MetricNamespace = "metricNamespace",
            MetricUnit = "metricUnit",
            MetricValue = "metricValue",
            RoleArn = "roleArn",

            // the properties below are optional
            MetricTimestamp = "metricTimestamp"
        },
        DynamoDb = new DynamoDBActionProperty {
            HashKeyField = "hashKeyField",
            HashKeyValue = "hashKeyValue",
            RoleArn = "roleArn",
            TableName = "tableName",

            // the properties below are optional
            HashKeyType = "hashKeyType",
            PayloadField = "payloadField",
            RangeKeyField = "rangeKeyField",
            RangeKeyType = "rangeKeyType",
            RangeKeyValue = "rangeKeyValue"
        },
        DynamoDBv2 = new DynamoDBv2ActionProperty {
            PutItem = new PutItemInputProperty {
                TableName = "tableName"
            },
            RoleArn = "roleArn"
        },
        Elasticsearch = new ElasticsearchActionProperty {
            Endpoint = "endpoint",
            Id = "id",
            Index = "index",
            RoleArn = "roleArn",
            Type = "type"
        },
        Firehose = new FirehoseActionProperty {
            DeliveryStreamName = "deliveryStreamName",
            RoleArn = "roleArn",

            // the properties below are optional
            BatchMode = false,
            Separator = "separator"
        },
        Http = new HttpActionProperty {
            Url = "url",

            // the properties below are optional
            Auth = new HttpAuthorizationProperty {
                Sigv4 = new SigV4AuthorizationProperty {
                    RoleArn = "roleArn",
                    ServiceName = "serviceName",
                    SigningRegion = "signingRegion"
                }
            },
            BatchConfig = new BatchConfigProperty {
                BatchAcrossTopics = false,
                MaxBatchOpenMs = 123,
                MaxBatchSize = 123,
                MaxBatchSizeBytes = 123
            },
            ConfirmationUrl = "confirmationUrl",
            EnableBatching = false,
            Headers = new [] { new HttpActionHeaderProperty {
                Key = "key",
                Value = "value"
            } }
        },
        InfluxDb = new InfluxDBActionProperty {
            DatabaseName = "databaseName",
            DestinationArn = "destinationArn",
            RoleArn = "roleArn",
            TableName = "tableName",

            // the properties below are optional
            BatchConfig = new InfluxDBBatchConfigProperty {
                BatchAcrossTopics = false,
                MaxBatchOpenMs = 123,
                MaxBatchSize = 123,
                MaxBatchSizeBytes = 123
            },
            Organization = "organization",
            Tags = new Dictionary<string, string> {
                { "tagsKey", "tags" }
            },
            TimestampUnit = "timestampUnit"
        },
        IotAnalytics = new IotAnalyticsActionProperty {
            ChannelName = "channelName",
            RoleArn = "roleArn",

            // the properties below are optional
            BatchMode = false
        },
        IotEvents = new IotEventsActionProperty {
            InputName = "inputName",
            RoleArn = "roleArn",

            // the properties below are optional
            BatchMode = false,
            MessageId = "messageId"
        },
        IotSiteWise = new IotSiteWiseActionProperty {
            PutAssetPropertyValueEntries = new [] { new PutAssetPropertyValueEntryProperty {
                PropertyValues = new [] { new AssetPropertyValueProperty {
                    Timestamp = new AssetPropertyTimestampProperty {
                        TimeInSeconds = "timeInSeconds",

                        // the properties below are optional
                        OffsetInNanos = "offsetInNanos"
                    },
                    Value = new AssetPropertyVariantProperty {
                        BooleanValue = "booleanValue",
                        DoubleValue = "doubleValue",
                        IntegerValue = "integerValue",
                        StringValue = "stringValue"
                    },

                    // the properties below are optional
                    Quality = "quality"
                } },

                // the properties below are optional
                AssetId = "assetId",
                EntryId = "entryId",
                PropertyAlias = "propertyAlias",
                PropertyId = "propertyId"
            } },
            RoleArn = "roleArn"
        },
        Kafka = new KafkaActionProperty {
            ClientProperties = new Dictionary<string, string> {
                { "clientPropertiesKey", "clientProperties" }
            },
            DestinationArn = "destinationArn",
            Topic = "topic",

            // the properties below are optional
            Headers = new [] { new KafkaActionHeaderProperty {
                Key = "key",
                Value = "value"
            } },
            Key = "key",
            Partition = "partition"
        },
        Kinesis = new KinesisActionProperty {
            RoleArn = "roleArn",
            StreamName = "streamName",

            // the properties below are optional
            PartitionKey = "partitionKey"
        },
        Lambda = new LambdaActionProperty {
            FunctionArn = "functionArn"
        },
        Location = new LocationActionProperty {
            DeviceId = "deviceId",
            Latitude = "latitude",
            Longitude = "longitude",
            RoleArn = "roleArn",
            TrackerName = "trackerName",

            // the properties below are optional
            Timestamp = new TimestampProperty {
                Value = "value",

                // the properties below are optional
                Unit = "unit"
            }
        },
        OpenSearch = new OpenSearchActionProperty {
            Endpoint = "endpoint",
            Id = "id",
            Index = "index",
            RoleArn = "roleArn",
            Type = "type"
        },
        Republish = new RepublishActionProperty {
            RoleArn = "roleArn",
            Topic = "topic",

            // the properties below are optional
            Headers = new RepublishActionHeadersProperty {
                ContentType = "contentType",
                CorrelationData = "correlationData",
                MessageExpiry = "messageExpiry",
                PayloadFormatIndicator = "payloadFormatIndicator",
                ResponseTopic = "responseTopic",
                UserProperties = new [] { new UserPropertyProperty {
                    Key = "key",
                    Value = "value"
                } }
            },
            Qos = 123
        },
        S3 = new S3ActionProperty {
            BucketName = "bucketName",
            Key = "key",
            RoleArn = "roleArn",

            // the properties below are optional
            CannedAcl = "cannedAcl"
        },
        Sns = new SnsActionProperty {
            RoleArn = "roleArn",
            TargetArn = "targetArn",

            // the properties below are optional
            MessageFormat = "messageFormat"
        },
        Sqs = new SqsActionProperty {
            QueueUrl = "queueUrl",
            RoleArn = "roleArn",

            // the properties below are optional
            UseBase64 = false
        },
        StepFunctions = new StepFunctionsActionProperty {
            RoleArn = "roleArn",
            StateMachineName = "stateMachineName",

            // the properties below are optional
            ExecutionNamePrefix = "executionNamePrefix"
        },
        Timestream = new TimestreamActionProperty {
            DatabaseName = "databaseName",
            Dimensions = new [] { new TimestreamDimensionProperty {
                Name = "name",
                Value = "value"
            } },
            RoleArn = "roleArn",
            TableName = "tableName",

            // the properties below are optional
            Timestamp = new TimestreamTimestampProperty {
                Unit = "unit",
                Value = "value"
            }
        }
    }
};
go
// Install: go get github.com/aws/aws-cdk-go/awscdkiotalpha/v2
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import iot_alpha "github.com/aws/aws-cdk-go/awscdkiotalpha"

actionConfig := &ActionConfig{
	Configuration: &ActionProperty{
		CloudwatchAlarm: &CloudwatchAlarmActionProperty{
			AlarmName: jsii.String("alarmName"),
			RoleArn: jsii.String("roleArn"),
			StateReason: jsii.String("stateReason"),
			StateValue: jsii.String("stateValue"),
		},
		CloudwatchLogs: &CloudwatchLogsActionProperty{
			LogGroupName: jsii.String("logGroupName"),
			RoleArn: jsii.String("roleArn"),

			// the properties below are optional
			BatchMode: jsii.Boolean(false),
		},
		CloudwatchMetric: &CloudwatchMetricActionProperty{
			MetricName: jsii.String("metricName"),
			MetricNamespace: jsii.String("metricNamespace"),
			MetricUnit: jsii.String("metricUnit"),
			MetricValue: jsii.String("metricValue"),
			RoleArn: jsii.String("roleArn"),

			// the properties below are optional
			MetricTimestamp: jsii.String("metricTimestamp"),
		},
		DynamoDb: &DynamoDBActionProperty{
			HashKeyField: jsii.String("hashKeyField"),
			HashKeyValue: jsii.String("hashKeyValue"),
			RoleArn: jsii.String("roleArn"),
			TableName: jsii.String("tableName"),

			// the properties below are optional
			HashKeyType: jsii.String("hashKeyType"),
			PayloadField: jsii.String("payloadField"),
			RangeKeyField: jsii.String("rangeKeyField"),
			RangeKeyType: jsii.String("rangeKeyType"),
			RangeKeyValue: jsii.String("rangeKeyValue"),
		},
		DynamoDBv2: &DynamoDBv2ActionProperty{
			PutItem: &PutItemInputProperty{
				TableName: jsii.String("tableName"),
			},
			RoleArn: jsii.String("roleArn"),
		},
		Elasticsearch: &ElasticsearchActionProperty{
			Endpoint: jsii.String("endpoint"),
			Id: jsii.String("id"),
			Index: jsii.String("index"),
			RoleArn: jsii.String("roleArn"),
			Type: jsii.String("type"),
		},
		Firehose: &FirehoseActionProperty{
			DeliveryStreamName: jsii.String("deliveryStreamName"),
			RoleArn: jsii.String("roleArn"),

			// the properties below are optional
			BatchMode: jsii.Boolean(false),
			Separator: jsii.String("separator"),
		},
		Http: &HttpActionProperty{
			Url: jsii.String("url"),

			// the properties below are optional
			Auth: &HttpAuthorizationProperty{
				Sigv4: &SigV4AuthorizationProperty{
					RoleArn: jsii.String("roleArn"),
					ServiceName: jsii.String("serviceName"),
					SigningRegion: jsii.String("signingRegion"),
				},
			},
			BatchConfig: &BatchConfigProperty{
				BatchAcrossTopics: jsii.Boolean(false),
				MaxBatchOpenMs: jsii.Number(123),
				MaxBatchSize: jsii.Number(123),
				MaxBatchSizeBytes: jsii.Number(123),
			},
			ConfirmationUrl: jsii.String("confirmationUrl"),
			EnableBatching: jsii.Boolean(false),
			Headers: []interface{}{
				&HttpActionHeaderProperty{
					Key: jsii.String("key"),
					Value: jsii.String("value"),
				},
			},
		},
		InfluxDb: &InfluxDBActionProperty{
			DatabaseName: jsii.String("databaseName"),
			DestinationArn: jsii.String("destinationArn"),
			RoleArn: jsii.String("roleArn"),
			TableName: jsii.String("tableName"),

			// the properties below are optional
			BatchConfig: &InfluxDBBatchConfigProperty{
				BatchAcrossTopics: jsii.Boolean(false),
				MaxBatchOpenMs: jsii.Number(123),
				MaxBatchSize: jsii.Number(123),
				MaxBatchSizeBytes: jsii.Number(123),
			},
			Organization: jsii.String("organization"),
			Tags: map[string]*string{
				"tagsKey": jsii.String("tags"),
			},
			TimestampUnit: jsii.String("timestampUnit"),
		},
		IotAnalytics: &IotAnalyticsActionProperty{
			ChannelName: jsii.String("channelName"),
			RoleArn: jsii.String("roleArn"),

			// the properties below are optional
			BatchMode: jsii.Boolean(false),
		},
		IotEvents: &IotEventsActionProperty{
			InputName: jsii.String("inputName"),
			RoleArn: jsii.String("roleArn"),

			// the properties below are optional
			BatchMode: jsii.Boolean(false),
			MessageId: jsii.String("messageId"),
		},
		IotSiteWise: &IotSiteWiseActionProperty{
			PutAssetPropertyValueEntries: []interface{}{
				&PutAssetPropertyValueEntryProperty{
					PropertyValues: []interface{}{
						&AssetPropertyValueProperty{
							Timestamp: &AssetPropertyTimestampProperty{
								TimeInSeconds: jsii.String("timeInSeconds"),

								// the properties below are optional
								OffsetInNanos: jsii.String("offsetInNanos"),
							},
							Value: &AssetPropertyVariantProperty{
								BooleanValue: jsii.String("booleanValue"),
								DoubleValue: jsii.String("doubleValue"),
								IntegerValue: jsii.String("integerValue"),
								StringValue: jsii.String("stringValue"),
							},

							// the properties below are optional
							Quality: jsii.String("quality"),
						},
					},

					// the properties below are optional
					AssetId: jsii.String("assetId"),
					EntryId: jsii.String("entryId"),
					PropertyAlias: jsii.String("propertyAlias"),
					PropertyId: jsii.String("propertyId"),
				},
			},
			RoleArn: jsii.String("roleArn"),
		},
		Kafka: &KafkaActionProperty{
			ClientProperties: map[string]*string{
				"clientPropertiesKey": jsii.String("clientProperties"),
			},
			DestinationArn: jsii.String("destinationArn"),
			Topic: jsii.String("topic"),

			// the properties below are optional
			Headers: []interface{}{
				&KafkaActionHeaderProperty{
					Key: jsii.String("key"),
					Value: jsii.String("value"),
				},
			},
			Key: jsii.String("key"),
			Partition: jsii.String("partition"),
		},
		Kinesis: &KinesisActionProperty{
			RoleArn: jsii.String("roleArn"),
			StreamName: jsii.String("streamName"),

			// the properties below are optional
			PartitionKey: jsii.String("partitionKey"),
		},
		Lambda: &LambdaActionProperty{
			FunctionArn: jsii.String("functionArn"),
		},
		Location: &LocationActionProperty{
			DeviceId: jsii.String("deviceId"),
			Latitude: jsii.String("latitude"),
			Longitude: jsii.String("longitude"),
			RoleArn: jsii.String("roleArn"),
			TrackerName: jsii.String("trackerName"),

			// the properties below are optional
			Timestamp: &TimestampProperty{
				Value: jsii.String("value"),

				// the properties below are optional
				Unit: jsii.String("unit"),
			},
		},
		OpenSearch: &OpenSearchActionProperty{
			Endpoint: jsii.String("endpoint"),
			Id: jsii.String("id"),
			Index: jsii.String("index"),
			RoleArn: jsii.String("roleArn"),
			Type: jsii.String("type"),
		},
		Republish: &RepublishActionProperty{
			RoleArn: jsii.String("roleArn"),
			Topic: jsii.String("topic"),

			// the properties below are optional
			Headers: &RepublishActionHeadersProperty{
				ContentType: jsii.String("contentType"),
				CorrelationData: jsii.String("correlationData"),
				MessageExpiry: jsii.String("messageExpiry"),
				PayloadFormatIndicator: jsii.String("payloadFormatIndicator"),
				ResponseTopic: jsii.String("responseTopic"),
				UserProperties: []interface{}{
					&UserPropertyProperty{
						Key: jsii.String("key"),
						Value: jsii.String("value"),
					},
				},
			},
			Qos: jsii.Number(123),
		},
		S3: &S3ActionProperty{
			BucketName: jsii.String("bucketName"),
			Key: jsii.String("key"),
			RoleArn: jsii.String("roleArn"),

			// the properties below are optional
			CannedAcl: jsii.String("cannedAcl"),
		},
		Sns: &SnsActionProperty{
			RoleArn: jsii.String("roleArn"),
			TargetArn: jsii.String("targetArn"),

			// the properties below are optional
			MessageFormat: jsii.String("messageFormat"),
		},
		Sqs: &SqsActionProperty{
			QueueUrl: jsii.String("queueUrl"),
			RoleArn: jsii.String("roleArn"),

			// the properties below are optional
			UseBase64: jsii.Boolean(false),
		},
		StepFunctions: &StepFunctionsActionProperty{
			RoleArn: jsii.String("roleArn"),
			StateMachineName: jsii.String("stateMachineName"),

			// the properties below are optional
			ExecutionNamePrefix: jsii.String("executionNamePrefix"),
		},
		Timestream: &TimestreamActionProperty{
			DatabaseName: jsii.String("databaseName"),
			Dimensions: []interface{}{
				&TimestreamDimensionProperty{
					Name: jsii.String("name"),
					Value: jsii.String("value"),
				},
			},
			RoleArn: jsii.String("roleArn"),
			TableName: jsii.String("tableName"),

			// the properties below are optional
			Timestamp: &TimestreamTimestampProperty{
				Unit: jsii.String("unit"),
				Value: jsii.String("value"),
			},
		},
	},
}

Properties ​

configurationCfnTopicRule.ActionPropertyconfigurationActionPropertyconfigurationActionPropertyConfigurationActionPropertyConfigurationActionPropertyrequired#
The configuration for this action.