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

com.pulumi.aws.kinesis.kotlin.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 6.57.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.aws.kinesis.kotlin.inputs

import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs.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 com.pulumi.kotlin.applySuspend
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 *
 * @property bucketArn The ARN of the S3 bucket
 * @property bufferingInterval
 * @property bufferingSize
 * @property cloudwatchLoggingOptions
 * @property compressionFormat The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`.
 * @property customTimeZone The time zone you prefer. Valid values are `UTC` or a non-3-letter IANA time zones (for example, `America/Los_Angeles`). Default value is `UTC`.
 * @property dataFormatConversionConfiguration Nested argument for the serializer, deserializer, and schema for converting data from the JSON format to the Parquet or ORC format before writing it to Amazon S3. See `data_format_conversion_configuration` block below for details.
 * @property dynamicPartitioningConfiguration The configuration for dynamic partitioning. Required when using [dynamic partitioning](https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html). See `dynamic_partitioning_configuration` block below for details.
 * @property errorOutputPrefix Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
 * @property fileExtension The file extension to override the default file extension (for example, `.json`).
 * @property kmsKeyArn Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will
 * be used.
 * @property prefix The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket
 * @property processingConfiguration The data processing configuration.  See `processing_configuration` block below for details.
 * @property roleArn
 * @property s3BackupConfiguration The configuration for backup in Amazon S3. Required if `s3_backup_mode` is `Enabled`. Supports the same fields as `s3_configuration` object.
 * @property s3BackupMode The Amazon S3 backup mode.  Valid values are `Disabled` and `Enabled`.  Default value is `Disabled`.
 */
public data class FirehoseDeliveryStreamExtendedS3ConfigurationArgs(
    public val bucketArn: Output,
    public val bufferingInterval: Output? = null,
    public val bufferingSize: Output? = null,
    public val cloudwatchLoggingOptions: Output? = null,
    public val compressionFormat: Output? = null,
    public val customTimeZone: Output? = null,
    public val dataFormatConversionConfiguration: Output? =
        null,
    public val dynamicPartitioningConfiguration: Output? =
        null,
    public val errorOutputPrefix: Output? = null,
    public val fileExtension: Output? = null,
    public val kmsKeyArn: Output? = null,
    public val prefix: Output? = null,
    public val processingConfiguration: Output? = null,
    public val roleArn: Output,
    public val s3BackupConfiguration: Output? = null,
    public val s3BackupMode: Output? = null,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs =
        com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs.builder()
            .bucketArn(bucketArn.applyValue({ args0 -> args0 }))
            .bufferingInterval(bufferingInterval?.applyValue({ args0 -> args0 }))
            .bufferingSize(bufferingSize?.applyValue({ args0 -> args0 }))
            .cloudwatchLoggingOptions(
                cloudwatchLoggingOptions?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .compressionFormat(compressionFormat?.applyValue({ args0 -> args0 }))
            .customTimeZone(customTimeZone?.applyValue({ args0 -> args0 }))
            .dataFormatConversionConfiguration(
                dataFormatConversionConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .dynamicPartitioningConfiguration(
                dynamicPartitioningConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .errorOutputPrefix(errorOutputPrefix?.applyValue({ args0 -> args0 }))
            .fileExtension(fileExtension?.applyValue({ args0 -> args0 }))
            .kmsKeyArn(kmsKeyArn?.applyValue({ args0 -> args0 }))
            .prefix(prefix?.applyValue({ args0 -> args0 }))
            .processingConfiguration(
                processingConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .roleArn(roleArn.applyValue({ args0 -> args0 }))
            .s3BackupConfiguration(
                s3BackupConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .s3BackupMode(s3BackupMode?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [FirehoseDeliveryStreamExtendedS3ConfigurationArgs].
 */
@PulumiTagMarker
public class FirehoseDeliveryStreamExtendedS3ConfigurationArgsBuilder internal constructor() {
    private var bucketArn: Output? = null

    private var bufferingInterval: Output? = null

    private var bufferingSize: Output? = null

    private var cloudwatchLoggingOptions:
        Output? = null

    private var compressionFormat: Output? = null

    private var customTimeZone: Output? = null

    private var dataFormatConversionConfiguration:
        Output? =
        null

    private var dynamicPartitioningConfiguration:
        Output? =
        null

    private var errorOutputPrefix: Output? = null

    private var fileExtension: Output? = null

    private var kmsKeyArn: Output? = null

    private var prefix: Output? = null

    private var processingConfiguration:
        Output? = null

    private var roleArn: Output? = null

    private var s3BackupConfiguration:
        Output? = null

    private var s3BackupMode: Output? = null

    /**
     * @param value The ARN of the S3 bucket
     */
    @JvmName("nfixfowqpxhhotbu")
    public suspend fun bucketArn(`value`: Output) {
        this.bucketArn = value
    }

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

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

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

    /**
     * @param value The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`.
     */
    @JvmName("titpraprasytfufl")
    public suspend fun compressionFormat(`value`: Output) {
        this.compressionFormat = value
    }

    /**
     * @param value The time zone you prefer. Valid values are `UTC` or a non-3-letter IANA time zones (for example, `America/Los_Angeles`). Default value is `UTC`.
     */
    @JvmName("ngfvklrgkppccbjs")
    public suspend fun customTimeZone(`value`: Output) {
        this.customTimeZone = value
    }

    /**
     * @param value Nested argument for the serializer, deserializer, and schema for converting data from the JSON format to the Parquet or ORC format before writing it to Amazon S3. See `data_format_conversion_configuration` block below for details.
     */
    @JvmName("farwixcasrseukru")
    public suspend fun dataFormatConversionConfiguration(`value`: Output) {
        this.dataFormatConversionConfiguration = value
    }

    /**
     * @param value The configuration for dynamic partitioning. Required when using [dynamic partitioning](https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html). See `dynamic_partitioning_configuration` block below for details.
     */
    @JvmName("hsnvkxffacahyrpp")
    public suspend fun dynamicPartitioningConfiguration(`value`: Output) {
        this.dynamicPartitioningConfiguration = value
    }

    /**
     * @param value Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
     */
    @JvmName("qffwjcmucaswejaf")
    public suspend fun errorOutputPrefix(`value`: Output) {
        this.errorOutputPrefix = value
    }

    /**
     * @param value The file extension to override the default file extension (for example, `.json`).
     */
    @JvmName("rekcbxcopllsdwhx")
    public suspend fun fileExtension(`value`: Output) {
        this.fileExtension = value
    }

    /**
     * @param value Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will
     * be used.
     */
    @JvmName("blriajfumkaxfuph")
    public suspend fun kmsKeyArn(`value`: Output) {
        this.kmsKeyArn = value
    }

    /**
     * @param value The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket
     */
    @JvmName("rsfxudmlptyhurna")
    public suspend fun prefix(`value`: Output) {
        this.prefix = value
    }

    /**
     * @param value The data processing configuration.  See `processing_configuration` block below for details.
     */
    @JvmName("dmobsxqefgsyjvrt")
    public suspend fun processingConfiguration(`value`: Output) {
        this.processingConfiguration = value
    }

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

    /**
     * @param value The configuration for backup in Amazon S3. Required if `s3_backup_mode` is `Enabled`. Supports the same fields as `s3_configuration` object.
     */
    @JvmName("csrsvphdmqtcvpyu")
    public suspend fun s3BackupConfiguration(`value`: Output) {
        this.s3BackupConfiguration = value
    }

    /**
     * @param value The Amazon S3 backup mode.  Valid values are `Disabled` and `Enabled`.  Default value is `Disabled`.
     */
    @JvmName("jiaecoqynihwtqdy")
    public suspend fun s3BackupMode(`value`: Output) {
        this.s3BackupMode = value
    }

    /**
     * @param value The ARN of the S3 bucket
     */
    @JvmName("jboagnyrdsfkfbxy")
    public suspend fun bucketArn(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.bucketArn = mapped
    }

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

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

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

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

    /**
     * @param value The compression format. If no value is specified, the default is `UNCOMPRESSED`. Other supported values are `GZIP`, `ZIP`, `Snappy`, & `HADOOP_SNAPPY`.
     */
    @JvmName("pfekthadaayygssj")
    public suspend fun compressionFormat(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.compressionFormat = mapped
    }

    /**
     * @param value The time zone you prefer. Valid values are `UTC` or a non-3-letter IANA time zones (for example, `America/Los_Angeles`). Default value is `UTC`.
     */
    @JvmName("ussvlbawqdsnnabg")
    public suspend fun customTimeZone(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.customTimeZone = mapped
    }

    /**
     * @param value Nested argument for the serializer, deserializer, and schema for converting data from the JSON format to the Parquet or ORC format before writing it to Amazon S3. See `data_format_conversion_configuration` block below for details.
     */
    @JvmName("npvhbeajngpuifru")
    public suspend fun dataFormatConversionConfiguration(`value`: FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dataFormatConversionConfiguration = mapped
    }

    /**
     * @param argument Nested argument for the serializer, deserializer, and schema for converting data from the JSON format to the Parquet or ORC format before writing it to Amazon S3. See `data_format_conversion_configuration` block below for details.
     */
    @JvmName("rycyqaiitambxekl")
    public suspend fun dataFormatConversionConfiguration(argument: suspend FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped =
            FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.dataFormatConversionConfiguration = mapped
    }

    /**
     * @param value The configuration for dynamic partitioning. Required when using [dynamic partitioning](https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html). See `dynamic_partitioning_configuration` block below for details.
     */
    @JvmName("rejyffvjyotjmbmn")
    public suspend fun dynamicPartitioningConfiguration(`value`: FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dynamicPartitioningConfiguration = mapped
    }

    /**
     * @param argument The configuration for dynamic partitioning. Required when using [dynamic partitioning](https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html). See `dynamic_partitioning_configuration` block below for details.
     */
    @JvmName("gclrleyuwaeogvpk")
    public suspend fun dynamicPartitioningConfiguration(argument: suspend FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped =
            FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.dynamicPartitioningConfiguration = mapped
    }

    /**
     * @param value Prefix added to failed records before writing them to S3. Not currently supported for `redshift` destination. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
     */
    @JvmName("pybcoefgjxngaobf")
    public suspend fun errorOutputPrefix(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.errorOutputPrefix = mapped
    }

    /**
     * @param value The file extension to override the default file extension (for example, `.json`).
     */
    @JvmName("pedrekutnvvaqwux")
    public suspend fun fileExtension(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.fileExtension = mapped
    }

    /**
     * @param value Specifies the KMS key ARN the stream will use to encrypt data. If not set, no encryption will
     * be used.
     */
    @JvmName("divwwmyqabqvfptk")
    public suspend fun kmsKeyArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kmsKeyArn = mapped
    }

    /**
     * @param value The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered S3 files. You can specify an extra prefix to be added in front of the time format prefix. Note that if the prefix ends with a slash, it appears as a folder in the S3 bucket
     */
    @JvmName("ucmlgtlqhforgxbu")
    public suspend fun prefix(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.prefix = mapped
    }

    /**
     * @param value The data processing configuration.  See `processing_configuration` block below for details.
     */
    @JvmName("ibndwueeepeegrvf")
    public suspend fun processingConfiguration(`value`: FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.processingConfiguration = mapped
    }

    /**
     * @param argument The data processing configuration.  See `processing_configuration` block below for details.
     */
    @JvmName("ucstdxlyeixuqvbe")
    public suspend fun processingConfiguration(argument: suspend FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped =
            FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.processingConfiguration = mapped
    }

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

    /**
     * @param value The configuration for backup in Amazon S3. Required if `s3_backup_mode` is `Enabled`. Supports the same fields as `s3_configuration` object.
     */
    @JvmName("cgmdkmhbhiadklfs")
    public suspend fun s3BackupConfiguration(`value`: FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.s3BackupConfiguration = mapped
    }

    /**
     * @param argument The configuration for backup in Amazon S3. Required if `s3_backup_mode` is `Enabled`. Supports the same fields as `s3_configuration` object.
     */
    @JvmName("vhaeabbdhjdckmqj")
    public suspend fun s3BackupConfiguration(argument: suspend FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped =
            FirehoseDeliveryStreamExtendedS3ConfigurationS3BackupConfigurationArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.s3BackupConfiguration = mapped
    }

    /**
     * @param value The Amazon S3 backup mode.  Valid values are `Disabled` and `Enabled`.  Default value is `Disabled`.
     */
    @JvmName("wixrhyimrwnoigxl")
    public suspend fun s3BackupMode(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.s3BackupMode = mapped
    }

    internal fun build(): FirehoseDeliveryStreamExtendedS3ConfigurationArgs =
        FirehoseDeliveryStreamExtendedS3ConfigurationArgs(
            bucketArn = bucketArn ?: throw PulumiNullFieldException("bucketArn"),
            bufferingInterval = bufferingInterval,
            bufferingSize = bufferingSize,
            cloudwatchLoggingOptions = cloudwatchLoggingOptions,
            compressionFormat = compressionFormat,
            customTimeZone = customTimeZone,
            dataFormatConversionConfiguration = dataFormatConversionConfiguration,
            dynamicPartitioningConfiguration = dynamicPartitioningConfiguration,
            errorOutputPrefix = errorOutputPrefix,
            fileExtension = fileExtension,
            kmsKeyArn = kmsKeyArn,
            prefix = prefix,
            processingConfiguration = processingConfiguration,
            roleArn = roleArn ?: throw PulumiNullFieldException("roleArn"),
            s3BackupConfiguration = s3BackupConfiguration,
            s3BackupMode = s3BackupMode,
        )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy