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

com.pulumi.cloudflare.kotlin.inputs.RulesetRuleActionParametersArgs.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: 5.47.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.cloudflare.kotlin.inputs

import com.pulumi.cloudflare.inputs.RulesetRuleActionParametersArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Int
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 *
 * @property additionalCacheablePorts Specifies uncommon ports to allow cacheable assets to be served from.
 * @property algorithms Compression algorithms to use in order of preference.
 * @property automaticHttpsRewrites Turn on or off Cloudflare Automatic HTTPS rewrites.
 * @property autominifies Indicate which file extensions to minify automatically.
 * @property bic Inspect the visitor's browser for headers commonly associated with spammers and certain bots.
 * @property browserTtl List of browser TTL parameters to apply to the request.
 * @property cache Whether to cache if expression matches.
 * @property cacheKey List of cache key parameters to apply to the request.
 * @property cacheReserve List of cache reserve parameters to apply to the request.
 * @property content Content of the custom error response.
 * @property contentType Content-Type of the custom error response.
 * @property cookieFields List of cookie values to include as part of custom fields logging.
 * @property disableApps Turn off all active Cloudflare Apps.
 * @property disableRailgun Turn off railgun feature of the Cloudflare Speed app.
 * @property disableRum Turn off RUM feature.
 * @property disableZaraz Turn off zaraz feature.
 * @property edgeTtl List of edge TTL parameters to apply to the request.
 * @property emailObfuscation Turn on or off the Cloudflare Email Obfuscation feature of the Cloudflare Scrape Shield app.
 * @property fonts Toggle fonts.
 * @property fromList Use a list to lookup information for the action.
 * @property fromValue Use a value to lookup information for the action.
 * @property headers List of HTTP header modifications to perform in the ruleset rule. Note: Headers are order dependent and must be provided sorted alphabetically ascending based on the `name` value.
 * @property hostHeader Host Header that request origin receives.
 * @property hotlinkProtection Turn on or off the hotlink protection feature.
 * @property id Identifier of the action parameter to modify.
 * @property increment
 * @property matchedData List of properties to configure WAF payload logging.
 * @property mirage Turn on or off Cloudflare Mirage of the Cloudflare Speed app.
 * @property opportunisticEncryption Turn on or off the Cloudflare Opportunistic Encryption feature of the Edge Certificates tab in the Cloudflare SSL/TLS app.
 * @property origin List of properties to change request origin.
 * @property originCacheControl Enable or disable the use of a more compliant Cache Control parsing mechanism, enabled by default for most zones.
 * @property originErrorPagePassthru Pass-through error page for origin.
 * @property overrides List of override configurations to apply to the ruleset.
 * @property phases Point in the request/response lifecycle where the ruleset will be created. Available values: `ddos_l4`, `ddos_l7`, `http_config_settings`, `http_custom_errors`, `http_log_custom_fields`, `http_ratelimit`, `http_request_cache_settings`, `http_request_dynamic_redirect`, `http_request_firewall_custom`, `http_request_firewall_managed`, `http_request_late_transform`, `http_request_origin`, `http_request_redirect`, `http_request_sanitize`, `http_request_sbfm`, `http_request_transform`, `http_response_compression`, `http_response_firewall_managed`, `http_response_headers_transform`, `magic_transit`.
 * @property polish Apply options from the Polish feature of the Cloudflare Speed app.
 * @property products Products to target with the actions. Available values: `bic`, `hot`, `ratelimit`, `securityLevel`, `uablock`, `waf`, `zonelockdown`.
 * @property readTimeout Specifies a maximum timeout for reading content from an origin server.
 * @property requestFields List of request headers to include as part of custom fields logging, in lowercase.
 * @property respectStrongEtags Respect strong ETags.
 * @property responseFields List of response headers to include as part of custom fields logging, in lowercase.
 * @property responses List of parameters that configure the response given to end users.
 * @property rocketLoader Turn on or off Cloudflare Rocket Loader in the Cloudflare Speed app.
 * @property rules Map of managed WAF rule ID to comma-delimited string of ruleset rule IDs. Example: `rules = { "efb7b8c949ac4650a09736fc376e9aee" = "5de7edfa648c4d6891dc3e7f84534ffa,e3a567afc347477d9702d9047e97d760" }`.
 * @property ruleset Which ruleset ID to target.
 * @property rulesets List of managed WAF rule IDs to target. Only valid when the `"action"` is set to skip.
 * @property securityLevel Control options for the Security Level feature from the Security app.
 * @property serveStale List of serve stale parameters to apply to the request.
 * @property serverSideExcludes Turn on or off the Server Side Excludes feature of the Cloudflare Scrape Shield app.
 * @property sni List of properties to manange Server Name Indication.
 * @property ssl Control options for the SSL feature of the Edge Certificates tab in the Cloudflare SSL/TLS app.
 * @property statusCode HTTP status code of the custom error response.
 * @property sxg Turn on or off the SXG feature.
 * @property uri List of URI properties to configure for the ruleset rule when performing URL rewrite transformations.
 * @property version Version of the ruleset to deploy.
 */
public data class RulesetRuleActionParametersArgs(
    public val additionalCacheablePorts: Output>? = null,
    public val algorithms: Output>? = null,
    public val automaticHttpsRewrites: Output? = null,
    public val autominifies: Output>? = null,
    public val bic: Output? = null,
    public val browserTtl: Output? = null,
    public val cache: Output? = null,
    public val cacheKey: Output? = null,
    public val cacheReserve: Output? = null,
    public val content: Output? = null,
    public val contentType: Output? = null,
    public val cookieFields: Output>? = null,
    public val disableApps: Output? = null,
    public val disableRailgun: Output? = null,
    public val disableRum: Output? = null,
    public val disableZaraz: Output? = null,
    public val edgeTtl: Output? = null,
    public val emailObfuscation: Output? = null,
    public val fonts: Output? = null,
    public val fromList: Output? = null,
    public val fromValue: Output? = null,
    public val headers: Output>? = null,
    public val hostHeader: Output? = null,
    public val hotlinkProtection: Output? = null,
    public val id: Output? = null,
    public val increment: Output? = null,
    public val matchedData: Output? = null,
    public val mirage: Output? = null,
    public val opportunisticEncryption: Output? = null,
    public val origin: Output? = null,
    public val originCacheControl: Output? = null,
    public val originErrorPagePassthru: Output? = null,
    public val overrides: Output? = null,
    public val phases: Output>? = null,
    public val polish: Output? = null,
    public val products: Output>? = null,
    public val readTimeout: Output? = null,
    public val requestFields: Output>? = null,
    public val respectStrongEtags: Output? = null,
    public val responseFields: Output>? = null,
    public val responses: Output>? = null,
    public val rocketLoader: Output? = null,
    public val rules: Output>? = null,
    public val ruleset: Output? = null,
    public val rulesets: Output>? = null,
    public val securityLevel: Output? = null,
    public val serveStale: Output? = null,
    public val serverSideExcludes: Output? = null,
    public val sni: Output? = null,
    public val ssl: Output? = null,
    public val statusCode: Output? = null,
    public val sxg: Output? = null,
    public val uri: Output? = null,
    public val version: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.cloudflare.inputs.RulesetRuleActionParametersArgs =
        com.pulumi.cloudflare.inputs.RulesetRuleActionParametersArgs.builder()
            .additionalCacheablePorts(
                additionalCacheablePorts?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0
                    })
                }),
            )
            .algorithms(
                algorithms?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .automaticHttpsRewrites(automaticHttpsRewrites?.applyValue({ args0 -> args0 }))
            .autominifies(
                autominifies?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .bic(bic?.applyValue({ args0 -> args0 }))
            .browserTtl(browserTtl?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .cache(cache?.applyValue({ args0 -> args0 }))
            .cacheKey(cacheKey?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .cacheReserve(cacheReserve?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .content(content?.applyValue({ args0 -> args0 }))
            .contentType(contentType?.applyValue({ args0 -> args0 }))
            .cookieFields(cookieFields?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .disableApps(disableApps?.applyValue({ args0 -> args0 }))
            .disableRailgun(disableRailgun?.applyValue({ args0 -> args0 }))
            .disableRum(disableRum?.applyValue({ args0 -> args0 }))
            .disableZaraz(disableZaraz?.applyValue({ args0 -> args0 }))
            .edgeTtl(edgeTtl?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .emailObfuscation(emailObfuscation?.applyValue({ args0 -> args0 }))
            .fonts(fonts?.applyValue({ args0 -> args0 }))
            .fromList(fromList?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .fromValue(fromValue?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .headers(
                headers?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .hostHeader(hostHeader?.applyValue({ args0 -> args0 }))
            .hotlinkProtection(hotlinkProtection?.applyValue({ args0 -> args0 }))
            .id(id?.applyValue({ args0 -> args0 }))
            .increment(increment?.applyValue({ args0 -> args0 }))
            .matchedData(matchedData?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .mirage(mirage?.applyValue({ args0 -> args0 }))
            .opportunisticEncryption(opportunisticEncryption?.applyValue({ args0 -> args0 }))
            .origin(origin?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .originCacheControl(originCacheControl?.applyValue({ args0 -> args0 }))
            .originErrorPagePassthru(originErrorPagePassthru?.applyValue({ args0 -> args0 }))
            .overrides(overrides?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .phases(phases?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .polish(polish?.applyValue({ args0 -> args0 }))
            .products(products?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .readTimeout(readTimeout?.applyValue({ args0 -> args0 }))
            .requestFields(requestFields?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .respectStrongEtags(respectStrongEtags?.applyValue({ args0 -> args0 }))
            .responseFields(responseFields?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .responses(
                responses?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .rocketLoader(rocketLoader?.applyValue({ args0 -> args0 }))
            .rules(rules?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .ruleset(ruleset?.applyValue({ args0 -> args0 }))
            .rulesets(rulesets?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .securityLevel(securityLevel?.applyValue({ args0 -> args0 }))
            .serveStale(serveStale?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .serverSideExcludes(serverSideExcludes?.applyValue({ args0 -> args0 }))
            .sni(sni?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .ssl(ssl?.applyValue({ args0 -> args0 }))
            .statusCode(statusCode?.applyValue({ args0 -> args0 }))
            .sxg(sxg?.applyValue({ args0 -> args0 }))
            .uri(uri?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .version(version?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [RulesetRuleActionParametersArgs].
 */
@PulumiTagMarker
public class RulesetRuleActionParametersArgsBuilder internal constructor() {
    private var additionalCacheablePorts: Output>? = null

    private var algorithms: Output>? = null

    private var automaticHttpsRewrites: Output? = null

    private var autominifies: Output>? = null

    private var bic: Output? = null

    private var browserTtl: Output? = null

    private var cache: Output? = null

    private var cacheKey: Output? = null

    private var cacheReserve: Output? = null

    private var content: Output? = null

    private var contentType: Output? = null

    private var cookieFields: Output>? = null

    private var disableApps: Output? = null

    private var disableRailgun: Output? = null

    private var disableRum: Output? = null

    private var disableZaraz: Output? = null

    private var edgeTtl: Output? = null

    private var emailObfuscation: Output? = null

    private var fonts: Output? = null

    private var fromList: Output? = null

    private var fromValue: Output? = null

    private var headers: Output>? = null

    private var hostHeader: Output? = null

    private var hotlinkProtection: Output? = null

    private var id: Output? = null

    private var increment: Output? = null

    private var matchedData: Output? = null

    private var mirage: Output? = null

    private var opportunisticEncryption: Output? = null

    private var origin: Output? = null

    private var originCacheControl: Output? = null

    private var originErrorPagePassthru: Output? = null

    private var overrides: Output? = null

    private var phases: Output>? = null

    private var polish: Output? = null

    private var products: Output>? = null

    private var readTimeout: Output? = null

    private var requestFields: Output>? = null

    private var respectStrongEtags: Output? = null

    private var responseFields: Output>? = null

    private var responses: Output>? = null

    private var rocketLoader: Output? = null

    private var rules: Output>? = null

    private var ruleset: Output? = null

    private var rulesets: Output>? = null

    private var securityLevel: Output? = null

    private var serveStale: Output? = null

    private var serverSideExcludes: Output? = null

    private var sni: Output? = null

    private var ssl: Output? = null

    private var statusCode: Output? = null

    private var sxg: Output? = null

    private var uri: Output? = null

    private var version: Output? = null

    /**
     * @param value Specifies uncommon ports to allow cacheable assets to be served from.
     */
    @JvmName("aohfcgbiwbtcrlak")
    public suspend fun additionalCacheablePorts(`value`: Output>) {
        this.additionalCacheablePorts = value
    }

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

    /**
     * @param values Specifies uncommon ports to allow cacheable assets to be served from.
     */
    @JvmName("hyygopivcuwdnlag")
    public suspend fun additionalCacheablePorts(values: List>) {
        this.additionalCacheablePorts = Output.all(values)
    }

    /**
     * @param value Compression algorithms to use in order of preference.
     */
    @JvmName("wopjptkyfjryvfcv")
    public suspend fun algorithms(`value`: Output>) {
        this.algorithms = value
    }

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

    /**
     * @param values Compression algorithms to use in order of preference.
     */
    @JvmName("gmfhnqgjihiwyorb")
    public suspend fun algorithms(values: List>) {
        this.algorithms = Output.all(values)
    }

    /**
     * @param value Turn on or off Cloudflare Automatic HTTPS rewrites.
     */
    @JvmName("sjguvlbpxlcwfyom")
    public suspend fun automaticHttpsRewrites(`value`: Output) {
        this.automaticHttpsRewrites = value
    }

    /**
     * @param value Indicate which file extensions to minify automatically.
     */
    @JvmName("fieevjpjpnjjjcgn")
    public suspend fun autominifies(`value`: Output>) {
        this.autominifies = value
    }

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

    /**
     * @param values Indicate which file extensions to minify automatically.
     */
    @JvmName("hbfgkdisijuaxfou")
    public suspend fun autominifies(values: List>) {
        this.autominifies = Output.all(values)
    }

    /**
     * @param value Inspect the visitor's browser for headers commonly associated with spammers and certain bots.
     */
    @JvmName("faxgxdckqlrudgqk")
    public suspend fun bic(`value`: Output) {
        this.bic = value
    }

    /**
     * @param value List of browser TTL parameters to apply to the request.
     */
    @JvmName("sevnbmptwxcxxohd")
    public suspend fun browserTtl(`value`: Output) {
        this.browserTtl = value
    }

    /**
     * @param value Whether to cache if expression matches.
     */
    @JvmName("yilaquctbhywnhni")
    public suspend fun cache(`value`: Output) {
        this.cache = value
    }

    /**
     * @param value List of cache key parameters to apply to the request.
     */
    @JvmName("bjncqwrikrrilile")
    public suspend fun cacheKey(`value`: Output) {
        this.cacheKey = value
    }

    /**
     * @param value List of cache reserve parameters to apply to the request.
     */
    @JvmName("rhkbdyssxxltsxba")
    public suspend fun cacheReserve(`value`: Output) {
        this.cacheReserve = value
    }

    /**
     * @param value Content of the custom error response.
     */
    @JvmName("isljkupndugggqdt")
    public suspend fun content(`value`: Output) {
        this.content = value
    }

    /**
     * @param value Content-Type of the custom error response.
     */
    @JvmName("sxbsxeykkuqfqnkr")
    public suspend fun contentType(`value`: Output) {
        this.contentType = value
    }

    /**
     * @param value List of cookie values to include as part of custom fields logging.
     */
    @JvmName("deofisptiukpvynh")
    public suspend fun cookieFields(`value`: Output>) {
        this.cookieFields = value
    }

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

    /**
     * @param values List of cookie values to include as part of custom fields logging.
     */
    @JvmName("jiebvywnrxluqrvn")
    public suspend fun cookieFields(values: List>) {
        this.cookieFields = Output.all(values)
    }

    /**
     * @param value Turn off all active Cloudflare Apps.
     */
    @JvmName("hkjjdtgbqexjspdk")
    public suspend fun disableApps(`value`: Output) {
        this.disableApps = value
    }

    /**
     * @param value Turn off railgun feature of the Cloudflare Speed app.
     */
    @JvmName("jkrvmkqdjopqkeoe")
    public suspend fun disableRailgun(`value`: Output) {
        this.disableRailgun = value
    }

    /**
     * @param value Turn off RUM feature.
     */
    @JvmName("cuqpiuskqyinyyfy")
    public suspend fun disableRum(`value`: Output) {
        this.disableRum = value
    }

    /**
     * @param value Turn off zaraz feature.
     */
    @JvmName("cngatermwmuviovg")
    public suspend fun disableZaraz(`value`: Output) {
        this.disableZaraz = value
    }

    /**
     * @param value List of edge TTL parameters to apply to the request.
     */
    @JvmName("ymsebkacfkflglyp")
    public suspend fun edgeTtl(`value`: Output) {
        this.edgeTtl = value
    }

    /**
     * @param value Turn on or off the Cloudflare Email Obfuscation feature of the Cloudflare Scrape Shield app.
     */
    @JvmName("cpgimrignfmovbpp")
    public suspend fun emailObfuscation(`value`: Output) {
        this.emailObfuscation = value
    }

    /**
     * @param value Toggle fonts.
     */
    @JvmName("qdmijbdapskincwp")
    public suspend fun fonts(`value`: Output) {
        this.fonts = value
    }

    /**
     * @param value Use a list to lookup information for the action.
     */
    @JvmName("wyqjcfykqablwjsw")
    public suspend fun fromList(`value`: Output) {
        this.fromList = value
    }

    /**
     * @param value Use a value to lookup information for the action.
     */
    @JvmName("xedykrgidcbywiuf")
    public suspend fun fromValue(`value`: Output) {
        this.fromValue = value
    }

    /**
     * @param value List of HTTP header modifications to perform in the ruleset rule. Note: Headers are order dependent and must be provided sorted alphabetically ascending based on the `name` value.
     */
    @JvmName("mtptcnhgddqamsix")
    public suspend fun headers(`value`: Output>) {
        this.headers = value
    }

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

    /**
     * @param values List of HTTP header modifications to perform in the ruleset rule. Note: Headers are order dependent and must be provided sorted alphabetically ascending based on the `name` value.
     */
    @JvmName("sdywykvvqfaxwagl")
    public suspend fun headers(values: List>) {
        this.headers = Output.all(values)
    }

    /**
     * @param value Host Header that request origin receives.
     */
    @JvmName("ownavvvmxufuayqy")
    public suspend fun hostHeader(`value`: Output) {
        this.hostHeader = value
    }

    /**
     * @param value Turn on or off the hotlink protection feature.
     */
    @JvmName("nmqmvueijwntneta")
    public suspend fun hotlinkProtection(`value`: Output) {
        this.hotlinkProtection = value
    }

    /**
     * @param value Identifier of the action parameter to modify.
     */
    @JvmName("bvvosldvhgrlarcu")
    public suspend fun id(`value`: Output) {
        this.id = value
    }

    /**
     * @param value
     */
    @JvmName("sukqwgtjgsltonku")
    public suspend fun increment(`value`: Output) {
        this.increment = value
    }

    /**
     * @param value List of properties to configure WAF payload logging.
     */
    @JvmName("ptrkfuwtdohwiuwl")
    public suspend fun matchedData(`value`: Output) {
        this.matchedData = value
    }

    /**
     * @param value Turn on or off Cloudflare Mirage of the Cloudflare Speed app.
     */
    @JvmName("kscyxfpoahqpsfnw")
    public suspend fun mirage(`value`: Output) {
        this.mirage = value
    }

    /**
     * @param value Turn on or off the Cloudflare Opportunistic Encryption feature of the Edge Certificates tab in the Cloudflare SSL/TLS app.
     */
    @JvmName("qthsaqxhgnpidsjh")
    public suspend fun opportunisticEncryption(`value`: Output) {
        this.opportunisticEncryption = value
    }

    /**
     * @param value List of properties to change request origin.
     */
    @JvmName("lkbslgmovrhhnbys")
    public suspend fun origin(`value`: Output) {
        this.origin = value
    }

    /**
     * @param value Enable or disable the use of a more compliant Cache Control parsing mechanism, enabled by default for most zones.
     */
    @JvmName("obxuvyuuqgumrwax")
    public suspend fun originCacheControl(`value`: Output) {
        this.originCacheControl = value
    }

    /**
     * @param value Pass-through error page for origin.
     */
    @JvmName("tnvakbrrjwjnimws")
    public suspend fun originErrorPagePassthru(`value`: Output) {
        this.originErrorPagePassthru = value
    }

    /**
     * @param value List of override configurations to apply to the ruleset.
     */
    @JvmName("cmyafpurnvtydcaa")
    public suspend fun overrides(`value`: Output) {
        this.overrides = value
    }

    /**
     * @param value Point in the request/response lifecycle where the ruleset will be created. Available values: `ddos_l4`, `ddos_l7`, `http_config_settings`, `http_custom_errors`, `http_log_custom_fields`, `http_ratelimit`, `http_request_cache_settings`, `http_request_dynamic_redirect`, `http_request_firewall_custom`, `http_request_firewall_managed`, `http_request_late_transform`, `http_request_origin`, `http_request_redirect`, `http_request_sanitize`, `http_request_sbfm`, `http_request_transform`, `http_response_compression`, `http_response_firewall_managed`, `http_response_headers_transform`, `magic_transit`.
     */
    @JvmName("uwgafdspntyvcaaf")
    public suspend fun phases(`value`: Output>) {
        this.phases = value
    }

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

    /**
     * @param values Point in the request/response lifecycle where the ruleset will be created. Available values: `ddos_l4`, `ddos_l7`, `http_config_settings`, `http_custom_errors`, `http_log_custom_fields`, `http_ratelimit`, `http_request_cache_settings`, `http_request_dynamic_redirect`, `http_request_firewall_custom`, `http_request_firewall_managed`, `http_request_late_transform`, `http_request_origin`, `http_request_redirect`, `http_request_sanitize`, `http_request_sbfm`, `http_request_transform`, `http_response_compression`, `http_response_firewall_managed`, `http_response_headers_transform`, `magic_transit`.
     */
    @JvmName("pqlqxbcegcojdhru")
    public suspend fun phases(values: List>) {
        this.phases = Output.all(values)
    }

    /**
     * @param value Apply options from the Polish feature of the Cloudflare Speed app.
     */
    @JvmName("owmibsglfbkfetxc")
    public suspend fun polish(`value`: Output) {
        this.polish = value
    }

    /**
     * @param value Products to target with the actions. Available values: `bic`, `hot`, `ratelimit`, `securityLevel`, `uablock`, `waf`, `zonelockdown`.
     */
    @JvmName("wwtjqgdnlhbgpdwn")
    public suspend fun products(`value`: Output>) {
        this.products = value
    }

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

    /**
     * @param values Products to target with the actions. Available values: `bic`, `hot`, `ratelimit`, `securityLevel`, `uablock`, `waf`, `zonelockdown`.
     */
    @JvmName("gfwayhtamsucekdh")
    public suspend fun products(values: List>) {
        this.products = Output.all(values)
    }

    /**
     * @param value Specifies a maximum timeout for reading content from an origin server.
     */
    @JvmName("xfrcvvdxmucfjfej")
    public suspend fun readTimeout(`value`: Output) {
        this.readTimeout = value
    }

    /**
     * @param value List of request headers to include as part of custom fields logging, in lowercase.
     */
    @JvmName("mvgaafpyhybinlaq")
    public suspend fun requestFields(`value`: Output>) {
        this.requestFields = value
    }

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

    /**
     * @param values List of request headers to include as part of custom fields logging, in lowercase.
     */
    @JvmName("kofoxynfcstbxkmr")
    public suspend fun requestFields(values: List>) {
        this.requestFields = Output.all(values)
    }

    /**
     * @param value Respect strong ETags.
     */
    @JvmName("cmcsqprqithglnum")
    public suspend fun respectStrongEtags(`value`: Output) {
        this.respectStrongEtags = value
    }

    /**
     * @param value List of response headers to include as part of custom fields logging, in lowercase.
     */
    @JvmName("gvthjybnxicsqabc")
    public suspend fun responseFields(`value`: Output>) {
        this.responseFields = value
    }

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

    /**
     * @param values List of response headers to include as part of custom fields logging, in lowercase.
     */
    @JvmName("sbvfuhpnauheulsa")
    public suspend fun responseFields(values: List>) {
        this.responseFields = Output.all(values)
    }

    /**
     * @param value List of parameters that configure the response given to end users.
     */
    @JvmName("ugddtcfdosgjtcoo")
    public suspend fun responses(`value`: Output>) {
        this.responses = value
    }

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

    /**
     * @param values List of parameters that configure the response given to end users.
     */
    @JvmName("exdbenfeyyowcfbb")
    public suspend fun responses(values: List>) {
        this.responses = Output.all(values)
    }

    /**
     * @param value Turn on or off Cloudflare Rocket Loader in the Cloudflare Speed app.
     */
    @JvmName("bordiamslptmsjgr")
    public suspend fun rocketLoader(`value`: Output) {
        this.rocketLoader = value
    }

    /**
     * @param value Map of managed WAF rule ID to comma-delimited string of ruleset rule IDs. Example: `rules = { "efb7b8c949ac4650a09736fc376e9aee" = "5de7edfa648c4d6891dc3e7f84534ffa,e3a567afc347477d9702d9047e97d760" }`.
     */
    @JvmName("jtjonpsouojwnnus")
    public suspend fun rules(`value`: Output>) {
        this.rules = value
    }

    /**
     * @param value Which ruleset ID to target.
     */
    @JvmName("kfmxlgfdgsjiqvmc")
    public suspend fun ruleset(`value`: Output) {
        this.ruleset = value
    }

    /**
     * @param value List of managed WAF rule IDs to target. Only valid when the `"action"` is set to skip.
     */
    @JvmName("wkadvbfqjwwckddr")
    public suspend fun rulesets(`value`: Output>) {
        this.rulesets = value
    }

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

    /**
     * @param values List of managed WAF rule IDs to target. Only valid when the `"action"` is set to skip.
     */
    @JvmName("vnbguqcfniqxdcas")
    public suspend fun rulesets(values: List>) {
        this.rulesets = Output.all(values)
    }

    /**
     * @param value Control options for the Security Level feature from the Security app.
     */
    @JvmName("grfkhjwsxrtyrbqx")
    public suspend fun securityLevel(`value`: Output) {
        this.securityLevel = value
    }

    /**
     * @param value List of serve stale parameters to apply to the request.
     */
    @JvmName("bdjexsmadaodespr")
    public suspend fun serveStale(`value`: Output) {
        this.serveStale = value
    }

    /**
     * @param value Turn on or off the Server Side Excludes feature of the Cloudflare Scrape Shield app.
     */
    @JvmName("sgywbadrtvqojhst")
    public suspend fun serverSideExcludes(`value`: Output) {
        this.serverSideExcludes = value
    }

    /**
     * @param value List of properties to manange Server Name Indication.
     */
    @JvmName("aplebljtytykwjqi")
    public suspend fun sni(`value`: Output) {
        this.sni = value
    }

    /**
     * @param value Control options for the SSL feature of the Edge Certificates tab in the Cloudflare SSL/TLS app.
     */
    @JvmName("gcocxxasieiuewtg")
    public suspend fun ssl(`value`: Output) {
        this.ssl = value
    }

    /**
     * @param value HTTP status code of the custom error response.
     */
    @JvmName("vojssocpnehbhpmj")
    public suspend fun statusCode(`value`: Output) {
        this.statusCode = value
    }

    /**
     * @param value Turn on or off the SXG feature.
     */
    @JvmName("jaaxtbpsfyggftbw")
    public suspend fun sxg(`value`: Output) {
        this.sxg = value
    }

    /**
     * @param value List of URI properties to configure for the ruleset rule when performing URL rewrite transformations.
     */
    @JvmName("lyhhpexegxaifwkl")
    public suspend fun uri(`value`: Output) {
        this.uri = value
    }

    /**
     * @param value Version of the ruleset to deploy.
     */
    @JvmName("tvndhwkoftvnujxn")
    public suspend fun version(`value`: Output) {
        this.version = value
    }

    /**
     * @param value Specifies uncommon ports to allow cacheable assets to be served from.
     */
    @JvmName("nyhfrklpvthrobsd")
    public suspend fun additionalCacheablePorts(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.additionalCacheablePorts = mapped
    }

    /**
     * @param values Specifies uncommon ports to allow cacheable assets to be served from.
     */
    @JvmName("flvnpymkixbfscue")
    public suspend fun additionalCacheablePorts(vararg values: Int) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.additionalCacheablePorts = mapped
    }

    /**
     * @param value Compression algorithms to use in order of preference.
     */
    @JvmName("tpvumpwewqaakjga")
    public suspend fun algorithms(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.algorithms = mapped
    }

    /**
     * @param argument Compression algorithms to use in order of preference.
     */
    @JvmName("hsqpsfliufvlaurf")
    public suspend fun algorithms(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            RulesetRuleActionParametersAlgorithmArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.algorithms = mapped
    }

    /**
     * @param argument Compression algorithms to use in order of preference.
     */
    @JvmName("wfhcgnwrkqhmdwjx")
    public suspend fun algorithms(vararg argument: suspend RulesetRuleActionParametersAlgorithmArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            RulesetRuleActionParametersAlgorithmArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.algorithms = mapped
    }

    /**
     * @param argument Compression algorithms to use in order of preference.
     */
    @JvmName("gnnetjjayogrxhfg")
    public suspend fun algorithms(argument: suspend RulesetRuleActionParametersAlgorithmArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            RulesetRuleActionParametersAlgorithmArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.algorithms = mapped
    }

    /**
     * @param values Compression algorithms to use in order of preference.
     */
    @JvmName("ivsgnudmewvhbimq")
    public suspend fun algorithms(vararg values: RulesetRuleActionParametersAlgorithmArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.algorithms = mapped
    }

    /**
     * @param value Turn on or off Cloudflare Automatic HTTPS rewrites.
     */
    @JvmName("eifqjvsofhkbdqik")
    public suspend fun automaticHttpsRewrites(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.automaticHttpsRewrites = mapped
    }

    /**
     * @param value Indicate which file extensions to minify automatically.
     */
    @JvmName("xijlcypxlltipily")
    public suspend fun autominifies(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.autominifies = mapped
    }

    /**
     * @param argument Indicate which file extensions to minify automatically.
     */
    @JvmName("nopjysbvyypriibd")
    public suspend fun autominifies(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            RulesetRuleActionParametersAutominifyArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.autominifies = mapped
    }

    /**
     * @param argument Indicate which file extensions to minify automatically.
     */
    @JvmName("hvuybojgkwgcaupe")
    public suspend fun autominifies(vararg argument: suspend RulesetRuleActionParametersAutominifyArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            RulesetRuleActionParametersAutominifyArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.autominifies = mapped
    }

    /**
     * @param argument Indicate which file extensions to minify automatically.
     */
    @JvmName("idvwfikqngohtvii")
    public suspend fun autominifies(argument: suspend RulesetRuleActionParametersAutominifyArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            RulesetRuleActionParametersAutominifyArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.autominifies = mapped
    }

    /**
     * @param values Indicate which file extensions to minify automatically.
     */
    @JvmName("qpptagbkhhbyokws")
    public suspend fun autominifies(vararg values: RulesetRuleActionParametersAutominifyArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.autominifies = mapped
    }

    /**
     * @param value Inspect the visitor's browser for headers commonly associated with spammers and certain bots.
     */
    @JvmName("xwndahsqdtcfsish")
    public suspend fun bic(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.bic = mapped
    }

    /**
     * @param value List of browser TTL parameters to apply to the request.
     */
    @JvmName("wqdcpjtjmbfeubvc")
    public suspend fun browserTtl(`value`: RulesetRuleActionParametersBrowserTtlArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.browserTtl = mapped
    }

    /**
     * @param argument List of browser TTL parameters to apply to the request.
     */
    @JvmName("ifrhdounclolvjvx")
    public suspend fun browserTtl(argument: suspend RulesetRuleActionParametersBrowserTtlArgsBuilder.() -> Unit) {
        val toBeMapped = RulesetRuleActionParametersBrowserTtlArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.browserTtl = mapped
    }

    /**
     * @param value Whether to cache if expression matches.
     */
    @JvmName("gkaksbkufrtfcrnh")
    public suspend fun cache(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cache = mapped
    }

    /**
     * @param value List of cache key parameters to apply to the request.
     */
    @JvmName("kdchgfstgjrwggux")
    public suspend fun cacheKey(`value`: RulesetRuleActionParametersCacheKeyArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cacheKey = mapped
    }

    /**
     * @param argument List of cache key parameters to apply to the request.
     */
    @JvmName("fkpwthxiyjkwurks")
    public suspend fun cacheKey(argument: suspend RulesetRuleActionParametersCacheKeyArgsBuilder.() -> Unit) {
        val toBeMapped = RulesetRuleActionParametersCacheKeyArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.cacheKey = mapped
    }

    /**
     * @param value List of cache reserve parameters to apply to the request.
     */
    @JvmName("hvkeilyrjnthwpfo")
    public suspend fun cacheReserve(`value`: RulesetRuleActionParametersCacheReserveArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cacheReserve = mapped
    }

    /**
     * @param argument List of cache reserve parameters to apply to the request.
     */
    @JvmName("strqmapkvjqhxnhj")
    public suspend fun cacheReserve(argument: suspend RulesetRuleActionParametersCacheReserveArgsBuilder.() -> Unit) {
        val toBeMapped = RulesetRuleActionParametersCacheReserveArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.cacheReserve = mapped
    }

    /**
     * @param value Content of the custom error response.
     */
    @JvmName("qgmvjockjncttjus")
    public suspend fun content(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.content = mapped
    }

    /**
     * @param value Content-Type of the custom error response.
     */
    @JvmName("teyodxeiieseypnq")
    public suspend fun contentType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.contentType = mapped
    }

    /**
     * @param value List of cookie values to include as part of custom fields logging.
     */
    @JvmName("atqyychxuyqgyvur")
    public suspend fun cookieFields(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cookieFields = mapped
    }

    /**
     * @param values List of cookie values to include as part of custom fields logging.
     */
    @JvmName("qnpkqbpdrtkyuejj")
    public suspend fun cookieFields(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.cookieFields = mapped
    }

    /**
     * @param value Turn off all active Cloudflare Apps.
     */
    @JvmName("coqgaxprbsoivrae")
    public suspend fun disableApps(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.disableApps = mapped
    }

    /**
     * @param value Turn off railgun feature of the Cloudflare Speed app.
     */
    @JvmName("rscisfnkkmolwakl")
    public suspend fun disableRailgun(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.disableRailgun = mapped
    }

    /**
     * @param value Turn off RUM feature.
     */
    @JvmName("plqxrariwrfbgqxe")
    public suspend fun disableRum(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.disableRum = mapped
    }

    /**
     * @param value Turn off zaraz feature.
     */
    @JvmName("eptavhpxnfijlmcr")
    public suspend fun disableZaraz(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.disableZaraz = mapped
    }

    /**
     * @param value List of edge TTL parameters to apply to the request.
     */
    @JvmName("ijkuxkwmfiuafdoe")
    public suspend fun edgeTtl(`value`: RulesetRuleActionParametersEdgeTtlArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.edgeTtl = mapped
    }

    /**
     * @param argument List of edge TTL parameters to apply to the request.
     */
    @JvmName("rvhrtmwkxywrfbtt")
    public suspend fun edgeTtl(argument: suspend RulesetRuleActionParametersEdgeTtlArgsBuilder.() -> Unit) {
        val toBeMapped = RulesetRuleActionParametersEdgeTtlArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.edgeTtl = mapped
    }

    /**
     * @param value Turn on or off the Cloudflare Email Obfuscation feature of the Cloudflare Scrape Shield app.
     */
    @JvmName("rtpdphgvwjhmchpr")
    public suspend fun emailObfuscation(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.emailObfuscation = mapped
    }

    /**
     * @param value Toggle fonts.
     */
    @JvmName("pskyqtfhovyqjqha")
    public suspend fun fonts(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.fonts = mapped
    }

    /**
     * @param value Use a list to lookup information for the action.
     */
    @JvmName("nyfuadydmteiffwr")
    public suspend fun fromList(`value`: RulesetRuleActionParametersFromListArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.fromList = mapped
    }

    /**
     * @param argument Use a list to lookup information for the action.
     */
    @JvmName("ccjcjkfbvbplmmqm")
    public suspend fun fromList(argument: suspend RulesetRuleActionParametersFromListArgsBuilder.() -> Unit) {
        val toBeMapped = RulesetRuleActionParametersFromListArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.fromList = mapped
    }

    /**
     * @param value Use a value to lookup information for the action.
     */
    @JvmName("cgiaoyirvsfienod")
    public suspend fun fromValue(`value`: RulesetRuleActionParametersFromValueArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.fromValue = mapped
    }

    /**
     * @param argument Use a value to lookup information for the action.
     */
    @JvmName("khweykiywbnhucal")
    public suspend fun fromValue(argument: suspend RulesetRuleActionParametersFromValueArgsBuilder.() -> Unit) {
        val toBeMapped = RulesetRuleActionParametersFromValueArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.fromValue = mapped
    }

    /**
     * @param value List of HTTP header modifications to perform in the ruleset rule. Note: Headers are order dependent and must be provided sorted alphabetically ascending based on the `name` value.
     */
    @JvmName("wjfblvfpgmeyvtwf")
    public suspend fun headers(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.headers = mapped
    }

    /**
     * @param argument List of HTTP header modifications to perform in the ruleset rule. Note: Headers are order dependent and must be provided sorted alphabetically ascending based on the `name` value.
     */
    @JvmName("ikyrrkfnwblndrwj")
    public suspend fun headers(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            RulesetRuleActionParametersHeaderArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.headers = mapped
    }

    /**
     * @param argument List of HTTP header modifications to perform in the ruleset rule. Note: Headers are order dependent and must be provided sorted alphabetically ascending based on the `name` value.
     */
    @JvmName("cmnaenoiqsspmmbf")
    public suspend fun headers(vararg argument: suspend RulesetRuleActionParametersHeaderArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            RulesetRuleActionParametersHeaderArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.headers = mapped
    }

    /**
     * @param argument List of HTTP header modifications to perform in the ruleset rule. Note: Headers are order dependent and must be provided sorted alphabetically ascending based on the `name` value.
     */
    @JvmName("hfbvnuqxlnvnoxya")
    public suspend fun headers(argument: suspend RulesetRuleActionParametersHeaderArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            RulesetRuleActionParametersHeaderArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.headers = mapped
    }

    /**
     * @param values List of HTTP header modifications to perform in the ruleset rule. Note: Headers are order dependent and must be provided sorted alphabetically ascending based on the `name` value.
     */
    @JvmName("qbcwpgpxmulxhbrj")
    public suspend fun headers(vararg values: RulesetRuleActionParametersHeaderArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.headers = mapped
    }

    /**
     * @param value Host Header that request origin receives.
     */
    @JvmName("jemonqxobmxjvkge")
    public suspend fun hostHeader(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.hostHeader = mapped
    }

    /**
     * @param value Turn on or off the hotlink protection feature.
     */
    @JvmName("xbfflgefltvprkxi")
    public suspend fun hotlinkProtection(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.hotlinkProtection = mapped
    }

    /**
     * @param value Identifier of the action parameter to modify.
     */
    @JvmName("pguujbkjhcgchmnu")
    public suspend fun id(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.id = mapped
    }

    /**
     * @param value
     */
    @JvmName("qfgoqtnifuphqreo")
    public suspend fun increment(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.increment = mapped
    }

    /**
     * @param value List of properties to configure WAF payload logging.
     */
    @JvmName("tjfrvyybickspmek")
    public suspend fun matchedData(`value`: RulesetRuleActionParametersMatchedDataArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.matchedData = mapped
    }

    /**
     * @param argument List of properties to configure WAF payload logging.
     */
    @JvmName("vosxgwojbmjyntjk")
    public suspend fun matchedData(argument: suspend RulesetRuleActionParametersMatchedDataArgsBuilder.() -> Unit) {
        val toBeMapped = RulesetRuleActionParametersMatchedDataArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.matchedData = mapped
    }

    /**
     * @param value Turn on or off Cloudflare Mirage of the Cloudflare Speed app.
     */
    @JvmName("xlseeakodeshrmcs")
    public suspend fun mirage(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.mirage = mapped
    }

    /**
     * @param value Turn on or off the Cloudflare Opportunistic Encryption feature of the Edge Certificates tab in the Cloudflare SSL/TLS app.
     */
    @JvmName("htxgdveghjipiceg")
    public suspend fun opportunisticEncryption(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.opportunisticEncryption = mapped
    }

    /**
     * @param value List of properties to change request origin.
     */
    @JvmName("ekamwlrodyrhnvse")
    public suspend fun origin(`value`: RulesetRuleActionParametersOriginArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.origin = mapped
    }

    /**
     * @param argument List of properties to change request origin.
     */
    @JvmName("iosxersptbxnvpfu")
    public suspend fun origin(argument: suspend RulesetRuleActionParametersOriginArgsBuilder.() -> Unit) {
        val toBeMapped = RulesetRuleActionParametersOriginArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.origin = mapped
    }

    /**
     * @param value Enable or disable the use of a more compliant Cache Control parsing mechanism, enabled by default for most zones.
     */
    @JvmName("udyigqjdvrhnhpmp")
    public suspend fun originCacheControl(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.originCacheControl = mapped
    }

    /**
     * @param value Pass-through error page for origin.
     */
    @JvmName("mdhoxwxxubkmtlkn")
    public suspend fun originErrorPagePassthru(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.originErrorPagePassthru = mapped
    }

    /**
     * @param value List of override configurations to apply to the ruleset.
     */
    @JvmName("tmmxhwhyyavsjrmb")
    public suspend fun overrides(`value`: RulesetRuleActionParametersOverridesArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.overrides = mapped
    }

    /**
     * @param argument List of override configurations to apply to the ruleset.
     */
    @JvmName("iqwjwualmlrqlheg")
    public suspend fun overrides(argument: suspend RulesetRuleActionParametersOverridesArgsBuilder.() -> Unit) {
        val toBeMapped = RulesetRuleActionParametersOverridesArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.overrides = mapped
    }

    /**
     * @param value Point in the request/response lifecycle where the ruleset will be created. Available values: `ddos_l4`, `ddos_l7`, `http_config_settings`, `http_custom_errors`, `http_log_custom_fields`, `http_ratelimit`, `http_request_cache_settings`, `http_request_dynamic_redirect`, `http_request_firewall_custom`, `http_request_firewall_managed`, `http_request_late_transform`, `http_request_origin`, `http_request_redirect`, `http_request_sanitize`, `http_request_sbfm`, `http_request_transform`, `http_response_compression`, `http_response_firewall_managed`, `http_response_headers_transform`, `magic_transit`.
     */
    @JvmName("opxolqtgfyhnsmdd")
    public suspend fun phases(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.phases = mapped
    }

    /**
     * @param values Point in the request/response lifecycle where the ruleset will be created. Available values: `ddos_l4`, `ddos_l7`, `http_config_settings`, `http_custom_errors`, `http_log_custom_fields`, `http_ratelimit`, `http_request_cache_settings`, `http_request_dynamic_redirect`, `http_request_firewall_custom`, `http_request_firewall_managed`, `http_request_late_transform`, `http_request_origin`, `http_request_redirect`, `http_request_sanitize`, `http_request_sbfm`, `http_request_transform`, `http_response_compression`, `http_response_firewall_managed`, `http_response_headers_transform`, `magic_transit`.
     */
    @JvmName("yhddelylesvwgseb")
    public suspend fun phases(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.phases = mapped
    }

    /**
     * @param value Apply options from the Polish feature of the Cloudflare Speed app.
     */
    @JvmName("xivsoqqjchxvjjsk")
    public suspend fun polish(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.polish = mapped
    }

    /**
     * @param value Products to target with the actions. Available values: `bic`, `hot`, `ratelimit`, `securityLevel`, `uablock`, `waf`, `zonelockdown`.
     */
    @JvmName("rdvlshmlfxsthoid")
    public suspend fun products(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.products = mapped
    }

    /**
     * @param values Products to target with the actions. Available values: `bic`, `hot`, `ratelimit`, `securityLevel`, `uablock`, `waf`, `zonelockdown`.
     */
    @JvmName("hlbtogekycfpyvmy")
    public suspend fun products(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.products = mapped
    }

    /**
     * @param value Specifies a maximum timeout for reading content from an origin server.
     */
    @JvmName("gymxkrjdvpbyqpwd")
    public suspend fun readTimeout(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.readTimeout = mapped
    }

    /**
     * @param value List of request headers to include as part of custom fields logging, in lowercase.
     */
    @JvmName("lbljbnjrdwmuudvy")
    public suspend fun requestFields(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.requestFields = mapped
    }

    /**
     * @param values List of request headers to include as part of custom fields logging, in lowercase.
     */
    @JvmName("umxpwrabrywsbomb")
    public suspend fun requestFields(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.requestFields = mapped
    }

    /**
     * @param value Respect strong ETags.
     */
    @JvmName("fyesbungdomoekkb")
    public suspend fun respectStrongEtags(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.respectStrongEtags = mapped
    }

    /**
     * @param value List of response headers to include as part of custom fields logging, in lowercase.
     */
    @JvmName("jqegpljrnfwfftnt")
    public suspend fun responseFields(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.responseFields = mapped
    }

    /**
     * @param values List of response headers to include as part of custom fields logging, in lowercase.
     */
    @JvmName("fwprebrtdinrcmkj")
    public suspend fun responseFields(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.responseFields = mapped
    }

    /**
     * @param value List of parameters that configure the response given to end users.
     */
    @JvmName("rkpqmyeygwximkxt")
    public suspend fun responses(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.responses = mapped
    }

    /**
     * @param argument List of parameters that configure the response given to end users.
     */
    @JvmName("gaeytwfeuvipnhpp")
    public suspend fun responses(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            RulesetRuleActionParametersResponseArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.responses = mapped
    }

    /**
     * @param argument List of parameters that configure the response given to end users.
     */
    @JvmName("qrogwpgwhetupfee")
    public suspend fun responses(vararg argument: suspend RulesetRuleActionParametersResponseArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            RulesetRuleActionParametersResponseArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.responses = mapped
    }

    /**
     * @param argument List of parameters that configure the response given to end users.
     */
    @JvmName("bthcyxqusdqhsmmi")
    public suspend fun responses(argument: suspend RulesetRuleActionParametersResponseArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            RulesetRuleActionParametersResponseArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.responses = mapped
    }

    /**
     * @param values List of parameters that configure the response given to end users.
     */
    @JvmName("rmafhegqldcpepqh")
    public suspend fun responses(vararg values: RulesetRuleActionParametersResponseArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.responses = mapped
    }

    /**
     * @param value Turn on or off Cloudflare Rocket Loader in the Cloudflare Speed app.
     */
    @JvmName("iowwiinduluepsad")
    public suspend fun rocketLoader(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.rocketLoader = mapped
    }

    /**
     * @param value Map of managed WAF rule ID to comma-delimited string of ruleset rule IDs. Example: `rules = { "efb7b8c949ac4650a09736fc376e9aee" = "5de7edfa648c4d6891dc3e7f84534ffa,e3a567afc347477d9702d9047e97d760" }`.
     */
    @JvmName("crnsjtlssjjwalcp")
    public suspend fun rules(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.rules = mapped
    }

    /**
     * @param values Map of managed WAF rule ID to comma-delimited string of ruleset rule IDs. Example: `rules = { "efb7b8c949ac4650a09736fc376e9aee" = "5de7edfa648c4d6891dc3e7f84534ffa,e3a567afc347477d9702d9047e97d760" }`.
     */
    @JvmName("biaepkldvyqsavyu")
    public fun rules(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.rules = mapped
    }

    /**
     * @param value Which ruleset ID to target.
     */
    @JvmName("iqtrbieqcjsqkflw")
    public suspend fun ruleset(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ruleset = mapped
    }

    /**
     * @param value List of managed WAF rule IDs to target. Only valid when the `"action"` is set to skip.
     */
    @JvmName("nsvxjthyjdaqadyd")
    public suspend fun rulesets(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.rulesets = mapped
    }

    /**
     * @param values List of managed WAF rule IDs to target. Only valid when the `"action"` is set to skip.
     */
    @JvmName("bbjfhlqobneywowg")
    public suspend fun rulesets(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.rulesets = mapped
    }

    /**
     * @param value Control options for the Security Level feature from the Security app.
     */
    @JvmName("gmquctsabvugvuta")
    public suspend fun securityLevel(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.securityLevel = mapped
    }

    /**
     * @param value List of serve stale parameters to apply to the request.
     */
    @JvmName("xviiunrnykhymewh")
    public suspend fun serveStale(`value`: RulesetRuleActionParametersServeStaleArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.serveStale = mapped
    }

    /**
     * @param argument List of serve stale parameters to apply to the request.
     */
    @JvmName("egjqjexgcigrgehg")
    public suspend fun serveStale(argument: suspend RulesetRuleActionParametersServeStaleArgsBuilder.() -> Unit) {
        val toBeMapped = RulesetRuleActionParametersServeStaleArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.serveStale = mapped
    }

    /**
     * @param value Turn on or off the Server Side Excludes feature of the Cloudflare Scrape Shield app.
     */
    @JvmName("nhmxvxnshfaqtaor")
    public suspend fun serverSideExcludes(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.serverSideExcludes = mapped
    }

    /**
     * @param value List of properties to manange Server Name Indication.
     */
    @JvmName("ylivyjmnqvwmciwr")
    public suspend fun sni(`value`: RulesetRuleActionParametersSniArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sni = mapped
    }

    /**
     * @param argument List of properties to manange Server Name Indication.
     */
    @JvmName("jofoldfuthxqmijq")
    public suspend fun sni(argument: suspend RulesetRuleActionParametersSniArgsBuilder.() -> Unit) {
        val toBeMapped = RulesetRuleActionParametersSniArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.sni = mapped
    }

    /**
     * @param value Control options for the SSL feature of the Edge Certificates tab in the Cloudflare SSL/TLS app.
     */
    @JvmName("wlhujistlcikutrv")
    public suspend fun ssl(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ssl = mapped
    }

    /**
     * @param value HTTP status code of the custom error response.
     */
    @JvmName("ffdhsvuesyjgcrsp")
    public suspend fun statusCode(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.statusCode = mapped
    }

    /**
     * @param value Turn on or off the SXG feature.
     */
    @JvmName("wissscfscnmtdkvm")
    public suspend fun sxg(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sxg = mapped
    }

    /**
     * @param value List of URI properties to configure for the ruleset rule when performing URL rewrite transformations.
     */
    @JvmName("dphxwuhivfcbgvot")
    public suspend fun uri(`value`: RulesetRuleActionParametersUriArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.uri = mapped
    }

    /**
     * @param argument List of URI properties to configure for the ruleset rule when performing URL rewrite transformations.
     */
    @JvmName("ixfxdaaimldyjwtq")
    public suspend fun uri(argument: suspend RulesetRuleActionParametersUriArgsBuilder.() -> Unit) {
        val toBeMapped = RulesetRuleActionParametersUriArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.uri = mapped
    }

    /**
     * @param value Version of the ruleset to deploy.
     */
    @JvmName("ftdtitrdirebiljn")
    public suspend fun version(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.version = mapped
    }

    internal fun build(): RulesetRuleActionParametersArgs = RulesetRuleActionParametersArgs(
        additionalCacheablePorts = additionalCacheablePorts,
        algorithms = algorithms,
        automaticHttpsRewrites = automaticHttpsRewrites,
        autominifies = autominifies,
        bic = bic,
        browserTtl = browserTtl,
        cache = cache,
        cacheKey = cacheKey,
        cacheReserve = cacheReserve,
        content = content,
        contentType = contentType,
        cookieFields = cookieFields,
        disableApps = disableApps,
        disableRailgun = disableRailgun,
        disableRum = disableRum,
        disableZaraz = disableZaraz,
        edgeTtl = edgeTtl,
        emailObfuscation = emailObfuscation,
        fonts = fonts,
        fromList = fromList,
        fromValue = fromValue,
        headers = headers,
        hostHeader = hostHeader,
        hotlinkProtection = hotlinkProtection,
        id = id,
        increment = increment,
        matchedData = matchedData,
        mirage = mirage,
        opportunisticEncryption = opportunisticEncryption,
        origin = origin,
        originCacheControl = originCacheControl,
        originErrorPagePassthru = originErrorPagePassthru,
        overrides = overrides,
        phases = phases,
        polish = polish,
        products = products,
        readTimeout = readTimeout,
        requestFields = requestFields,
        respectStrongEtags = respectStrongEtags,
        responseFields = responseFields,
        responses = responses,
        rocketLoader = rocketLoader,
        rules = rules,
        ruleset = ruleset,
        rulesets = rulesets,
        securityLevel = securityLevel,
        serveStale = serveStale,
        serverSideExcludes = serverSideExcludes,
        sni = sni,
        ssl = ssl,
        statusCode = statusCode,
        sxg = sxg,
        uri = uri,
        version = version,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy