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

com.pulumi.awsnative.cloudtrail.kotlin.inputs.TrailDataResourceArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.cloudtrail.kotlin.inputs

import com.pulumi.awsnative.cloudtrail.inputs.TrailDataResourceArgs.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.collections.List
import kotlin.jvm.JvmName

/**
 * CloudTrail supports data event logging for Amazon S3 objects and AWS Lambda functions. You can specify up to 250 resources for an individual event selector, but the total number of data resources cannot exceed 250 across all event selectors in a trail. This limit does not apply if you configure resource logging for all data events.
 * @property type The resource type in which you want to log data events. You can specify AWS::S3::Object or AWS::Lambda::Function resources.
 * @property values An array of Amazon Resource Name (ARN) strings or partial ARN strings for the specified objects.
 */
public data class TrailDataResourceArgs(
    public val type: Output,
    public val values: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.cloudtrail.inputs.TrailDataResourceArgs =
        com.pulumi.awsnative.cloudtrail.inputs.TrailDataResourceArgs.builder()
            .type(type.applyValue({ args0 -> args0 }))
            .values(values?.applyValue({ args0 -> args0.map({ args0 -> args0 }) })).build()
}

/**
 * Builder for [TrailDataResourceArgs].
 */
@PulumiTagMarker
public class TrailDataResourceArgsBuilder internal constructor() {
    private var type: Output? = null

    private var values: Output>? = null

    /**
     * @param value The resource type in which you want to log data events. You can specify AWS::S3::Object or AWS::Lambda::Function resources.
     */
    @JvmName("mvddgxnjkddqekef")
    public suspend fun type(`value`: Output) {
        this.type = value
    }

    /**
     * @param value An array of Amazon Resource Name (ARN) strings or partial ARN strings for the specified objects.
     */
    @JvmName("afyasecilqsxbgqc")
    public suspend fun values(`value`: Output>) {
        this.values = value
    }

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

    /**
     * @param values An array of Amazon Resource Name (ARN) strings or partial ARN strings for the specified objects.
     */
    @JvmName("ctwisufukgypvywj")
    public suspend fun values(values: List>) {
        this.values = Output.all(values)
    }

    /**
     * @param value The resource type in which you want to log data events. You can specify AWS::S3::Object or AWS::Lambda::Function resources.
     */
    @JvmName("weoimgtddkcfdayu")
    public suspend fun type(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.type = mapped
    }

    /**
     * @param value An array of Amazon Resource Name (ARN) strings or partial ARN strings for the specified objects.
     */
    @JvmName("iiigbtuakueihwcx")
    public suspend fun values(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.values = mapped
    }

    /**
     * @param values An array of Amazon Resource Name (ARN) strings or partial ARN strings for the specified objects.
     */
    @JvmName("ndnklphobnnkqfic")
    public suspend fun values(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.values = mapped
    }

    internal fun build(): TrailDataResourceArgs = TrailDataResourceArgs(
        type = type ?: throw PulumiNullFieldException("type"),
        values = values,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy