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

com.pulumi.awsnative.qbusiness.kotlin.PluginArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 0.122.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.qbusiness.kotlin

import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
import com.pulumi.awsnative.qbusiness.PluginArgs.builder
import com.pulumi.awsnative.qbusiness.kotlin.enums.PluginState
import com.pulumi.awsnative.qbusiness.kotlin.enums.PluginType
import com.pulumi.awsnative.qbusiness.kotlin.inputs.PluginCustomPluginConfigurationArgs
import com.pulumi.awsnative.qbusiness.kotlin.inputs.PluginCustomPluginConfigurationArgsBuilder
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.Any
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Definition of AWS::QBusiness::Plugin Resource Type
 * @property applicationId The identifier of the application that will contain the plugin.
 * @property authConfiguration Authentication configuration information for an Amazon Q Business plugin.
 * @property customPluginConfiguration Configuration information required to create a custom plugin.
 * @property displayName The name of the plugin.
 * @property serverUrl The plugin server URL used for configuration.
 * @property state The current status of the plugin.
 * @property tags A list of key-value pairs that identify or categorize the data source connector. You can also use tags to help control access to the data source connector. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.
 * @property type The type of the plugin.
 */
public data class PluginArgs(
    public val applicationId: Output? = null,
    public val authConfiguration: Output? = null,
    public val customPluginConfiguration: Output? = null,
    public val displayName: Output? = null,
    public val serverUrl: Output? = null,
    public val state: Output? = null,
    public val tags: Output>? = null,
    public val type: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.qbusiness.PluginArgs =
        com.pulumi.awsnative.qbusiness.PluginArgs.builder()
            .applicationId(applicationId?.applyValue({ args0 -> args0 }))
            .authConfiguration(authConfiguration?.applyValue({ args0 -> args0 }))
            .customPluginConfiguration(
                customPluginConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .displayName(displayName?.applyValue({ args0 -> args0 }))
            .serverUrl(serverUrl?.applyValue({ args0 -> args0 }))
            .state(state?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .type(type?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

/**
 * Builder for [PluginArgs].
 */
@PulumiTagMarker
public class PluginArgsBuilder internal constructor() {
    private var applicationId: Output? = null

    private var authConfiguration: Output? = null

    private var customPluginConfiguration: Output? = null

    private var displayName: Output? = null

    private var serverUrl: Output? = null

    private var state: Output? = null

    private var tags: Output>? = null

    private var type: Output? = null

    /**
     * @param value The identifier of the application that will contain the plugin.
     */
    @JvmName("lictnnonbnvljfwr")
    public suspend fun applicationId(`value`: Output) {
        this.applicationId = value
    }

    /**
     * @param value Authentication configuration information for an Amazon Q Business plugin.
     */
    @JvmName("cidpgpypnkqqxswm")
    public suspend fun authConfiguration(`value`: Output) {
        this.authConfiguration = value
    }

    /**
     * @param value Configuration information required to create a custom plugin.
     */
    @JvmName("xsqvapxfknryhiel")
    public suspend fun customPluginConfiguration(`value`: Output) {
        this.customPluginConfiguration = value
    }

    /**
     * @param value The name of the plugin.
     */
    @JvmName("diybcilytryftbik")
    public suspend fun displayName(`value`: Output) {
        this.displayName = value
    }

    /**
     * @param value The plugin server URL used for configuration.
     */
    @JvmName("cqosandeiojjjdvi")
    public suspend fun serverUrl(`value`: Output) {
        this.serverUrl = value
    }

    /**
     * @param value The current status of the plugin.
     */
    @JvmName("uloboymijkvmapjx")
    public suspend fun state(`value`: Output) {
        this.state = value
    }

    /**
     * @param value A list of key-value pairs that identify or categorize the data source connector. You can also use tags to help control access to the data source connector. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.
     */
    @JvmName("qjvchwgbetbbugqt")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values A list of key-value pairs that identify or categorize the data source connector. You can also use tags to help control access to the data source connector. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.
     */
    @JvmName("vhvgkqeimjibikxy")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value The type of the plugin.
     */
    @JvmName("uasahxryfnbpgeqg")
    public suspend fun type(`value`: Output) {
        this.type = value
    }

    /**
     * @param value The identifier of the application that will contain the plugin.
     */
    @JvmName("ngpwyoqrpaatywhl")
    public suspend fun applicationId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.applicationId = mapped
    }

    /**
     * @param value Authentication configuration information for an Amazon Q Business plugin.
     */
    @JvmName("koadehthguuycffc")
    public suspend fun authConfiguration(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authConfiguration = mapped
    }

    /**
     * @param value Configuration information required to create a custom plugin.
     */
    @JvmName("nldkmqkvenlstioc")
    public suspend fun customPluginConfiguration(`value`: PluginCustomPluginConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.customPluginConfiguration = mapped
    }

    /**
     * @param argument Configuration information required to create a custom plugin.
     */
    @JvmName("vmpvarukrtcmnokx")
    public suspend fun customPluginConfiguration(argument: suspend PluginCustomPluginConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = PluginCustomPluginConfigurationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.customPluginConfiguration = mapped
    }

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

    /**
     * @param value The plugin server URL used for configuration.
     */
    @JvmName("fihytjwnqiwhsvty")
    public suspend fun serverUrl(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.serverUrl = mapped
    }

    /**
     * @param value The current status of the plugin.
     */
    @JvmName("cdkwgbioalehvbhr")
    public suspend fun state(`value`: PluginState?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.state = mapped
    }

    /**
     * @param value A list of key-value pairs that identify or categorize the data source connector. You can also use tags to help control access to the data source connector. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.
     */
    @JvmName("wmlavmfsedmyjvok")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument A list of key-value pairs that identify or categorize the data source connector. You can also use tags to help control access to the data source connector. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.
     */
    @JvmName("ewguwiishwjekdhb")
    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 A list of key-value pairs that identify or categorize the data source connector. You can also use tags to help control access to the data source connector. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.
     */
    @JvmName("kacndogfyvdjirrb")
    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 A list of key-value pairs that identify or categorize the data source connector. You can also use tags to help control access to the data source connector. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.
     */
    @JvmName("awwwfgxaocqfwylo")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values A list of key-value pairs that identify or categorize the data source connector. You can also use tags to help control access to the data source connector. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.
     */
    @JvmName("anfonwemxiurakvv")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value The type of the plugin.
     */
    @JvmName("ihgcprtlabfshaxb")
    public suspend fun type(`value`: PluginType?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.type = mapped
    }

    internal fun build(): PluginArgs = PluginArgs(
        applicationId = applicationId,
        authConfiguration = authConfiguration,
        customPluginConfiguration = customPluginConfiguration,
        displayName = displayName,
        serverUrl = serverUrl,
        state = state,
        tags = tags,
        type = type,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy