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

com.pulumi.aws.cloudtrail.kotlin.inputs.TrailEventSelectorDataResourceArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.aws.cloudtrail.kotlin.inputs

import com.pulumi.aws.cloudtrail.inputs.TrailEventSelectorDataResourceArgs.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

/**
 *
 * @property type Resource type in which you want to log data events. You can specify only the following value: "AWS::S3::Object", "AWS::Lambda::Function" and "AWS::DynamoDB::Table".
 * @property values List of ARN strings or partial ARN strings to specify selectors for data audit events over data resources. ARN list is specific to single-valued `type`. For example, `arn:aws:s3:::/` for all objects in a bucket, `arn:aws:s3:::/key` for specific objects, `arn:aws:lambda` for all lambda events within an account, `arn:aws:lambda:::function:` for a specific Lambda function, `arn:aws:dynamodb` for all DDB events for all tables within an account, or `arn:aws:dynamodb:::table/` for a specific DynamoDB table.
 */
public data class TrailEventSelectorDataResourceArgs(
    public val type: Output,
    public val values: Output>,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.aws.cloudtrail.inputs.TrailEventSelectorDataResourceArgs =
        com.pulumi.aws.cloudtrail.inputs.TrailEventSelectorDataResourceArgs.builder()
            .type(type.applyValue({ args0 -> args0 }))
            .values(values.applyValue({ args0 -> args0.map({ args0 -> args0 }) })).build()
}

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

    private var values: Output>? = null

    /**
     * @param value Resource type in which you want to log data events. You can specify only the following value: "AWS::S3::Object", "AWS::Lambda::Function" and "AWS::DynamoDB::Table".
     */
    @JvmName("aryeatxrajvktmci")
    public suspend fun type(`value`: Output) {
        this.type = value
    }

    /**
     * @param value List of ARN strings or partial ARN strings to specify selectors for data audit events over data resources. ARN list is specific to single-valued `type`. For example, `arn:aws:s3:::/` for all objects in a bucket, `arn:aws:s3:::/key` for specific objects, `arn:aws:lambda` for all lambda events within an account, `arn:aws:lambda:::function:` for a specific Lambda function, `arn:aws:dynamodb` for all DDB events for all tables within an account, or `arn:aws:dynamodb:::table/
` for a specific DynamoDB table. */ @JvmName("mhraniovaavxaasc") public suspend fun values(`value`: Output>) { this.values = value } @JvmName("gpygnomkqdoeoieh") public suspend fun values(vararg values: Output) { this.values = Output.all(values.asList()) } /** * @param values List of ARN strings or partial ARN strings to specify selectors for data audit events over data resources. ARN list is specific to single-valued `type`. For example, `arn:aws:s3:::/` for all objects in a bucket, `arn:aws:s3:::/key` for specific objects, `arn:aws:lambda` for all lambda events within an account, `arn:aws:lambda:::function:` for a specific Lambda function, `arn:aws:dynamodb` for all DDB events for all tables within an account, or `arn:aws:dynamodb:::table/
` for a specific DynamoDB table. */ @JvmName("mufkhcvetxrvxmgb") public suspend fun values(values: List>) { this.values = Output.all(values) } /** * @param value Resource type in which you want to log data events. You can specify only the following value: "AWS::S3::Object", "AWS::Lambda::Function" and "AWS::DynamoDB::Table". */ @JvmName("vfqilorpddgwpdsm") public suspend fun type(`value`: String) { val toBeMapped = value val mapped = toBeMapped.let({ args0 -> of(args0) }) this.type = mapped } /** * @param value List of ARN strings or partial ARN strings to specify selectors for data audit events over data resources. ARN list is specific to single-valued `type`. For example, `arn:aws:s3:::/` for all objects in a bucket, `arn:aws:s3:::/key` for specific objects, `arn:aws:lambda` for all lambda events within an account, `arn:aws:lambda:::function:` for a specific Lambda function, `arn:aws:dynamodb` for all DDB events for all tables within an account, or `arn:aws:dynamodb:::table/
` for a specific DynamoDB table. */ @JvmName("bfvbbgkusjtqhwtx") public suspend fun values(`value`: List) { val toBeMapped = value val mapped = toBeMapped.let({ args0 -> of(args0) }) this.values = mapped } /** * @param values List of ARN strings or partial ARN strings to specify selectors for data audit events over data resources. ARN list is specific to single-valued `type`. For example, `arn:aws:s3:::/` for all objects in a bucket, `arn:aws:s3:::/key` for specific objects, `arn:aws:lambda` for all lambda events within an account, `arn:aws:lambda:::function:` for a specific Lambda function, `arn:aws:dynamodb` for all DDB events for all tables within an account, or `arn:aws:dynamodb:::table/
` for a specific DynamoDB table. */ @JvmName("yvegbdcvlrbhstrh") public suspend fun values(vararg values: String) { val toBeMapped = values.toList() val mapped = toBeMapped.let({ args0 -> of(args0) }) this.values = mapped } internal fun build(): TrailEventSelectorDataResourceArgs = TrailEventSelectorDataResourceArgs( type = type ?: throw PulumiNullFieldException("type"), values = values ?: throw PulumiNullFieldException("values"), ) }