com.pulumi.awsnative.logs.kotlin.DestinationArgs.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.logs.kotlin
import com.pulumi.awsnative.logs.DestinationArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName
/**
* The AWS::Logs::Destination resource specifies a CloudWatch Logs destination. A destination encapsulates a physical resource (such as an Amazon Kinesis data stream) and enables you to subscribe that resource to a stream of log events.
* @property destinationName The name of the destination resource
* @property destinationPolicy An IAM policy document that governs which AWS accounts can create subscription filters against this destination.
* @property roleArn The ARN of an IAM role that permits CloudWatch Logs to send data to the specified AWS resource
* @property targetArn The ARN of the physical target where the log events are delivered (for example, a Kinesis stream)
*/
public data class DestinationArgs(
public val destinationName: Output? = null,
public val destinationPolicy: Output? = null,
public val roleArn: Output? = null,
public val targetArn: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.awsnative.logs.DestinationArgs =
com.pulumi.awsnative.logs.DestinationArgs.builder()
.destinationName(destinationName?.applyValue({ args0 -> args0 }))
.destinationPolicy(destinationPolicy?.applyValue({ args0 -> args0 }))
.roleArn(roleArn?.applyValue({ args0 -> args0 }))
.targetArn(targetArn?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [DestinationArgs].
*/
@PulumiTagMarker
public class DestinationArgsBuilder internal constructor() {
private var destinationName: Output? = null
private var destinationPolicy: Output? = null
private var roleArn: Output? = null
private var targetArn: Output? = null
/**
* @param value The name of the destination resource
*/
@JvmName("qmmkkiigubprumeq")
public suspend fun destinationName(`value`: Output) {
this.destinationName = value
}
/**
* @param value An IAM policy document that governs which AWS accounts can create subscription filters against this destination.
*/
@JvmName("pvbqbaiuswmoneln")
public suspend fun destinationPolicy(`value`: Output) {
this.destinationPolicy = value
}
/**
* @param value The ARN of an IAM role that permits CloudWatch Logs to send data to the specified AWS resource
*/
@JvmName("wdmqautbnaokkfhw")
public suspend fun roleArn(`value`: Output) {
this.roleArn = value
}
/**
* @param value The ARN of the physical target where the log events are delivered (for example, a Kinesis stream)
*/
@JvmName("mecavdamdahmwmbo")
public suspend fun targetArn(`value`: Output) {
this.targetArn = value
}
/**
* @param value The name of the destination resource
*/
@JvmName("eiukvexccmxikpqe")
public suspend fun destinationName(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.destinationName = mapped
}
/**
* @param value An IAM policy document that governs which AWS accounts can create subscription filters against this destination.
*/
@JvmName("tysvosspissdhcua")
public suspend fun destinationPolicy(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.destinationPolicy = mapped
}
/**
* @param value The ARN of an IAM role that permits CloudWatch Logs to send data to the specified AWS resource
*/
@JvmName("wksiwfkywvntpsqv")
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 physical target where the log events are delivered (for example, a Kinesis stream)
*/
@JvmName("cnivngnabqyrnpny")
public suspend fun targetArn(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.targetArn = mapped
}
internal fun build(): DestinationArgs = DestinationArgs(
destinationName = destinationName,
destinationPolicy = destinationPolicy,
roleArn = roleArn,
targetArn = targetArn,
)
}