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

com.pulumi.awsnative.glue.kotlin.SchemaArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.glue.kotlin

import com.pulumi.awsnative.glue.SchemaArgs.builder
import com.pulumi.awsnative.glue.kotlin.enums.SchemaCompatibility
import com.pulumi.awsnative.glue.kotlin.enums.SchemaDataFormat
import com.pulumi.awsnative.glue.kotlin.inputs.SchemaRegistryArgs
import com.pulumi.awsnative.glue.kotlin.inputs.SchemaRegistryArgsBuilder
import com.pulumi.awsnative.glue.kotlin.inputs.SchemaVersionArgs
import com.pulumi.awsnative.glue.kotlin.inputs.SchemaVersionArgsBuilder
import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
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.collections.List
import kotlin.jvm.JvmName

/**
 * This resource represents a schema of Glue Schema Registry.
 * @property checkpointVersion Specify the `VersionNumber` or the `IsLatest` for setting the checkpoint for the schema. This is only required for updating a checkpoint.
 * @property compatibility Compatibility setting for the schema.
 * @property dataFormat Data format name to use for the schema. Accepted values: 'AVRO', 'JSON', 'PROTOBUF'
 * @property description A description of the schema. If description is not provided, there will not be any default value for this.
 * @property name Name of the schema.
 * @property registry The registry where a schema is stored.
 * @property schemaDefinition Definition for the initial schema version in plain-text.
 * @property tags List of tags to tag the schema
 */
public data class SchemaArgs(
    public val checkpointVersion: Output? = null,
    public val compatibility: Output? = null,
    public val dataFormat: Output? = null,
    public val description: Output? = null,
    public val name: Output? = null,
    public val registry: Output? = null,
    public val schemaDefinition: Output? = null,
    public val tags: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.glue.SchemaArgs =
        com.pulumi.awsnative.glue.SchemaArgs.builder()
            .checkpointVersion(checkpointVersion?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .compatibility(compatibility?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .dataFormat(dataFormat?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .description(description?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .registry(registry?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .schemaDefinition(schemaDefinition?.applyValue({ args0 -> args0 }))
            .tags(
                tags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [SchemaArgs].
 */
@PulumiTagMarker
public class SchemaArgsBuilder internal constructor() {
    private var checkpointVersion: Output? = null

    private var compatibility: Output? = null

    private var dataFormat: Output? = null

    private var description: Output? = null

    private var name: Output? = null

    private var registry: Output? = null

    private var schemaDefinition: Output? = null

    private var tags: Output>? = null

    /**
     * @param value Specify the `VersionNumber` or the `IsLatest` for setting the checkpoint for the schema. This is only required for updating a checkpoint.
     */
    @JvmName("kxrfoffrwvffdvig")
    public suspend fun checkpointVersion(`value`: Output) {
        this.checkpointVersion = value
    }

    /**
     * @param value Compatibility setting for the schema.
     */
    @JvmName("eifctdlldonqqwqv")
    public suspend fun compatibility(`value`: Output) {
        this.compatibility = value
    }

    /**
     * @param value Data format name to use for the schema. Accepted values: 'AVRO', 'JSON', 'PROTOBUF'
     */
    @JvmName("gmpftdowiofujytv")
    public suspend fun dataFormat(`value`: Output) {
        this.dataFormat = value
    }

    /**
     * @param value A description of the schema. If description is not provided, there will not be any default value for this.
     */
    @JvmName("pkcpcatcfyjnbkqn")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value Name of the schema.
     */
    @JvmName("djctctpnkfjrkoxj")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The registry where a schema is stored.
     */
    @JvmName("uahscsvosysgowfs")
    public suspend fun registry(`value`: Output) {
        this.registry = value
    }

    /**
     * @param value Definition for the initial schema version in plain-text.
     */
    @JvmName("qokymaskpojjyegr")
    public suspend fun schemaDefinition(`value`: Output) {
        this.schemaDefinition = value
    }

    /**
     * @param value List of tags to tag the schema
     */
    @JvmName("qogrjddygmdqubpk")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values List of tags to tag the schema
     */
    @JvmName("xfspoivkukiyekqu")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value Specify the `VersionNumber` or the `IsLatest` for setting the checkpoint for the schema. This is only required for updating a checkpoint.
     */
    @JvmName("xfhxljxnkjdxtcvh")
    public suspend fun checkpointVersion(`value`: SchemaVersionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.checkpointVersion = mapped
    }

    /**
     * @param argument Specify the `VersionNumber` or the `IsLatest` for setting the checkpoint for the schema. This is only required for updating a checkpoint.
     */
    @JvmName("dimmgplcuumhyddq")
    public suspend fun checkpointVersion(argument: suspend SchemaVersionArgsBuilder.() -> Unit) {
        val toBeMapped = SchemaVersionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.checkpointVersion = mapped
    }

    /**
     * @param value Compatibility setting for the schema.
     */
    @JvmName("hqeycielsubpyuqy")
    public suspend fun compatibility(`value`: SchemaCompatibility?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.compatibility = mapped
    }

    /**
     * @param value Data format name to use for the schema. Accepted values: 'AVRO', 'JSON', 'PROTOBUF'
     */
    @JvmName("cfaibpbmgdhopllb")
    public suspend fun dataFormat(`value`: SchemaDataFormat?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dataFormat = mapped
    }

    /**
     * @param value A description of the schema. If description is not provided, there will not be any default value for this.
     */
    @JvmName("mjrtvyitjbgoocjd")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value Name of the schema.
     */
    @JvmName("gyhpsetkccwubslq")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The registry where a schema is stored.
     */
    @JvmName("qyiyqjhjmxqbsipa")
    public suspend fun registry(`value`: SchemaRegistryArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.registry = mapped
    }

    /**
     * @param argument The registry where a schema is stored.
     */
    @JvmName("phxsjfeslnqbrrob")
    public suspend fun registry(argument: suspend SchemaRegistryArgsBuilder.() -> Unit) {
        val toBeMapped = SchemaRegistryArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.registry = mapped
    }

    /**
     * @param value Definition for the initial schema version in plain-text.
     */
    @JvmName("temauoqocaufnalx")
    public suspend fun schemaDefinition(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.schemaDefinition = mapped
    }

    /**
     * @param value List of tags to tag the schema
     */
    @JvmName("jvnpaeoqkunppofj")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument List of tags to tag the schema
     */
    @JvmName("ffgawskyjdtiqkuw")
    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 List of tags to tag the schema
     */
    @JvmName("fdoshdfbqaslxiqk")
    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 List of tags to tag the schema
     */
    @JvmName("asggujawqgyeddgp")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values List of tags to tag the schema
     */
    @JvmName("wambdbwwxyvectny")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    internal fun build(): SchemaArgs = SchemaArgs(
        checkpointVersion = checkpointVersion,
        compatibility = compatibility,
        dataFormat = dataFormat,
        description = description,
        name = name,
        registry = registry,
        schemaDefinition = schemaDefinition,
        tags = tags,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy