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

com.pulumi.gcp.compute.kotlin.inputs.BackendServiceCdnPolicyArgs.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.compute.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.compute.inputs.BackendServiceCdnPolicyArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property bypassCacheOnRequestHeaders Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified.
 * The cache is bypassed for all cdnPolicy.cacheMode settings.
 * Structure is documented below.
 * @property cacheKeyPolicy The CacheKeyPolicy for this CdnPolicy.
 * Structure is documented below.
 * @property cacheMode Specifies the cache setting for all responses from this backend.
 * The possible values are: USE_ORIGIN_HEADERS, FORCE_CACHE_ALL and CACHE_ALL_STATIC
 * Possible values are: `USE_ORIGIN_HEADERS`, `FORCE_CACHE_ALL`, `CACHE_ALL_STATIC`.
 * @property clientTtl Specifies the maximum allowed TTL for cached content served by this origin.
 * @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).
 * @property maxTtl Specifies the maximum allowed TTL for cached content served by this origin.
 * @property negativeCaching Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects.
 * @property negativeCachingPolicies 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 Cloud CDN's default cache TTLs.
 * Structure is documented below.
 * @property serveWhileStale Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache.
 * @property signedUrlCacheMaxAgeSec Maximum number of seconds the response to a signed URL request
 * will be considered fresh, defaults to 1hr (3600s). After this
 * time period, the response will be revalidated before
 * being served.
 * When serving responses to signed URL requests, Cloud CDN will
 * internally behave as though all responses from this backend had a
 * "Cache-Control: public, max-age=[TTL]" header, regardless of any
 * existing Cache-Control header. The actual headers served in
 * responses will not be altered.
 */
public data class BackendServiceCdnPolicyArgs(
    public val bypassCacheOnRequestHeaders: 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 negativeCachingPolicies: Output>? = null,
    public val serveWhileStale: Output? = null,
    public val signedUrlCacheMaxAgeSec: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.compute.inputs.BackendServiceCdnPolicyArgs =
        com.pulumi.gcp.compute.inputs.BackendServiceCdnPolicyArgs.builder()
            .bypassCacheOnRequestHeaders(
                bypassCacheOnRequestHeaders?.applyValue({ args0 ->
                    args0.map({ 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 }))
            .negativeCachingPolicies(
                negativeCachingPolicies?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .serveWhileStale(serveWhileStale?.applyValue({ args0 -> args0 }))
            .signedUrlCacheMaxAgeSec(signedUrlCacheMaxAgeSec?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [BackendServiceCdnPolicyArgs].
 */
@PulumiTagMarker
public class BackendServiceCdnPolicyArgsBuilder internal constructor() {
    private var bypassCacheOnRequestHeaders:
        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 negativeCachingPolicies:
        Output>? = null

    private var serveWhileStale: Output? = null

    private var signedUrlCacheMaxAgeSec: Output? = null

    /**
     * @param value Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified.
     * The cache is bypassed for all cdnPolicy.cacheMode settings.
     * Structure is documented below.
     */
    @JvmName("gqhpheiuymxciday")
    public suspend fun bypassCacheOnRequestHeaders(`value`: Output>) {
        this.bypassCacheOnRequestHeaders = value
    }

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

    /**
     * @param values Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified.
     * The cache is bypassed for all cdnPolicy.cacheMode settings.
     * Structure is documented below.
     */
    @JvmName("dvpahfaqtqpeuoqm")
    public suspend fun bypassCacheOnRequestHeaders(values: List>) {
        this.bypassCacheOnRequestHeaders = Output.all(values)
    }

    /**
     * @param value The CacheKeyPolicy for this CdnPolicy.
     * Structure is documented below.
     */
    @JvmName("ncrhxkkrqgawsqdc")
    public suspend fun cacheKeyPolicy(`value`: Output) {
        this.cacheKeyPolicy = value
    }

    /**
     * @param value Specifies the cache setting for all responses from this backend.
     * The possible values are: USE_ORIGIN_HEADERS, FORCE_CACHE_ALL and CACHE_ALL_STATIC
     * Possible values are: `USE_ORIGIN_HEADERS`, `FORCE_CACHE_ALL`, `CACHE_ALL_STATIC`.
     */
    @JvmName("nebdgwvxhvisovfa")
    public suspend fun cacheMode(`value`: Output) {
        this.cacheMode = value
    }

    /**
     * @param value Specifies the maximum allowed TTL for cached content served by this origin.
     */
    @JvmName("ikxwalygfspoyjam")
    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).
     */
    @JvmName("yuxburldeglepmeu")
    public suspend fun defaultTtl(`value`: Output) {
        this.defaultTtl = value
    }

    /**
     * @param value Specifies the maximum allowed TTL for cached content served by this origin.
     */
    @JvmName("ppkqlkpxdrrlidpf")
    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.
     */
    @JvmName("qscvnihwbjtgmoje")
    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 Cloud CDN's default cache TTLs.
     * Structure is documented below.
     */
    @JvmName("ffmoscsnjimoqrnh")
    public suspend fun negativeCachingPolicies(`value`: Output>) {
        this.negativeCachingPolicies = value
    }

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

    /**
     * @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 Cloud CDN's default cache TTLs.
     * Structure is documented below.
     */
    @JvmName("vcrmsgxardqttrqv")
    public suspend fun negativeCachingPolicies(values: List>) {
        this.negativeCachingPolicies = Output.all(values)
    }

    /**
     * @param value Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache.
     */
    @JvmName("droeeaibaxhflpky")
    public suspend fun serveWhileStale(`value`: Output) {
        this.serveWhileStale = value
    }

    /**
     * @param value Maximum number of seconds the response to a signed URL request
     * will be considered fresh, defaults to 1hr (3600s). After this
     * time period, the response will be revalidated before
     * being served.
     * When serving responses to signed URL requests, Cloud CDN will
     * internally behave as though all responses from this backend had a
     * "Cache-Control: public, max-age=[TTL]" header, regardless of any
     * existing Cache-Control header. The actual headers served in
     * responses will not be altered.
     */
    @JvmName("incijhhppiajswsn")
    public suspend fun signedUrlCacheMaxAgeSec(`value`: Output) {
        this.signedUrlCacheMaxAgeSec = value
    }

    /**
     * @param value Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified.
     * The cache is bypassed for all cdnPolicy.cacheMode settings.
     * Structure is documented below.
     */
    @JvmName("magppyrvbwkkpqva")
    public suspend fun bypassCacheOnRequestHeaders(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.bypassCacheOnRequestHeaders = mapped
    }

    /**
     * @param argument Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified.
     * The cache is bypassed for all cdnPolicy.cacheMode settings.
     * Structure is documented below.
     */
    @JvmName("mmbuixrkfvjalcvu")
    public suspend fun bypassCacheOnRequestHeaders(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.bypassCacheOnRequestHeaders = mapped
    }

    /**
     * @param argument Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified.
     * The cache is bypassed for all cdnPolicy.cacheMode settings.
     * Structure is documented below.
     */
    @JvmName("mhfauupgpcmcuwqx")
    public suspend fun bypassCacheOnRequestHeaders(vararg argument: suspend BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.bypassCacheOnRequestHeaders = mapped
    }

    /**
     * @param argument Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified.
     * The cache is bypassed for all cdnPolicy.cacheMode settings.
     * Structure is documented below.
     */
    @JvmName("jouwrxqbbbourcux")
    public suspend fun bypassCacheOnRequestHeaders(argument: suspend BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgsBuilder.() -> Unit) {
        val toBeMapped =
            listOf(
                BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgsBuilder().applySuspend {
                    argument()
                }.build(),
            )
        val mapped = of(toBeMapped)
        this.bypassCacheOnRequestHeaders = mapped
    }

    /**
     * @param values Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified.
     * The cache is bypassed for all cdnPolicy.cacheMode settings.
     * Structure is documented below.
     */
    @JvmName("rejwgtybeonwbtfs")
    public suspend fun bypassCacheOnRequestHeaders(vararg values: BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.bypassCacheOnRequestHeaders = mapped
    }

    /**
     * @param value The CacheKeyPolicy for this CdnPolicy.
     * Structure is documented below.
     */
    @JvmName("kwovhlqyporhvvjk")
    public suspend fun cacheKeyPolicy(`value`: BackendServiceCdnPolicyCacheKeyPolicyArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cacheKeyPolicy = mapped
    }

    /**
     * @param argument The CacheKeyPolicy for this CdnPolicy.
     * Structure is documented below.
     */
    @JvmName("gyfiusfmvqeaofrb")
    public suspend fun cacheKeyPolicy(argument: suspend BackendServiceCdnPolicyCacheKeyPolicyArgsBuilder.() -> Unit) {
        val toBeMapped = BackendServiceCdnPolicyCacheKeyPolicyArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.cacheKeyPolicy = mapped
    }

    /**
     * @param value Specifies the cache setting for all responses from this backend.
     * The possible values are: USE_ORIGIN_HEADERS, FORCE_CACHE_ALL and CACHE_ALL_STATIC
     * Possible values are: `USE_ORIGIN_HEADERS`, `FORCE_CACHE_ALL`, `CACHE_ALL_STATIC`.
     */
    @JvmName("mwyapcrcrgvwegbr")
    public suspend fun cacheMode(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cacheMode = mapped
    }

    /**
     * @param value Specifies the maximum allowed TTL for cached content served by this origin.
     */
    @JvmName("dmjxcenlfxyjiktn")
    public suspend fun clientTtl(`value`: Int?) {
        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).
     */
    @JvmName("jnhiohulariossyj")
    public suspend fun defaultTtl(`value`: Int?) {
        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.
     */
    @JvmName("nilrubafbhjtbhak")
    public suspend fun maxTtl(`value`: Int?) {
        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.
     */
    @JvmName("sbuiyfinonolvoir")
    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 Cloud CDN's default cache TTLs.
     * Structure is documented below.
     */
    @JvmName("olajkefsyopcovlt")
    public suspend fun negativeCachingPolicies(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.negativeCachingPolicies = mapped
    }

    /**
     * @param argument 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 Cloud CDN's default cache TTLs.
     * Structure is documented below.
     */
    @JvmName("smrubkthunpdjagf")
    public suspend fun negativeCachingPolicies(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            BackendServiceCdnPolicyNegativeCachingPolicyArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.negativeCachingPolicies = mapped
    }

    /**
     * @param argument 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 Cloud CDN's default cache TTLs.
     * Structure is documented below.
     */
    @JvmName("tesjmtivtiinpckj")
    public suspend fun negativeCachingPolicies(vararg argument: suspend BackendServiceCdnPolicyNegativeCachingPolicyArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            BackendServiceCdnPolicyNegativeCachingPolicyArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.negativeCachingPolicies = mapped
    }

    /**
     * @param argument 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 Cloud CDN's default cache TTLs.
     * Structure is documented below.
     */
    @JvmName("okjovyapxxdpjbym")
    public suspend fun negativeCachingPolicies(argument: suspend BackendServiceCdnPolicyNegativeCachingPolicyArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            BackendServiceCdnPolicyNegativeCachingPolicyArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.negativeCachingPolicies = 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 Cloud CDN's default cache TTLs.
     * Structure is documented below.
     */
    @JvmName("gusapecmhylyedpw")
    public suspend fun negativeCachingPolicies(vararg values: BackendServiceCdnPolicyNegativeCachingPolicyArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.negativeCachingPolicies = mapped
    }

    /**
     * @param value Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache.
     */
    @JvmName("djvstwkyacqshrje")
    public suspend fun serveWhileStale(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.serveWhileStale = mapped
    }

    /**
     * @param value Maximum number of seconds the response to a signed URL request
     * will be considered fresh, defaults to 1hr (3600s). After this
     * time period, the response will be revalidated before
     * being served.
     * When serving responses to signed URL requests, Cloud CDN will
     * internally behave as though all responses from this backend had a
     * "Cache-Control: public, max-age=[TTL]" header, regardless of any
     * existing Cache-Control header. The actual headers served in
     * responses will not be altered.
     */
    @JvmName("tcmpdmpsgunenywl")
    public suspend fun signedUrlCacheMaxAgeSec(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.signedUrlCacheMaxAgeSec = mapped
    }

    internal fun build(): BackendServiceCdnPolicyArgs = BackendServiceCdnPolicyArgs(
        bypassCacheOnRequestHeaders = bypassCacheOnRequestHeaders,
        cacheKeyPolicy = cacheKeyPolicy,
        cacheMode = cacheMode,
        clientTtl = clientTtl,
        defaultTtl = defaultTtl,
        maxTtl = maxTtl,
        negativeCaching = negativeCaching,
        negativeCachingPolicies = negativeCachingPolicies,
        serveWhileStale = serveWhileStale,
        signedUrlCacheMaxAgeSec = signedUrlCacheMaxAgeSec,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy