All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.awsnative.iot.kotlin.inputs.TopicRuleActionArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.iot.kotlin.inputs

import com.pulumi.awsnative.iot.inputs.TopicRuleActionArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 *
 * @property cloudwatchAlarm Change the state of a CloudWatch alarm.
 * @property cloudwatchLogs Sends data to CloudWatch.
 * @property cloudwatchMetric Capture a CloudWatch metric.
 * @property dynamoDBv2 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.
 * @property dynamoDb Write to a DynamoDB table.
 * @property elasticsearch Write data to an Amazon OpenSearch Service domain.
 * > The `Elasticsearch` action can only be used by existing rule actions. To create a new rule action or to update an existing rule action, use the `OpenSearch` rule action instead. For more information, see [OpenSearchAction](https://docs.aws.amazon.com//iot/latest/apireference/API_OpenSearchAction.html) .
 * @property firehose Write to an Amazon Kinesis Firehose stream.
 * @property http Send data to an HTTPS endpoint.
 * @property iotAnalytics Sends message data to an AWS IoT Analytics channel.
 * @property iotEvents Sends an input to an AWS IoT Events detector.
 * @property iotSiteWise Sends data from the MQTT message that triggered the rule to AWS IoT SiteWise asset properties.
 * @property kafka Send messages to an Amazon Managed Streaming for Apache Kafka (Amazon MSK) or self-managed Apache Kafka cluster.
 * @property kinesis Write data to an Amazon Kinesis stream.
 * @property lambda Invoke a Lambda function.
 * @property location Sends device location data to [Amazon Location Service](https://docs.aws.amazon.com//location/latest/developerguide/welcome.html) .
 * @property openSearch Write data to an Amazon OpenSearch Service domain.
 * @property republish Publish to another MQTT topic.
 * @property s3 Write to an Amazon S3 bucket.
 * @property sns Publish to an Amazon SNS topic.
 * @property sqs Publish to an Amazon SQS queue.
 * @property stepFunctions Starts execution of a Step Functions state machine.
 * @property timestream Writes attributes from an MQTT message.
 */
public data class TopicRuleActionArgs(
    public val cloudwatchAlarm: Output? = null,
    public val cloudwatchLogs: Output? = null,
    public val cloudwatchMetric: Output? = null,
    public val dynamoDBv2: Output? = null,
    public val dynamoDb: Output? = null,
    public val elasticsearch: Output? = null,
    public val firehose: Output? = null,
    public val http: Output? = null,
    public val iotAnalytics: Output? = null,
    public val iotEvents: Output? = null,
    public val iotSiteWise: Output? = null,
    public val kafka: Output? = null,
    public val kinesis: Output? = null,
    public val lambda: Output? = null,
    public val location: Output? = null,
    public val openSearch: Output? = null,
    public val republish: Output? = null,
    public val s3: Output? = null,
    public val sns: Output? = null,
    public val sqs: Output? = null,
    public val stepFunctions: Output? = null,
    public val timestream: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.iot.inputs.TopicRuleActionArgs =
        com.pulumi.awsnative.iot.inputs.TopicRuleActionArgs.builder()
            .cloudwatchAlarm(cloudwatchAlarm?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .cloudwatchLogs(cloudwatchLogs?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .cloudwatchMetric(cloudwatchMetric?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .dynamoDBv2(dynamoDBv2?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .dynamoDb(dynamoDb?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .elasticsearch(elasticsearch?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .firehose(firehose?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .http(http?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .iotAnalytics(iotAnalytics?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .iotEvents(iotEvents?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .iotSiteWise(iotSiteWise?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .kafka(kafka?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .kinesis(kinesis?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .lambda(lambda?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .location(location?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .openSearch(openSearch?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .republish(republish?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .s3(s3?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .sns(sns?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .sqs(sqs?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .stepFunctions(stepFunctions?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .timestream(timestream?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

/**
 * Builder for [TopicRuleActionArgs].
 */
@PulumiTagMarker
public class TopicRuleActionArgsBuilder internal constructor() {
    private var cloudwatchAlarm: Output? = null

    private var cloudwatchLogs: Output? = null

    private var cloudwatchMetric: Output? = null

    private var dynamoDBv2: Output? = null

    private var dynamoDb: Output? = null

    private var elasticsearch: Output? = null

    private var firehose: Output? = null

    private var http: Output? = null

    private var iotAnalytics: Output? = null

    private var iotEvents: Output? = null

    private var iotSiteWise: Output? = null

    private var kafka: Output? = null

    private var kinesis: Output? = null

    private var lambda: Output? = null

    private var location: Output? = null

    private var openSearch: Output? = null

    private var republish: Output? = null

    private var s3: Output? = null

    private var sns: Output? = null

    private var sqs: Output? = null

    private var stepFunctions: Output? = null

    private var timestream: Output? = null

    /**
     * @param value Change the state of a CloudWatch alarm.
     */
    @JvmName("spfsbjyycfavrgsv")
    public suspend fun cloudwatchAlarm(`value`: Output) {
        this.cloudwatchAlarm = value
    }

    /**
     * @param value Sends data to CloudWatch.
     */
    @JvmName("qhsatdoapcfqxeha")
    public suspend fun cloudwatchLogs(`value`: Output) {
        this.cloudwatchLogs = value
    }

    /**
     * @param value Capture a CloudWatch metric.
     */
    @JvmName("rillladwkprgcnwb")
    public suspend fun cloudwatchMetric(`value`: Output) {
        this.cloudwatchMetric = value
    }

    /**
     * @param value 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.
     */
    @JvmName("faxdlvnagppacjyf")
    public suspend fun dynamoDBv2(`value`: Output) {
        this.dynamoDBv2 = value
    }

    /**
     * @param value Write to a DynamoDB table.
     */
    @JvmName("hstkvumrtfwqphdg")
    public suspend fun dynamoDb(`value`: Output) {
        this.dynamoDb = value
    }

    /**
     * @param value Write data to an Amazon OpenSearch Service domain.
     * > The `Elasticsearch` action can only be used by existing rule actions. To create a new rule action or to update an existing rule action, use the `OpenSearch` rule action instead. For more information, see [OpenSearchAction](https://docs.aws.amazon.com//iot/latest/apireference/API_OpenSearchAction.html) .
     */
    @JvmName("kqmcfrsxbklrryou")
    public suspend fun elasticsearch(`value`: Output) {
        this.elasticsearch = value
    }

    /**
     * @param value Write to an Amazon Kinesis Firehose stream.
     */
    @JvmName("qfegtpiuxpmqotai")
    public suspend fun firehose(`value`: Output) {
        this.firehose = value
    }

    /**
     * @param value Send data to an HTTPS endpoint.
     */
    @JvmName("avnosyxujhopnfkj")
    public suspend fun http(`value`: Output) {
        this.http = value
    }

    /**
     * @param value Sends message data to an AWS IoT Analytics channel.
     */
    @JvmName("neorfpdyhhhbmpxa")
    public suspend fun iotAnalytics(`value`: Output) {
        this.iotAnalytics = value
    }

    /**
     * @param value Sends an input to an AWS IoT Events detector.
     */
    @JvmName("yaybcduddecckkns")
    public suspend fun iotEvents(`value`: Output) {
        this.iotEvents = value
    }

    /**
     * @param value Sends data from the MQTT message that triggered the rule to AWS IoT SiteWise asset properties.
     */
    @JvmName("ecrwffvhvbtxyuyk")
    public suspend fun iotSiteWise(`value`: Output) {
        this.iotSiteWise = value
    }

    /**
     * @param value Send messages to an Amazon Managed Streaming for Apache Kafka (Amazon MSK) or self-managed Apache Kafka cluster.
     */
    @JvmName("igjydxytegqmmuyt")
    public suspend fun kafka(`value`: Output) {
        this.kafka = value
    }

    /**
     * @param value Write data to an Amazon Kinesis stream.
     */
    @JvmName("egkjhudqfstwtecg")
    public suspend fun kinesis(`value`: Output) {
        this.kinesis = value
    }

    /**
     * @param value Invoke a Lambda function.
     */
    @JvmName("mxwymjchefcmgyqu")
    public suspend fun lambda(`value`: Output) {
        this.lambda = value
    }

    /**
     * @param value Sends device location data to [Amazon Location Service](https://docs.aws.amazon.com//location/latest/developerguide/welcome.html) .
     */
    @JvmName("ewdairashtpvghym")
    public suspend fun location(`value`: Output) {
        this.location = value
    }

    /**
     * @param value Write data to an Amazon OpenSearch Service domain.
     */
    @JvmName("bhjrfnbnbcxxirmh")
    public suspend fun openSearch(`value`: Output) {
        this.openSearch = value
    }

    /**
     * @param value Publish to another MQTT topic.
     */
    @JvmName("jarlyiqawijaacfk")
    public suspend fun republish(`value`: Output) {
        this.republish = value
    }

    /**
     * @param value Write to an Amazon S3 bucket.
     */
    @JvmName("jcxqfncugoweemhf")
    public suspend fun s3(`value`: Output) {
        this.s3 = value
    }

    /**
     * @param value Publish to an Amazon SNS topic.
     */
    @JvmName("chekrfoibksuqrws")
    public suspend fun sns(`value`: Output) {
        this.sns = value
    }

    /**
     * @param value Publish to an Amazon SQS queue.
     */
    @JvmName("gjxpmkkvnqbtypos")
    public suspend fun sqs(`value`: Output) {
        this.sqs = value
    }

    /**
     * @param value Starts execution of a Step Functions state machine.
     */
    @JvmName("jejxieqtllbdbtse")
    public suspend fun stepFunctions(`value`: Output) {
        this.stepFunctions = value
    }

    /**
     * @param value Writes attributes from an MQTT message.
     */
    @JvmName("israhqhrqjhbjfkp")
    public suspend fun timestream(`value`: Output) {
        this.timestream = value
    }

    /**
     * @param value Change the state of a CloudWatch alarm.
     */
    @JvmName("qpsvkflyukwofuyd")
    public suspend fun cloudwatchAlarm(`value`: TopicRuleCloudwatchAlarmActionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cloudwatchAlarm = mapped
    }

    /**
     * @param argument Change the state of a CloudWatch alarm.
     */
    @JvmName("girlgbkcrnnmeydy")
    public suspend fun cloudwatchAlarm(argument: suspend TopicRuleCloudwatchAlarmActionArgsBuilder.() -> Unit) {
        val toBeMapped = TopicRuleCloudwatchAlarmActionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.cloudwatchAlarm = mapped
    }

    /**
     * @param value Sends data to CloudWatch.
     */
    @JvmName("lvlvdcjopetemqvo")
    public suspend fun cloudwatchLogs(`value`: TopicRuleCloudwatchLogsActionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cloudwatchLogs = mapped
    }

    /**
     * @param argument Sends data to CloudWatch.
     */
    @JvmName("vlgdjtupelibwivw")
    public suspend fun cloudwatchLogs(argument: suspend TopicRuleCloudwatchLogsActionArgsBuilder.() -> Unit) {
        val toBeMapped = TopicRuleCloudwatchLogsActionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.cloudwatchLogs = mapped
    }

    /**
     * @param value Capture a CloudWatch metric.
     */
    @JvmName("kofbdfbenjhjgkpx")
    public suspend fun cloudwatchMetric(`value`: TopicRuleCloudwatchMetricActionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cloudwatchMetric = mapped
    }

    /**
     * @param argument Capture a CloudWatch metric.
     */
    @JvmName("edenucoksehakqrl")
    public suspend fun cloudwatchMetric(argument: suspend TopicRuleCloudwatchMetricActionArgsBuilder.() -> Unit) {
        val toBeMapped = TopicRuleCloudwatchMetricActionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.cloudwatchMetric = mapped
    }

    /**
     * @param value 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.
     */
    @JvmName("bbgwgognlqhpgvgd")
    public suspend fun dynamoDBv2(`value`: TopicRuleDynamoDBv2ActionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dynamoDBv2 = mapped
    }

    /**
     * @param argument 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.
     */
    @JvmName("wemtehvcxtiilrwp")
    public suspend fun dynamoDBv2(argument: suspend TopicRuleDynamoDBv2ActionArgsBuilder.() -> Unit) {
        val toBeMapped = TopicRuleDynamoDBv2ActionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.dynamoDBv2 = mapped
    }

    /**
     * @param value Write to a DynamoDB table.
     */
    @JvmName("rklyatsuujmprkod")
    public suspend fun dynamoDb(`value`: TopicRuleDynamoDbActionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dynamoDb = mapped
    }

    /**
     * @param argument Write to a DynamoDB table.
     */
    @JvmName("gxptqgrbdkpynjog")
    public suspend fun dynamoDb(argument: suspend TopicRuleDynamoDbActionArgsBuilder.() -> Unit) {
        val toBeMapped = TopicRuleDynamoDbActionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.dynamoDb = mapped
    }

    /**
     * @param value Write data to an Amazon OpenSearch Service domain.
     * > The `Elasticsearch` action can only be used by existing rule actions. To create a new rule action or to update an existing rule action, use the `OpenSearch` rule action instead. For more information, see [OpenSearchAction](https://docs.aws.amazon.com//iot/latest/apireference/API_OpenSearchAction.html) .
     */
    @JvmName("updbfhygnyfdpsij")
    public suspend fun elasticsearch(`value`: TopicRuleElasticsearchActionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.elasticsearch = mapped
    }

    /**
     * @param argument Write data to an Amazon OpenSearch Service domain.
     * > The `Elasticsearch` action can only be used by existing rule actions. To create a new rule action or to update an existing rule action, use the `OpenSearch` rule action instead. For more information, see [OpenSearchAction](https://docs.aws.amazon.com//iot/latest/apireference/API_OpenSearchAction.html) .
     */
    @JvmName("wjtjngduprevrdva")
    public suspend fun elasticsearch(argument: suspend TopicRuleElasticsearchActionArgsBuilder.() -> Unit) {
        val toBeMapped = TopicRuleElasticsearchActionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.elasticsearch = mapped
    }

    /**
     * @param value Write to an Amazon Kinesis Firehose stream.
     */
    @JvmName("lvigwvddhjlqjlmq")
    public suspend fun firehose(`value`: TopicRuleFirehoseActionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.firehose = mapped
    }

    /**
     * @param argument Write to an Amazon Kinesis Firehose stream.
     */
    @JvmName("xbylqxrgiavhxjjc")
    public suspend fun firehose(argument: suspend TopicRuleFirehoseActionArgsBuilder.() -> Unit) {
        val toBeMapped = TopicRuleFirehoseActionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.firehose = mapped
    }

    /**
     * @param value Send data to an HTTPS endpoint.
     */
    @JvmName("olgnukhortaudyat")
    public suspend fun http(`value`: TopicRuleHttpActionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.http = mapped
    }

    /**
     * @param argument Send data to an HTTPS endpoint.
     */
    @JvmName("kumsuvhfisbswhgd")
    public suspend fun http(argument: suspend TopicRuleHttpActionArgsBuilder.() -> Unit) {
        val toBeMapped = TopicRuleHttpActionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.http = mapped
    }

    /**
     * @param value Sends message data to an AWS IoT Analytics channel.
     */
    @JvmName("nirahwhqkrbfbwhg")
    public suspend fun iotAnalytics(`value`: TopicRuleIotAnalyticsActionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.iotAnalytics = mapped
    }

    /**
     * @param argument Sends message data to an AWS IoT Analytics channel.
     */
    @JvmName("rcbxacxgjigftpgu")
    public suspend fun iotAnalytics(argument: suspend TopicRuleIotAnalyticsActionArgsBuilder.() -> Unit) {
        val toBeMapped = TopicRuleIotAnalyticsActionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.iotAnalytics = mapped
    }

    /**
     * @param value Sends an input to an AWS IoT Events detector.
     */
    @JvmName("hjkhcnsvvwhgmahn")
    public suspend fun iotEvents(`value`: TopicRuleIotEventsActionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.iotEvents = mapped
    }

    /**
     * @param argument Sends an input to an AWS IoT Events detector.
     */
    @JvmName("eqrikgrkujypgxgx")
    public suspend fun iotEvents(argument: suspend TopicRuleIotEventsActionArgsBuilder.() -> Unit) {
        val toBeMapped = TopicRuleIotEventsActionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.iotEvents = mapped
    }

    /**
     * @param value Sends data from the MQTT message that triggered the rule to AWS IoT SiteWise asset properties.
     */
    @JvmName("obokonwoybdfipiu")
    public suspend fun iotSiteWise(`value`: TopicRuleIotSiteWiseActionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.iotSiteWise = mapped
    }

    /**
     * @param argument Sends data from the MQTT message that triggered the rule to AWS IoT SiteWise asset properties.
     */
    @JvmName("wlmauufulnjbpgrc")
    public suspend fun iotSiteWise(argument: suspend TopicRuleIotSiteWiseActionArgsBuilder.() -> Unit) {
        val toBeMapped = TopicRuleIotSiteWiseActionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.iotSiteWise = mapped
    }

    /**
     * @param value Send messages to an Amazon Managed Streaming for Apache Kafka (Amazon MSK) or self-managed Apache Kafka cluster.
     */
    @JvmName("cwtkogndbcyirglc")
    public suspend fun kafka(`value`: TopicRuleKafkaActionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kafka = mapped
    }

    /**
     * @param argument Send messages to an Amazon Managed Streaming for Apache Kafka (Amazon MSK) or self-managed Apache Kafka cluster.
     */
    @JvmName("ciysxemiyroibxqa")
    public suspend fun kafka(argument: suspend TopicRuleKafkaActionArgsBuilder.() -> Unit) {
        val toBeMapped = TopicRuleKafkaActionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.kafka = mapped
    }

    /**
     * @param value Write data to an Amazon Kinesis stream.
     */
    @JvmName("oeyosxnfsmnpadfp")
    public suspend fun kinesis(`value`: TopicRuleKinesisActionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kinesis = mapped
    }

    /**
     * @param argument Write data to an Amazon Kinesis stream.
     */
    @JvmName("uqmnjyduuwqminbh")
    public suspend fun kinesis(argument: suspend TopicRuleKinesisActionArgsBuilder.() -> Unit) {
        val toBeMapped = TopicRuleKinesisActionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.kinesis = mapped
    }

    /**
     * @param value Invoke a Lambda function.
     */
    @JvmName("hyvjerjsfdckryum")
    public suspend fun lambda(`value`: TopicRuleLambdaActionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.lambda = mapped
    }

    /**
     * @param argument Invoke a Lambda function.
     */
    @JvmName("wfclyxqonbcypuey")
    public suspend fun lambda(argument: suspend TopicRuleLambdaActionArgsBuilder.() -> Unit) {
        val toBeMapped = TopicRuleLambdaActionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.lambda = mapped
    }

    /**
     * @param value Sends device location data to [Amazon Location Service](https://docs.aws.amazon.com//location/latest/developerguide/welcome.html) .
     */
    @JvmName("ewptvntriiqmugcg")
    public suspend fun location(`value`: TopicRuleLocationActionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.location = mapped
    }

    /**
     * @param argument Sends device location data to [Amazon Location Service](https://docs.aws.amazon.com//location/latest/developerguide/welcome.html) .
     */
    @JvmName("bicferuetsdqeawk")
    public suspend fun location(argument: suspend TopicRuleLocationActionArgsBuilder.() -> Unit) {
        val toBeMapped = TopicRuleLocationActionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.location = mapped
    }

    /**
     * @param value Write data to an Amazon OpenSearch Service domain.
     */
    @JvmName("qeaagjcibnjfipet")
    public suspend fun openSearch(`value`: TopicRuleOpenSearchActionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.openSearch = mapped
    }

    /**
     * @param argument Write data to an Amazon OpenSearch Service domain.
     */
    @JvmName("stvdgktevpouckfh")
    public suspend fun openSearch(argument: suspend TopicRuleOpenSearchActionArgsBuilder.() -> Unit) {
        val toBeMapped = TopicRuleOpenSearchActionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.openSearch = mapped
    }

    /**
     * @param value Publish to another MQTT topic.
     */
    @JvmName("gllkygfpfcbijlny")
    public suspend fun republish(`value`: TopicRuleRepublishActionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.republish = mapped
    }

    /**
     * @param argument Publish to another MQTT topic.
     */
    @JvmName("bmlekfpxovlgdrvv")
    public suspend fun republish(argument: suspend TopicRuleRepublishActionArgsBuilder.() -> Unit) {
        val toBeMapped = TopicRuleRepublishActionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.republish = mapped
    }

    /**
     * @param value Write to an Amazon S3 bucket.
     */
    @JvmName("ntrxmbhtoemqirrl")
    public suspend fun s3(`value`: TopicRuleS3ActionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.s3 = mapped
    }

    /**
     * @param argument Write to an Amazon S3 bucket.
     */
    @JvmName("cnhdfydrvwnabpyr")
    public suspend fun s3(argument: suspend TopicRuleS3ActionArgsBuilder.() -> Unit) {
        val toBeMapped = TopicRuleS3ActionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.s3 = mapped
    }

    /**
     * @param value Publish to an Amazon SNS topic.
     */
    @JvmName("qrdxmynfpurtpebf")
    public suspend fun sns(`value`: TopicRuleSnsActionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sns = mapped
    }

    /**
     * @param argument Publish to an Amazon SNS topic.
     */
    @JvmName("lvlqvgfekdehiylp")
    public suspend fun sns(argument: suspend TopicRuleSnsActionArgsBuilder.() -> Unit) {
        val toBeMapped = TopicRuleSnsActionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.sns = mapped
    }

    /**
     * @param value Publish to an Amazon SQS queue.
     */
    @JvmName("xufkkvwqqthicysg")
    public suspend fun sqs(`value`: TopicRuleSqsActionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sqs = mapped
    }

    /**
     * @param argument Publish to an Amazon SQS queue.
     */
    @JvmName("wyiecumqpumhhexw")
    public suspend fun sqs(argument: suspend TopicRuleSqsActionArgsBuilder.() -> Unit) {
        val toBeMapped = TopicRuleSqsActionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.sqs = mapped
    }

    /**
     * @param value Starts execution of a Step Functions state machine.
     */
    @JvmName("htbmgpxbqxudwlsg")
    public suspend fun stepFunctions(`value`: TopicRuleStepFunctionsActionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.stepFunctions = mapped
    }

    /**
     * @param argument Starts execution of a Step Functions state machine.
     */
    @JvmName("gatnxlyxvikqukrx")
    public suspend fun stepFunctions(argument: suspend TopicRuleStepFunctionsActionArgsBuilder.() -> Unit) {
        val toBeMapped = TopicRuleStepFunctionsActionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.stepFunctions = mapped
    }

    /**
     * @param value Writes attributes from an MQTT message.
     */
    @JvmName("ftkmgyfjqriorwyo")
    public suspend fun timestream(`value`: TopicRuleTimestreamActionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.timestream = mapped
    }

    /**
     * @param argument Writes attributes from an MQTT message.
     */
    @JvmName("jmmrhafvxyyjjgvv")
    public suspend fun timestream(argument: suspend TopicRuleTimestreamActionArgsBuilder.() -> Unit) {
        val toBeMapped = TopicRuleTimestreamActionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.timestream = mapped
    }

    internal fun build(): TopicRuleActionArgs = TopicRuleActionArgs(
        cloudwatchAlarm = cloudwatchAlarm,
        cloudwatchLogs = cloudwatchLogs,
        cloudwatchMetric = cloudwatchMetric,
        dynamoDBv2 = dynamoDBv2,
        dynamoDb = dynamoDb,
        elasticsearch = elasticsearch,
        firehose = firehose,
        http = http,
        iotAnalytics = iotAnalytics,
        iotEvents = iotEvents,
        iotSiteWise = iotSiteWise,
        kafka = kafka,
        kinesis = kinesis,
        lambda = lambda,
        location = location,
        openSearch = openSearch,
        republish = republish,
        s3 = s3,
        sns = sns,
        sqs = sqs,
        stepFunctions = stepFunctions,
        timestream = timestream,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy