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

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

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

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

import com.pulumi.awsnative.kendra.inputs.DataSourceWebCrawlerConfigurationArgs.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.Double
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property authenticationConfiguration Configuration information required to connect to websites using authentication.
 * You can connect to websites using basic authentication of user name and password. You use a secret in [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) to store your authentication credentials.
 * You must provide the website host name and port number. For example, the host name of https://a.example.com/page1.html is "a.example.com" and the port is 443, the standard port for HTTPS.
 * @property crawlDepth The 'depth' or number of levels from the seed level to crawl. For example, the seed URL page is depth 1 and any hyperlinks on this page that are also crawled are depth 2.
 * @property maxContentSizePerPageInMegaBytes The maximum size (in MB) of a web page or attachment to crawl.
 * Files larger than this size (in MB) are skipped/not crawled.
 * The default maximum size of a web page or attachment is set to 50 MB.
 * @property maxLinksPerPage The maximum number of URLs on a web page to include when crawling a website. This number is per web page.
 * As a website’s web pages are crawled, any URLs the web pages link to are also crawled. URLs on a web page are crawled in order of appearance.
 * The default maximum links per page is 100.
 * @property maxUrlsPerMinuteCrawlRate The maximum number of URLs crawled per website host per minute.
 * A minimum of one URL is required.
 * The default maximum number of URLs crawled per website host per minute is 300.
 * @property proxyConfiguration Configuration information required to connect to your internal websites via a web proxy.
 * You must provide the website host name and port number. For example, the host name of https://a.example.com/page1.html is "a.example.com" and the port is 443, the standard port for HTTPS.
 * Web proxy credentials are optional and you can use them to connect to a web proxy server that requires basic authentication. To store web proxy credentials, you use a secret in [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) .
 * @property urlExclusionPatterns A list of regular expression patterns to exclude certain URLs to crawl. URLs that match the patterns are excluded from the index. URLs that don't match the patterns are included in the index. If a URL matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the URL file isn't included in the index.
 * @property urlInclusionPatterns A list of regular expression patterns to include certain URLs to crawl. URLs that match the patterns are included in the index. URLs that don't match the patterns are excluded from the index. If a URL matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the URL file isn't included in the index.
 * @property urls Specifies the seed or starting point URLs of the websites or the sitemap URLs of the websites you want to crawl.
 * You can include website subdomains. You can list up to 100 seed URLs and up to three sitemap URLs.
 * You can only crawl websites that use the secure communication protocol, Hypertext Transfer Protocol Secure (HTTPS). If you receive an error when crawling a website, it could be that the website is blocked from crawling.
 * *When selecting websites to index, you must adhere to the [Amazon Acceptable Use Policy](https://docs.aws.amazon.com/aup/) and all other Amazon terms. Remember that you must only use Amazon Kendra Web Crawler to index your own webpages, or webpages that you have authorization to index.*
 */
public data class DataSourceWebCrawlerConfigurationArgs(
    public val authenticationConfiguration: Output? = null,
    public val crawlDepth: Output? = null,
    public val maxContentSizePerPageInMegaBytes: Output? = null,
    public val maxLinksPerPage: Output? = null,
    public val maxUrlsPerMinuteCrawlRate: Output? = null,
    public val proxyConfiguration: Output? = null,
    public val urlExclusionPatterns: Output>? = null,
    public val urlInclusionPatterns: Output>? = null,
    public val urls: Output,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.kendra.inputs.DataSourceWebCrawlerConfigurationArgs =
        com.pulumi.awsnative.kendra.inputs.DataSourceWebCrawlerConfigurationArgs.builder()
            .authenticationConfiguration(
                authenticationConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .crawlDepth(crawlDepth?.applyValue({ args0 -> args0 }))
            .maxContentSizePerPageInMegaBytes(maxContentSizePerPageInMegaBytes?.applyValue({ args0 -> args0 }))
            .maxLinksPerPage(maxLinksPerPage?.applyValue({ args0 -> args0 }))
            .maxUrlsPerMinuteCrawlRate(maxUrlsPerMinuteCrawlRate?.applyValue({ args0 -> args0 }))
            .proxyConfiguration(
                proxyConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .urlExclusionPatterns(urlExclusionPatterns?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .urlInclusionPatterns(urlInclusionPatterns?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .urls(urls.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

/**
 * Builder for [DataSourceWebCrawlerConfigurationArgs].
 */
@PulumiTagMarker
public class DataSourceWebCrawlerConfigurationArgsBuilder internal constructor() {
    private var authenticationConfiguration:
        Output? = null

    private var crawlDepth: Output? = null

    private var maxContentSizePerPageInMegaBytes: Output? = null

    private var maxLinksPerPage: Output? = null

    private var maxUrlsPerMinuteCrawlRate: Output? = null

    private var proxyConfiguration: Output? = null

    private var urlExclusionPatterns: Output>? = null

    private var urlInclusionPatterns: Output>? = null

    private var urls: Output? = null

    /**
     * @param value Configuration information required to connect to websites using authentication.
     * You can connect to websites using basic authentication of user name and password. You use a secret in [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) to store your authentication credentials.
     * You must provide the website host name and port number. For example, the host name of https://a.example.com/page1.html is "a.example.com" and the port is 443, the standard port for HTTPS.
     */
    @JvmName("rxtfrvbxmvbedibg")
    public suspend fun authenticationConfiguration(`value`: Output) {
        this.authenticationConfiguration = value
    }

    /**
     * @param value The 'depth' or number of levels from the seed level to crawl. For example, the seed URL page is depth 1 and any hyperlinks on this page that are also crawled are depth 2.
     */
    @JvmName("nhhwwwrrsxlotijs")
    public suspend fun crawlDepth(`value`: Output) {
        this.crawlDepth = value
    }

    /**
     * @param value The maximum size (in MB) of a web page or attachment to crawl.
     * Files larger than this size (in MB) are skipped/not crawled.
     * The default maximum size of a web page or attachment is set to 50 MB.
     */
    @JvmName("ywdoinqyqasrgrfb")
    public suspend fun maxContentSizePerPageInMegaBytes(`value`: Output) {
        this.maxContentSizePerPageInMegaBytes = value
    }

    /**
     * @param value The maximum number of URLs on a web page to include when crawling a website. This number is per web page.
     * As a website’s web pages are crawled, any URLs the web pages link to are also crawled. URLs on a web page are crawled in order of appearance.
     * The default maximum links per page is 100.
     */
    @JvmName("jbwyajwpxwrkvdbh")
    public suspend fun maxLinksPerPage(`value`: Output) {
        this.maxLinksPerPage = value
    }

    /**
     * @param value The maximum number of URLs crawled per website host per minute.
     * A minimum of one URL is required.
     * The default maximum number of URLs crawled per website host per minute is 300.
     */
    @JvmName("viymjtaibffinjwe")
    public suspend fun maxUrlsPerMinuteCrawlRate(`value`: Output) {
        this.maxUrlsPerMinuteCrawlRate = value
    }

    /**
     * @param value Configuration information required to connect to your internal websites via a web proxy.
     * You must provide the website host name and port number. For example, the host name of https://a.example.com/page1.html is "a.example.com" and the port is 443, the standard port for HTTPS.
     * Web proxy credentials are optional and you can use them to connect to a web proxy server that requires basic authentication. To store web proxy credentials, you use a secret in [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) .
     */
    @JvmName("rvqoxiruosufqaru")
    public suspend fun proxyConfiguration(`value`: Output) {
        this.proxyConfiguration = value
    }

    /**
     * @param value A list of regular expression patterns to exclude certain URLs to crawl. URLs that match the patterns are excluded from the index. URLs that don't match the patterns are included in the index. If a URL matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the URL file isn't included in the index.
     */
    @JvmName("qxdbhxdwtjqjdpsh")
    public suspend fun urlExclusionPatterns(`value`: Output>) {
        this.urlExclusionPatterns = value
    }

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

    /**
     * @param values A list of regular expression patterns to exclude certain URLs to crawl. URLs that match the patterns are excluded from the index. URLs that don't match the patterns are included in the index. If a URL matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the URL file isn't included in the index.
     */
    @JvmName("hvpxkqnbvonbpdga")
    public suspend fun urlExclusionPatterns(values: List>) {
        this.urlExclusionPatterns = Output.all(values)
    }

    /**
     * @param value A list of regular expression patterns to include certain URLs to crawl. URLs that match the patterns are included in the index. URLs that don't match the patterns are excluded from the index. If a URL matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the URL file isn't included in the index.
     */
    @JvmName("ohowqjkojgwhlxjl")
    public suspend fun urlInclusionPatterns(`value`: Output>) {
        this.urlInclusionPatterns = value
    }

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

    /**
     * @param values A list of regular expression patterns to include certain URLs to crawl. URLs that match the patterns are included in the index. URLs that don't match the patterns are excluded from the index. If a URL matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the URL file isn't included in the index.
     */
    @JvmName("jxupwofpaymtkbtj")
    public suspend fun urlInclusionPatterns(values: List>) {
        this.urlInclusionPatterns = Output.all(values)
    }

    /**
     * @param value Specifies the seed or starting point URLs of the websites or the sitemap URLs of the websites you want to crawl.
     * You can include website subdomains. You can list up to 100 seed URLs and up to three sitemap URLs.
     * You can only crawl websites that use the secure communication protocol, Hypertext Transfer Protocol Secure (HTTPS). If you receive an error when crawling a website, it could be that the website is blocked from crawling.
     * *When selecting websites to index, you must adhere to the [Amazon Acceptable Use Policy](https://docs.aws.amazon.com/aup/) and all other Amazon terms. Remember that you must only use Amazon Kendra Web Crawler to index your own webpages, or webpages that you have authorization to index.*
     */
    @JvmName("brihkydnryogvkwr")
    public suspend fun urls(`value`: Output) {
        this.urls = value
    }

    /**
     * @param value Configuration information required to connect to websites using authentication.
     * You can connect to websites using basic authentication of user name and password. You use a secret in [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) to store your authentication credentials.
     * You must provide the website host name and port number. For example, the host name of https://a.example.com/page1.html is "a.example.com" and the port is 443, the standard port for HTTPS.
     */
    @JvmName("nxqhwfvbwcbmhdph")
    public suspend fun authenticationConfiguration(`value`: DataSourceWebCrawlerAuthenticationConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authenticationConfiguration = mapped
    }

    /**
     * @param argument Configuration information required to connect to websites using authentication.
     * You can connect to websites using basic authentication of user name and password. You use a secret in [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) to store your authentication credentials.
     * You must provide the website host name and port number. For example, the host name of https://a.example.com/page1.html is "a.example.com" and the port is 443, the standard port for HTTPS.
     */
    @JvmName("xwdxrsqhaeffjbru")
    public suspend fun authenticationConfiguration(argument: suspend DataSourceWebCrawlerAuthenticationConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = DataSourceWebCrawlerAuthenticationConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.authenticationConfiguration = mapped
    }

    /**
     * @param value The 'depth' or number of levels from the seed level to crawl. For example, the seed URL page is depth 1 and any hyperlinks on this page that are also crawled are depth 2.
     */
    @JvmName("nbtwxjulvskrkjpk")
    public suspend fun crawlDepth(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.crawlDepth = mapped
    }

    /**
     * @param value The maximum size (in MB) of a web page or attachment to crawl.
     * Files larger than this size (in MB) are skipped/not crawled.
     * The default maximum size of a web page or attachment is set to 50 MB.
     */
    @JvmName("ojcyktadcugvdmsq")
    public suspend fun maxContentSizePerPageInMegaBytes(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxContentSizePerPageInMegaBytes = mapped
    }

    /**
     * @param value The maximum number of URLs on a web page to include when crawling a website. This number is per web page.
     * As a website’s web pages are crawled, any URLs the web pages link to are also crawled. URLs on a web page are crawled in order of appearance.
     * The default maximum links per page is 100.
     */
    @JvmName("kgtrhtkcvcngioki")
    public suspend fun maxLinksPerPage(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxLinksPerPage = mapped
    }

    /**
     * @param value The maximum number of URLs crawled per website host per minute.
     * A minimum of one URL is required.
     * The default maximum number of URLs crawled per website host per minute is 300.
     */
    @JvmName("pxcnmcepcxoodtga")
    public suspend fun maxUrlsPerMinuteCrawlRate(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxUrlsPerMinuteCrawlRate = mapped
    }

    /**
     * @param value Configuration information required to connect to your internal websites via a web proxy.
     * You must provide the website host name and port number. For example, the host name of https://a.example.com/page1.html is "a.example.com" and the port is 443, the standard port for HTTPS.
     * Web proxy credentials are optional and you can use them to connect to a web proxy server that requires basic authentication. To store web proxy credentials, you use a secret in [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) .
     */
    @JvmName("hxlfqasotnvdgtdl")
    public suspend fun proxyConfiguration(`value`: DataSourceProxyConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.proxyConfiguration = mapped
    }

    /**
     * @param argument Configuration information required to connect to your internal websites via a web proxy.
     * You must provide the website host name and port number. For example, the host name of https://a.example.com/page1.html is "a.example.com" and the port is 443, the standard port for HTTPS.
     * Web proxy credentials are optional and you can use them to connect to a web proxy server that requires basic authentication. To store web proxy credentials, you use a secret in [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) .
     */
    @JvmName("wwwgwhwlctuvhvfp")
    public suspend fun proxyConfiguration(argument: suspend DataSourceProxyConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = DataSourceProxyConfigurationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.proxyConfiguration = mapped
    }

    /**
     * @param value A list of regular expression patterns to exclude certain URLs to crawl. URLs that match the patterns are excluded from the index. URLs that don't match the patterns are included in the index. If a URL matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the URL file isn't included in the index.
     */
    @JvmName("cnakwtguowsghbwi")
    public suspend fun urlExclusionPatterns(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.urlExclusionPatterns = mapped
    }

    /**
     * @param values A list of regular expression patterns to exclude certain URLs to crawl. URLs that match the patterns are excluded from the index. URLs that don't match the patterns are included in the index. If a URL matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the URL file isn't included in the index.
     */
    @JvmName("eujfovwaeaqdcdfg")
    public suspend fun urlExclusionPatterns(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.urlExclusionPatterns = mapped
    }

    /**
     * @param value A list of regular expression patterns to include certain URLs to crawl. URLs that match the patterns are included in the index. URLs that don't match the patterns are excluded from the index. If a URL matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the URL file isn't included in the index.
     */
    @JvmName("airprrcdglnhekgk")
    public suspend fun urlInclusionPatterns(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.urlInclusionPatterns = mapped
    }

    /**
     * @param values A list of regular expression patterns to include certain URLs to crawl. URLs that match the patterns are included in the index. URLs that don't match the patterns are excluded from the index. If a URL matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence and the URL file isn't included in the index.
     */
    @JvmName("ghfnfwwcjgsrbrsp")
    public suspend fun urlInclusionPatterns(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.urlInclusionPatterns = mapped
    }

    /**
     * @param value Specifies the seed or starting point URLs of the websites or the sitemap URLs of the websites you want to crawl.
     * You can include website subdomains. You can list up to 100 seed URLs and up to three sitemap URLs.
     * You can only crawl websites that use the secure communication protocol, Hypertext Transfer Protocol Secure (HTTPS). If you receive an error when crawling a website, it could be that the website is blocked from crawling.
     * *When selecting websites to index, you must adhere to the [Amazon Acceptable Use Policy](https://docs.aws.amazon.com/aup/) and all other Amazon terms. Remember that you must only use Amazon Kendra Web Crawler to index your own webpages, or webpages that you have authorization to index.*
     */
    @JvmName("gjcmwvhihjphqrdl")
    public suspend fun urls(`value`: DataSourceWebCrawlerUrlsArgs) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.urls = mapped
    }

    /**
     * @param argument Specifies the seed or starting point URLs of the websites or the sitemap URLs of the websites you want to crawl.
     * You can include website subdomains. You can list up to 100 seed URLs and up to three sitemap URLs.
     * You can only crawl websites that use the secure communication protocol, Hypertext Transfer Protocol Secure (HTTPS). If you receive an error when crawling a website, it could be that the website is blocked from crawling.
     * *When selecting websites to index, you must adhere to the [Amazon Acceptable Use Policy](https://docs.aws.amazon.com/aup/) and all other Amazon terms. Remember that you must only use Amazon Kendra Web Crawler to index your own webpages, or webpages that you have authorization to index.*
     */
    @JvmName("ledetiqearktrhxm")
    public suspend fun urls(argument: suspend DataSourceWebCrawlerUrlsArgsBuilder.() -> Unit) {
        val toBeMapped = DataSourceWebCrawlerUrlsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.urls = mapped
    }

    internal fun build(): DataSourceWebCrawlerConfigurationArgs =
        DataSourceWebCrawlerConfigurationArgs(
            authenticationConfiguration = authenticationConfiguration,
            crawlDepth = crawlDepth,
            maxContentSizePerPageInMegaBytes = maxContentSizePerPageInMegaBytes,
            maxLinksPerPage = maxLinksPerPage,
            maxUrlsPerMinuteCrawlRate = maxUrlsPerMinuteCrawlRate,
            proxyConfiguration = proxyConfiguration,
            urlExclusionPatterns = urlExclusionPatterns,
            urlInclusionPatterns = urlInclusionPatterns,
            urls = urls ?: throw PulumiNullFieldException("urls"),
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy