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

com.pulumi.awsnative.connect.kotlin.InstanceStorageConfigArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.connect.kotlin

import com.pulumi.awsnative.connect.InstanceStorageConfigArgs.builder
import com.pulumi.awsnative.connect.kotlin.enums.InstanceStorageConfigInstanceStorageResourceType
import com.pulumi.awsnative.connect.kotlin.enums.InstanceStorageConfigStorageType
import com.pulumi.awsnative.connect.kotlin.inputs.InstanceStorageConfigKinesisFirehoseConfigArgs
import com.pulumi.awsnative.connect.kotlin.inputs.InstanceStorageConfigKinesisFirehoseConfigArgsBuilder
import com.pulumi.awsnative.connect.kotlin.inputs.InstanceStorageConfigKinesisStreamConfigArgs
import com.pulumi.awsnative.connect.kotlin.inputs.InstanceStorageConfigKinesisStreamConfigArgsBuilder
import com.pulumi.awsnative.connect.kotlin.inputs.InstanceStorageConfigKinesisVideoStreamConfigArgs
import com.pulumi.awsnative.connect.kotlin.inputs.InstanceStorageConfigKinesisVideoStreamConfigArgsBuilder
import com.pulumi.awsnative.connect.kotlin.inputs.InstanceStorageConfigS3ConfigArgs
import com.pulumi.awsnative.connect.kotlin.inputs.InstanceStorageConfigS3ConfigArgsBuilder
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.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 * Resource Type definition for AWS::Connect::InstanceStorageConfig
 * @property instanceArn Connect Instance ID with which the storage config will be associated
 * @property kinesisFirehoseConfig The configuration of the Kinesis Firehose delivery stream.
 * @property kinesisStreamConfig The configuration of the Kinesis data stream.
 * @property kinesisVideoStreamConfig The configuration of the Kinesis video stream.
 * @property resourceType A valid resource type. Following are the valid resource types: `CHAT_TRANSCRIPTS` | `CALL_RECORDINGS` | `SCHEDULED_REPORTS` | `MEDIA_STREAMS` | `CONTACT_TRACE_RECORDS` | `AGENT_EVENTS`
 * @property s3Config The S3 bucket configuration.
 * @property storageType A valid storage type.
 */
public data class InstanceStorageConfigArgs(
    public val instanceArn: Output? = null,
    public val kinesisFirehoseConfig: Output? = null,
    public val kinesisStreamConfig: Output? = null,
    public val kinesisVideoStreamConfig: Output? =
        null,
    public val resourceType: Output? = null,
    public val s3Config: Output? = null,
    public val storageType: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.connect.InstanceStorageConfigArgs =
        com.pulumi.awsnative.connect.InstanceStorageConfigArgs.builder()
            .instanceArn(instanceArn?.applyValue({ args0 -> args0 }))
            .kinesisFirehoseConfig(
                kinesisFirehoseConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .kinesisStreamConfig(
                kinesisStreamConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .kinesisVideoStreamConfig(
                kinesisVideoStreamConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .resourceType(resourceType?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .s3Config(s3Config?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .storageType(storageType?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

/**
 * Builder for [InstanceStorageConfigArgs].
 */
@PulumiTagMarker
public class InstanceStorageConfigArgsBuilder internal constructor() {
    private var instanceArn: Output? = null

    private var kinesisFirehoseConfig: Output? = null

    private var kinesisStreamConfig: Output? = null

    private var kinesisVideoStreamConfig: Output? =
        null

    private var resourceType: Output? = null

    private var s3Config: Output? = null

    private var storageType: Output? = null

    /**
     * @param value Connect Instance ID with which the storage config will be associated
     */
    @JvmName("edeufdxqrwbeamqf")
    public suspend fun instanceArn(`value`: Output) {
        this.instanceArn = value
    }

    /**
     * @param value The configuration of the Kinesis Firehose delivery stream.
     */
    @JvmName("ltbkqheqwxlpjhmb")
    public suspend fun kinesisFirehoseConfig(`value`: Output) {
        this.kinesisFirehoseConfig = value
    }

    /**
     * @param value The configuration of the Kinesis data stream.
     */
    @JvmName("emsqdpxjymxsvopy")
    public suspend fun kinesisStreamConfig(`value`: Output) {
        this.kinesisStreamConfig = value
    }

    /**
     * @param value The configuration of the Kinesis video stream.
     */
    @JvmName("uwvgfsrvwnfwfidq")
    public suspend fun kinesisVideoStreamConfig(`value`: Output) {
        this.kinesisVideoStreamConfig = value
    }

    /**
     * @param value A valid resource type. Following are the valid resource types: `CHAT_TRANSCRIPTS` | `CALL_RECORDINGS` | `SCHEDULED_REPORTS` | `MEDIA_STREAMS` | `CONTACT_TRACE_RECORDS` | `AGENT_EVENTS`
     */
    @JvmName("cttjrvoekvasunbs")
    public suspend fun resourceType(`value`: Output) {
        this.resourceType = value
    }

    /**
     * @param value The S3 bucket configuration.
     */
    @JvmName("oiofpeorwaabnbbq")
    public suspend fun s3Config(`value`: Output) {
        this.s3Config = value
    }

    /**
     * @param value A valid storage type.
     */
    @JvmName("owlgxxawoxevnqoq")
    public suspend fun storageType(`value`: Output) {
        this.storageType = value
    }

    /**
     * @param value Connect Instance ID with which the storage config will be associated
     */
    @JvmName("tyrjhrahvipttacu")
    public suspend fun instanceArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.instanceArn = mapped
    }

    /**
     * @param value The configuration of the Kinesis Firehose delivery stream.
     */
    @JvmName("kvokpwpydsxkqvek")
    public suspend fun kinesisFirehoseConfig(`value`: InstanceStorageConfigKinesisFirehoseConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kinesisFirehoseConfig = mapped
    }

    /**
     * @param argument The configuration of the Kinesis Firehose delivery stream.
     */
    @JvmName("krdxtbqgaucdnvuj")
    public suspend fun kinesisFirehoseConfig(argument: suspend InstanceStorageConfigKinesisFirehoseConfigArgsBuilder.() -> Unit) {
        val toBeMapped = InstanceStorageConfigKinesisFirehoseConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.kinesisFirehoseConfig = mapped
    }

    /**
     * @param value The configuration of the Kinesis data stream.
     */
    @JvmName("jlkrcpckspsuyjsp")
    public suspend fun kinesisStreamConfig(`value`: InstanceStorageConfigKinesisStreamConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kinesisStreamConfig = mapped
    }

    /**
     * @param argument The configuration of the Kinesis data stream.
     */
    @JvmName("blkkicjkpdtwjrpd")
    public suspend fun kinesisStreamConfig(argument: suspend InstanceStorageConfigKinesisStreamConfigArgsBuilder.() -> Unit) {
        val toBeMapped = InstanceStorageConfigKinesisStreamConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.kinesisStreamConfig = mapped
    }

    /**
     * @param value The configuration of the Kinesis video stream.
     */
    @JvmName("enelqoaedtccdiev")
    public suspend fun kinesisVideoStreamConfig(`value`: InstanceStorageConfigKinesisVideoStreamConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kinesisVideoStreamConfig = mapped
    }

    /**
     * @param argument The configuration of the Kinesis video stream.
     */
    @JvmName("hsflilrsrasloglr")
    public suspend fun kinesisVideoStreamConfig(argument: suspend InstanceStorageConfigKinesisVideoStreamConfigArgsBuilder.() -> Unit) {
        val toBeMapped = InstanceStorageConfigKinesisVideoStreamConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.kinesisVideoStreamConfig = mapped
    }

    /**
     * @param value A valid resource type. Following are the valid resource types: `CHAT_TRANSCRIPTS` | `CALL_RECORDINGS` | `SCHEDULED_REPORTS` | `MEDIA_STREAMS` | `CONTACT_TRACE_RECORDS` | `AGENT_EVENTS`
     */
    @JvmName("ufkjvkrditukjpvn")
    public suspend fun resourceType(`value`: InstanceStorageConfigInstanceStorageResourceType?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceType = mapped
    }

    /**
     * @param value The S3 bucket configuration.
     */
    @JvmName("wgoiptacibngqxfj")
    public suspend fun s3Config(`value`: InstanceStorageConfigS3ConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.s3Config = mapped
    }

    /**
     * @param argument The S3 bucket configuration.
     */
    @JvmName("rewchcdjwbxobakh")
    public suspend fun s3Config(argument: suspend InstanceStorageConfigS3ConfigArgsBuilder.() -> Unit) {
        val toBeMapped = InstanceStorageConfigS3ConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.s3Config = mapped
    }

    /**
     * @param value A valid storage type.
     */
    @JvmName("pgoagufvjinkvdft")
    public suspend fun storageType(`value`: InstanceStorageConfigStorageType?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.storageType = mapped
    }

    internal fun build(): InstanceStorageConfigArgs = InstanceStorageConfigArgs(
        instanceArn = instanceArn,
        kinesisFirehoseConfig = kinesisFirehoseConfig,
        kinesisStreamConfig = kinesisStreamConfig,
        kinesisVideoStreamConfig = kinesisVideoStreamConfig,
        resourceType = resourceType,
        s3Config = s3Config,
        storageType = storageType,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy