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

commonMain.aws.sdk.kotlin.services.qbusiness.model.UpdateIndexRequest.kt Maven / Gradle / Ivy

// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.qbusiness.model



public class UpdateIndexRequest private constructor(builder: Builder) {
    /**
     * The identifier of the Amazon Q Business application connected to the index.
     */
    public val applicationId: kotlin.String? = builder.applicationId
    /**
     * The storage capacity units you want to provision for your Amazon Q Business index. You can add and remove capacity to fit your usage needs.
     */
    public val capacityConfiguration: aws.sdk.kotlin.services.qbusiness.model.IndexCapacityConfiguration? = builder.capacityConfiguration
    /**
     * The description of the Amazon Q Business index.
     */
    public val description: kotlin.String? = builder.description
    /**
     * The name of the Amazon Q Business index.
     */
    public val displayName: kotlin.String? = builder.displayName
    /**
     * Configuration information for document metadata or fields. Document metadata are fields or attributes 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-types.html#doc-attributes).
     */
    public val documentAttributeConfigurations: List? = builder.documentAttributeConfigurations
    /**
     * The identifier of the Amazon Q Business index.
     */
    public val indexId: kotlin.String? = builder.indexId

    public companion object {
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.qbusiness.model.UpdateIndexRequest = Builder().apply(block).build()
    }

    override fun toString(): kotlin.String = buildString {
        append("UpdateIndexRequest(")
        append("applicationId=$applicationId,")
        append("capacityConfiguration=$capacityConfiguration,")
        append("description=$description,")
        append("displayName=$displayName,")
        append("documentAttributeConfigurations=$documentAttributeConfigurations,")
        append("indexId=$indexId")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = applicationId?.hashCode() ?: 0
        result = 31 * result + (capacityConfiguration?.hashCode() ?: 0)
        result = 31 * result + (description?.hashCode() ?: 0)
        result = 31 * result + (displayName?.hashCode() ?: 0)
        result = 31 * result + (documentAttributeConfigurations?.hashCode() ?: 0)
        result = 31 * result + (indexId?.hashCode() ?: 0)
        return result
    }

    override fun equals(other: kotlin.Any?): kotlin.Boolean {
        if (this === other) return true
        if (other == null || this::class != other::class) return false

        other as UpdateIndexRequest

        if (applicationId != other.applicationId) return false
        if (capacityConfiguration != other.capacityConfiguration) return false
        if (description != other.description) return false
        if (displayName != other.displayName) return false
        if (documentAttributeConfigurations != other.documentAttributeConfigurations) return false
        if (indexId != other.indexId) return false

        return true
    }

    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.qbusiness.model.UpdateIndexRequest = Builder(this).apply(block).build()

    public class Builder {
        /**
         * The identifier of the Amazon Q Business application connected to the index.
         */
        public var applicationId: kotlin.String? = null
        /**
         * The storage capacity units you want to provision for your Amazon Q Business index. You can add and remove capacity to fit your usage needs.
         */
        public var capacityConfiguration: aws.sdk.kotlin.services.qbusiness.model.IndexCapacityConfiguration? = null
        /**
         * The description of the Amazon Q Business index.
         */
        public var description: kotlin.String? = null
        /**
         * The name of the Amazon Q Business index.
         */
        public var displayName: kotlin.String? = null
        /**
         * Configuration information for document metadata or fields. Document metadata are fields or attributes 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-types.html#doc-attributes).
         */
        public var documentAttributeConfigurations: List? = null
        /**
         * The identifier of the Amazon Q Business index.
         */
        public var indexId: kotlin.String? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.qbusiness.model.UpdateIndexRequest) : this() {
            this.applicationId = x.applicationId
            this.capacityConfiguration = x.capacityConfiguration
            this.description = x.description
            this.displayName = x.displayName
            this.documentAttributeConfigurations = x.documentAttributeConfigurations
            this.indexId = x.indexId
        }

        @PublishedApi
        internal fun build(): aws.sdk.kotlin.services.qbusiness.model.UpdateIndexRequest = UpdateIndexRequest(this)

        /**
         * construct an [aws.sdk.kotlin.services.qbusiness.model.IndexCapacityConfiguration] inside the given [block]
         */
        public fun capacityConfiguration(block: aws.sdk.kotlin.services.qbusiness.model.IndexCapacityConfiguration.Builder.() -> kotlin.Unit) {
            this.capacityConfiguration = aws.sdk.kotlin.services.qbusiness.model.IndexCapacityConfiguration.invoke(block)
        }

        internal fun correctErrors(): Builder {
            return this
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy