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

com.pulumi.awsnative.qbusiness.kotlin.inputs.DataSourceHookConfigurationArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.qbusiness.kotlin.inputs

import com.pulumi.awsnative.qbusiness.inputs.DataSourceHookConfigurationArgs.builder
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.jvm.JvmName

/**
 *
 * @property invocationCondition 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 Q Business should invoke a function that inserts the current date-time.
 * @property lambdaArn The Amazon Resource Name (ARN) of a role with permission to run a Lambda function during ingestion. For more information, see [IAM roles for Custom Document Enrichment (CDE)](https://docs.aws.amazon.com/amazonq/latest/business-use-dg/iam-roles.html#cde-iam-role) .
 * @property roleArn The Amazon Resource Name (ARN) of a role with permission to run `PreExtractionHookConfiguration` and `PostExtractionHookConfiguration` for altering document metadata and content during the document ingestion process.
 * @property s3BucketName 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/amazonq/latest/business-use-dg/cde-lambda-operations.html#cde-lambda-operations-data-contracts) .
 */
public data class DataSourceHookConfigurationArgs(
    public val invocationCondition: Output? = null,
    public val lambdaArn: Output? = null,
    public val roleArn: Output? = null,
    public val s3BucketName: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.qbusiness.inputs.DataSourceHookConfigurationArgs =
        com.pulumi.awsnative.qbusiness.inputs.DataSourceHookConfigurationArgs.builder()
            .invocationCondition(
                invocationCondition?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .lambdaArn(lambdaArn?.applyValue({ args0 -> args0 }))
            .roleArn(roleArn?.applyValue({ args0 -> args0 }))
            .s3BucketName(s3BucketName?.applyValue({ args0 -> args0 })).build()
}

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

    private var lambdaArn: Output? = null

    private var roleArn: Output? = null

    private var s3BucketName: Output? = null

    /**
     * @param value 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 Q Business should invoke a function that inserts the current date-time.
     */
    @JvmName("vgvjlurwtcxrawap")
    public suspend fun invocationCondition(`value`: Output) {
        this.invocationCondition = value
    }

    /**
     * @param value The Amazon Resource Name (ARN) of a role with permission to run a Lambda function during ingestion. For more information, see [IAM roles for Custom Document Enrichment (CDE)](https://docs.aws.amazon.com/amazonq/latest/business-use-dg/iam-roles.html#cde-iam-role) .
     */
    @JvmName("uuqcifglcabfvhav")
    public suspend fun lambdaArn(`value`: Output) {
        this.lambdaArn = value
    }

    /**
     * @param value The Amazon Resource Name (ARN) of a role with permission to run `PreExtractionHookConfiguration` and `PostExtractionHookConfiguration` for altering document metadata and content during the document ingestion process.
     */
    @JvmName("iubylpukbxkcnkcj")
    public suspend fun roleArn(`value`: Output) {
        this.roleArn = 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/amazonq/latest/business-use-dg/cde-lambda-operations.html#cde-lambda-operations-data-contracts) .
     */
    @JvmName("vggwimskdrrahgwv")
    public suspend fun s3BucketName(`value`: Output) {
        this.s3BucketName = value
    }

    /**
     * @param value 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 Q Business should invoke a function that inserts the current date-time.
     */
    @JvmName("agruhrnviuyujxsh")
    public suspend fun invocationCondition(`value`: DataSourceDocumentAttributeConditionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.invocationCondition = mapped
    }

    /**
     * @param argument 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 Q Business should invoke a function that inserts the current date-time.
     */
    @JvmName("ywvnbwvjfebsyrxi")
    public suspend fun invocationCondition(argument: suspend DataSourceDocumentAttributeConditionArgsBuilder.() -> Unit) {
        val toBeMapped = DataSourceDocumentAttributeConditionArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.invocationCondition = mapped
    }

    /**
     * @param value The Amazon Resource Name (ARN) of a role with permission to run a Lambda function during ingestion. For more information, see [IAM roles for Custom Document Enrichment (CDE)](https://docs.aws.amazon.com/amazonq/latest/business-use-dg/iam-roles.html#cde-iam-role) .
     */
    @JvmName("vxciremuqgwwteer")
    public suspend fun lambdaArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.lambdaArn = mapped
    }

    /**
     * @param value The Amazon Resource Name (ARN) of a role with permission to run `PreExtractionHookConfiguration` and `PostExtractionHookConfiguration` for altering document metadata and content during the document ingestion process.
     */
    @JvmName("drwyblquprofmwgc")
    public suspend fun roleArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.roleArn = 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/amazonq/latest/business-use-dg/cde-lambda-operations.html#cde-lambda-operations-data-contracts) .
     */
    @JvmName("pvvjnlekfgawumvp")
    public suspend fun s3BucketName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.s3BucketName = mapped
    }

    internal fun build(): DataSourceHookConfigurationArgs = DataSourceHookConfigurationArgs(
        invocationCondition = invocationCondition,
        lambdaArn = lambdaArn,
        roleArn = roleArn,
        s3BucketName = s3BucketName,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy