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

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

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

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

import com.pulumi.awsnative.kinesisfirehose.inputs.DeliveryStreamElasticsearchDestinationConfigurationArgs.builder
import com.pulumi.awsnative.kinesisfirehose.kotlin.enums.DeliveryStreamElasticsearchDestinationConfigurationIndexRotationPeriod
import com.pulumi.awsnative.kinesisfirehose.kotlin.enums.DeliveryStreamElasticsearchDestinationConfigurationS3BackupMode
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 Configures how Kinesis Data Firehose buffers incoming data while delivering it to the Amazon ES domain.
 * @property cloudWatchLoggingOptions The Amazon CloudWatch Logs logging options for the 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 ES domain. The IAM role must have permissions for `DescribeElasticsearchDomain` , `DescribeElasticsearchDomains` , and `DescribeElasticsearchDomainConfig` after assuming the role specified in *RoleARN* .
 * Specify either `ClusterEndpoint` or `DomainARN` .
 * @property indexName The name of the Elasticsearch index to which Kinesis Data Firehose adds data for indexing.
 * @property indexRotationPeriod The frequency of Elasticsearch index rotation. If you enable index rotation, Kinesis Data Firehose appends a portion of the UTC arrival timestamp to the specified index name, and rotates the appended timestamp accordingly. For more information, see [Index Rotation for the Amazon ES Destination](https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-index-rotation) in the *Amazon Kinesis Data Firehose Developer Guide* .
 * @property processingConfiguration The data processing configuration for the Kinesis Data Firehose delivery stream.
 * @property retryOptions The retry behavior when Kinesis Data Firehose is unable to deliver data to Amazon ES.
 * @property roleArn The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose for calling the Amazon ES Configuration API and for indexing documents. For more information, see [Controlling Access with Amazon Kinesis Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html) .
 * @property s3BackupMode The condition under which Kinesis Data Firehose delivers data to Amazon Simple Storage Service (Amazon S3). You can send Amazon S3 all documents (all data) or only the documents that Kinesis Data Firehose could not deliver to the Amazon ES destination. For more information and valid values, see the `S3BackupMode` content for the [ElasticsearchDestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ElasticsearchDestinationConfiguration.html) data type in the *Amazon Kinesis Data Firehose API Reference* .
 * @property s3Configuration The S3 bucket where Kinesis Data Firehose backs up incoming data.
 * @property typeName The Elasticsearch type name that Amazon ES adds to documents when indexing data.
 * @property vpcConfiguration The details of the VPC of the Amazon ES destination.
 */
public data class DeliveryStreamElasticsearchDestinationConfigurationArgs(
    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.DeliveryStreamElasticsearchDestinationConfigurationArgs =
        com.pulumi.awsnative.kinesisfirehose.inputs.DeliveryStreamElasticsearchDestinationConfigurationArgs.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 [DeliveryStreamElasticsearchDestinationConfigurationArgs].
 */
@PulumiTagMarker
public class DeliveryStreamElasticsearchDestinationConfigurationArgsBuilder 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 Configures how Kinesis Data Firehose buffers incoming data while delivering it to the Amazon ES domain.
     */
    @JvmName("hkakpeaxsplwvkob")
    public suspend fun bufferingHints(`value`: Output) {
        this.bufferingHints = value
    }

    /**
     * @param value The Amazon CloudWatch Logs logging options for the delivery stream.
     */
    @JvmName("vcbwbiseevouvdiv")
    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("tkggvffhltrlylkf")
    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("omrvnsibrtbtjyrc")
    public suspend fun documentIdOptions(`value`: Output) {
        this.documentIdOptions = value
    }

    /**
     * @param value The ARN of the Amazon ES domain. The IAM role must have permissions for `DescribeElasticsearchDomain` , `DescribeElasticsearchDomains` , and `DescribeElasticsearchDomainConfig` after assuming the role specified in *RoleARN* .
     * Specify either `ClusterEndpoint` or `DomainARN` .
     */
    @JvmName("kvoxhexrexvifjgv")
    public suspend fun domainArn(`value`: Output) {
        this.domainArn = value
    }

    /**
     * @param value The name of the Elasticsearch index to which Kinesis Data Firehose adds data for indexing.
     */
    @JvmName("owtpdtmpdhkfigfv")
    public suspend fun indexName(`value`: Output) {
        this.indexName = value
    }

    /**
     * @param value The frequency of Elasticsearch index rotation. If you enable index rotation, Kinesis Data Firehose appends a portion of the UTC arrival timestamp to the specified index name, and rotates the appended timestamp accordingly. For more information, see [Index Rotation for the Amazon ES Destination](https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-index-rotation) in the *Amazon Kinesis Data Firehose Developer Guide* .
     */
    @JvmName("hkiaasngcbqxnisn")
    public suspend fun indexRotationPeriod(`value`: Output) {
        this.indexRotationPeriod = value
    }

    /**
     * @param value The data processing configuration for the Kinesis Data Firehose delivery stream.
     */
    @JvmName("fsnukiuheqbforbh")
    public suspend fun processingConfiguration(`value`: Output) {
        this.processingConfiguration = value
    }

    /**
     * @param value The retry behavior when Kinesis Data Firehose is unable to deliver data to Amazon ES.
     */
    @JvmName("jrawmaaekelafbgu")
    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 ES Configuration API and for indexing documents. For more information, see [Controlling Access with Amazon Kinesis Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html) .
     */
    @JvmName("oosvsmuvdwobtycq")
    public suspend fun roleArn(`value`: Output) {
        this.roleArn = value
    }

    /**
     * @param value The condition under which Kinesis Data Firehose delivers data to Amazon Simple Storage Service (Amazon S3). You can send Amazon S3 all documents (all data) or only the documents that Kinesis Data Firehose could not deliver to the Amazon ES destination. For more information and valid values, see the `S3BackupMode` content for the [ElasticsearchDestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ElasticsearchDestinationConfiguration.html) data type in the *Amazon Kinesis Data Firehose API Reference* .
     */
    @JvmName("yjojxlvevhlqhymx")
    public suspend fun s3BackupMode(`value`: Output) {
        this.s3BackupMode = value
    }

    /**
     * @param value The S3 bucket where Kinesis Data Firehose backs up incoming data.
     */
    @JvmName("oertbnlawribyqno")
    public suspend fun s3Configuration(`value`: Output) {
        this.s3Configuration = value
    }

    /**
     * @param value The Elasticsearch type name that Amazon ES adds to documents when indexing data.
     */
    @JvmName("havvctqkvxuqgxys")
    public suspend fun typeName(`value`: Output) {
        this.typeName = value
    }

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

    /**
     * @param value Configures how Kinesis Data Firehose buffers incoming data while delivering it to the Amazon ES domain.
     */
    @JvmName("bpgssdfqauchqqog")
    public suspend fun bufferingHints(`value`: DeliveryStreamElasticsearchBufferingHintsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.bufferingHints = mapped
    }

    /**
     * @param argument Configures how Kinesis Data Firehose buffers incoming data while delivering it to the Amazon ES domain.
     */
    @JvmName("hxonibmlkwrchwch")
    public suspend fun bufferingHints(argument: suspend DeliveryStreamElasticsearchBufferingHintsArgsBuilder.() -> Unit) {
        val toBeMapped = DeliveryStreamElasticsearchBufferingHintsArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.bufferingHints = mapped
    }

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

    /**
     * @param argument The Amazon CloudWatch Logs logging options for the delivery stream.
     */
    @JvmName("ttarfdvbllnjmaqd")
    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("ewlrpyaefargundf")
    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("ceiarbixlxmdgorq")
    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("xtkslumstictksbc")
    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 ES domain. The IAM role must have permissions for `DescribeElasticsearchDomain` , `DescribeElasticsearchDomains` , and `DescribeElasticsearchDomainConfig` after assuming the role specified in *RoleARN* .
     * Specify either `ClusterEndpoint` or `DomainARN` .
     */
    @JvmName("rtsmsffdmjmdvspx")
    public suspend fun domainArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.domainArn = mapped
    }

    /**
     * @param value The name of the Elasticsearch index to which Kinesis Data Firehose adds data for indexing.
     */
    @JvmName("uhewditrfkxqxdsg")
    public suspend fun indexName(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.indexName = mapped
    }

    /**
     * @param value The frequency of Elasticsearch index rotation. If you enable index rotation, Kinesis Data Firehose appends a portion of the UTC arrival timestamp to the specified index name, and rotates the appended timestamp accordingly. For more information, see [Index Rotation for the Amazon ES Destination](https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-index-rotation) in the *Amazon Kinesis Data Firehose Developer Guide* .
     */
    @JvmName("qetthacechxphegs")
    public suspend fun indexRotationPeriod(`value`: DeliveryStreamElasticsearchDestinationConfigurationIndexRotationPeriod?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.indexRotationPeriod = mapped
    }

    /**
     * @param value The data processing configuration for the Kinesis Data Firehose delivery stream.
     */
    @JvmName("eoskxsoasdxchbop")
    public suspend fun processingConfiguration(`value`: DeliveryStreamProcessingConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.processingConfiguration = mapped
    }

    /**
     * @param argument The data processing configuration for the Kinesis Data Firehose delivery stream.
     */
    @JvmName("hwlxucujqhltrkkv")
    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 when Kinesis Data Firehose is unable to deliver data to Amazon ES.
     */
    @JvmName("ctxknndssdyvcmmu")
    public suspend fun retryOptions(`value`: DeliveryStreamElasticsearchRetryOptionsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.retryOptions = mapped
    }

    /**
     * @param argument The retry behavior when Kinesis Data Firehose is unable to deliver data to Amazon ES.
     */
    @JvmName("mxrnfqyhjcgjjpim")
    public suspend fun retryOptions(argument: suspend DeliveryStreamElasticsearchRetryOptionsArgsBuilder.() -> Unit) {
        val toBeMapped = DeliveryStreamElasticsearchRetryOptionsArgsBuilder().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 ES Configuration API and for indexing documents. For more information, see [Controlling Access with Amazon Kinesis Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html) .
     */
    @JvmName("heehjbajlvcefhrb")
    public suspend fun roleArn(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.roleArn = mapped
    }

    /**
     * @param value The condition under which Kinesis Data Firehose delivers data to Amazon Simple Storage Service (Amazon S3). You can send Amazon S3 all documents (all data) or only the documents that Kinesis Data Firehose could not deliver to the Amazon ES destination. For more information and valid values, see the `S3BackupMode` content for the [ElasticsearchDestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ElasticsearchDestinationConfiguration.html) data type in the *Amazon Kinesis Data Firehose API Reference* .
     */
    @JvmName("tpynfhumokeklmdy")
    public suspend fun s3BackupMode(`value`: DeliveryStreamElasticsearchDestinationConfigurationS3BackupMode?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.s3BackupMode = mapped
    }

    /**
     * @param value The S3 bucket where Kinesis Data Firehose backs up incoming data.
     */
    @JvmName("tlaphhdcaausloyn")
    public suspend fun s3Configuration(`value`: DeliveryStreamS3DestinationConfigurationArgs) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.s3Configuration = mapped
    }

    /**
     * @param argument The S3 bucket where Kinesis Data Firehose backs up incoming data.
     */
    @JvmName("ufbechtghruhggkw")
    public suspend fun s3Configuration(argument: suspend DeliveryStreamS3DestinationConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = DeliveryStreamS3DestinationConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.s3Configuration = mapped
    }

    /**
     * @param value The Elasticsearch type name that Amazon ES adds to documents when indexing data.
     */
    @JvmName("ornefanvdfqcvxeq")
    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 ES destination.
     */
    @JvmName("ktessghsccrtxwfe")
    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 ES destination.
     */
    @JvmName("vbktosloddyrnird")
    public suspend fun vpcConfiguration(argument: suspend DeliveryStreamVpcConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = DeliveryStreamVpcConfigurationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.vpcConfiguration = mapped
    }

    internal fun build(): DeliveryStreamElasticsearchDestinationConfigurationArgs =
        DeliveryStreamElasticsearchDestinationConfigurationArgs(
            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