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

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

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 0.122.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

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

import com.pulumi.awsnative.iot.inputs.TopicRuleSnsActionArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 *
 * @property messageFormat (Optional) The message format of the message to publish. Accepted values are "JSON" and "RAW". The default value of the attribute is "RAW". SNS uses this setting to determine if the payload should be parsed and relevant platform-specific bits of the payload should be extracted. For more information, see [Amazon SNS Message and JSON Formats](https://docs.aws.amazon.com/sns/latest/dg/json-formats.html) in the *Amazon Simple Notification Service Developer Guide* .
 * @property roleArn The ARN of the IAM role that grants access.
 * @property targetArn The ARN of the SNS topic.
 */
public data class TopicRuleSnsActionArgs(
    public val messageFormat: Output? = null,
    public val roleArn: Output,
    public val targetArn: Output,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.iot.inputs.TopicRuleSnsActionArgs =
        com.pulumi.awsnative.iot.inputs.TopicRuleSnsActionArgs.builder()
            .messageFormat(messageFormat?.applyValue({ args0 -> args0 }))
            .roleArn(roleArn.applyValue({ args0 -> args0 }))
            .targetArn(targetArn.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [TopicRuleSnsActionArgs].
 */
@PulumiTagMarker
public class TopicRuleSnsActionArgsBuilder internal constructor() {
    private var messageFormat: Output? = null

    private var roleArn: Output? = null

    private var targetArn: Output? = null

    /**
     * @param value (Optional) The message format of the message to publish. Accepted values are "JSON" and "RAW". The default value of the attribute is "RAW". SNS uses this setting to determine if the payload should be parsed and relevant platform-specific bits of the payload should be extracted. For more information, see [Amazon SNS Message and JSON Formats](https://docs.aws.amazon.com/sns/latest/dg/json-formats.html) in the *Amazon Simple Notification Service Developer Guide* .
     */
    @JvmName("uyinsgcccufitbpc")
    public suspend fun messageFormat(`value`: Output) {
        this.messageFormat = value
    }

    /**
     * @param value The ARN of the IAM role that grants access.
     */
    @JvmName("twgbfvjtwpyxmcin")
    public suspend fun roleArn(`value`: Output) {
        this.roleArn = value
    }

    /**
     * @param value The ARN of the SNS topic.
     */
    @JvmName("fpnxdslwjxrfhihv")
    public suspend fun targetArn(`value`: Output) {
        this.targetArn = value
    }

    /**
     * @param value (Optional) The message format of the message to publish. Accepted values are "JSON" and "RAW". The default value of the attribute is "RAW". SNS uses this setting to determine if the payload should be parsed and relevant platform-specific bits of the payload should be extracted. For more information, see [Amazon SNS Message and JSON Formats](https://docs.aws.amazon.com/sns/latest/dg/json-formats.html) in the *Amazon Simple Notification Service Developer Guide* .
     */
    @JvmName("tudgvwdemudjopfg")
    public suspend fun messageFormat(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.messageFormat = mapped
    }

    /**
     * @param value The ARN of the IAM role that grants access.
     */
    @JvmName("bmgjonufhgsgckby")
    public suspend fun roleArn(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.roleArn = mapped
    }

    /**
     * @param value The ARN of the SNS topic.
     */
    @JvmName("aoyokkpjrvrdcrfn")
    public suspend fun targetArn(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.targetArn = mapped
    }

    internal fun build(): TopicRuleSnsActionArgs = TopicRuleSnsActionArgs(
        messageFormat = messageFormat,
        roleArn = roleArn ?: throw PulumiNullFieldException("roleArn"),
        targetArn = targetArn ?: throw PulumiNullFieldException("targetArn"),
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy