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

com.pulumi.gcp.networkservices.kotlin.inputs.EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicyArgs.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.12.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.EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicyArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 *
 * @property addSignatures Enable signature generation or propagation on this route.
 * This field may only be specified when signedRequestMode is set to REQUIRE_TOKENS.
 * Structure is documented below.
 * @property cacheKeyPolicy Defines the request parameters that contribute to the cache key.
 * Structure is documented below.
 * @property cacheMode Cache modes allow users to control the behaviour of the cache, what content it should cache automatically, whether to respect origin headers, or whether to unconditionally cache all responses.
 * For all cache modes, Cache-Control headers will be passed to the client. Use clientTtl to override what is sent to the client.
 * Possible values are: `CACHE_ALL_STATIC`, `USE_ORIGIN_HEADERS`, `FORCE_CACHE_ALL`, `BYPASS_CACHE`.
 * @property clientTtl Specifies a separate client (e.g. browser client) TTL, separate from the TTL used by the edge caches. Leaving this empty will use the same cache TTL for both the CDN and the client-facing response.
 * - The TTL must be > 0 and <= 86400s (1 day)
 * - The clientTtl cannot be larger than the defaultTtl (if set)
 * - Fractions of a second are not allowed.
 * Omit this field to use the defaultTtl, or the max-age set by the origin, as the client-facing TTL.
 * When the cache mode is set to "USE_ORIGIN_HEADERS" or "BYPASS_CACHE", you must omit this field.
 * A duration in seconds terminated by 's'. Example: "3s".
 * @property defaultTtl Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age).
 * Defaults to 3600s (1 hour).
 * - The TTL must be >= 0 and <= 31,536,000 seconds (1 year)
 * - Setting a TTL of "0" means "always revalidate" (equivalent to must-revalidate)
 * - The value of defaultTTL cannot be set to a value greater than that of maxTTL.
 * - Fractions of a second are not allowed.
 * - When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses.
 * Note that infrequently accessed objects may be evicted from the cache before the defined TTL. Objects that expire will be revalidated with the origin.
 * When the cache mode is set to "USE_ORIGIN_HEADERS" or "BYPASS_CACHE", you must omit this field.
 * A duration in seconds terminated by 's'. Example: "3s".
 * @property maxTtl Specifies the maximum allowed TTL for cached content served by this origin.
 * Defaults to 86400s (1 day).
 * Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTtl seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive.
 * - The TTL must be >= 0 and <= 31,536,000 seconds (1 year)
 * - Setting a TTL of "0" means "always revalidate"
 * - The value of maxTtl must be equal to or greater than defaultTtl.
 * - Fractions of a second are not allowed.
 * When the cache mode is set to "USE_ORIGIN_HEADERS", "FORCE_CACHE_ALL", or "BYPASS_CACHE", you must omit this field.
 * A duration in seconds terminated by 's'. Example: "3s".
 * @property negativeCaching Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency.
 * By default, the CDNPolicy will apply the following default TTLs to these status codes:
 * - HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m
 * - HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s
 * - HTTP 405 (Method Not Found), 414 (URI Too Long), 501 (Not Implemented): 60s
 * These defaults can be overridden in negativeCachingPolicy
 * @property negativeCachingPolicy Sets a cache TTL for the specified HTTP status code. negativeCaching must be enabled to configure negativeCachingPolicy.
 * - Omitting the policy and leaving negativeCaching enabled will use the default TTLs for each status code, defined in negativeCaching.
 * - TTLs must be >= 0 (where 0 is "always revalidate") and <= 86400s (1 day)
 * Note that when specifying an explicit negativeCachingPolicy, you should take care to specify a cache TTL for all response codes that you wish to cache. The CDNPolicy will not apply any default negative caching when a policy exists.
 * @property signedRequestKeyset The EdgeCacheKeyset containing the set of public keys used to validate signed requests at the edge.
 * @property signedRequestMaximumExpirationTtl Limit how far into the future the expiration time of a signed request may be.
 * When set, a signed request is rejected if its expiration time is later than now + signedRequestMaximumExpirationTtl, where now is the time at which the signed request is first handled by the CDN.
 * - The TTL must be > 0.
 * - Fractions of a second are not allowed.
 * By default, signedRequestMaximumExpirationTtl is not set and the expiration time of a signed request may be arbitrarily far into future.
 * @property signedRequestMode Whether to enforce signed requests. The default value is DISABLED, which means all content is public, and does not authorize access.
 * You must also set a signedRequestKeyset to enable signed requests.
 * When set to REQUIRE_SIGNATURES, all matching requests will have their signature validated. Requests that were not signed with the corresponding private key, or that are otherwise invalid (expired, do not match the signature, IP address, or header) will be rejected with a HTTP 403 and (if enabled) logged.
 * Possible values are: `DISABLED`, `REQUIRE_SIGNATURES`, `REQUIRE_TOKENS`.
 * @property signedTokenOptions Additional options for signed tokens.
 * signedTokenOptions may only be specified when signedRequestMode is REQUIRE_TOKENS.
 * Structure is documented below.
 */
public data class EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicyArgs(
    public val addSignatures: Output? =
        null,
    public val cacheKeyPolicy: Output? =
        null,
    public val cacheMode: Output? = null,
    public val clientTtl: Output? = null,
    public val defaultTtl: Output? = null,
    public val maxTtl: Output? = null,
    public val negativeCaching: Output? = null,
    public val negativeCachingPolicy: Output>? = null,
    public val signedRequestKeyset: Output? = null,
    public val signedRequestMaximumExpirationTtl: Output? = null,
    public val signedRequestMode: Output? = null,
    public val signedTokenOptions: Output? =
        null,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.networkservices.inputs.EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicyArgs =
        com.pulumi.gcp.networkservices.inputs.EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicyArgs.builder()
            .addSignatures(addSignatures?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .cacheKeyPolicy(cacheKeyPolicy?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .cacheMode(cacheMode?.applyValue({ args0 -> args0 }))
            .clientTtl(clientTtl?.applyValue({ args0 -> args0 }))
            .defaultTtl(defaultTtl?.applyValue({ args0 -> args0 }))
            .maxTtl(maxTtl?.applyValue({ args0 -> args0 }))
            .negativeCaching(negativeCaching?.applyValue({ args0 -> args0 }))
            .negativeCachingPolicy(
                negativeCachingPolicy?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            )
            .signedRequestKeyset(signedRequestKeyset?.applyValue({ args0 -> args0 }))
            .signedRequestMaximumExpirationTtl(
                signedRequestMaximumExpirationTtl?.applyValue({ args0 ->
                    args0
                }),
            )
            .signedRequestMode(signedRequestMode?.applyValue({ args0 -> args0 }))
            .signedTokenOptions(
                signedTokenOptions?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

/**
 * Builder for [EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicyArgs].
 */
@PulumiTagMarker
public class EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicyArgsBuilder internal constructor() {
    private var addSignatures:
        Output? =
        null

    private var cacheKeyPolicy:
        Output? =
        null

    private var cacheMode: Output? = null

    private var clientTtl: Output? = null

    private var defaultTtl: Output? = null

    private var maxTtl: Output? = null

    private var negativeCaching: Output? = null

    private var negativeCachingPolicy: Output>? = null

    private var signedRequestKeyset: Output? = null

    private var signedRequestMaximumExpirationTtl: Output? = null

    private var signedRequestMode: Output? = null

    private var signedTokenOptions:
        Output? =
        null

    /**
     * @param value Enable signature generation or propagation on this route.
     * This field may only be specified when signedRequestMode is set to REQUIRE_TOKENS.
     * Structure is documented below.
     */
    @JvmName("txlqefluhqijbjet")
    public suspend fun addSignatures(`value`: Output) {
        this.addSignatures = value
    }

    /**
     * @param value Defines the request parameters that contribute to the cache key.
     * Structure is documented below.
     */
    @JvmName("xoikoeaafjpsmmbj")
    public suspend fun cacheKeyPolicy(`value`: Output) {
        this.cacheKeyPolicy = value
    }

    /**
     * @param value Cache modes allow users to control the behaviour of the cache, what content it should cache automatically, whether to respect origin headers, or whether to unconditionally cache all responses.
     * For all cache modes, Cache-Control headers will be passed to the client. Use clientTtl to override what is sent to the client.
     * Possible values are: `CACHE_ALL_STATIC`, `USE_ORIGIN_HEADERS`, `FORCE_CACHE_ALL`, `BYPASS_CACHE`.
     */
    @JvmName("dxcbfpaiisnakjmt")
    public suspend fun cacheMode(`value`: Output) {
        this.cacheMode = value
    }

    /**
     * @param value Specifies a separate client (e.g. browser client) TTL, separate from the TTL used by the edge caches. Leaving this empty will use the same cache TTL for both the CDN and the client-facing response.
     * - The TTL must be > 0 and <= 86400s (1 day)
     * - The clientTtl cannot be larger than the defaultTtl (if set)
     * - Fractions of a second are not allowed.
     * Omit this field to use the defaultTtl, or the max-age set by the origin, as the client-facing TTL.
     * When the cache mode is set to "USE_ORIGIN_HEADERS" or "BYPASS_CACHE", you must omit this field.
     * A duration in seconds terminated by 's'. Example: "3s".
     */
    @JvmName("vajwcyeblsmqsykk")
    public suspend fun clientTtl(`value`: Output) {
        this.clientTtl = value
    }

    /**
     * @param value Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age).
     * Defaults to 3600s (1 hour).
     * - The TTL must be >= 0 and <= 31,536,000 seconds (1 year)
     * - Setting a TTL of "0" means "always revalidate" (equivalent to must-revalidate)
     * - The value of defaultTTL cannot be set to a value greater than that of maxTTL.
     * - Fractions of a second are not allowed.
     * - When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses.
     * Note that infrequently accessed objects may be evicted from the cache before the defined TTL. Objects that expire will be revalidated with the origin.
     * When the cache mode is set to "USE_ORIGIN_HEADERS" or "BYPASS_CACHE", you must omit this field.
     * A duration in seconds terminated by 's'. Example: "3s".
     */
    @JvmName("clhoipcvvxlnfujp")
    public suspend fun defaultTtl(`value`: Output) {
        this.defaultTtl = value
    }

    /**
     * @param value Specifies the maximum allowed TTL for cached content served by this origin.
     * Defaults to 86400s (1 day).
     * Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTtl seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive.
     * - The TTL must be >= 0 and <= 31,536,000 seconds (1 year)
     * - Setting a TTL of "0" means "always revalidate"
     * - The value of maxTtl must be equal to or greater than defaultTtl.
     * - Fractions of a second are not allowed.
     * When the cache mode is set to "USE_ORIGIN_HEADERS", "FORCE_CACHE_ALL", or "BYPASS_CACHE", you must omit this field.
     * A duration in seconds terminated by 's'. Example: "3s".
     */
    @JvmName("lragogiorrsdtqpi")
    public suspend fun maxTtl(`value`: Output) {
        this.maxTtl = value
    }

    /**
     * @param value Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency.
     * By default, the CDNPolicy will apply the following default TTLs to these status codes:
     * - HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m
     * - HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s
     * - HTTP 405 (Method Not Found), 414 (URI Too Long), 501 (Not Implemented): 60s
     * These defaults can be overridden in negativeCachingPolicy
     */
    @JvmName("hsbtaahtbqybgxko")
    public suspend fun negativeCaching(`value`: Output) {
        this.negativeCaching = value
    }

    /**
     * @param value Sets a cache TTL for the specified HTTP status code. negativeCaching must be enabled to configure negativeCachingPolicy.
     * - Omitting the policy and leaving negativeCaching enabled will use the default TTLs for each status code, defined in negativeCaching.
     * - TTLs must be >= 0 (where 0 is "always revalidate") and <= 86400s (1 day)
     * Note that when specifying an explicit negativeCachingPolicy, you should take care to specify a cache TTL for all response codes that you wish to cache. The CDNPolicy will not apply any default negative caching when a policy exists.
     */
    @JvmName("giyajpeyjyolqqke")
    public suspend fun negativeCachingPolicy(`value`: Output>) {
        this.negativeCachingPolicy = value
    }

    /**
     * @param value The EdgeCacheKeyset containing the set of public keys used to validate signed requests at the edge.
     */
    @JvmName("lfwjkeugevmolrcb")
    public suspend fun signedRequestKeyset(`value`: Output) {
        this.signedRequestKeyset = value
    }

    /**
     * @param value Limit how far into the future the expiration time of a signed request may be.
     * When set, a signed request is rejected if its expiration time is later than now + signedRequestMaximumExpirationTtl, where now is the time at which the signed request is first handled by the CDN.
     * - The TTL must be > 0.
     * - Fractions of a second are not allowed.
     * By default, signedRequestMaximumExpirationTtl is not set and the expiration time of a signed request may be arbitrarily far into future.
     */
    @JvmName("tgxkqbjbwglqqknk")
    public suspend fun signedRequestMaximumExpirationTtl(`value`: Output) {
        this.signedRequestMaximumExpirationTtl = value
    }

    /**
     * @param value Whether to enforce signed requests. The default value is DISABLED, which means all content is public, and does not authorize access.
     * You must also set a signedRequestKeyset to enable signed requests.
     * When set to REQUIRE_SIGNATURES, all matching requests will have their signature validated. Requests that were not signed with the corresponding private key, or that are otherwise invalid (expired, do not match the signature, IP address, or header) will be rejected with a HTTP 403 and (if enabled) logged.
     * Possible values are: `DISABLED`, `REQUIRE_SIGNATURES`, `REQUIRE_TOKENS`.
     */
    @JvmName("mvjsoisxkxytmjcw")
    public suspend fun signedRequestMode(`value`: Output) {
        this.signedRequestMode = value
    }

    /**
     * @param value Additional options for signed tokens.
     * signedTokenOptions may only be specified when signedRequestMode is REQUIRE_TOKENS.
     * Structure is documented below.
     */
    @JvmName("ewhhxccjktxnkqjl")
    public suspend fun signedTokenOptions(`value`: Output) {
        this.signedTokenOptions = value
    }

    /**
     * @param value Enable signature generation or propagation on this route.
     * This field may only be specified when signedRequestMode is set to REQUIRE_TOKENS.
     * Structure is documented below.
     */
    @JvmName("xurolrdanfowtxin")
    public suspend fun addSignatures(`value`: EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicyAddSignaturesArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.addSignatures = mapped
    }

    /**
     * @param argument Enable signature generation or propagation on this route.
     * This field may only be specified when signedRequestMode is set to REQUIRE_TOKENS.
     * Structure is documented below.
     */
    @JvmName("oyrpcktxvdsqcvao")
    public suspend fun addSignatures(argument: suspend EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicyAddSignaturesArgsBuilder.() -> Unit) {
        val toBeMapped =
            EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicyAddSignaturesArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.addSignatures = mapped
    }

    /**
     * @param value Defines the request parameters that contribute to the cache key.
     * Structure is documented below.
     */
    @JvmName("wekyfdvxsverlnya")
    public suspend fun cacheKeyPolicy(`value`: EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicyCacheKeyPolicyArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cacheKeyPolicy = mapped
    }

    /**
     * @param argument Defines the request parameters that contribute to the cache key.
     * Structure is documented below.
     */
    @JvmName("vpwuqabgtdlftwtm")
    public suspend fun cacheKeyPolicy(argument: suspend EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicyCacheKeyPolicyArgsBuilder.() -> Unit) {
        val toBeMapped =
            EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicyCacheKeyPolicyArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.cacheKeyPolicy = mapped
    }

    /**
     * @param value Cache modes allow users to control the behaviour of the cache, what content it should cache automatically, whether to respect origin headers, or whether to unconditionally cache all responses.
     * For all cache modes, Cache-Control headers will be passed to the client. Use clientTtl to override what is sent to the client.
     * Possible values are: `CACHE_ALL_STATIC`, `USE_ORIGIN_HEADERS`, `FORCE_CACHE_ALL`, `BYPASS_CACHE`.
     */
    @JvmName("dgywghkvavoblvpq")
    public suspend fun cacheMode(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cacheMode = mapped
    }

    /**
     * @param value Specifies a separate client (e.g. browser client) TTL, separate from the TTL used by the edge caches. Leaving this empty will use the same cache TTL for both the CDN and the client-facing response.
     * - The TTL must be > 0 and <= 86400s (1 day)
     * - The clientTtl cannot be larger than the defaultTtl (if set)
     * - Fractions of a second are not allowed.
     * Omit this field to use the defaultTtl, or the max-age set by the origin, as the client-facing TTL.
     * When the cache mode is set to "USE_ORIGIN_HEADERS" or "BYPASS_CACHE", you must omit this field.
     * A duration in seconds terminated by 's'. Example: "3s".
     */
    @JvmName("hbfmqhijehnxgfii")
    public suspend fun clientTtl(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clientTtl = mapped
    }

    /**
     * @param value Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age).
     * Defaults to 3600s (1 hour).
     * - The TTL must be >= 0 and <= 31,536,000 seconds (1 year)
     * - Setting a TTL of "0" means "always revalidate" (equivalent to must-revalidate)
     * - The value of defaultTTL cannot be set to a value greater than that of maxTTL.
     * - Fractions of a second are not allowed.
     * - When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses.
     * Note that infrequently accessed objects may be evicted from the cache before the defined TTL. Objects that expire will be revalidated with the origin.
     * When the cache mode is set to "USE_ORIGIN_HEADERS" or "BYPASS_CACHE", you must omit this field.
     * A duration in seconds terminated by 's'. Example: "3s".
     */
    @JvmName("ntjrbumiexjfqaoo")
    public suspend fun defaultTtl(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultTtl = mapped
    }

    /**
     * @param value Specifies the maximum allowed TTL for cached content served by this origin.
     * Defaults to 86400s (1 day).
     * Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTtl seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive.
     * - The TTL must be >= 0 and <= 31,536,000 seconds (1 year)
     * - Setting a TTL of "0" means "always revalidate"
     * - The value of maxTtl must be equal to or greater than defaultTtl.
     * - Fractions of a second are not allowed.
     * When the cache mode is set to "USE_ORIGIN_HEADERS", "FORCE_CACHE_ALL", or "BYPASS_CACHE", you must omit this field.
     * A duration in seconds terminated by 's'. Example: "3s".
     */
    @JvmName("ldvrwtgwoibixanx")
    public suspend fun maxTtl(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxTtl = mapped
    }

    /**
     * @param value Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. This can reduce the load on your origin and improve end-user experience by reducing response latency.
     * By default, the CDNPolicy will apply the following default TTLs to these status codes:
     * - HTTP 300 (Multiple Choice), 301, 308 (Permanent Redirects): 10m
     * - HTTP 404 (Not Found), 410 (Gone), 451 (Unavailable For Legal Reasons): 120s
     * - HTTP 405 (Method Not Found), 414 (URI Too Long), 501 (Not Implemented): 60s
     * These defaults can be overridden in negativeCachingPolicy
     */
    @JvmName("jcecoajvluprgrcn")
    public suspend fun negativeCaching(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.negativeCaching = mapped
    }

    /**
     * @param value Sets a cache TTL for the specified HTTP status code. negativeCaching must be enabled to configure negativeCachingPolicy.
     * - Omitting the policy and leaving negativeCaching enabled will use the default TTLs for each status code, defined in negativeCaching.
     * - TTLs must be >= 0 (where 0 is "always revalidate") and <= 86400s (1 day)
     * Note that when specifying an explicit negativeCachingPolicy, you should take care to specify a cache TTL for all response codes that you wish to cache. The CDNPolicy will not apply any default negative caching when a policy exists.
     */
    @JvmName("ibpkalxkvjvfssgf")
    public suspend fun negativeCachingPolicy(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.negativeCachingPolicy = mapped
    }

    /**
     * @param values Sets a cache TTL for the specified HTTP status code. negativeCaching must be enabled to configure negativeCachingPolicy.
     * - Omitting the policy and leaving negativeCaching enabled will use the default TTLs for each status code, defined in negativeCaching.
     * - TTLs must be >= 0 (where 0 is "always revalidate") and <= 86400s (1 day)
     * Note that when specifying an explicit negativeCachingPolicy, you should take care to specify a cache TTL for all response codes that you wish to cache. The CDNPolicy will not apply any default negative caching when a policy exists.
     */
    @JvmName("uylwqdwdlsgorwqq")
    public fun negativeCachingPolicy(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.negativeCachingPolicy = mapped
    }

    /**
     * @param value The EdgeCacheKeyset containing the set of public keys used to validate signed requests at the edge.
     */
    @JvmName("hvfwrxfdxvokwyjm")
    public suspend fun signedRequestKeyset(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.signedRequestKeyset = mapped
    }

    /**
     * @param value Limit how far into the future the expiration time of a signed request may be.
     * When set, a signed request is rejected if its expiration time is later than now + signedRequestMaximumExpirationTtl, where now is the time at which the signed request is first handled by the CDN.
     * - The TTL must be > 0.
     * - Fractions of a second are not allowed.
     * By default, signedRequestMaximumExpirationTtl is not set and the expiration time of a signed request may be arbitrarily far into future.
     */
    @JvmName("wyfojpxkgbxeubpx")
    public suspend fun signedRequestMaximumExpirationTtl(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.signedRequestMaximumExpirationTtl = mapped
    }

    /**
     * @param value Whether to enforce signed requests. The default value is DISABLED, which means all content is public, and does not authorize access.
     * You must also set a signedRequestKeyset to enable signed requests.
     * When set to REQUIRE_SIGNATURES, all matching requests will have their signature validated. Requests that were not signed with the corresponding private key, or that are otherwise invalid (expired, do not match the signature, IP address, or header) will be rejected with a HTTP 403 and (if enabled) logged.
     * Possible values are: `DISABLED`, `REQUIRE_SIGNATURES`, `REQUIRE_TOKENS`.
     */
    @JvmName("lwjllfeoksopqwdu")
    public suspend fun signedRequestMode(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.signedRequestMode = mapped
    }

    /**
     * @param value Additional options for signed tokens.
     * signedTokenOptions may only be specified when signedRequestMode is REQUIRE_TOKENS.
     * Structure is documented below.
     */
    @JvmName("chewlpgkuxohpksf")
    public suspend fun signedTokenOptions(`value`: EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicySignedTokenOptionsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.signedTokenOptions = mapped
    }

    /**
     * @param argument Additional options for signed tokens.
     * signedTokenOptions may only be specified when signedRequestMode is REQUIRE_TOKENS.
     * Structure is documented below.
     */
    @JvmName("ojxeapyyiyjijcis")
    public suspend fun signedTokenOptions(argument: suspend EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicySignedTokenOptionsArgsBuilder.() -> Unit) {
        val toBeMapped =
            EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicySignedTokenOptionsArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.signedTokenOptions = mapped
    }

    internal fun build(): EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicyArgs =
        EdgeCacheServiceRoutingPathMatcherRouteRuleRouteActionCdnPolicyArgs(
            addSignatures = addSignatures,
            cacheKeyPolicy = cacheKeyPolicy,
            cacheMode = cacheMode,
            clientTtl = clientTtl,
            defaultTtl = defaultTtl,
            maxTtl = maxTtl,
            negativeCaching = negativeCaching,
            negativeCachingPolicy = negativeCachingPolicy,
            signedRequestKeyset = signedRequestKeyset,
            signedRequestMaximumExpirationTtl = signedRequestMaximumExpirationTtl,
            signedRequestMode = signedRequestMode,
            signedTokenOptions = signedTokenOptions,
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy