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

com.pulumi.aws.kendra.kotlin.inputs.DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.aws.kendra.kotlin.inputs

import com.pulumi.aws.kendra.inputs.DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 *
 * @property invocationCondition A block that specifies the condition used for when a Lambda function should be invoked. For example, you can specify a condition that if there are empty date-time values, then Amazon Kendra should invoke a function that inserts the current date-time. See invocation_condition.
 * @property lambdaArn The Amazon Resource Name (ARN) of a Lambda Function that can manipulate your document metadata fields or attributes and content.
 * @property s3Bucket Stores the original, raw documents or the structured, parsed documents before and after altering them. For more information, see [Data contracts for Lambda functions](https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html#cde-data-contracts-lambda).
 */
public data class
DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationArgs(
    public val invocationCondition: Output? =
        null,
    public val lambdaArn: Output,
    public val s3Bucket: Output,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.aws.kendra.inputs.DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationArgs =
        com.pulumi.aws.kendra.inputs.DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationArgs.builder()
            .invocationCondition(
                invocationCondition?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .lambdaArn(lambdaArn.applyValue({ args0 -> args0 }))
            .s3Bucket(s3Bucket.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationArgs].
 */
@PulumiTagMarker
public class
DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationArgsBuilder
internal constructor() {
    private var invocationCondition:
        Output? =
        null

    private var lambdaArn: Output? = null

    private var s3Bucket: Output? = null

    /**
     * @param value A block that specifies the condition used for when a Lambda function should be invoked. For example, you can specify a condition that if there are empty date-time values, then Amazon Kendra should invoke a function that inserts the current date-time. See invocation_condition.
     */
    @JvmName("cseqtgheckhnjqkx")
    public suspend fun invocationCondition(`value`: Output) {
        this.invocationCondition = value
    }

    /**
     * @param value The Amazon Resource Name (ARN) of a Lambda Function that can manipulate your document metadata fields or attributes and content.
     */
    @JvmName("uxjksellduxbqigy")
    public suspend fun lambdaArn(`value`: Output) {
        this.lambdaArn = value
    }

    /**
     * @param value Stores the original, raw documents or the structured, parsed documents before and after altering them. For more information, see [Data contracts for Lambda functions](https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html#cde-data-contracts-lambda).
     */
    @JvmName("qcictowndsrgyeij")
    public suspend fun s3Bucket(`value`: Output) {
        this.s3Bucket = value
    }

    /**
     * @param value A block that specifies the condition used for when a Lambda function should be invoked. For example, you can specify a condition that if there are empty date-time values, then Amazon Kendra should invoke a function that inserts the current date-time. See invocation_condition.
     */
    @JvmName("qwtvimteqsumruut")
    public suspend fun invocationCondition(`value`: DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationInvocationConditionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.invocationCondition = mapped
    }

    /**
     * @param argument A block that specifies the condition used for when a Lambda function should be invoked. For example, you can specify a condition that if there are empty date-time values, then Amazon Kendra should invoke a function that inserts the current date-time. See invocation_condition.
     */
    @JvmName("pilebckmbfbuxsvp")
    public suspend fun invocationCondition(argument: suspend DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationInvocationConditionArgsBuilder.() -> Unit) {
        val toBeMapped =
            DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationInvocationConditionArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.invocationCondition = mapped
    }

    /**
     * @param value The Amazon Resource Name (ARN) of a Lambda Function that can manipulate your document metadata fields or attributes and content.
     */
    @JvmName("pdxqemamufnvtvia")
    public suspend fun lambdaArn(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.lambdaArn = mapped
    }

    /**
     * @param value Stores the original, raw documents or the structured, parsed documents before and after altering them. For more information, see [Data contracts for Lambda functions](https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html#cde-data-contracts-lambda).
     */
    @JvmName("kvtimppdmnifnwsd")
    public suspend fun s3Bucket(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.s3Bucket = mapped
    }

    internal fun build(): DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationArgs =
        DataSourceCustomDocumentEnrichmentConfigurationPostExtractionHookConfigurationArgs(
            invocationCondition = invocationCondition,
            lambdaArn = lambdaArn ?: throw PulumiNullFieldException("lambdaArn"),
            s3Bucket = s3Bucket ?: throw PulumiNullFieldException("s3Bucket"),
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy