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

com.pulumi.awsnative.kendra.kotlin.inputs.DataSourceConfluenceConfigurationArgs.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.DataSourceConfluenceConfigurationArgs.builder
import com.pulumi.awsnative.kendra.kotlin.enums.DataSourceConfluenceVersion
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 attachmentConfiguration Configuration information for indexing attachments to Confluence blogs and pages.
 * @property blogConfiguration Configuration information for indexing Confluence blogs.
 * @property exclusionPatterns A list of regular expression patterns to exclude certain blog posts, pages, spaces, or attachments in your Confluence. Content that matches the patterns are excluded from the index. Content that doesn't match the patterns is included in the index. If content matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the content isn't included in the index.
 * @property inclusionPatterns A list of regular expression patterns to include certain blog posts, pages, spaces, or attachments in your Confluence. Content that matches the patterns are included in the index. Content that doesn't match the patterns is excluded from the index. If content matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the content isn't included in the index.
 * @property pageConfiguration Configuration information for indexing Confluence pages.
 * @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 Confluence instance. If you use Confluence Cloud, you use a generated API token as the password.
 * You can also provide authentication credentials in the form of a personal access token. For more information, see [Using a Confluence data source](https://docs.aws.amazon.com/kendra/latest/dg/data-source-confluence.html) .
 * @property serverUrl The URL of your Confluence instance. Use the full URL of the server. For example, *https://server.example.com:port/* . You can also use an IP address, for example, *https://192.168.1.113/* .
 * @property spaceConfiguration Configuration information for indexing Confluence spaces.
 * @property version The version or the type of Confluence installation to connect to.
 * @property vpcConfiguration Configuration information for an Amazon Virtual Private Cloud to connect to your Confluence. For more information, see [Configuring a VPC](https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html) .
 * */*/
 */
public data class DataSourceConfluenceConfigurationArgs(
    public val attachmentConfiguration: Output? =
        null,
    public val blogConfiguration: Output? = null,
    public val exclusionPatterns: Output>? = null,
    public val inclusionPatterns: Output>? = null,
    public val pageConfiguration: Output? = null,
    public val secretArn: Output,
    public val serverUrl: Output,
    public val spaceConfiguration: Output? = null,
    public val version: Output,
    public val vpcConfiguration: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.kendra.inputs.DataSourceConfluenceConfigurationArgs =
        com.pulumi.awsnative.kendra.inputs.DataSourceConfluenceConfigurationArgs.builder()
            .attachmentConfiguration(
                attachmentConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .blogConfiguration(blogConfiguration?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .exclusionPatterns(exclusionPatterns?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .inclusionPatterns(inclusionPatterns?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .pageConfiguration(pageConfiguration?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .secretArn(secretArn.applyValue({ args0 -> args0 }))
            .serverUrl(serverUrl.applyValue({ args0 -> args0 }))
            .spaceConfiguration(
                spaceConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .version(version.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .vpcConfiguration(
                vpcConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

/**
 * Builder for [DataSourceConfluenceConfigurationArgs].
 */
@PulumiTagMarker
public class DataSourceConfluenceConfigurationArgsBuilder internal constructor() {
    private var attachmentConfiguration: Output? =
        null

    private var blogConfiguration: Output? = null

    private var exclusionPatterns: Output>? = null

    private var inclusionPatterns: Output>? = null

    private var pageConfiguration: Output? = null

    private var secretArn: Output? = null

    private var serverUrl: Output? = null

    private var spaceConfiguration: Output? = null

    private var version: Output? = null

    private var vpcConfiguration: Output? = null

    /**
     * @param value Configuration information for indexing attachments to Confluence blogs and pages.
     */
    @JvmName("ensasrkqxcpmhtys")
    public suspend fun attachmentConfiguration(`value`: Output) {
        this.attachmentConfiguration = value
    }

    /**
     * @param value Configuration information for indexing Confluence blogs.
     */
    @JvmName("xdouqhfhqwccduce")
    public suspend fun blogConfiguration(`value`: Output) {
        this.blogConfiguration = value
    }

    /**
     * @param value A list of regular expression patterns to exclude certain blog posts, pages, spaces, or attachments in your Confluence. Content that matches the patterns are excluded from the index. Content that doesn't match the patterns is included in the index. If content matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the content isn't included in the index.
     */
    @JvmName("rmabiyfbcbjqclyx")
    public suspend fun exclusionPatterns(`value`: Output>) {
        this.exclusionPatterns = value
    }

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

    /**
     * @param values A list of regular expression patterns to exclude certain blog posts, pages, spaces, or attachments in your Confluence. Content that matches the patterns are excluded from the index. Content that doesn't match the patterns is included in the index. If content matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the content isn't included in the index.
     */
    @JvmName("wplaffsmgjoebyfa")
    public suspend fun exclusionPatterns(values: List>) {
        this.exclusionPatterns = Output.all(values)
    }

    /**
     * @param value A list of regular expression patterns to include certain blog posts, pages, spaces, or attachments in your Confluence. Content that matches the patterns are included in the index. Content that doesn't match the patterns is excluded from the index. If content matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the content isn't included in the index.
     */
    @JvmName("kottmwsbxoafkfob")
    public suspend fun inclusionPatterns(`value`: Output>) {
        this.inclusionPatterns = value
    }

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

    /**
     * @param values A list of regular expression patterns to include certain blog posts, pages, spaces, or attachments in your Confluence. Content that matches the patterns are included in the index. Content that doesn't match the patterns is excluded from the index. If content matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the content isn't included in the index.
     */
    @JvmName("fvkllheuxkmjaopd")
    public suspend fun inclusionPatterns(values: List>) {
        this.inclusionPatterns = Output.all(values)
    }

    /**
     * @param value Configuration information for indexing Confluence pages.
     */
    @JvmName("ntfxiyyjbnuwboby")
    public suspend fun pageConfiguration(`value`: Output) {
        this.pageConfiguration = value
    }

    /**
     * @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 Confluence instance. If you use Confluence Cloud, you use a generated API token as the password.
     * You can also provide authentication credentials in the form of a personal access token. For more information, see [Using a Confluence data source](https://docs.aws.amazon.com/kendra/latest/dg/data-source-confluence.html) .
     */
    @JvmName("ebjsitiuwbcsmjlv")
    public suspend fun secretArn(`value`: Output) {
        this.secretArn = value
    }

    /**
     * @param value The URL of your Confluence instance. Use the full URL of the server. For example, *https://server.example.com:port/* . You can also use an IP address, for example, *https://192.168.1.113/* .
     * */*/
     */
    @JvmName("mrrhiysvkokjkvuu")
    public suspend fun serverUrl(`value`: Output) {
        this.serverUrl = value
    }

    /**
     * @param value Configuration information for indexing Confluence spaces.
     */
    @JvmName("cowocfsgbvvmrugm")
    public suspend fun spaceConfiguration(`value`: Output) {
        this.spaceConfiguration = value
    }

    /**
     * @param value The version or the type of Confluence installation to connect to.
     */
    @JvmName("lurfemkcropvgnjf")
    public suspend fun version(`value`: Output) {
        this.version = value
    }

    /**
     * @param value Configuration information for an Amazon Virtual Private Cloud to connect to your Confluence. For more information, see [Configuring a VPC](https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html) .
     */
    @JvmName("rygtrvexmqdprwsb")
    public suspend fun vpcConfiguration(`value`: Output) {
        this.vpcConfiguration = value
    }

    /**
     * @param value Configuration information for indexing attachments to Confluence blogs and pages.
     */
    @JvmName("mvxayuglnhcjsbdx")
    public suspend fun attachmentConfiguration(`value`: DataSourceConfluenceAttachmentConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.attachmentConfiguration = mapped
    }

    /**
     * @param argument Configuration information for indexing attachments to Confluence blogs and pages.
     */
    @JvmName("ksitaplkqcygkjij")
    public suspend fun attachmentConfiguration(argument: suspend DataSourceConfluenceAttachmentConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = DataSourceConfluenceAttachmentConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.attachmentConfiguration = mapped
    }

    /**
     * @param value Configuration information for indexing Confluence blogs.
     */
    @JvmName("howwpdxpjknrintq")
    public suspend fun blogConfiguration(`value`: DataSourceConfluenceBlogConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.blogConfiguration = mapped
    }

    /**
     * @param argument Configuration information for indexing Confluence blogs.
     */
    @JvmName("sfotlncsolyoqrge")
    public suspend fun blogConfiguration(argument: suspend DataSourceConfluenceBlogConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = DataSourceConfluenceBlogConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.blogConfiguration = mapped
    }

    /**
     * @param value A list of regular expression patterns to exclude certain blog posts, pages, spaces, or attachments in your Confluence. Content that matches the patterns are excluded from the index. Content that doesn't match the patterns is included in the index. If content matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the content isn't included in the index.
     */
    @JvmName("ojtgdqabjehahlim")
    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 blog posts, pages, spaces, or attachments in your Confluence. Content that matches the patterns are excluded from the index. Content that doesn't match the patterns is included in the index. If content matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the content isn't included in the index.
     */
    @JvmName("ouirhrimfaxpnuos")
    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 regular expression patterns to include certain blog posts, pages, spaces, or attachments in your Confluence. Content that matches the patterns are included in the index. Content that doesn't match the patterns is excluded from the index. If content matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the content isn't included in the index.
     */
    @JvmName("wpvkecauqiiewvye")
    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 blog posts, pages, spaces, or attachments in your Confluence. Content that matches the patterns are included in the index. Content that doesn't match the patterns is excluded from the index. If content matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the content isn't included in the index.
     */
    @JvmName("mtfoeyelxxgtanyd")
    public suspend fun inclusionPatterns(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.inclusionPatterns = mapped
    }

    /**
     * @param value Configuration information for indexing Confluence pages.
     */
    @JvmName("sgrjntookhbcwcoh")
    public suspend fun pageConfiguration(`value`: DataSourceConfluencePageConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.pageConfiguration = mapped
    }

    /**
     * @param argument Configuration information for indexing Confluence pages.
     */
    @JvmName("wltosrlyabkynobr")
    public suspend fun pageConfiguration(argument: suspend DataSourceConfluencePageConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = DataSourceConfluencePageConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.pageConfiguration = 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 Confluence instance. If you use Confluence Cloud, you use a generated API token as the password.
     * You can also provide authentication credentials in the form of a personal access token. For more information, see [Using a Confluence data source](https://docs.aws.amazon.com/kendra/latest/dg/data-source-confluence.html) .
     */
    @JvmName("lkemncjblxqlnxsr")
    public suspend fun secretArn(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.secretArn = mapped
    }

    /**
     * @param value The URL of your Confluence instance. Use the full URL of the server. For example, *https://server.example.com:port/* . You can also use an IP address, for example, *https://192.168.1.113/* .
     * */*/
     */
    @JvmName("lnmievrdlyfbcrtd")
    public suspend fun serverUrl(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.serverUrl = mapped
    }

    /**
     * @param value Configuration information for indexing Confluence spaces.
     */
    @JvmName("yamaklbreuupnqsv")
    public suspend fun spaceConfiguration(`value`: DataSourceConfluenceSpaceConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.spaceConfiguration = mapped
    }

    /**
     * @param argument Configuration information for indexing Confluence spaces.
     */
    @JvmName("wlapxmprogpntgmy")
    public suspend fun spaceConfiguration(argument: suspend DataSourceConfluenceSpaceConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = DataSourceConfluenceSpaceConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.spaceConfiguration = mapped
    }

    /**
     * @param value The version or the type of Confluence installation to connect to.
     */
    @JvmName("rbnipygkebooitnd")
    public suspend fun version(`value`: DataSourceConfluenceVersion) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.version = mapped
    }

    /**
     * @param value Configuration information for an Amazon Virtual Private Cloud to connect to your Confluence. For more information, see [Configuring a VPC](https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html) .
     */
    @JvmName("vjbokqpjepikcywp")
    public suspend fun vpcConfiguration(`value`: DataSourceVpcConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vpcConfiguration = mapped
    }

    /**
     * @param argument Configuration information for an Amazon Virtual Private Cloud to connect to your Confluence. For more information, see [Configuring a VPC](https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html) .
     */
    @JvmName("jmlbonxcfusibqvc")
    public suspend fun vpcConfiguration(argument: suspend DataSourceVpcConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = DataSourceVpcConfigurationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.vpcConfiguration = mapped
    }

    internal fun build(): DataSourceConfluenceConfigurationArgs =
        DataSourceConfluenceConfigurationArgs(
            attachmentConfiguration = attachmentConfiguration,
            blogConfiguration = blogConfiguration,
            exclusionPatterns = exclusionPatterns,
            inclusionPatterns = inclusionPatterns,
            pageConfiguration = pageConfiguration,
            secretArn = secretArn ?: throw PulumiNullFieldException("secretArn"),
            serverUrl = serverUrl ?: throw PulumiNullFieldException("serverUrl"),
            spaceConfiguration = spaceConfiguration,
            version = version ?: throw PulumiNullFieldException("version"),
            vpcConfiguration = vpcConfiguration,
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy