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

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

@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.IndexArgs.builder
import com.pulumi.awsnative.qbusiness.kotlin.enums.IndexType
import com.pulumi.awsnative.qbusiness.kotlin.inputs.IndexCapacityConfigurationArgs
import com.pulumi.awsnative.qbusiness.kotlin.inputs.IndexCapacityConfigurationArgsBuilder
import com.pulumi.awsnative.qbusiness.kotlin.inputs.IndexDocumentAttributeConfigurationArgs
import com.pulumi.awsnative.qbusiness.kotlin.inputs.IndexDocumentAttributeConfigurationArgsBuilder
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

/**
 * Definition of AWS::QBusiness::Index Resource Type
 * @property applicationId The identifier of the Amazon Q Business application using the index.
 * @property capacityConfiguration The capacity units you want to provision for your index. You can add and remove capacity to fit your usage needs.
 * @property description A description for the Amazon Q Business index.
 * @property displayName The name of the index.
 * @property documentAttributeConfigurations Configuration information for document attributes. Document attributes are metadata or fields associated with your documents. For example, the company department name associated with each document.
 * For more information, see [Understanding document attributes](https://docs.aws.amazon.com/amazonq/latest/business-use-dg/doc-attributes.html) .
 * @property tags A list of key-value pairs that identify or categorize the index. You can also use tags to help control access to the index. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.
 * @property type The index type that's suitable for your needs. For more information on what's included in each type of index, see [Amazon Q Business tiers](https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/tiers.html#index-tiers) .
 */
public data class IndexArgs(
    public val applicationId: Output? = null,
    public val capacityConfiguration: Output? = null,
    public val description: Output? = null,
    public val displayName: Output? = null,
    public val documentAttributeConfigurations: Output>? =
        null,
    public val tags: Output>? = null,
    public val type: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.qbusiness.IndexArgs =
        com.pulumi.awsnative.qbusiness.IndexArgs.builder()
            .applicationId(applicationId?.applyValue({ args0 -> args0 }))
            .capacityConfiguration(
                capacityConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .description(description?.applyValue({ args0 -> args0 }))
            .displayName(displayName?.applyValue({ args0 -> args0 }))
            .documentAttributeConfigurations(
                documentAttributeConfigurations?.applyValue({ args0 ->
                    args0.map({ 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 [IndexArgs].
 */
@PulumiTagMarker
public class IndexArgsBuilder internal constructor() {
    private var applicationId: Output? = null

    private var capacityConfiguration: Output? = null

    private var description: Output? = null

    private var displayName: Output? = null

    private var documentAttributeConfigurations:
        Output>? = null

    private var tags: Output>? = null

    private var type: Output? = null

    /**
     * @param value The identifier of the Amazon Q Business application using the index.
     */
    @JvmName("djtwmvuqriayiexx")
    public suspend fun applicationId(`value`: Output) {
        this.applicationId = value
    }

    /**
     * @param value The capacity units you want to provision for your index. You can add and remove capacity to fit your usage needs.
     */
    @JvmName("ptrmflyyeoyteabr")
    public suspend fun capacityConfiguration(`value`: Output) {
        this.capacityConfiguration = value
    }

    /**
     * @param value A description for the Amazon Q Business index.
     */
    @JvmName("iokpgrqnorbhfphe")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

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

    /**
     * @param value Configuration information for document attributes. Document attributes are metadata or fields associated with your documents. For example, the company department name associated with each document.
     * For more information, see [Understanding document attributes](https://docs.aws.amazon.com/amazonq/latest/business-use-dg/doc-attributes.html) .
     */
    @JvmName("ifehpnfykenuvahb")
    public suspend fun documentAttributeConfigurations(`value`: Output>) {
        this.documentAttributeConfigurations = value
    }

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

    /**
     * @param values Configuration information for document attributes. Document attributes are metadata or fields associated with your documents. For example, the company department name associated with each document.
     * For more information, see [Understanding document attributes](https://docs.aws.amazon.com/amazonq/latest/business-use-dg/doc-attributes.html) .
     */
    @JvmName("guibxnnxrjphegtl")
    public suspend fun documentAttributeConfigurations(values: List>) {
        this.documentAttributeConfigurations = Output.all(values)
    }

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

    @JvmName("otaqtdnadvtnfpsj")
    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 index. You can also use tags to help control access to the index. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.
     */
    @JvmName("rhygmimqtojidgne")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value The index type that's suitable for your needs. For more information on what's included in each type of index, see [Amazon Q Business tiers](https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/tiers.html#index-tiers) .
     */
    @JvmName("ogdagkmvxkugincs")
    public suspend fun type(`value`: Output) {
        this.type = value
    }

    /**
     * @param value The identifier of the Amazon Q Business application using the index.
     */
    @JvmName("jdgvnkcyylbxcqjw")
    public suspend fun applicationId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.applicationId = mapped
    }

    /**
     * @param value The capacity units you want to provision for your index. You can add and remove capacity to fit your usage needs.
     */
    @JvmName("hnwskqkbvngvvfgd")
    public suspend fun capacityConfiguration(`value`: IndexCapacityConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.capacityConfiguration = mapped
    }

    /**
     * @param argument The capacity units you want to provision for your index. You can add and remove capacity to fit your usage needs.
     */
    @JvmName("ardrfqsprpixwbdh")
    public suspend fun capacityConfiguration(argument: suspend IndexCapacityConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = IndexCapacityConfigurationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.capacityConfiguration = mapped
    }

    /**
     * @param value A description for the Amazon Q Business index.
     */
    @JvmName("ojowrumyskwxvaid")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

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

    /**
     * @param value Configuration information for document attributes. Document attributes are metadata or fields associated with your documents. For example, the company department name associated with each document.
     * For more information, see [Understanding document attributes](https://docs.aws.amazon.com/amazonq/latest/business-use-dg/doc-attributes.html) .
     */
    @JvmName("bvlejxpqqagrlrfc")
    public suspend fun documentAttributeConfigurations(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.documentAttributeConfigurations = mapped
    }

    /**
     * @param argument Configuration information for document attributes. Document attributes are metadata or fields associated with your documents. For example, the company department name associated with each document.
     * For more information, see [Understanding document attributes](https://docs.aws.amazon.com/amazonq/latest/business-use-dg/doc-attributes.html) .
     */
    @JvmName("urcclmpkkokaqank")
    public suspend fun documentAttributeConfigurations(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            IndexDocumentAttributeConfigurationArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.documentAttributeConfigurations = mapped
    }

    /**
     * @param argument Configuration information for document attributes. Document attributes are metadata or fields associated with your documents. For example, the company department name associated with each document.
     * For more information, see [Understanding document attributes](https://docs.aws.amazon.com/amazonq/latest/business-use-dg/doc-attributes.html) .
     */
    @JvmName("qiglihicbyoblkab")
    public suspend fun documentAttributeConfigurations(vararg argument: suspend IndexDocumentAttributeConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            IndexDocumentAttributeConfigurationArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.documentAttributeConfigurations = mapped
    }

    /**
     * @param argument Configuration information for document attributes. Document attributes are metadata or fields associated with your documents. For example, the company department name associated with each document.
     * For more information, see [Understanding document attributes](https://docs.aws.amazon.com/amazonq/latest/business-use-dg/doc-attributes.html) .
     */
    @JvmName("eniycagykrjwkhtp")
    public suspend fun documentAttributeConfigurations(argument: suspend IndexDocumentAttributeConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            IndexDocumentAttributeConfigurationArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.documentAttributeConfigurations = mapped
    }

    /**
     * @param values Configuration information for document attributes. Document attributes are metadata or fields associated with your documents. For example, the company department name associated with each document.
     * For more information, see [Understanding document attributes](https://docs.aws.amazon.com/amazonq/latest/business-use-dg/doc-attributes.html) .
     */
    @JvmName("sjaetsbxafppsvio")
    public suspend fun documentAttributeConfigurations(vararg values: IndexDocumentAttributeConfigurationArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.documentAttributeConfigurations = mapped
    }

    /**
     * @param value A list of key-value pairs that identify or categorize the index. You can also use tags to help control access to the index. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.
     */
    @JvmName("dvgpemwnlxekdfaq")
    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 index. You can also use tags to help control access to the index. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.
     */
    @JvmName("bynawdkssnmgcrao")
    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 index. You can also use tags to help control access to the index. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.
     */
    @JvmName("tqagkyonchtriyps")
    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 index. You can also use tags to help control access to the index. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.
     */
    @JvmName("soxmpkvnvtivngyn")
    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 index. You can also use tags to help control access to the index. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.
     */
    @JvmName("flfmcutqnmpeecsu")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value The index type that's suitable for your needs. For more information on what's included in each type of index, see [Amazon Q Business tiers](https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/tiers.html#index-tiers) .
     */
    @JvmName("ciyagmounwiulkvr")
    public suspend fun type(`value`: IndexType?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.type = mapped
    }

    internal fun build(): IndexArgs = IndexArgs(
        applicationId = applicationId,
        capacityConfiguration = capacityConfiguration,
        description = description,
        displayName = displayName,
        documentAttributeConfigurations = documentAttributeConfigurations,
        tags = tags,
        type = type,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy