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

com.pulumi.awsnative.osis.kotlin.PipelineArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.osis.kotlin

import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
import com.pulumi.awsnative.osis.PipelineArgs.builder
import com.pulumi.awsnative.osis.kotlin.inputs.PipelineBufferOptionsArgs
import com.pulumi.awsnative.osis.kotlin.inputs.PipelineBufferOptionsArgsBuilder
import com.pulumi.awsnative.osis.kotlin.inputs.PipelineEncryptionAtRestOptionsArgs
import com.pulumi.awsnative.osis.kotlin.inputs.PipelineEncryptionAtRestOptionsArgsBuilder
import com.pulumi.awsnative.osis.kotlin.inputs.PipelineLogPublishingOptionsArgs
import com.pulumi.awsnative.osis.kotlin.inputs.PipelineLogPublishingOptionsArgsBuilder
import com.pulumi.awsnative.osis.kotlin.inputs.PipelineVpcOptionsArgs
import com.pulumi.awsnative.osis.kotlin.inputs.PipelineVpcOptionsArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * An OpenSearch Ingestion Service Data Prepper pipeline running Data Prepper.
 * @property bufferOptions Options that specify the configuration of a persistent buffer. To configure how OpenSearch Ingestion encrypts this data, set the `EncryptionAtRestOptions` . For more information, see [Persistent buffering](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/osis-features-overview.html#persistent-buffering) .
 * @property encryptionAtRestOptions Options to control how OpenSearch encrypts buffer data.
 * @property logPublishingOptions Key-value pairs that represent log publishing settings.
 * @property maxUnits The maximum pipeline capacity, in Ingestion OpenSearch Compute Units (OCUs).
 * @property minUnits The minimum pipeline capacity, in Ingestion OpenSearch Compute Units (OCUs).
 * @property pipelineConfigurationBody The Data Prepper pipeline configuration.
 * @property pipelineName Name of the OpenSearch Ingestion Service pipeline to create. Pipeline names are unique across the pipelines owned by an account within an AWS Region.
 * @property tags An array of key-value pairs to apply to this resource.
 * @property vpcOptions Options that specify the subnets and security groups for an OpenSearch Ingestion VPC endpoint.
 */
public data class PipelineArgs(
    public val bufferOptions: Output? = null,
    public val encryptionAtRestOptions: Output? = null,
    public val logPublishingOptions: Output? = null,
    public val maxUnits: Output? = null,
    public val minUnits: Output? = null,
    public val pipelineConfigurationBody: Output? = null,
    public val pipelineName: Output? = null,
    public val tags: Output>? = null,
    public val vpcOptions: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.osis.PipelineArgs =
        com.pulumi.awsnative.osis.PipelineArgs.builder()
            .bufferOptions(bufferOptions?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .encryptionAtRestOptions(
                encryptionAtRestOptions?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .logPublishingOptions(
                logPublishingOptions?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .maxUnits(maxUnits?.applyValue({ args0 -> args0 }))
            .minUnits(minUnits?.applyValue({ args0 -> args0 }))
            .pipelineConfigurationBody(pipelineConfigurationBody?.applyValue({ args0 -> args0 }))
            .pipelineName(pipelineName?.applyValue({ args0 -> args0 }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .vpcOptions(vpcOptions?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

/**
 * Builder for [PipelineArgs].
 */
@PulumiTagMarker
public class PipelineArgsBuilder internal constructor() {
    private var bufferOptions: Output? = null

    private var encryptionAtRestOptions: Output? = null

    private var logPublishingOptions: Output? = null

    private var maxUnits: Output? = null

    private var minUnits: Output? = null

    private var pipelineConfigurationBody: Output? = null

    private var pipelineName: Output? = null

    private var tags: Output>? = null

    private var vpcOptions: Output? = null

    /**
     * @param value Options that specify the configuration of a persistent buffer. To configure how OpenSearch Ingestion encrypts this data, set the `EncryptionAtRestOptions` . For more information, see [Persistent buffering](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/osis-features-overview.html#persistent-buffering) .
     */
    @JvmName("rgsxkjvyhopxbcas")
    public suspend fun bufferOptions(`value`: Output) {
        this.bufferOptions = value
    }

    /**
     * @param value Options to control how OpenSearch encrypts buffer data.
     */
    @JvmName("qhkcvomofnjjhswr")
    public suspend fun encryptionAtRestOptions(`value`: Output) {
        this.encryptionAtRestOptions = value
    }

    /**
     * @param value Key-value pairs that represent log publishing settings.
     */
    @JvmName("mxrtrefrfeddjnvi")
    public suspend fun logPublishingOptions(`value`: Output) {
        this.logPublishingOptions = value
    }

    /**
     * @param value The maximum pipeline capacity, in Ingestion OpenSearch Compute Units (OCUs).
     */
    @JvmName("vypsrapjptpdxjli")
    public suspend fun maxUnits(`value`: Output) {
        this.maxUnits = value
    }

    /**
     * @param value The minimum pipeline capacity, in Ingestion OpenSearch Compute Units (OCUs).
     */
    @JvmName("sebjlmyarwrkffdr")
    public suspend fun minUnits(`value`: Output) {
        this.minUnits = value
    }

    /**
     * @param value The Data Prepper pipeline configuration.
     */
    @JvmName("udwutvmhbgdwqkwv")
    public suspend fun pipelineConfigurationBody(`value`: Output) {
        this.pipelineConfigurationBody = value
    }

    /**
     * @param value Name of the OpenSearch Ingestion Service pipeline to create. Pipeline names are unique across the pipelines owned by an account within an AWS Region.
     */
    @JvmName("tyhjcxcjpibdtwqp")
    public suspend fun pipelineName(`value`: Output) {
        this.pipelineName = value
    }

    /**
     * @param value An array of key-value pairs to apply to this resource.
     */
    @JvmName("mfflbkithchkeqsg")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values An array of key-value pairs to apply to this resource.
     */
    @JvmName("fjnmrtkgisocvbuf")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value Options that specify the subnets and security groups for an OpenSearch Ingestion VPC endpoint.
     */
    @JvmName("gosppmrwkphcjbun")
    public suspend fun vpcOptions(`value`: Output) {
        this.vpcOptions = value
    }

    /**
     * @param value Options that specify the configuration of a persistent buffer. To configure how OpenSearch Ingestion encrypts this data, set the `EncryptionAtRestOptions` . For more information, see [Persistent buffering](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/osis-features-overview.html#persistent-buffering) .
     */
    @JvmName("jdvffxqevenmyqbt")
    public suspend fun bufferOptions(`value`: PipelineBufferOptionsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.bufferOptions = mapped
    }

    /**
     * @param argument Options that specify the configuration of a persistent buffer. To configure how OpenSearch Ingestion encrypts this data, set the `EncryptionAtRestOptions` . For more information, see [Persistent buffering](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/osis-features-overview.html#persistent-buffering) .
     */
    @JvmName("uqrmklnqwbrjvlnm")
    public suspend fun bufferOptions(argument: suspend PipelineBufferOptionsArgsBuilder.() -> Unit) {
        val toBeMapped = PipelineBufferOptionsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.bufferOptions = mapped
    }

    /**
     * @param value Options to control how OpenSearch encrypts buffer data.
     */
    @JvmName("bixgyiogpcacjqyu")
    public suspend fun encryptionAtRestOptions(`value`: PipelineEncryptionAtRestOptionsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.encryptionAtRestOptions = mapped
    }

    /**
     * @param argument Options to control how OpenSearch encrypts buffer data.
     */
    @JvmName("fuulahicghenfbds")
    public suspend fun encryptionAtRestOptions(argument: suspend PipelineEncryptionAtRestOptionsArgsBuilder.() -> Unit) {
        val toBeMapped = PipelineEncryptionAtRestOptionsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.encryptionAtRestOptions = mapped
    }

    /**
     * @param value Key-value pairs that represent log publishing settings.
     */
    @JvmName("igcqgnwricjrkkkd")
    public suspend fun logPublishingOptions(`value`: PipelineLogPublishingOptionsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.logPublishingOptions = mapped
    }

    /**
     * @param argument Key-value pairs that represent log publishing settings.
     */
    @JvmName("ailvghdesiqtgdpp")
    public suspend fun logPublishingOptions(argument: suspend PipelineLogPublishingOptionsArgsBuilder.() -> Unit) {
        val toBeMapped = PipelineLogPublishingOptionsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.logPublishingOptions = mapped
    }

    /**
     * @param value The maximum pipeline capacity, in Ingestion OpenSearch Compute Units (OCUs).
     */
    @JvmName("nilgulveefxkmrjp")
    public suspend fun maxUnits(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxUnits = mapped
    }

    /**
     * @param value The minimum pipeline capacity, in Ingestion OpenSearch Compute Units (OCUs).
     */
    @JvmName("jwmupdynfxlxvbxk")
    public suspend fun minUnits(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.minUnits = mapped
    }

    /**
     * @param value The Data Prepper pipeline configuration.
     */
    @JvmName("kcgrsomstnbckkjv")
    public suspend fun pipelineConfigurationBody(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.pipelineConfigurationBody = mapped
    }

    /**
     * @param value Name of the OpenSearch Ingestion Service pipeline to create. Pipeline names are unique across the pipelines owned by an account within an AWS Region.
     */
    @JvmName("nmfvurogalowjfav")
    public suspend fun pipelineName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.pipelineName = mapped
    }

    /**
     * @param value An array of key-value pairs to apply to this resource.
     */
    @JvmName("fnowrkymkeqohmbc")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource.
     */
    @JvmName("kwuuetuutvoaoxmu")
    public suspend fun tags(argument: List Unit>) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource.
     */
    @JvmName("uuunwhpiklilihsr")
    public suspend fun tags(vararg argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource.
     */
    @JvmName("btfghltdjkrjchkr")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values An array of key-value pairs to apply to this resource.
     */
    @JvmName("gjwunncxvyagbqgb")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value Options that specify the subnets and security groups for an OpenSearch Ingestion VPC endpoint.
     */
    @JvmName("grafqosruxmmntjf")
    public suspend fun vpcOptions(`value`: PipelineVpcOptionsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vpcOptions = mapped
    }

    /**
     * @param argument Options that specify the subnets and security groups for an OpenSearch Ingestion VPC endpoint.
     */
    @JvmName("lefrjmkuinksfpdu")
    public suspend fun vpcOptions(argument: suspend PipelineVpcOptionsArgsBuilder.() -> Unit) {
        val toBeMapped = PipelineVpcOptionsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.vpcOptions = mapped
    }

    internal fun build(): PipelineArgs = PipelineArgs(
        bufferOptions = bufferOptions,
        encryptionAtRestOptions = encryptionAtRestOptions,
        logPublishingOptions = logPublishingOptions,
        maxUnits = maxUnits,
        minUnits = minUnits,
        pipelineConfigurationBody = pipelineConfigurationBody,
        pipelineName = pipelineName,
        tags = tags,
        vpcOptions = vpcOptions,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy