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

com.pulumi.awsnative.kendra.kotlin.inputs.DataSourceS3DataSourceConfigurationArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.kendra.kotlin.inputs

import com.pulumi.awsnative.kendra.inputs.DataSourceS3DataSourceConfigurationArgs.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.collections.List
import kotlin.jvm.JvmName

/**
 *  /* /* /* /* /* /* /* /* /* /* /* /* /* /*
 * S3 data source configuration
 * @property accessControlListConfiguration Provides the path to the S3 bucket that contains the user context filtering files for the data source. For the format of the file, see [Access control for S3 data sources](https://docs.aws.amazon.com/kendra/latest/dg/s3-acl.html) .
 * @property bucketName The name of the bucket that contains the documents.
 * @property documentsMetadataConfiguration Specifies document metadata files that contain information such as the document access control information, source URI, document author, and custom attributes. Each metadata file contains metadata about a single document.
 * @property exclusionPatterns A list of glob patterns (patterns that can expand a wildcard pattern into a list of path names that match the given pattern) for certain file names and file types to exclude from your index. If a document matches both an inclusion and exclusion prefix or pattern, the exclusion prefix takes precendence and the document is not indexed. Examples of glob patterns include:
 * - */myapp/config/** —All files inside config directory.
 * - ***/*.png* —All .png files in all directories.
 * - ***/*.{png, ico, md}* —All .png, .ico or .md files in all directories.
 * - */myapp/src/**/*.ts* —All .ts files inside src directory (and all its subdirectories).
 * - ***/!(*.module).ts* —All .ts files but not .module.ts
 * - **.png , *.jpg* —All PNG and JPEG image files in a directory (files with the extensions .png and .jpg).
 * - **internal** —All files in a directory that contain 'internal' in the file name, such as 'internal', 'internal_only', 'company_internal'.
 * - ***/*internal** —All internal-related files in a directory and its subdirectories.
 * For more examples, see [Use of Exclude and Include Filters](https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters) in the AWS CLI Command Reference.
 * @property inclusionPatterns A list of glob patterns (patterns that can expand a wildcard pattern into a list of path names that match the given pattern) for certain file names and file types to include in your index. If a document matches both an inclusion and exclusion prefix or pattern, the exclusion prefix takes precendence and the document is not indexed. Examples of glob patterns include:
 * - */myapp/config/** —All files inside config directory.
 * - ***/*.png* —All .png files in all directories.
 * - ***/*.{png, ico, md}* —All .png, .ico or .md files in all directories.
 * - */myapp/src/**/*.ts* —All .ts files inside src directory (and all its subdirectories).
 * - ***/!(*.module).ts* —All .ts files but not .module.ts
 * - **.png , *.jpg* —All PNG and JPEG image files in a directory (files with the extensions .png and .jpg).
 * - **internal** —All files in a directory that contain 'internal' in the file name, such as 'internal', 'internal_only', 'company_internal'.
 * - ***/*internal** —All internal-related files in a directory and its subdirectories.
 * For more examples, see [Use of Exclude and Include Filters](https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters) in the AWS CLI Command Reference.
 * @property inclusionPrefixes A list of S3 prefixes for the documents that should be included in the index.
 * */*/*/*/
 */
public data class DataSourceS3DataSourceConfigurationArgs(
    public val accessControlListConfiguration: Output? =
        null,
    public val bucketName: Output,
    public val documentsMetadataConfiguration: Output? =
        null,
    public val exclusionPatterns: Output>? = null,
    public val inclusionPatterns: Output>? = null,
    public val inclusionPrefixes: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.kendra.inputs.DataSourceS3DataSourceConfigurationArgs = com.pulumi.awsnative.kendra.inputs.DataSourceS3DataSourceConfigurationArgs.builder()
        .accessControlListConfiguration(
            accessControlListConfiguration?.applyValue({ args0 ->
                args0.let({ args0 -> args0.toJava() })
            }),
        )
        .bucketName(bucketName.applyValue({ args0 -> args0 }))
        .documentsMetadataConfiguration(
            documentsMetadataConfiguration?.applyValue({ args0 ->
                args0.let({ args0 -> args0.toJava() })
            }),
        )
        .exclusionPatterns(exclusionPatterns?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
        .inclusionPatterns(inclusionPatterns?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
        .inclusionPrefixes(inclusionPrefixes?.applyValue({ args0 -> args0.map({ args0 -> args0 }) })).build()
}

/**
 * Builder for [DataSourceS3DataSourceConfigurationArgs].
 */
@PulumiTagMarker
public class DataSourceS3DataSourceConfigurationArgsBuilder internal constructor() {
    private var accessControlListConfiguration: Output? =
        null

    private var bucketName: Output? = null

    private var documentsMetadataConfiguration: Output? =
        null

    private var exclusionPatterns: Output>? = null

    private var inclusionPatterns: Output>? = null

    private var inclusionPrefixes: Output>? = null

    /**
     * @param value Provides the path to the S3 bucket that contains the user context filtering files for the data source. For the format of the file, see [Access control for S3 data sources](https://docs.aws.amazon.com/kendra/latest/dg/s3-acl.html) .
     */
    @JvmName("hlbptlqcntjplexy")
    public suspend fun accessControlListConfiguration(`value`: Output) {
        this.accessControlListConfiguration = value
    }

    /**
     * @param value The name of the bucket that contains the documents.
     */
    @JvmName("qqpngjxewdmfasvr")
    public suspend fun bucketName(`value`: Output) {
        this.bucketName = value
    }

    /**
     * @param value Specifies document metadata files that contain information such as the document access control information, source URI, document author, and custom attributes. Each metadata file contains metadata about a single document.
     */
    @JvmName("mcunkntqxcikganr")
    public suspend fun documentsMetadataConfiguration(`value`: Output) {
        this.documentsMetadataConfiguration = value
    }

    /**
     *  /* /* /* /* /* /* /*
     * @param value A list of glob patterns (patterns that can expand a wildcard pattern into a list of path names that match the given pattern) for certain file names and file types to exclude from your index. If a document matches both an inclusion and exclusion prefix or pattern, the exclusion prefix takes precendence and the document is not indexed. Examples of glob patterns include:
     * - */myapp/config/** —All files inside config directory.
     * - ***/*.png* —All .png files in all directories.
     * - ***/*.{png, ico, md}* —All .png, .ico or .md files in all directories.
     * - */myapp/src/**/*.ts* —All .ts files inside src directory (and all its subdirectories).
     * - ***/!(*.module).ts* —All .ts files but not .module.ts
     * - **.png , *.jpg* —All PNG and JPEG image files in a directory (files with the extensions .png and .jpg).
     * - **internal** —All files in a directory that contain 'internal' in the file name, such as 'internal', 'internal_only', 'company_internal'.
     * - ***/*internal** —All internal-related files in a directory and its subdirectories.
     * For more examples, see [Use of Exclude and Include Filters](https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters) in the AWS CLI Command Reference.
     * */*/
     */
    @JvmName("efcgteudsowuuoeo")
    public suspend fun exclusionPatterns(`value`: Output>) {
        this.exclusionPatterns = value
    }

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

    /**
     *  /* /* /* /* /* /* /*
     * @param values A list of glob patterns (patterns that can expand a wildcard pattern into a list of path names that match the given pattern) for certain file names and file types to exclude from your index. If a document matches both an inclusion and exclusion prefix or pattern, the exclusion prefix takes precendence and the document is not indexed. Examples of glob patterns include:
     * - */myapp/config/** —All files inside config directory.
     * - ***/*.png* —All .png files in all directories.
     * - ***/*.{png, ico, md}* —All .png, .ico or .md files in all directories.
     * - */myapp/src/**/*.ts* —All .ts files inside src directory (and all its subdirectories).
     * - ***/!(*.module).ts* —All .ts files but not .module.ts
     * - **.png , *.jpg* —All PNG and JPEG image files in a directory (files with the extensions .png and .jpg).
     * - **internal** —All files in a directory that contain 'internal' in the file name, such as 'internal', 'internal_only', 'company_internal'.
     * - ***/*internal** —All internal-related files in a directory and its subdirectories.
     * For more examples, see [Use of Exclude and Include Filters](https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters) in the AWS CLI Command Reference.
     * */*/
     */
    @JvmName("kjonfahvjvtxpuwu")
    public suspend fun exclusionPatterns(values: List>) {
        this.exclusionPatterns = Output.all(values)
    }

    /**
     *  /* /* /* /* /* /* /*
     * @param value A list of glob patterns (patterns that can expand a wildcard pattern into a list of path names that match the given pattern) for certain file names and file types to include in your index. If a document matches both an inclusion and exclusion prefix or pattern, the exclusion prefix takes precendence and the document is not indexed. Examples of glob patterns include:
     * - */myapp/config/** —All files inside config directory.
     * - ***/*.png* —All .png files in all directories.
     * - ***/*.{png, ico, md}* —All .png, .ico or .md files in all directories.
     * - */myapp/src/**/*.ts* —All .ts files inside src directory (and all its subdirectories).
     * - ***/!(*.module).ts* —All .ts files but not .module.ts
     * - **.png , *.jpg* —All PNG and JPEG image files in a directory (files with the extensions .png and .jpg).
     * - **internal** —All files in a directory that contain 'internal' in the file name, such as 'internal', 'internal_only', 'company_internal'.
     * - ***/*internal** —All internal-related files in a directory and its subdirectories.
     * For more examples, see [Use of Exclude and Include Filters](https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters) in the AWS CLI Command Reference.
     * */*/
     */
    @JvmName("gyjqwoqhgvyyjwkp")
    public suspend fun inclusionPatterns(`value`: Output>) {
        this.inclusionPatterns = value
    }

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

    /**
     *  /* /* /* /* /* /* /*
     * @param values A list of glob patterns (patterns that can expand a wildcard pattern into a list of path names that match the given pattern) for certain file names and file types to include in your index. If a document matches both an inclusion and exclusion prefix or pattern, the exclusion prefix takes precendence and the document is not indexed. Examples of glob patterns include:
     * - */myapp/config/** —All files inside config directory.
     * - ***/*.png* —All .png files in all directories.
     * - ***/*.{png, ico, md}* —All .png, .ico or .md files in all directories.
     * - */myapp/src/**/*.ts* —All .ts files inside src directory (and all its subdirectories).
     * - ***/!(*.module).ts* —All .ts files but not .module.ts
     * - **.png , *.jpg* —All PNG and JPEG image files in a directory (files with the extensions .png and .jpg).
     * - **internal** —All files in a directory that contain 'internal' in the file name, such as 'internal', 'internal_only', 'company_internal'.
     * - ***/*internal** —All internal-related files in a directory and its subdirectories.
     * For more examples, see [Use of Exclude and Include Filters](https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters) in the AWS CLI Command Reference.
     * */*/
     */
    @JvmName("rfvcjxejrdlqxpwx")
    public suspend fun inclusionPatterns(values: List>) {
        this.inclusionPatterns = Output.all(values)
    }

    /**
     * @param value A list of S3 prefixes for the documents that should be included in the index.
     */
    @JvmName("ewemxosvlbofbqgy")
    public suspend fun inclusionPrefixes(`value`: Output>) {
        this.inclusionPrefixes = value
    }

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

    /**
     * @param values A list of S3 prefixes for the documents that should be included in the index.
     */
    @JvmName("tamjkmeurdbexuqd")
    public suspend fun inclusionPrefixes(values: List>) {
        this.inclusionPrefixes = Output.all(values)
    }

    /**
     * @param value Provides the path to the S3 bucket that contains the user context filtering files for the data source. For the format of the file, see [Access control for S3 data sources](https://docs.aws.amazon.com/kendra/latest/dg/s3-acl.html) .
     */
    @JvmName("lqeemcaknudjwbcu")
    public suspend fun accessControlListConfiguration(`value`: DataSourceAccessControlListConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.accessControlListConfiguration = mapped
    }

    /**
     * @param argument Provides the path to the S3 bucket that contains the user context filtering files for the data source. For the format of the file, see [Access control for S3 data sources](https://docs.aws.amazon.com/kendra/latest/dg/s3-acl.html) .
     */
    @JvmName("ltkjgspqywpstidb")
    public suspend fun accessControlListConfiguration(argument: suspend DataSourceAccessControlListConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = DataSourceAccessControlListConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.accessControlListConfiguration = mapped
    }

    /**
     * @param value The name of the bucket that contains the documents.
     */
    @JvmName("xqckkabywltmjkjy")
    public suspend fun bucketName(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.bucketName = mapped
    }

    /**
     * @param value Specifies document metadata files that contain information such as the document access control information, source URI, document author, and custom attributes. Each metadata file contains metadata about a single document.
     */
    @JvmName("ykkeitpjfirfoaqj")
    public suspend fun documentsMetadataConfiguration(`value`: DataSourceDocumentsMetadataConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.documentsMetadataConfiguration = mapped
    }

    /**
     * @param argument Specifies document metadata files that contain information such as the document access control information, source URI, document author, and custom attributes. Each metadata file contains metadata about a single document.
     */
    @JvmName("aibtlbebdlwmrvwg")
    public suspend fun documentsMetadataConfiguration(argument: suspend DataSourceDocumentsMetadataConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = DataSourceDocumentsMetadataConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.documentsMetadataConfiguration = mapped
    }

    /**
     *  /* /* /* /* /* /* /*
     * @param value A list of glob patterns (patterns that can expand a wildcard pattern into a list of path names that match the given pattern) for certain file names and file types to exclude from your index. If a document matches both an inclusion and exclusion prefix or pattern, the exclusion prefix takes precendence and the document is not indexed. Examples of glob patterns include:
     * - */myapp/config/** —All files inside config directory.
     * - ***/*.png* —All .png files in all directories.
     * - ***/*.{png, ico, md}* —All .png, .ico or .md files in all directories.
     * - */myapp/src/**/*.ts* —All .ts files inside src directory (and all its subdirectories).
     * - ***/!(*.module).ts* —All .ts files but not .module.ts
     * - **.png , *.jpg* —All PNG and JPEG image files in a directory (files with the extensions .png and .jpg).
     * - **internal** —All files in a directory that contain 'internal' in the file name, such as 'internal', 'internal_only', 'company_internal'.
     * - ***/*internal** —All internal-related files in a directory and its subdirectories.
     * For more examples, see [Use of Exclude and Include Filters](https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters) in the AWS CLI Command Reference.
     * */*/
     */
    @JvmName("uyhyirwodvrcfukh")
    public suspend fun exclusionPatterns(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.exclusionPatterns = mapped
    }

    /**
     *  /* /* /* /* /* /* /*
     * @param values A list of glob patterns (patterns that can expand a wildcard pattern into a list of path names that match the given pattern) for certain file names and file types to exclude from your index. If a document matches both an inclusion and exclusion prefix or pattern, the exclusion prefix takes precendence and the document is not indexed. Examples of glob patterns include:
     * - */myapp/config/** —All files inside config directory.
     * - ***/*.png* —All .png files in all directories.
     * - ***/*.{png, ico, md}* —All .png, .ico or .md files in all directories.
     * - */myapp/src/**/*.ts* —All .ts files inside src directory (and all its subdirectories).
     * - ***/!(*.module).ts* —All .ts files but not .module.ts
     * - **.png , *.jpg* —All PNG and JPEG image files in a directory (files with the extensions .png and .jpg).
     * - **internal** —All files in a directory that contain 'internal' in the file name, such as 'internal', 'internal_only', 'company_internal'.
     * - ***/*internal** —All internal-related files in a directory and its subdirectories.
     * For more examples, see [Use of Exclude and Include Filters](https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters) in the AWS CLI Command Reference.
     * */*/
     */
    @JvmName("jthhtcjwooedfrop")
    public suspend fun exclusionPatterns(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.exclusionPatterns = mapped
    }

    /**
     *  /* /* /* /* /* /* /*
     * @param value A list of glob patterns (patterns that can expand a wildcard pattern into a list of path names that match the given pattern) for certain file names and file types to include in your index. If a document matches both an inclusion and exclusion prefix or pattern, the exclusion prefix takes precendence and the document is not indexed. Examples of glob patterns include:
     * - */myapp/config/** —All files inside config directory.
     * - ***/*.png* —All .png files in all directories.
     * - ***/*.{png, ico, md}* —All .png, .ico or .md files in all directories.
     * - */myapp/src/**/*.ts* —All .ts files inside src directory (and all its subdirectories).
     * - ***/!(*.module).ts* —All .ts files but not .module.ts
     * - **.png , *.jpg* —All PNG and JPEG image files in a directory (files with the extensions .png and .jpg).
     * - **internal** —All files in a directory that contain 'internal' in the file name, such as 'internal', 'internal_only', 'company_internal'.
     * - ***/*internal** —All internal-related files in a directory and its subdirectories.
     * For more examples, see [Use of Exclude and Include Filters](https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters) in the AWS CLI Command Reference.
     * */*/
     */
    @JvmName("bygsljpvgfbiptmq")
    public suspend fun inclusionPatterns(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.inclusionPatterns = mapped
    }

    /**
     *  /* /* /* /* /* /* /*
     * @param values A list of glob patterns (patterns that can expand a wildcard pattern into a list of path names that match the given pattern) for certain file names and file types to include in your index. If a document matches both an inclusion and exclusion prefix or pattern, the exclusion prefix takes precendence and the document is not indexed. Examples of glob patterns include:
     * - */myapp/config/** —All files inside config directory.
     * - ***/*.png* —All .png files in all directories.
     * - ***/*.{png, ico, md}* —All .png, .ico or .md files in all directories.
     * - */myapp/src/**/*.ts* —All .ts files inside src directory (and all its subdirectories).
     * - ***/!(*.module).ts* —All .ts files but not .module.ts
     * - **.png , *.jpg* —All PNG and JPEG image files in a directory (files with the extensions .png and .jpg).
     * - **internal** —All files in a directory that contain 'internal' in the file name, such as 'internal', 'internal_only', 'company_internal'.
     * - ***/*internal** —All internal-related files in a directory and its subdirectories.
     * For more examples, see [Use of Exclude and Include Filters](https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters) in the AWS CLI Command Reference.
     * */*/
     */
    @JvmName("jrpioquqnyeiekol")
    public suspend fun inclusionPatterns(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.inclusionPatterns = mapped
    }

    /**
     * @param value A list of S3 prefixes for the documents that should be included in the index.
     */
    @JvmName("uvuclteqjhbkqrle")
    public suspend fun inclusionPrefixes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.inclusionPrefixes = mapped
    }

    /**
     * @param values A list of S3 prefixes for the documents that should be included in the index.
     */
    @JvmName("wykrmnqduiqlqveh")
    public suspend fun inclusionPrefixes(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.inclusionPrefixes = mapped
    }

    internal fun build(): DataSourceS3DataSourceConfigurationArgs =
        DataSourceS3DataSourceConfigurationArgs(
            accessControlListConfiguration = accessControlListConfiguration,
            bucketName = bucketName ?: throw PulumiNullFieldException("bucketName"),
            documentsMetadataConfiguration = documentsMetadataConfiguration,
            exclusionPatterns = exclusionPatterns,
            inclusionPatterns = inclusionPatterns,
            inclusionPrefixes = inclusionPrefixes,
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy