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

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

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

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

import com.pulumi.awsnative.kinesisfirehose.inputs.DeliveryStreamAmazonopensearchserviceDestinationConfigurationArgs.builder
import com.pulumi.awsnative.kinesisfirehose.kotlin.enums.DeliveryStreamAmazonopensearchserviceDestinationConfigurationIndexRotationPeriod
import com.pulumi.awsnative.kinesisfirehose.kotlin.enums.DeliveryStreamAmazonopensearchserviceDestinationConfigurationS3BackupMode
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.jvm.JvmName

/**
 *
 * @property bufferingHints The buffering options. If no value is specified, the default values for AmazonopensearchserviceBufferingHints are used.
 * @property cloudWatchLoggingOptions Describes the Amazon CloudWatch logging options for your delivery stream.
 * @property clusterEndpoint The endpoint to use when communicating with the cluster. Specify either this ClusterEndpoint or the DomainARN field.
 * @property documentIdOptions Indicates the method for setting up document ID. The supported methods are Firehose generated document ID and OpenSearch Service generated document ID.
 * @property domainArn The ARN of the Amazon OpenSearch Service domain.
 * @property indexName The Amazon OpenSearch Service index name.
 * @property indexRotationPeriod The Amazon OpenSearch Service index rotation period. Index rotation appends a timestamp to the IndexName to facilitate the expiration of old data.
 * @property processingConfiguration Describes a data processing configuration.
 * @property retryOptions The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon OpenSearch Service. The default value is 300 (5 minutes).
 * @property roleArn The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Amazon OpenSearch Service Configuration API and for indexing documents.
 * @property s3BackupMode Defines how documents should be delivered to Amazon S3.
 * @property s3Configuration Describes the configuration of a destination in Amazon S3.
 * @property typeName The Amazon OpenSearch Service type name.
 * @property vpcConfiguration The details of the VPC of the Amazon OpenSearch Service destination.
 */
public data class DeliveryStreamAmazonopensearchserviceDestinationConfigurationArgs(
    public val bufferingHints: Output? =
        null,
    public val cloudWatchLoggingOptions: Output? = null,
    public val clusterEndpoint: Output? = null,
    public val documentIdOptions: Output? = null,
    public val domainArn: Output? = null,
    public val indexName: Output,
    public val indexRotationPeriod: 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,
    public val typeName: Output? = null,
    public val vpcConfiguration: Output? = null,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.kinesisfirehose.inputs.DeliveryStreamAmazonopensearchserviceDestinationConfigurationArgs =
        com.pulumi.awsnative.kinesisfirehose.inputs.DeliveryStreamAmazonopensearchserviceDestinationConfigurationArgs.builder()
            .bufferingHints(bufferingHints?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .cloudWatchLoggingOptions(
                cloudWatchLoggingOptions?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .clusterEndpoint(clusterEndpoint?.applyValue({ args0 -> args0 }))
            .documentIdOptions(documentIdOptions?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .domainArn(domainArn?.applyValue({ args0 -> args0 }))
            .indexName(indexName.applyValue({ args0 -> args0 }))
            .indexRotationPeriod(
                indexRotationPeriod?.applyValue({ 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() }) }))
            .typeName(typeName?.applyValue({ args0 -> args0 }))
            .vpcConfiguration(
                vpcConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

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

    private var cloudWatchLoggingOptions: Output? = null

    private var clusterEndpoint: Output? = null

    private var documentIdOptions: Output? = null

    private var domainArn: Output? = null

    private var indexName: Output? = null

    private var indexRotationPeriod:
        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

    private var typeName: Output? = null

    private var vpcConfiguration: Output? = null

    /**
     * @param value The buffering options. If no value is specified, the default values for AmazonopensearchserviceBufferingHints are used.
     */
    @JvmName("kwtyorunhsjxulkx")
    public suspend fun bufferingHints(`value`: Output) {
        this.bufferingHints = value
    }

    /**
     * @param value Describes the Amazon CloudWatch logging options for your delivery stream.
     */
    @JvmName("jrpogxhkhswrjkla")
    public suspend fun cloudWatchLoggingOptions(`value`: Output) {
        this.cloudWatchLoggingOptions = value
    }

    /**
     * @param value The endpoint to use when communicating with the cluster. Specify either this ClusterEndpoint or the DomainARN field.
     */
    @JvmName("kddfandktjxuvfro")
    public suspend fun clusterEndpoint(`value`: Output) {
        this.clusterEndpoint = value
    }

    /**
     * @param value Indicates the method for setting up document ID. The supported methods are Firehose generated document ID and OpenSearch Service generated document ID.
     */
    @JvmName("rswifwepkcwvvjty")
    public suspend fun documentIdOptions(`value`: Output) {
        this.documentIdOptions = value
    }

    /**
     * @param value The ARN of the Amazon OpenSearch Service domain.
     */
    @JvmName("uhvvurkycrauxanq")
    public suspend fun domainArn(`value`: Output) {
        this.domainArn = value
    }

    /**
     * @param value The Amazon OpenSearch Service index name.
     */
    @JvmName("fawdtenmibovwnvr")
    public suspend fun indexName(`value`: Output) {
        this.indexName = value
    }

    /**
     * @param value The Amazon OpenSearch Service index rotation period. Index rotation appends a timestamp to the IndexName to facilitate the expiration of old data.
     */
    @JvmName("mkodtrmeqrpkeidx")
    public suspend fun indexRotationPeriod(`value`: Output) {
        this.indexRotationPeriod = value
    }

    /**
     * @param value Describes a data processing configuration.
     */
    @JvmName("giyrhtoshmbjqmny")
    public suspend fun processingConfiguration(`value`: Output) {
        this.processingConfiguration = value
    }

    /**
     * @param value The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon OpenSearch Service. The default value is 300 (5 minutes).
     */
    @JvmName("swncmmpsiakbappb")
    public suspend fun retryOptions(`value`: Output) {
        this.retryOptions = value
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Amazon OpenSearch Service Configuration API and for indexing documents.
     */
    @JvmName("erfcktwtkthlrmxi")
    public suspend fun roleArn(`value`: Output) {
        this.roleArn = value
    }

    /**
     * @param value Defines how documents should be delivered to Amazon S3.
     */
    @JvmName("trivmxelysjqwkcr")
    public suspend fun s3BackupMode(`value`: Output) {
        this.s3BackupMode = value
    }

    /**
     * @param value Describes the configuration of a destination in Amazon S3.
     */
    @JvmName("jsleaggmicdugbos")
    public suspend fun s3Configuration(`value`: Output) {
        this.s3Configuration = value
    }

    /**
     * @param value The Amazon OpenSearch Service type name.
     */
    @JvmName("lkytgebtgmshttjw")
    public suspend fun typeName(`value`: Output) {
        this.typeName = value
    }

    /**
     * @param value The details of the VPC of the Amazon OpenSearch Service destination.
     */
    @JvmName("hbweuywhapvbwbfs")
    public suspend fun vpcConfiguration(`value`: Output) {
        this.vpcConfiguration = value
    }

    /**
     * @param value The buffering options. If no value is specified, the default values for AmazonopensearchserviceBufferingHints are used.
     */
    @JvmName("xpxxwtrqpghegaht")
    public suspend fun bufferingHints(`value`: DeliveryStreamAmazonopensearchserviceBufferingHintsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.bufferingHints = mapped
    }

    /**
     * @param argument The buffering options. If no value is specified, the default values for AmazonopensearchserviceBufferingHints are used.
     */
    @JvmName("iwcpqgywituspidh")
    public suspend fun bufferingHints(argument: suspend DeliveryStreamAmazonopensearchserviceBufferingHintsArgsBuilder.() -> Unit) {
        val toBeMapped = DeliveryStreamAmazonopensearchserviceBufferingHintsArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.bufferingHints = mapped
    }

    /**
     * @param value Describes the Amazon CloudWatch logging options for your delivery stream.
     */
    @JvmName("vvsqqubfupdkrswj")
    public suspend fun cloudWatchLoggingOptions(`value`: DeliveryStreamCloudWatchLoggingOptionsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cloudWatchLoggingOptions = mapped
    }

    /**
     * @param argument Describes the Amazon CloudWatch logging options for your delivery stream.
     */
    @JvmName("sokntrmhsklmrilq")
    public suspend fun cloudWatchLoggingOptions(argument: suspend DeliveryStreamCloudWatchLoggingOptionsArgsBuilder.() -> Unit) {
        val toBeMapped = DeliveryStreamCloudWatchLoggingOptionsArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.cloudWatchLoggingOptions = mapped
    }

    /**
     * @param value The endpoint to use when communicating with the cluster. Specify either this ClusterEndpoint or the DomainARN field.
     */
    @JvmName("ovehrccbjruueagy")
    public suspend fun clusterEndpoint(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clusterEndpoint = mapped
    }

    /**
     * @param value Indicates the method for setting up document ID. The supported methods are Firehose generated document ID and OpenSearch Service generated document ID.
     */
    @JvmName("qjmcndiealkwipjk")
    public suspend fun documentIdOptions(`value`: DeliveryStreamDocumentIdOptionsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.documentIdOptions = mapped
    }

    /**
     * @param argument Indicates the method for setting up document ID. The supported methods are Firehose generated document ID and OpenSearch Service generated document ID.
     */
    @JvmName("xcynvdiovbixmkjr")
    public suspend fun documentIdOptions(argument: suspend DeliveryStreamDocumentIdOptionsArgsBuilder.() -> Unit) {
        val toBeMapped = DeliveryStreamDocumentIdOptionsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.documentIdOptions = mapped
    }

    /**
     * @param value The ARN of the Amazon OpenSearch Service domain.
     */
    @JvmName("mhujgkjgflvbcyah")
    public suspend fun domainArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.domainArn = mapped
    }

    /**
     * @param value The Amazon OpenSearch Service index name.
     */
    @JvmName("epsnjwplqqcflhhk")
    public suspend fun indexName(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.indexName = mapped
    }

    /**
     * @param value The Amazon OpenSearch Service index rotation period. Index rotation appends a timestamp to the IndexName to facilitate the expiration of old data.
     */
    @JvmName("sdqbchbbukmwhppg")
    public suspend fun indexRotationPeriod(`value`: DeliveryStreamAmazonopensearchserviceDestinationConfigurationIndexRotationPeriod?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.indexRotationPeriod = mapped
    }

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

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

    /**
     * @param value The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon OpenSearch Service. The default value is 300 (5 minutes).
     */
    @JvmName("pkjyseutspkivuwx")
    public suspend fun retryOptions(`value`: DeliveryStreamAmazonopensearchserviceRetryOptionsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.retryOptions = mapped
    }

    /**
     * @param argument The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon OpenSearch Service. The default value is 300 (5 minutes).
     */
    @JvmName("aobwkdgdfnrmbvee")
    public suspend fun retryOptions(argument: suspend DeliveryStreamAmazonopensearchserviceRetryOptionsArgsBuilder.() -> Unit) {
        val toBeMapped = DeliveryStreamAmazonopensearchserviceRetryOptionsArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.retryOptions = mapped
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Amazon OpenSearch Service Configuration API and for indexing documents.
     */
    @JvmName("hkkqdufoipbrhhie")
    public suspend fun roleArn(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.roleArn = mapped
    }

    /**
     * @param value Defines how documents should be delivered to Amazon S3.
     */
    @JvmName("sbjhswnamuwifgfs")
    public suspend fun s3BackupMode(`value`: DeliveryStreamAmazonopensearchserviceDestinationConfigurationS3BackupMode?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.s3BackupMode = mapped
    }

    /**
     * @param value Describes the configuration of a destination in Amazon S3.
     */
    @JvmName("eptstjegvwitmveg")
    public suspend fun s3Configuration(`value`: DeliveryStreamS3DestinationConfigurationArgs) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.s3Configuration = mapped
    }

    /**
     * @param argument Describes the configuration of a destination in Amazon S3.
     */
    @JvmName("acqnaoqkwbtaihyf")
    public suspend fun s3Configuration(argument: suspend DeliveryStreamS3DestinationConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = DeliveryStreamS3DestinationConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.s3Configuration = mapped
    }

    /**
     * @param value The Amazon OpenSearch Service type name.
     */
    @JvmName("jiqplvtjygulqtds")
    public suspend fun typeName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.typeName = mapped
    }

    /**
     * @param value The details of the VPC of the Amazon OpenSearch Service destination.
     */
    @JvmName("rgaukdkclpjssyso")
    public suspend fun vpcConfiguration(`value`: DeliveryStreamVpcConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vpcConfiguration = mapped
    }

    /**
     * @param argument The details of the VPC of the Amazon OpenSearch Service destination.
     */
    @JvmName("hovaifmrjisfkyap")
    public suspend fun vpcConfiguration(argument: suspend DeliveryStreamVpcConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = DeliveryStreamVpcConfigurationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.vpcConfiguration = mapped
    }

    internal fun build(): DeliveryStreamAmazonopensearchserviceDestinationConfigurationArgs =
        DeliveryStreamAmazonopensearchserviceDestinationConfigurationArgs(
            bufferingHints = bufferingHints,
            cloudWatchLoggingOptions = cloudWatchLoggingOptions,
            clusterEndpoint = clusterEndpoint,
            documentIdOptions = documentIdOptions,
            domainArn = domainArn,
            indexName = indexName ?: throw PulumiNullFieldException("indexName"),
            indexRotationPeriod = indexRotationPeriod,
            processingConfiguration = processingConfiguration,
            retryOptions = retryOptions,
            roleArn = roleArn ?: throw PulumiNullFieldException("roleArn"),
            s3BackupMode = s3BackupMode,
            s3Configuration = s3Configuration ?: throw PulumiNullFieldException("s3Configuration"),
            typeName = typeName,
            vpcConfiguration = vpcConfiguration,
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy