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

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

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

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

import com.pulumi.awsnative.kendra.inputs.DataSourceSharePointConfigurationArgs.builder
import com.pulumi.awsnative.kendra.kotlin.enums.DataSourceSharePointConfigurationSharePointVersion
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.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * SharePoint configuration
 * @property crawlAttachments `TRUE` to index document attachments.
 * @property disableLocalGroups `TRUE` to disable local groups information.
 * @property documentTitleFieldName The Microsoft SharePoint attribute field that contains the title of the document.
 * @property exclusionPatterns A list of regular expression patterns. Documents that match the patterns are excluded from the index. Documents that don't match the patterns are included in the index. If a document matches both an exclusion pattern and an inclusion pattern, the document is not included in the index.
 * The regex is applied to the display URL of the SharePoint document.
 * @property fieldMappings A list of `DataSourceToIndexFieldMapping` objects that map Microsoft SharePoint attributes or fields to Amazon Kendra index fields. You must first create the index fields using the [UpdateIndex](https://docs.aws.amazon.com/kendra/latest/dg/API_UpdateIndex.html) operation before you map SharePoint attributes. For more information, see [Mapping Data Source Fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html) .
 * @property inclusionPatterns A list of regular expression patterns to include certain documents in your SharePoint. Documents that match the patterns are included in the index. Documents that don't match the patterns are excluded from the index. If a document matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the document isn't included in the index.
 * The regex applies to the display URL of the SharePoint document.
 * @property secretArn The Amazon Resource Name (ARN) of an AWS Secrets Manager secret that contains the user name and password required to connect to the SharePoint instance. For more information, see [Microsoft SharePoint](https://docs.aws.amazon.com/kendra/latest/dg/data-source-sharepoint.html) .
 * @property sharePointVersion The version of Microsoft SharePoint that you use.
 * @property sslCertificateS3Path Information required to find a specific file in an Amazon S3 bucket.
 * @property urls The Microsoft SharePoint site URLs for the documents you want to index.
 * @property useChangeLog `TRUE` to use the SharePoint change log to determine which documents require updating in the index. Depending on the change log's size, it may take longer for Amazon Kendra to use the change log than to scan all of your documents in SharePoint.
 * @property vpcConfiguration Provides information for connecting to an Amazon VPC.
 */
public data class DataSourceSharePointConfigurationArgs(
    public val crawlAttachments: Output? = null,
    public val disableLocalGroups: Output? = null,
    public val documentTitleFieldName: Output? = null,
    public val exclusionPatterns: Output>? = null,
    public val fieldMappings: Output>? = null,
    public val inclusionPatterns: Output>? = null,
    public val secretArn: Output,
    public val sharePointVersion: Output,
    public val sslCertificateS3Path: Output? = null,
    public val urls: Output>,
    public val useChangeLog: Output? = null,
    public val vpcConfiguration: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.kendra.inputs.DataSourceSharePointConfigurationArgs =
        com.pulumi.awsnative.kendra.inputs.DataSourceSharePointConfigurationArgs.builder()
            .crawlAttachments(crawlAttachments?.applyValue({ args0 -> args0 }))
            .disableLocalGroups(disableLocalGroups?.applyValue({ args0 -> args0 }))
            .documentTitleFieldName(documentTitleFieldName?.applyValue({ 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 }))
            .sharePointVersion(sharePointVersion.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .sslCertificateS3Path(
                sslCertificateS3Path?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .urls(urls.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .useChangeLog(useChangeLog?.applyValue({ args0 -> args0 }))
            .vpcConfiguration(
                vpcConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

/**
 * Builder for [DataSourceSharePointConfigurationArgs].
 */
@PulumiTagMarker
public class DataSourceSharePointConfigurationArgsBuilder internal constructor() {
    private var crawlAttachments: Output? = null

    private var disableLocalGroups: Output? = null

    private var documentTitleFieldName: Output? = null

    private var exclusionPatterns: Output>? = null

    private var fieldMappings: Output>? = null

    private var inclusionPatterns: Output>? = null

    private var secretArn: Output? = null

    private var sharePointVersion: Output? = null

    private var sslCertificateS3Path: Output? = null

    private var urls: Output>? = null

    private var useChangeLog: Output? = null

    private var vpcConfiguration: Output? = null

    /**
     * @param value `TRUE` to index document attachments.
     */
    @JvmName("obwuybvnlqrtukdf")
    public suspend fun crawlAttachments(`value`: Output) {
        this.crawlAttachments = value
    }

    /**
     * @param value `TRUE` to disable local groups information.
     */
    @JvmName("eawvdhrxwcfkgrld")
    public suspend fun disableLocalGroups(`value`: Output) {
        this.disableLocalGroups = value
    }

    /**
     * @param value The Microsoft SharePoint attribute field that contains the title of the document.
     */
    @JvmName("cjepisuufrgqyebl")
    public suspend fun documentTitleFieldName(`value`: Output) {
        this.documentTitleFieldName = value
    }

    /**
     * @param value A list of regular expression patterns. Documents that match the patterns are excluded from the index. Documents that don't match the patterns are included in the index. If a document matches both an exclusion pattern and an inclusion pattern, the document is not included in the index.
     * The regex is applied to the display URL of the SharePoint document.
     */
    @JvmName("eseaqmohabruwbvm")
    public suspend fun exclusionPatterns(`value`: Output>) {
        this.exclusionPatterns = value
    }

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

    /**
     * @param values A list of regular expression patterns. Documents that match the patterns are excluded from the index. Documents that don't match the patterns are included in the index. If a document matches both an exclusion pattern and an inclusion pattern, the document is not included in the index.
     * The regex is applied to the display URL of the SharePoint document.
     */
    @JvmName("gqqtrjqubwpyptwr")
    public suspend fun exclusionPatterns(values: List>) {
        this.exclusionPatterns = Output.all(values)
    }

    /**
     * @param value A list of `DataSourceToIndexFieldMapping` objects that map Microsoft SharePoint attributes or fields to Amazon Kendra index fields. You must first create the index fields using the [UpdateIndex](https://docs.aws.amazon.com/kendra/latest/dg/API_UpdateIndex.html) operation before you map SharePoint attributes. For more information, see [Mapping Data Source Fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html) .
     */
    @JvmName("mlotsbydgydfevck")
    public suspend fun fieldMappings(`value`: Output>) {
        this.fieldMappings = value
    }

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

    /**
     * @param values A list of `DataSourceToIndexFieldMapping` objects that map Microsoft SharePoint attributes or fields to Amazon Kendra index fields. You must first create the index fields using the [UpdateIndex](https://docs.aws.amazon.com/kendra/latest/dg/API_UpdateIndex.html) operation before you map SharePoint attributes. For more information, see [Mapping Data Source Fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html) .
     */
    @JvmName("gaidbrpywkbuvvhu")
    public suspend fun fieldMappings(values: List>) {
        this.fieldMappings = Output.all(values)
    }

    /**
     * @param value A list of regular expression patterns to include certain documents in your SharePoint. Documents that match the patterns are included in the index. Documents that don't match the patterns are excluded from the index. If a document matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the document isn't included in the index.
     * The regex applies to the display URL of the SharePoint document.
     */
    @JvmName("qlqxabptachkvvkd")
    public suspend fun inclusionPatterns(`value`: Output>) {
        this.inclusionPatterns = value
    }

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

    /**
     * @param values A list of regular expression patterns to include certain documents in your SharePoint. Documents that match the patterns are included in the index. Documents that don't match the patterns are excluded from the index. If a document matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the document isn't included in the index.
     * The regex applies to the display URL of the SharePoint document.
     */
    @JvmName("fsxlfncvatejjqwu")
    public suspend fun inclusionPatterns(values: List>) {
        this.inclusionPatterns = Output.all(values)
    }

    /**
     * @param value The Amazon Resource Name (ARN) of an AWS Secrets Manager secret that contains the user name and password required to connect to the SharePoint instance. For more information, see [Microsoft SharePoint](https://docs.aws.amazon.com/kendra/latest/dg/data-source-sharepoint.html) .
     */
    @JvmName("befwjdthhnryfxmy")
    public suspend fun secretArn(`value`: Output) {
        this.secretArn = value
    }

    /**
     * @param value The version of Microsoft SharePoint that you use.
     */
    @JvmName("gudogveqarafnhgy")
    public suspend fun sharePointVersion(`value`: Output) {
        this.sharePointVersion = value
    }

    /**
     * @param value Information required to find a specific file in an Amazon S3 bucket.
     */
    @JvmName("vhhujkeeiephcgph")
    public suspend fun sslCertificateS3Path(`value`: Output) {
        this.sslCertificateS3Path = value
    }

    /**
     * @param value The Microsoft SharePoint site URLs for the documents you want to index.
     */
    @JvmName("qbkxdfnfkspkwcfb")
    public suspend fun urls(`value`: Output>) {
        this.urls = value
    }

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

    /**
     * @param values The Microsoft SharePoint site URLs for the documents you want to index.
     */
    @JvmName("rynfvbhgbbkcimxq")
    public suspend fun urls(values: List>) {
        this.urls = Output.all(values)
    }

    /**
     * @param value `TRUE` to use the SharePoint change log to determine which documents require updating in the index. Depending on the change log's size, it may take longer for Amazon Kendra to use the change log than to scan all of your documents in SharePoint.
     */
    @JvmName("odqhhrnmbvabiiuq")
    public suspend fun useChangeLog(`value`: Output) {
        this.useChangeLog = value
    }

    /**
     * @param value Provides information for connecting to an Amazon VPC.
     */
    @JvmName("ybqcfsxturaamwgi")
    public suspend fun vpcConfiguration(`value`: Output) {
        this.vpcConfiguration = value
    }

    /**
     * @param value `TRUE` to index document attachments.
     */
    @JvmName("brqwpianfcwsigwd")
    public suspend fun crawlAttachments(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.crawlAttachments = mapped
    }

    /**
     * @param value `TRUE` to disable local groups information.
     */
    @JvmName("vkpdvmoflkqtbotc")
    public suspend fun disableLocalGroups(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.disableLocalGroups = mapped
    }

    /**
     * @param value The Microsoft SharePoint attribute field that contains the title of the document.
     */
    @JvmName("ybdylgxuuswneotd")
    public suspend fun documentTitleFieldName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.documentTitleFieldName = mapped
    }

    /**
     * @param value A list of regular expression patterns. Documents that match the patterns are excluded from the index. Documents that don't match the patterns are included in the index. If a document matches both an exclusion pattern and an inclusion pattern, the document is not included in the index.
     * The regex is applied to the display URL of the SharePoint document.
     */
    @JvmName("odwkkjwdpkdhupop")
    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. Documents that match the patterns are excluded from the index. Documents that don't match the patterns are included in the index. If a document matches both an exclusion pattern and an inclusion pattern, the document is not included in the index.
     * The regex is applied to the display URL of the SharePoint document.
     */
    @JvmName("climaawyxofnqcts")
    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 `DataSourceToIndexFieldMapping` objects that map Microsoft SharePoint attributes or fields to Amazon Kendra index fields. You must first create the index fields using the [UpdateIndex](https://docs.aws.amazon.com/kendra/latest/dg/API_UpdateIndex.html) operation before you map SharePoint attributes. For more information, see [Mapping Data Source Fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html) .
     */
    @JvmName("cesdmstycgutffvx")
    public suspend fun fieldMappings(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.fieldMappings = mapped
    }

    /**
     * @param argument A list of `DataSourceToIndexFieldMapping` objects that map Microsoft SharePoint attributes or fields to Amazon Kendra index fields. You must first create the index fields using the [UpdateIndex](https://docs.aws.amazon.com/kendra/latest/dg/API_UpdateIndex.html) operation before you map SharePoint attributes. For more information, see [Mapping Data Source Fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html) .
     */
    @JvmName("emklxhjibjukdciu")
    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 A list of `DataSourceToIndexFieldMapping` objects that map Microsoft SharePoint attributes or fields to Amazon Kendra index fields. You must first create the index fields using the [UpdateIndex](https://docs.aws.amazon.com/kendra/latest/dg/API_UpdateIndex.html) operation before you map SharePoint attributes. For more information, see [Mapping Data Source Fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html) .
     */
    @JvmName("khppihfohnfeoqyr")
    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 A list of `DataSourceToIndexFieldMapping` objects that map Microsoft SharePoint attributes or fields to Amazon Kendra index fields. You must first create the index fields using the [UpdateIndex](https://docs.aws.amazon.com/kendra/latest/dg/API_UpdateIndex.html) operation before you map SharePoint attributes. For more information, see [Mapping Data Source Fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html) .
     */
    @JvmName("gxdegnjyycbnmewl")
    public suspend fun fieldMappings(argument: suspend DataSourceToIndexFieldMappingArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            DataSourceToIndexFieldMappingArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.fieldMappings = mapped
    }

    /**
     * @param values A list of `DataSourceToIndexFieldMapping` objects that map Microsoft SharePoint attributes or fields to Amazon Kendra index fields. You must first create the index fields using the [UpdateIndex](https://docs.aws.amazon.com/kendra/latest/dg/API_UpdateIndex.html) operation before you map SharePoint attributes. For more information, see [Mapping Data Source Fields](https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html) .
     */
    @JvmName("rnivyrorcdhedtny")
    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 documents in your SharePoint. Documents that match the patterns are included in the index. Documents that don't match the patterns are excluded from the index. If a document matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the document isn't included in the index.
     * The regex applies to the display URL of the SharePoint document.
     */
    @JvmName("gglkhipvuijbowyk")
    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 documents in your SharePoint. Documents that match the patterns are included in the index. Documents that don't match the patterns are excluded from the index. If a document matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the document isn't included in the index.
     * The regex applies to the display URL of the SharePoint document.
     */
    @JvmName("whhxohsyqnbgkbfx")
    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 an AWS Secrets Manager secret that contains the user name and password required to connect to the SharePoint instance. For more information, see [Microsoft SharePoint](https://docs.aws.amazon.com/kendra/latest/dg/data-source-sharepoint.html) .
     */
    @JvmName("ahvhxwhhxkkdracf")
    public suspend fun secretArn(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.secretArn = mapped
    }

    /**
     * @param value The version of Microsoft SharePoint that you use.
     */
    @JvmName("macjoiiqbjhghscd")
    public suspend fun sharePointVersion(`value`: DataSourceSharePointConfigurationSharePointVersion) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.sharePointVersion = mapped
    }

    /**
     * @param value Information required to find a specific file in an Amazon S3 bucket.
     */
    @JvmName("ygnutnevgtxvnnfp")
    public suspend fun sslCertificateS3Path(`value`: DataSourceS3PathArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sslCertificateS3Path = mapped
    }

    /**
     * @param argument Information required to find a specific file in an Amazon S3 bucket.
     */
    @JvmName("qdwhdierknyqoxgu")
    public suspend fun sslCertificateS3Path(argument: suspend DataSourceS3PathArgsBuilder.() -> Unit) {
        val toBeMapped = DataSourceS3PathArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.sslCertificateS3Path = mapped
    }

    /**
     * @param value The Microsoft SharePoint site URLs for the documents you want to index.
     */
    @JvmName("flcclnxydibmgnsl")
    public suspend fun urls(`value`: List) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.urls = mapped
    }

    /**
     * @param values The Microsoft SharePoint site URLs for the documents you want to index.
     */
    @JvmName("qotwgmcxvgnhmpth")
    public suspend fun urls(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.urls = mapped
    }

    /**
     * @param value `TRUE` to use the SharePoint change log to determine which documents require updating in the index. Depending on the change log's size, it may take longer for Amazon Kendra to use the change log than to scan all of your documents in SharePoint.
     */
    @JvmName("mtmcypbakfndwhlm")
    public suspend fun useChangeLog(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.useChangeLog = mapped
    }

    /**
     * @param value Provides information for connecting to an Amazon VPC.
     */
    @JvmName("cjyysotrajhbfppi")
    public suspend fun vpcConfiguration(`value`: DataSourceVpcConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vpcConfiguration = mapped
    }

    /**
     * @param argument Provides information for connecting to an Amazon VPC.
     */
    @JvmName("nxuxlrmysrgiplkr")
    public suspend fun vpcConfiguration(argument: suspend DataSourceVpcConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = DataSourceVpcConfigurationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.vpcConfiguration = mapped
    }

    internal fun build(): DataSourceSharePointConfigurationArgs =
        DataSourceSharePointConfigurationArgs(
            crawlAttachments = crawlAttachments,
            disableLocalGroups = disableLocalGroups,
            documentTitleFieldName = documentTitleFieldName,
            exclusionPatterns = exclusionPatterns,
            fieldMappings = fieldMappings,
            inclusionPatterns = inclusionPatterns,
            secretArn = secretArn ?: throw PulumiNullFieldException("secretArn"),
            sharePointVersion = sharePointVersion ?: throw PulumiNullFieldException("sharePointVersion"),
            sslCertificateS3Path = sslCertificateS3Path,
            urls = urls ?: throw PulumiNullFieldException("urls"),
            useChangeLog = useChangeLog,
            vpcConfiguration = vpcConfiguration,
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy