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

com.pulumi.awsnative.vpclattice.kotlin.AccessLogSubscriptionArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.vpclattice.kotlin

import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
import com.pulumi.awsnative.vpclattice.AccessLogSubscriptionArgs.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.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Enables access logs to be sent to Amazon CloudWatch, Amazon S3, and Amazon Kinesis Data Firehose. The service network owner can use the access logs to audit the services in the network. The service network owner will only see access logs from clients and services that are associated with their service network. Access log entries represent traffic originated from VPCs associated with that network.
 * @property destinationArn The Amazon Resource Name (ARN) of the destination. The supported destination types are CloudWatch Log groups, Kinesis Data Firehose delivery streams, and Amazon S3 buckets.
 * @property resourceIdentifier The ID or Amazon Resource Name (ARN) of the service network or service.
 * @property tags The tags for the access log subscription.
 */
public data class AccessLogSubscriptionArgs(
    public val destinationArn: Output? = null,
    public val resourceIdentifier: Output? = null,
    public val tags: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.vpclattice.AccessLogSubscriptionArgs =
        com.pulumi.awsnative.vpclattice.AccessLogSubscriptionArgs.builder()
            .destinationArn(destinationArn?.applyValue({ args0 -> args0 }))
            .resourceIdentifier(resourceIdentifier?.applyValue({ args0 -> args0 }))
            .tags(
                tags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [AccessLogSubscriptionArgs].
 */
@PulumiTagMarker
public class AccessLogSubscriptionArgsBuilder internal constructor() {
    private var destinationArn: Output? = null

    private var resourceIdentifier: Output? = null

    private var tags: Output>? = null

    /**
     * @param value The Amazon Resource Name (ARN) of the destination. The supported destination types are CloudWatch Log groups, Kinesis Data Firehose delivery streams, and Amazon S3 buckets.
     */
    @JvmName("wgbjkmbqbdyllpay")
    public suspend fun destinationArn(`value`: Output) {
        this.destinationArn = value
    }

    /**
     * @param value The ID or Amazon Resource Name (ARN) of the service network or service.
     */
    @JvmName("lksgfgtcnatibtbk")
    public suspend fun resourceIdentifier(`value`: Output) {
        this.resourceIdentifier = value
    }

    /**
     * @param value The tags for the access log subscription.
     */
    @JvmName("dtarvcdrhcfmdqix")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

    @JvmName("ktqbmimdlbohsyqt")
    public suspend fun tags(vararg values: Output) {
        this.tags = Output.all(values.asList())
    }

    /**
     * @param values The tags for the access log subscription.
     */
    @JvmName("gtrjqllkpqpunjvw")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the destination. The supported destination types are CloudWatch Log groups, Kinesis Data Firehose delivery streams, and Amazon S3 buckets.
     */
    @JvmName("hxlthiiemvjtsuda")
    public suspend fun destinationArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.destinationArn = mapped
    }

    /**
     * @param value The ID or Amazon Resource Name (ARN) of the service network or service.
     */
    @JvmName("laurnqkmyfkstonq")
    public suspend fun resourceIdentifier(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceIdentifier = mapped
    }

    /**
     * @param value The tags for the access log subscription.
     */
    @JvmName("idkwntkjbiwkknhj")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument The tags for the access log subscription.
     */
    @JvmName("fxfeairschmelmdd")
    public suspend fun tags(argument: List Unit>) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument The tags for the access log subscription.
     */
    @JvmName("mwuljrxoggvkctvs")
    public suspend fun tags(vararg argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument The tags for the access log subscription.
     */
    @JvmName("aidtcxxfwdtufenq")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values The tags for the access log subscription.
     */
    @JvmName("tciltxgmcrlybjry")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    internal fun build(): AccessLogSubscriptionArgs = AccessLogSubscriptionArgs(
        destinationArn = destinationArn,
        resourceIdentifier = resourceIdentifier,
        tags = tags,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy