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

com.pulumi.awsnative.kinesisfirehose.kotlin.inputs.DeliveryStreamIcebergDestinationConfigurationArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.kinesisfirehose.kotlin.inputs

import com.pulumi.awsnative.kinesisfirehose.inputs.DeliveryStreamIcebergDestinationConfigurationArgs.builder
import com.pulumi.awsnative.kinesisfirehose.kotlin.enums.DeliveryStreamIcebergDestinationConfigurations3BackupMode
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 com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property bufferingHints
 * @property catalogConfiguration Configuration describing where the destination Apache Iceberg Tables are persisted.
 * Amazon Data Firehose is in preview release and is subject to change.
 * @property cloudWatchLoggingOptions
 * @property destinationTableConfigurationList Provides a list of `DestinationTableConfigurations` which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided here.
 * Amazon Data Firehose is in preview release and is subject to change.
 * @property processingConfiguration
 * @property retryOptions
 * @property roleArn The Amazon Resource Name (ARN) of the the IAM role to be assumed by Firehose for calling Apache Iceberg Tables.
 * Amazon Data Firehose is in preview release and is subject to change.
 * @property s3BackupMode Describes how Firehose will backup records. Currently,S3 backup only supports `FailedDataOnly` for preview.
 * Amazon Data Firehose is in preview release and is subject to change.
 * @property s3Configuration
 */
public data class DeliveryStreamIcebergDestinationConfigurationArgs(
    public val bufferingHints: Output? = null,
    public val catalogConfiguration: Output,
    public val cloudWatchLoggingOptions: Output? = null,
    public val destinationTableConfigurationList: Output>? = null,
    public val processingConfiguration: Output? = null,
    public val retryOptions: Output? = null,
    public val roleArn: Output,
    public val s3BackupMode: Output? =
        null,
    public val s3Configuration: Output,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.kinesisfirehose.inputs.DeliveryStreamIcebergDestinationConfigurationArgs =
        com.pulumi.awsnative.kinesisfirehose.inputs.DeliveryStreamIcebergDestinationConfigurationArgs.builder()
            .bufferingHints(bufferingHints?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .catalogConfiguration(
                catalogConfiguration.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .cloudWatchLoggingOptions(
                cloudWatchLoggingOptions?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .destinationTableConfigurationList(
                destinationTableConfigurationList?.applyValue({ args0 ->
                    args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .processingConfiguration(
                processingConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .retryOptions(retryOptions?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .roleArn(roleArn.applyValue({ args0 -> args0 }))
            .s3BackupMode(s3BackupMode?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .s3Configuration(
                s3Configuration.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

/**
 * Builder for [DeliveryStreamIcebergDestinationConfigurationArgs].
 */
@PulumiTagMarker
public class DeliveryStreamIcebergDestinationConfigurationArgsBuilder internal constructor() {
    private var bufferingHints: Output? = null

    private var catalogConfiguration: Output? = null

    private var cloudWatchLoggingOptions: Output? = null

    private var destinationTableConfigurationList:
        Output>? = null

    private var processingConfiguration: Output? = null

    private var retryOptions: Output? = null

    private var roleArn: Output? = null

    private var s3BackupMode: Output? =
        null

    private var s3Configuration: Output? = null

    /**
     * @param value
     */
    @JvmName("jwlilujatxlrrhdv")
    public suspend fun bufferingHints(`value`: Output) {
        this.bufferingHints = value
    }

    /**
     * @param value Configuration describing where the destination Apache Iceberg Tables are persisted.
     * Amazon Data Firehose is in preview release and is subject to change.
     */
    @JvmName("utkjilwsbntqtlax")
    public suspend fun catalogConfiguration(`value`: Output) {
        this.catalogConfiguration = value
    }

    /**
     * @param value
     */
    @JvmName("xsgldxgohdstnxtc")
    public suspend fun cloudWatchLoggingOptions(`value`: Output) {
        this.cloudWatchLoggingOptions = value
    }

    /**
     * @param value Provides a list of `DestinationTableConfigurations` which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided here.
     * Amazon Data Firehose is in preview release and is subject to change.
     */
    @JvmName("jabgvkgjnowcgmhl")
    public suspend fun destinationTableConfigurationList(`value`: Output>) {
        this.destinationTableConfigurationList = value
    }

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

    /**
     * @param values Provides a list of `DestinationTableConfigurations` which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided here.
     * Amazon Data Firehose is in preview release and is subject to change.
     */
    @JvmName("duqbooodtgwfbbnb")
    public suspend fun destinationTableConfigurationList(values: List>) {
        this.destinationTableConfigurationList = Output.all(values)
    }

    /**
     * @param value
     */
    @JvmName("ltkidolgoljhlrok")
    public suspend fun processingConfiguration(`value`: Output) {
        this.processingConfiguration = value
    }

    /**
     * @param value
     */
    @JvmName("hlxifkbtjfkywmpx")
    public suspend fun retryOptions(`value`: Output) {
        this.retryOptions = value
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the the IAM role to be assumed by Firehose for calling Apache Iceberg Tables.
     * Amazon Data Firehose is in preview release and is subject to change.
     */
    @JvmName("jxppcplvoxrhjjtu")
    public suspend fun roleArn(`value`: Output) {
        this.roleArn = value
    }

    /**
     * @param value Describes how Firehose will backup records. Currently,S3 backup only supports `FailedDataOnly` for preview.
     * Amazon Data Firehose is in preview release and is subject to change.
     */
    @JvmName("cwdxtvtpdnfcubys")
    public suspend fun s3BackupMode(`value`: Output) {
        this.s3BackupMode = value
    }

    /**
     * @param value
     */
    @JvmName("igpwhqhqrbtwkcgn")
    public suspend fun s3Configuration(`value`: Output) {
        this.s3Configuration = value
    }

    /**
     * @param value
     */
    @JvmName("cqdcqqschtixsqrx")
    public suspend fun bufferingHints(`value`: DeliveryStreamBufferingHintsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.bufferingHints = mapped
    }

    /**
     * @param argument
     */
    @JvmName("mhigkdjfnhladavf")
    public suspend fun bufferingHints(argument: suspend DeliveryStreamBufferingHintsArgsBuilder.() -> Unit) {
        val toBeMapped = DeliveryStreamBufferingHintsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.bufferingHints = mapped
    }

    /**
     * @param value Configuration describing where the destination Apache Iceberg Tables are persisted.
     * Amazon Data Firehose is in preview release and is subject to change.
     */
    @JvmName("ikkjbkuhcxpyfsmg")
    public suspend fun catalogConfiguration(`value`: DeliveryStreamCatalogConfigurationArgs) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.catalogConfiguration = mapped
    }

    /**
     * @param argument Configuration describing where the destination Apache Iceberg Tables are persisted.
     * Amazon Data Firehose is in preview release and is subject to change.
     */
    @JvmName("sqqruohpitbyvjkp")
    public suspend fun catalogConfiguration(argument: suspend DeliveryStreamCatalogConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = DeliveryStreamCatalogConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.catalogConfiguration = mapped
    }

    /**
     * @param value
     */
    @JvmName("ilalsmbuoabnjpxt")
    public suspend fun cloudWatchLoggingOptions(`value`: DeliveryStreamCloudWatchLoggingOptionsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cloudWatchLoggingOptions = mapped
    }

    /**
     * @param argument
     */
    @JvmName("uxykktvjemyvfwhj")
    public suspend fun cloudWatchLoggingOptions(argument: suspend DeliveryStreamCloudWatchLoggingOptionsArgsBuilder.() -> Unit) {
        val toBeMapped = DeliveryStreamCloudWatchLoggingOptionsArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.cloudWatchLoggingOptions = mapped
    }

    /**
     * @param value Provides a list of `DestinationTableConfigurations` which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided here.
     * Amazon Data Firehose is in preview release and is subject to change.
     */
    @JvmName("fjnsqesmilxpntdw")
    public suspend fun destinationTableConfigurationList(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.destinationTableConfigurationList = mapped
    }

    /**
     * @param argument Provides a list of `DestinationTableConfigurations` which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided here.
     * Amazon Data Firehose is in preview release and is subject to change.
     */
    @JvmName("vstnwolqvexeycwh")
    public suspend fun destinationTableConfigurationList(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            DeliveryStreamDestinationTableConfigurationArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.destinationTableConfigurationList = mapped
    }

    /**
     * @param argument Provides a list of `DestinationTableConfigurations` which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided here.
     * Amazon Data Firehose is in preview release and is subject to change.
     */
    @JvmName("vtqiuadmvobifbmy")
    public suspend fun destinationTableConfigurationList(vararg argument: suspend DeliveryStreamDestinationTableConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            DeliveryStreamDestinationTableConfigurationArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.destinationTableConfigurationList = mapped
    }

    /**
     * @param argument Provides a list of `DestinationTableConfigurations` which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided here.
     * Amazon Data Firehose is in preview release and is subject to change.
     */
    @JvmName("hwulyjygivwjnple")
    public suspend fun destinationTableConfigurationList(argument: suspend DeliveryStreamDestinationTableConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            DeliveryStreamDestinationTableConfigurationArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.destinationTableConfigurationList = mapped
    }

    /**
     * @param values Provides a list of `DestinationTableConfigurations` which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided here.
     * Amazon Data Firehose is in preview release and is subject to change.
     */
    @JvmName("uukerqgggoimcepu")
    public suspend fun destinationTableConfigurationList(vararg values: DeliveryStreamDestinationTableConfigurationArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.destinationTableConfigurationList = mapped
    }

    /**
     * @param value
     */
    @JvmName("inkiqlqgwnhsyavj")
    public suspend fun processingConfiguration(`value`: DeliveryStreamProcessingConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.processingConfiguration = mapped
    }

    /**
     * @param argument
     */
    @JvmName("jyopviclmrkdaowa")
    public suspend fun processingConfiguration(argument: suspend DeliveryStreamProcessingConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = DeliveryStreamProcessingConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.processingConfiguration = mapped
    }

    /**
     * @param value
     */
    @JvmName("crhywuywtixvfskd")
    public suspend fun retryOptions(`value`: DeliveryStreamRetryOptionsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.retryOptions = mapped
    }

    /**
     * @param argument
     */
    @JvmName("sudbjjbpbjumrmck")
    public suspend fun retryOptions(argument: suspend DeliveryStreamRetryOptionsArgsBuilder.() -> Unit) {
        val toBeMapped = DeliveryStreamRetryOptionsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.retryOptions = mapped
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the the IAM role to be assumed by Firehose for calling Apache Iceberg Tables.
     * Amazon Data Firehose is in preview release and is subject to change.
     */
    @JvmName("xrrojeohgligwebe")
    public suspend fun roleArn(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.roleArn = mapped
    }

    /**
     * @param value Describes how Firehose will backup records. Currently,S3 backup only supports `FailedDataOnly` for preview.
     * Amazon Data Firehose is in preview release and is subject to change.
     */
    @JvmName("bnkqsrelwrtbnlxa")
    public suspend fun s3BackupMode(`value`: DeliveryStreamIcebergDestinationConfigurations3BackupMode?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.s3BackupMode = mapped
    }

    /**
     * @param value
     */
    @JvmName("dfeywynsyndbygnn")
    public suspend fun s3Configuration(`value`: DeliveryStreamS3DestinationConfigurationArgs) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.s3Configuration = mapped
    }

    /**
     * @param argument
     */
    @JvmName("goxpbvxkkhniopus")
    public suspend fun s3Configuration(argument: suspend DeliveryStreamS3DestinationConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = DeliveryStreamS3DestinationConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.s3Configuration = mapped
    }

    internal fun build(): DeliveryStreamIcebergDestinationConfigurationArgs =
        DeliveryStreamIcebergDestinationConfigurationArgs(
            bufferingHints = bufferingHints,
            catalogConfiguration = catalogConfiguration ?: throw
                PulumiNullFieldException("catalogConfiguration"),
            cloudWatchLoggingOptions = cloudWatchLoggingOptions,
            destinationTableConfigurationList = destinationTableConfigurationList,
            processingConfiguration = processingConfiguration,
            retryOptions = retryOptions,
            roleArn = roleArn ?: throw PulumiNullFieldException("roleArn"),
            s3BackupMode = s3BackupMode,
            s3Configuration = s3Configuration ?: throw PulumiNullFieldException("s3Configuration"),
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy