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

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

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 1.24.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

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

import com.pulumi.awsnative.kendra.inputs.DataSourceGoogleDriveConfigurationArgs.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

/**
 *
 * @property excludeMimeTypes A list of MIME types to exclude from the index. All documents matching the specified MIME type are excluded.
 * For a list of MIME types, see [Using a Google Workspace Drive data source](https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html) .
 * @property excludeSharedDrives A list of identifiers or shared drives to exclude from the index. All files and folders stored on the shared drive are excluded.
 * @property excludeUserAccounts A list of email addresses of the users. Documents owned by these users are excluded from the index. Documents shared with excluded users are indexed unless they are excluded in another way.
 * @property exclusionPatterns A list of regular expression patterns to exclude certain items in your Google Drive, including shared drives and users' My Drives. Items that match the patterns are excluded from the index. Items that don't match the patterns are included in the index. If an item matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the item isn't included in the index.
 * @property fieldMappings Maps Google Drive data source attributes or field names to Amazon Kendra index field names. To create custom fields, use the `UpdateIndex` API before you map to Google Drive fields. For more information, see [Mapping data source fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html) . The Google Drive data source field names must exist in your Google Drive custom metadata.
 * @property inclusionPatterns A list of regular expression patterns to include certain items in your Google Drive, including shared drives and users' My Drives. Items that match the patterns are included in the index. Items that don't match the patterns are excluded from the index. If an item matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the item isn't included in the index.
 * @property secretArn The Amazon Resource Name (ARN) of a AWS Secrets Manager secret that contains the credentials required to connect to Google Drive. For more information, see [Using a Google Workspace Drive data source](https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html) .
 */
public data class DataSourceGoogleDriveConfigurationArgs(
    public val excludeMimeTypes: Output>? = null,
    public val excludeSharedDrives: Output>? = null,
    public val excludeUserAccounts: Output>? = null,
    public val exclusionPatterns: Output>? = null,
    public val fieldMappings: Output>? = null,
    public val inclusionPatterns: Output>? = null,
    public val secretArn: Output,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.kendra.inputs.DataSourceGoogleDriveConfigurationArgs =
        com.pulumi.awsnative.kendra.inputs.DataSourceGoogleDriveConfigurationArgs.builder()
            .excludeMimeTypes(excludeMimeTypes?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .excludeSharedDrives(excludeSharedDrives?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .excludeUserAccounts(excludeUserAccounts?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .exclusionPatterns(exclusionPatterns?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .fieldMappings(
                fieldMappings?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .inclusionPatterns(inclusionPatterns?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .secretArn(secretArn.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [DataSourceGoogleDriveConfigurationArgs].
 */
@PulumiTagMarker
public class DataSourceGoogleDriveConfigurationArgsBuilder internal constructor() {
    private var excludeMimeTypes: Output>? = null

    private var excludeSharedDrives: Output>? = null

    private var excludeUserAccounts: Output>? = null

    private var exclusionPatterns: Output>? = null

    private var fieldMappings: Output>? = null

    private var inclusionPatterns: Output>? = null

    private var secretArn: Output? = null

    /**
     * @param value A list of MIME types to exclude from the index. All documents matching the specified MIME type are excluded.
     * For a list of MIME types, see [Using a Google Workspace Drive data source](https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html) .
     */
    @JvmName("aqhquyqpudbbhqvb")
    public suspend fun excludeMimeTypes(`value`: Output>) {
        this.excludeMimeTypes = value
    }

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

    /**
     * @param values A list of MIME types to exclude from the index. All documents matching the specified MIME type are excluded.
     * For a list of MIME types, see [Using a Google Workspace Drive data source](https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html) .
     */
    @JvmName("vwxewxxiapnpkynd")
    public suspend fun excludeMimeTypes(values: List>) {
        this.excludeMimeTypes = Output.all(values)
    }

    /**
     * @param value A list of identifiers or shared drives to exclude from the index. All files and folders stored on the shared drive are excluded.
     */
    @JvmName("xfbdvrgnpgjwurpq")
    public suspend fun excludeSharedDrives(`value`: Output>) {
        this.excludeSharedDrives = value
    }

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

    /**
     * @param values A list of identifiers or shared drives to exclude from the index. All files and folders stored on the shared drive are excluded.
     */
    @JvmName("aauoofcybqefhwav")
    public suspend fun excludeSharedDrives(values: List>) {
        this.excludeSharedDrives = Output.all(values)
    }

    /**
     * @param value A list of email addresses of the users. Documents owned by these users are excluded from the index. Documents shared with excluded users are indexed unless they are excluded in another way.
     */
    @JvmName("afmowowkfvcmwifk")
    public suspend fun excludeUserAccounts(`value`: Output>) {
        this.excludeUserAccounts = value
    }

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

    /**
     * @param values A list of email addresses of the users. Documents owned by these users are excluded from the index. Documents shared with excluded users are indexed unless they are excluded in another way.
     */
    @JvmName("wkgdsxaowqhukmsl")
    public suspend fun excludeUserAccounts(values: List>) {
        this.excludeUserAccounts = Output.all(values)
    }

    /**
     * @param value A list of regular expression patterns to exclude certain items in your Google Drive, including shared drives and users' My Drives. Items that match the patterns are excluded from the index. Items that don't match the patterns are included in the index. If an item matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the item isn't included in the index.
     */
    @JvmName("ujnhmdotfythvbpl")
    public suspend fun exclusionPatterns(`value`: Output>) {
        this.exclusionPatterns = value
    }

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

    /**
     * @param values A list of regular expression patterns to exclude certain items in your Google Drive, including shared drives and users' My Drives. Items that match the patterns are excluded from the index. Items that don't match the patterns are included in the index. If an item matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the item isn't included in the index.
     */
    @JvmName("tqoqjieaffqvcann")
    public suspend fun exclusionPatterns(values: List>) {
        this.exclusionPatterns = Output.all(values)
    }

    /**
     * @param value Maps Google Drive data source attributes or field names to Amazon Kendra index field names. To create custom fields, use the `UpdateIndex` API before you map to Google Drive fields. For more information, see [Mapping data source fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html) . The Google Drive data source field names must exist in your Google Drive custom metadata.
     */
    @JvmName("awqcavtcuaggkeds")
    public suspend fun fieldMappings(`value`: Output>) {
        this.fieldMappings = value
    }

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

    /**
     * @param values Maps Google Drive data source attributes or field names to Amazon Kendra index field names. To create custom fields, use the `UpdateIndex` API before you map to Google Drive fields. For more information, see [Mapping data source fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html) . The Google Drive data source field names must exist in your Google Drive custom metadata.
     */
    @JvmName("wcfbhogoucsrrvpb")
    public suspend fun fieldMappings(values: List>) {
        this.fieldMappings = Output.all(values)
    }

    /**
     * @param value A list of regular expression patterns to include certain items in your Google Drive, including shared drives and users' My Drives. Items that match the patterns are included in the index. Items that don't match the patterns are excluded from the index. If an item matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the item isn't included in the index.
     */
    @JvmName("itxkqwbamxijmiax")
    public suspend fun inclusionPatterns(`value`: Output>) {
        this.inclusionPatterns = value
    }

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

    /**
     * @param values A list of regular expression patterns to include certain items in your Google Drive, including shared drives and users' My Drives. Items that match the patterns are included in the index. Items that don't match the patterns are excluded from the index. If an item matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the item isn't included in the index.
     */
    @JvmName("ckhcbefrdfncjnft")
    public suspend fun inclusionPatterns(values: List>) {
        this.inclusionPatterns = Output.all(values)
    }

    /**
     * @param value The Amazon Resource Name (ARN) of a AWS Secrets Manager secret that contains the credentials required to connect to Google Drive. For more information, see [Using a Google Workspace Drive data source](https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html) .
     */
    @JvmName("vuiktxvhnxhvfsrd")
    public suspend fun secretArn(`value`: Output) {
        this.secretArn = value
    }

    /**
     * @param value A list of MIME types to exclude from the index. All documents matching the specified MIME type are excluded.
     * For a list of MIME types, see [Using a Google Workspace Drive data source](https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html) .
     */
    @JvmName("lmrsmtxlxrjdxlmb")
    public suspend fun excludeMimeTypes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.excludeMimeTypes = mapped
    }

    /**
     * @param values A list of MIME types to exclude from the index. All documents matching the specified MIME type are excluded.
     * For a list of MIME types, see [Using a Google Workspace Drive data source](https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html) .
     */
    @JvmName("blblfqjqkrceshxx")
    public suspend fun excludeMimeTypes(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.excludeMimeTypes = mapped
    }

    /**
     * @param value A list of identifiers or shared drives to exclude from the index. All files and folders stored on the shared drive are excluded.
     */
    @JvmName("rvkfqkcysmxomfob")
    public suspend fun excludeSharedDrives(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.excludeSharedDrives = mapped
    }

    /**
     * @param values A list of identifiers or shared drives to exclude from the index. All files and folders stored on the shared drive are excluded.
     */
    @JvmName("hbmghtxciislvexj")
    public suspend fun excludeSharedDrives(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.excludeSharedDrives = mapped
    }

    /**
     * @param value A list of email addresses of the users. Documents owned by these users are excluded from the index. Documents shared with excluded users are indexed unless they are excluded in another way.
     */
    @JvmName("lkhqxxewyypnblwc")
    public suspend fun excludeUserAccounts(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.excludeUserAccounts = mapped
    }

    /**
     * @param values A list of email addresses of the users. Documents owned by these users are excluded from the index. Documents shared with excluded users are indexed unless they are excluded in another way.
     */
    @JvmName("biqrkwpwduiitiyx")
    public suspend fun excludeUserAccounts(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.excludeUserAccounts = mapped
    }

    /**
     * @param value A list of regular expression patterns to exclude certain items in your Google Drive, including shared drives and users' My Drives. Items that match the patterns are excluded from the index. Items that don't match the patterns are included in the index. If an item matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the item isn't included in the index.
     */
    @JvmName("kukvkdnetkmmixwu")
    public suspend fun exclusionPatterns(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.exclusionPatterns = mapped
    }

    /**
     * @param values A list of regular expression patterns to exclude certain items in your Google Drive, including shared drives and users' My Drives. Items that match the patterns are excluded from the index. Items that don't match the patterns are included in the index. If an item matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the item isn't included in the index.
     */
    @JvmName("aotprbhvswqeslnw")
    public suspend fun exclusionPatterns(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.exclusionPatterns = mapped
    }

    /**
     * @param value Maps Google Drive data source attributes or field names to Amazon Kendra index field names. To create custom fields, use the `UpdateIndex` API before you map to Google Drive fields. For more information, see [Mapping data source fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html) . The Google Drive data source field names must exist in your Google Drive custom metadata.
     */
    @JvmName("dxwnlbegjoebjuiw")
    public suspend fun fieldMappings(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.fieldMappings = mapped
    }

    /**
     * @param argument Maps Google Drive data source attributes or field names to Amazon Kendra index field names. To create custom fields, use the `UpdateIndex` API before you map to Google Drive fields. For more information, see [Mapping data source fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html) . The Google Drive data source field names must exist in your Google Drive custom metadata.
     */
    @JvmName("fyhcjmumorcgpnrf")
    public suspend fun fieldMappings(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            DataSourceToIndexFieldMappingArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.fieldMappings = mapped
    }

    /**
     * @param argument Maps Google Drive data source attributes or field names to Amazon Kendra index field names. To create custom fields, use the `UpdateIndex` API before you map to Google Drive fields. For more information, see [Mapping data source fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html) . The Google Drive data source field names must exist in your Google Drive custom metadata.
     */
    @JvmName("oyuwnubchtqkylay")
    public suspend fun fieldMappings(vararg argument: suspend DataSourceToIndexFieldMappingArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            DataSourceToIndexFieldMappingArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.fieldMappings = mapped
    }

    /**
     * @param argument Maps Google Drive data source attributes or field names to Amazon Kendra index field names. To create custom fields, use the `UpdateIndex` API before you map to Google Drive fields. For more information, see [Mapping data source fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html) . The Google Drive data source field names must exist in your Google Drive custom metadata.
     */
    @JvmName("wbpnpvadoiwlkjbx")
    public suspend fun fieldMappings(argument: suspend DataSourceToIndexFieldMappingArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            DataSourceToIndexFieldMappingArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.fieldMappings = mapped
    }

    /**
     * @param values Maps Google Drive data source attributes or field names to Amazon Kendra index field names. To create custom fields, use the `UpdateIndex` API before you map to Google Drive fields. For more information, see [Mapping data source fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html) . The Google Drive data source field names must exist in your Google Drive custom metadata.
     */
    @JvmName("ckuxduopjmhruihc")
    public suspend fun fieldMappings(vararg values: DataSourceToIndexFieldMappingArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.fieldMappings = mapped
    }

    /**
     * @param value A list of regular expression patterns to include certain items in your Google Drive, including shared drives and users' My Drives. Items that match the patterns are included in the index. Items that don't match the patterns are excluded from the index. If an item matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the item isn't included in the index.
     */
    @JvmName("quxwsuwmtgwofdlb")
    public suspend fun inclusionPatterns(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.inclusionPatterns = mapped
    }

    /**
     * @param values A list of regular expression patterns to include certain items in your Google Drive, including shared drives and users' My Drives. Items that match the patterns are included in the index. Items that don't match the patterns are excluded from the index. If an item matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the item isn't included in the index.
     */
    @JvmName("yyvgcxbrrucjyief")
    public suspend fun inclusionPatterns(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.inclusionPatterns = mapped
    }

    /**
     * @param value The Amazon Resource Name (ARN) of a AWS Secrets Manager secret that contains the credentials required to connect to Google Drive. For more information, see [Using a Google Workspace Drive data source](https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html) .
     */
    @JvmName("cxwefgfeclsvxgps")
    public suspend fun secretArn(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.secretArn = mapped
    }

    internal fun build(): DataSourceGoogleDriveConfigurationArgs =
        DataSourceGoogleDriveConfigurationArgs(
            excludeMimeTypes = excludeMimeTypes,
            excludeSharedDrives = excludeSharedDrives,
            excludeUserAccounts = excludeUserAccounts,
            exclusionPatterns = exclusionPatterns,
            fieldMappings = fieldMappings,
            inclusionPatterns = inclusionPatterns,
            secretArn = secretArn ?: throw PulumiNullFieldException("secretArn"),
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy