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

commonMain.aws.sdk.kotlin.services.kendra.model.InlineCustomDocumentEnrichmentConfiguration.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.kendra.model



/**
 * Provides the configuration information for applying basic logic to alter document metadata and content when ingesting documents into Amazon Kendra. To apply advanced logic, to go beyond what you can do with basic logic, see [HookConfiguration](https://docs.aws.amazon.com/kendra/latest/dg/API_HookConfiguration.html).
 *
 * For more information, see [Customizing document metadata during the ingestion process](https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html).
 */
public class InlineCustomDocumentEnrichmentConfiguration private constructor(builder: Builder) {
    /**
     * Configuration of the condition used for the target document attribute or metadata field when ingesting documents into Amazon Kendra.
     */
    public val condition: aws.sdk.kotlin.services.kendra.model.DocumentAttributeCondition? = builder.condition
    /**
     * `TRUE` to delete content if the condition used for the target attribute is met.
     */
    public val documentContentDeletion: kotlin.Boolean = builder.documentContentDeletion
    /**
     * Configuration of the target document attribute or metadata field when ingesting documents into Amazon Kendra. You can also include a value.
     */
    public val target: aws.sdk.kotlin.services.kendra.model.DocumentAttributeTarget? = builder.target

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

    override fun toString(): kotlin.String = buildString {
        append("InlineCustomDocumentEnrichmentConfiguration(")
        append("condition=$condition,")
        append("documentContentDeletion=$documentContentDeletion,")
        append("target=$target")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = condition?.hashCode() ?: 0
        result = 31 * result + (documentContentDeletion.hashCode())
        result = 31 * result + (target?.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 InlineCustomDocumentEnrichmentConfiguration

        if (condition != other.condition) return false
        if (documentContentDeletion != other.documentContentDeletion) return false
        if (target != other.target) return false

        return true
    }

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

    public class Builder {
        /**
         * Configuration of the condition used for the target document attribute or metadata field when ingesting documents into Amazon Kendra.
         */
        public var condition: aws.sdk.kotlin.services.kendra.model.DocumentAttributeCondition? = null
        /**
         * `TRUE` to delete content if the condition used for the target attribute is met.
         */
        public var documentContentDeletion: kotlin.Boolean = false
        /**
         * Configuration of the target document attribute or metadata field when ingesting documents into Amazon Kendra. You can also include a value.
         */
        public var target: aws.sdk.kotlin.services.kendra.model.DocumentAttributeTarget? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.kendra.model.InlineCustomDocumentEnrichmentConfiguration) : this() {
            this.condition = x.condition
            this.documentContentDeletion = x.documentContentDeletion
            this.target = x.target
        }

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

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

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy