com.pulumi.awsnative.iot.kotlin.inputs.TopicRuleSnsActionArgs.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pulumi-aws-native-kotlin Show documentation
Show all versions of pulumi-aws-native-kotlin Show documentation
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@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"),
)
}