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

com.pulumi.gcp.networkservices.kotlin.inputs.EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicyCacheKeyPolicyArgs.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: 8.10.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gcp.networkservices.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.networkservices.inputs.EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicyCacheKeyPolicyArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property excludeHost If true, requests to different hosts will be cached separately.
 * Note: this should only be enabled if hosts share the same origin and content. Removing the host from the cache key may inadvertently result in different objects being cached than intended, depending on which route the first user matched.
 * @property excludeQueryString If true, exclude query string parameters from the cache key
 * If false (the default), include the query string parameters in
 * the cache key according to includeQueryParameters and
 * excludeQueryParameters. If neither includeQueryParameters nor
 * excludeQueryParameters is set, the entire query string will be
 * included.
 * @property excludedQueryParameters Names of query string parameters to exclude from cache keys. All other parameters will be included.
 * Either specify includedQueryParameters or excludedQueryParameters, not both. '&' and '=' will be percent encoded and not treated as delimiters.
 * @property includeProtocol If true, http and https requests will be cached separately.
 * @property includedCookieNames Names of Cookies to include in cache keys.  The cookie name and cookie value of each cookie named will be used as part of the cache key.
 * Cookie names:
 * - must be valid RFC 6265 "cookie-name" tokens
 * - are case sensitive
 * - cannot start with "Edge-Cache-" (case insensitive)
 * Note that specifying several cookies, and/or cookies that have a large range of values (e.g., per-user) will dramatically impact the cache hit rate, and may result in a higher eviction rate and reduced performance.
 * You may specify up to three cookie names.
 * @property includedHeaderNames Names of HTTP request headers to include in cache keys. The value of the header field will be used as part of the cache key.
 * - Header names must be valid HTTP RFC 7230 header field values.
 * - Header field names are case insensitive
 * - To include the HTTP method, use ":method"
 * Note that specifying several headers, and/or headers that have a large range of values (e.g. per-user) will dramatically impact the cache hit rate, and may result in a higher eviction rate and reduced performance.
 * @property includedQueryParameters Names of query string parameters to include in cache keys. All other parameters will be excluded.
 * Either specify includedQueryParameters or excludedQueryParameters, not both. '&' and '=' will be percent encoded and not treated as delimiters.
 */
public data class EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicyCacheKeyPolicyArgs(
    public val excludeHost: Output? = null,
    public val excludeQueryString: Output? = null,
    public val excludedQueryParameters: Output>? = null,
    public val includeProtocol: Output? = null,
    public val includedCookieNames: Output>? = null,
    public val includedHeaderNames: Output>? = null,
    public val includedQueryParameters: Output>? = null,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.networkservices.inputs.EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicyCacheKeyPolicyArgs =
        com.pulumi.gcp.networkservices.inputs.EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicyCacheKeyPolicyArgs.builder()
            .excludeHost(excludeHost?.applyValue({ args0 -> args0 }))
            .excludeQueryString(excludeQueryString?.applyValue({ args0 -> args0 }))
            .excludedQueryParameters(
                excludedQueryParameters?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0
                    })
                }),
            )
            .includeProtocol(includeProtocol?.applyValue({ args0 -> args0 }))
            .includedCookieNames(includedCookieNames?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .includedHeaderNames(includedHeaderNames?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .includedQueryParameters(
                includedQueryParameters?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0
                    })
                }),
            ).build()
}

/**
 * Builder for [EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicyCacheKeyPolicyArgs].
 */
@PulumiTagMarker
public class
EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicyCacheKeyPolicyArgsBuilder
internal constructor() {
    private var excludeHost: Output? = null

    private var excludeQueryString: Output? = null

    private var excludedQueryParameters: Output>? = null

    private var includeProtocol: Output? = null

    private var includedCookieNames: Output>? = null

    private var includedHeaderNames: Output>? = null

    private var includedQueryParameters: Output>? = null

    /**
     * @param value If true, requests to different hosts will be cached separately.
     * Note: this should only be enabled if hosts share the same origin and content. Removing the host from the cache key may inadvertently result in different objects being cached than intended, depending on which route the first user matched.
     */
    @JvmName("bnemvyuivanvkeyv")
    public suspend fun excludeHost(`value`: Output) {
        this.excludeHost = value
    }

    /**
     * @param value If true, exclude query string parameters from the cache key
     * If false (the default), include the query string parameters in
     * the cache key according to includeQueryParameters and
     * excludeQueryParameters. If neither includeQueryParameters nor
     * excludeQueryParameters is set, the entire query string will be
     * included.
     */
    @JvmName("aunqwskobufkdmgi")
    public suspend fun excludeQueryString(`value`: Output) {
        this.excludeQueryString = value
    }

    /**
     * @param value Names of query string parameters to exclude from cache keys. All other parameters will be included.
     * Either specify includedQueryParameters or excludedQueryParameters, not both. '&' and '=' will be percent encoded and not treated as delimiters.
     */
    @JvmName("qmhylwsimprabsqd")
    public suspend fun excludedQueryParameters(`value`: Output>) {
        this.excludedQueryParameters = value
    }

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

    /**
     * @param values Names of query string parameters to exclude from cache keys. All other parameters will be included.
     * Either specify includedQueryParameters or excludedQueryParameters, not both. '&' and '=' will be percent encoded and not treated as delimiters.
     */
    @JvmName("epouyfrhvhuqosgh")
    public suspend fun excludedQueryParameters(values: List>) {
        this.excludedQueryParameters = Output.all(values)
    }

    /**
     * @param value If true, http and https requests will be cached separately.
     */
    @JvmName("kiohqwirmowccmff")
    public suspend fun includeProtocol(`value`: Output) {
        this.includeProtocol = value
    }

    /**
     * @param value Names of Cookies to include in cache keys.  The cookie name and cookie value of each cookie named will be used as part of the cache key.
     * Cookie names:
     * - must be valid RFC 6265 "cookie-name" tokens
     * - are case sensitive
     * - cannot start with "Edge-Cache-" (case insensitive)
     * Note that specifying several cookies, and/or cookies that have a large range of values (e.g., per-user) will dramatically impact the cache hit rate, and may result in a higher eviction rate and reduced performance.
     * You may specify up to three cookie names.
     */
    @JvmName("iftvgmltuwunrvsu")
    public suspend fun includedCookieNames(`value`: Output>) {
        this.includedCookieNames = value
    }

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

    /**
     * @param values Names of Cookies to include in cache keys.  The cookie name and cookie value of each cookie named will be used as part of the cache key.
     * Cookie names:
     * - must be valid RFC 6265 "cookie-name" tokens
     * - are case sensitive
     * - cannot start with "Edge-Cache-" (case insensitive)
     * Note that specifying several cookies, and/or cookies that have a large range of values (e.g., per-user) will dramatically impact the cache hit rate, and may result in a higher eviction rate and reduced performance.
     * You may specify up to three cookie names.
     */
    @JvmName("wqiukstovglweled")
    public suspend fun includedCookieNames(values: List>) {
        this.includedCookieNames = Output.all(values)
    }

    /**
     * @param value Names of HTTP request headers to include in cache keys. The value of the header field will be used as part of the cache key.
     * - Header names must be valid HTTP RFC 7230 header field values.
     * - Header field names are case insensitive
     * - To include the HTTP method, use ":method"
     * Note that specifying several headers, and/or headers that have a large range of values (e.g. per-user) will dramatically impact the cache hit rate, and may result in a higher eviction rate and reduced performance.
     */
    @JvmName("ginhewbemtupiwwi")
    public suspend fun includedHeaderNames(`value`: Output>) {
        this.includedHeaderNames = value
    }

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

    /**
     * @param values Names of HTTP request headers to include in cache keys. The value of the header field will be used as part of the cache key.
     * - Header names must be valid HTTP RFC 7230 header field values.
     * - Header field names are case insensitive
     * - To include the HTTP method, use ":method"
     * Note that specifying several headers, and/or headers that have a large range of values (e.g. per-user) will dramatically impact the cache hit rate, and may result in a higher eviction rate and reduced performance.
     */
    @JvmName("mdovuercviiwjcwq")
    public suspend fun includedHeaderNames(values: List>) {
        this.includedHeaderNames = Output.all(values)
    }

    /**
     * @param value Names of query string parameters to include in cache keys. All other parameters will be excluded.
     * Either specify includedQueryParameters or excludedQueryParameters, not both. '&' and '=' will be percent encoded and not treated as delimiters.
     */
    @JvmName("chlyislgamsjilfl")
    public suspend fun includedQueryParameters(`value`: Output>) {
        this.includedQueryParameters = value
    }

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

    /**
     * @param values Names of query string parameters to include in cache keys. All other parameters will be excluded.
     * Either specify includedQueryParameters or excludedQueryParameters, not both. '&' and '=' will be percent encoded and not treated as delimiters.
     */
    @JvmName("bgttmjufxjjnxncn")
    public suspend fun includedQueryParameters(values: List>) {
        this.includedQueryParameters = Output.all(values)
    }

    /**
     * @param value If true, requests to different hosts will be cached separately.
     * Note: this should only be enabled if hosts share the same origin and content. Removing the host from the cache key may inadvertently result in different objects being cached than intended, depending on which route the first user matched.
     */
    @JvmName("ttsyaffioxifwyac")
    public suspend fun excludeHost(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.excludeHost = mapped
    }

    /**
     * @param value If true, exclude query string parameters from the cache key
     * If false (the default), include the query string parameters in
     * the cache key according to includeQueryParameters and
     * excludeQueryParameters. If neither includeQueryParameters nor
     * excludeQueryParameters is set, the entire query string will be
     * included.
     */
    @JvmName("xavjnnvygrjeflqs")
    public suspend fun excludeQueryString(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.excludeQueryString = mapped
    }

    /**
     * @param value Names of query string parameters to exclude from cache keys. All other parameters will be included.
     * Either specify includedQueryParameters or excludedQueryParameters, not both. '&' and '=' will be percent encoded and not treated as delimiters.
     */
    @JvmName("uqyfkvrokkigkngh")
    public suspend fun excludedQueryParameters(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.excludedQueryParameters = mapped
    }

    /**
     * @param values Names of query string parameters to exclude from cache keys. All other parameters will be included.
     * Either specify includedQueryParameters or excludedQueryParameters, not both. '&' and '=' will be percent encoded and not treated as delimiters.
     */
    @JvmName("thqnwybepdgrcfxg")
    public suspend fun excludedQueryParameters(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.excludedQueryParameters = mapped
    }

    /**
     * @param value If true, http and https requests will be cached separately.
     */
    @JvmName("omjlyisvwwntvsuh")
    public suspend fun includeProtocol(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.includeProtocol = mapped
    }

    /**
     * @param value Names of Cookies to include in cache keys.  The cookie name and cookie value of each cookie named will be used as part of the cache key.
     * Cookie names:
     * - must be valid RFC 6265 "cookie-name" tokens
     * - are case sensitive
     * - cannot start with "Edge-Cache-" (case insensitive)
     * Note that specifying several cookies, and/or cookies that have a large range of values (e.g., per-user) will dramatically impact the cache hit rate, and may result in a higher eviction rate and reduced performance.
     * You may specify up to three cookie names.
     */
    @JvmName("rdvsbdwxxsosoboj")
    public suspend fun includedCookieNames(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.includedCookieNames = mapped
    }

    /**
     * @param values Names of Cookies to include in cache keys.  The cookie name and cookie value of each cookie named will be used as part of the cache key.
     * Cookie names:
     * - must be valid RFC 6265 "cookie-name" tokens
     * - are case sensitive
     * - cannot start with "Edge-Cache-" (case insensitive)
     * Note that specifying several cookies, and/or cookies that have a large range of values (e.g., per-user) will dramatically impact the cache hit rate, and may result in a higher eviction rate and reduced performance.
     * You may specify up to three cookie names.
     */
    @JvmName("rmycjavojmlgmvwq")
    public suspend fun includedCookieNames(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.includedCookieNames = mapped
    }

    /**
     * @param value Names of HTTP request headers to include in cache keys. The value of the header field will be used as part of the cache key.
     * - Header names must be valid HTTP RFC 7230 header field values.
     * - Header field names are case insensitive
     * - To include the HTTP method, use ":method"
     * Note that specifying several headers, and/or headers that have a large range of values (e.g. per-user) will dramatically impact the cache hit rate, and may result in a higher eviction rate and reduced performance.
     */
    @JvmName("yxedjeyclpqximfx")
    public suspend fun includedHeaderNames(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.includedHeaderNames = mapped
    }

    /**
     * @param values Names of HTTP request headers to include in cache keys. The value of the header field will be used as part of the cache key.
     * - Header names must be valid HTTP RFC 7230 header field values.
     * - Header field names are case insensitive
     * - To include the HTTP method, use ":method"
     * Note that specifying several headers, and/or headers that have a large range of values (e.g. per-user) will dramatically impact the cache hit rate, and may result in a higher eviction rate and reduced performance.
     */
    @JvmName("cselndfoqkrcwnaa")
    public suspend fun includedHeaderNames(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.includedHeaderNames = mapped
    }

    /**
     * @param value Names of query string parameters to include in cache keys. All other parameters will be excluded.
     * Either specify includedQueryParameters or excludedQueryParameters, not both. '&' and '=' will be percent encoded and not treated as delimiters.
     */
    @JvmName("gcubnukinnnvvthj")
    public suspend fun includedQueryParameters(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.includedQueryParameters = mapped
    }

    /**
     * @param values Names of query string parameters to include in cache keys. All other parameters will be excluded.
     * Either specify includedQueryParameters or excludedQueryParameters, not both. '&' and '=' will be percent encoded and not treated as delimiters.
     */
    @JvmName("ngdkdvmpkxirwrks")
    public suspend fun includedQueryParameters(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.includedQueryParameters = mapped
    }

    internal fun build(): EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicyCacheKeyPolicyArgs =
        EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicyCacheKeyPolicyArgs(
            excludeHost = excludeHost,
            excludeQueryString = excludeQueryString,
            excludedQueryParameters = excludedQueryParameters,
            includeProtocol = includeProtocol,
            includedCookieNames = includedCookieNames,
            includedHeaderNames = includedHeaderNames,
            includedQueryParameters = includedQueryParameters,
        )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy