{"command":{"effect":"write","timeoutSeconds":30,"inputSchema":{"type":"object","description":"Updates an account entry point ruleset, creating a new version.","properties":{"path":{"type":"object","properties":{"ruleset_phase":{"$ref":"#/definitions/rulesets_RulesetPhase"},"account_id":{"$ref":"#/definitions/rulesets_AccountId"}},"required":["ruleset_phase","account_id"],"additionalProperties":false},"query":{"type":"object","properties":{"dry_run":{"type":"boolean","default":false,"description":"Validates the request without persisting changes when set to `true`. Responses that normally return 200 return `result: null`; endpoints that normally return 204 continue to return 204."}},"required":[],"additionalProperties":false},"body":{"allOf":[{"$ref":"#/definitions/rulesets_Ruleset"},{"properties":{"rules":{"$ref":"#/definitions/rulesets_RequestRules"}},"type":"object"}]}},"required":["path","body"],"additionalProperties":false,"definitions":{"rulesets_RulesetPhase":{"description":"The phase of the ruleset.","type":"string","enum":["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_cache_settings","http_response_compression","http_response_firewall_custom","http_response_firewall_managed","http_response_headers_transform","magic_transit","magic_transit_ids_managed","magic_transit_managed","magic_transit_ratelimit"],"title":"Phase","examples":["http_request_firewall_custom"]},"rulesets_AccountId":{"description":"The unique ID of the account.","type":"string","pattern":"^[0-9a-f]{32}$","title":"Account ID","examples":["abf9b32d38c5f572afde3336ec0ce302"]},"rulesets_Ruleset":{"description":"A ruleset object.","type":"object","properties":{"description":{"description":"An informative description of the ruleset.","type":"string","default":"","title":"Description","examples":["A description for my ruleset."]},"id":{"allOf":[{"$ref":"#/definitions/rulesets_RulesetId"},{"type":"string"}]},"name":{"description":"The human-readable name of the ruleset.","type":"string","minLength":1,"title":"Name","examples":["My ruleset"]}},"required":["id"],"title":"Ruleset"},"rulesets_RequestRules":{"description":"The list of rules in the ruleset.","type":"array","items":{"$ref":"#/definitions/rulesets_RequestRule"},"default":[],"title":"Rules"},"rulesets_RulesetId":{"description":"The unique ID of the ruleset.","type":"string","pattern":"^[0-9a-f]{32}$","title":"Ruleset ID","examples":["2f2feab2026849078ba485f918791bdc"]},"rulesets_RequestRule":{"oneOf":[{"$ref":"#/definitions/rulesets_BlockRule"},{"$ref":"#/definitions/rulesets_ChallengeRule"},{"$ref":"#/definitions/rulesets_CompressResponseRule"},{"$ref":"#/definitions/rulesets_DDoSDynamicRule"},{"$ref":"#/definitions/rulesets_ExecuteRule"},{"$ref":"#/definitions/rulesets_ForceConnectionCloseRule"},{"$ref":"#/definitions/rulesets_JsChallengeRule"},{"$ref":"#/definitions/rulesets_LogRule"},{"$ref":"#/definitions/rulesets_LogCustomFieldRule"},{"$ref":"#/definitions/rulesets_ManagedChallengeRule"},{"$ref":"#/definitions/rulesets_RedirectRule"},{"$ref":"#/definitions/rulesets_RewriteRule"},{"$ref":"#/definitions/rulesets_RouteRule"},{"$ref":"#/definitions/rulesets_ScoreRule"},{"$ref":"#/definitions/rulesets_ServeErrorRule"},{"$ref":"#/definitions/rulesets_SetCacheControlRule"},{"$ref":"#/definitions/rulesets_SetCacheSettingsRule"},{"$ref":"#/definitions/rulesets_SetCacheTagsRule"},{"$ref":"#/definitions/rulesets_SetConfigRule"},{"$ref":"#/definitions/rulesets_SkipRule"},{"$ref":"#/definitions/rulesets_TransformResponseHTMLRule"}]},"rulesets_BlockRule":{"allOf":[{"$ref":"#/definitions/rulesets_Rule"},{"properties":{"action":{"type":"string","enum":["block"]},"action_parameters":{"type":"object","properties":{"response":{"description":"The response to show when the block is applied.","type":"object","properties":{"content":{"description":"The content to return.","minLength":1,"title":"Content","type":"string","examples":["{\n  \"success\": false,\n  \"error\": \"you have been blocked\"\n}"]},"content_type":{"description":"The type of the content to return.","type":"string","minLength":1,"title":"Content Type","examples":["application/json"]},"status_code":{"description":"The status code to return.","type":"integer","maximum":499,"minimum":400,"title":"Status Code"}},"required":["status_code","content","content_type"],"title":"Response"}}},"description":{"type":"string","examples":["Block the request."]}},"title":"Block Rule","type":"object"}]},"rulesets_ChallengeRule":{"allOf":[{"$ref":"#/definitions/rulesets_Rule"},{"properties":{"action":{"type":"string","enum":["challenge"]},"description":{"type":"string","examples":["Issue an Interactive Challenge if the visitor has not solved an Interactive Challenge prior to the request."]}},"title":"Challenge Rule","type":"object"}]},"rulesets_CompressResponseRule":{"allOf":[{"$ref":"#/definitions/rulesets_Rule"},{"properties":{"action":{"type":"string","enum":["compress_response"]},"action_parameters":{"type":"object","properties":{"algorithms":{"description":"Custom order for compression algorithms.","type":"array","items":{"description":"Compression algorithm to enable.","properties":{"name":{"description":"Name of the compression algorithm to enable.","type":"string","enum":["none","auto","default","gzip","brotli","zstd"],"title":"Algorithm Name","examples":["none"]}},"title":"Algorithm","type":"object"},"minItems":1,"title":"Algorithms","uniqueItems":true}},"required":["algorithms"]},"description":{"type":"string","examples":["Modify the compression algorithm used in the response."]}},"title":"Response Compression Rule","type":"object"}]},"rulesets_DDoSDynamicRule":{"allOf":[{"$ref":"#/definitions/rulesets_Rule"},{"properties":{"action":{"type":"string","enum":["ddos_dynamic"]},"description":{"type":"string","examples":["Perform a specific action according to a set of internal guidelines defined by Cloudflare."]}},"title":"DDoS Dynamic Rule","type":"object"}]},"rulesets_ExecuteRule":{"allOf":[{"$ref":"#/definitions/rulesets_Rule"},{"properties":{"action":{"type":"string","enum":["execute"]},"action_parameters":{"type":"object","properties":{"id":{"allOf":[{"$ref":"#/definitions/rulesets_RulesetId"},{"description":"The ID of the ruleset to execute.","type":"string","examples":["4814384a9e5d4991b9815dcfc25d2f1f"]}]},"matched_data":{"$ref":"#/definitions/rulesets_ExecuteMatchedData"},"overrides":{"$ref":"#/definitions/rulesets_ExecuteOverrides"}},"required":["id"]},"description":{"type":"string","examples":["Execute another ruleset."]}},"title":"Execute Rule","type":"object"}]},"rulesets_ForceConnectionCloseRule":{"allOf":[{"$ref":"#/definitions/rulesets_Rule"},{"properties":{"action":{"type":"string","enum":["force_connection_close"]},"description":{"type":"string","examples":["Close ongoing HTTP connections. This action does not block a request, but it forces the client to reconnect. For HTTP/2 and HTTP/3 connections, the connection will be closed even if it breaks other requests running on the same connection."]}},"title":"Force Connection Close Rule","type":"object"}]},"rulesets_JsChallengeRule":{"allOf":[{"$ref":"#/definitions/rulesets_Rule"},{"properties":{"action":{"type":"string","enum":["js_challenge"]},"description":{"type":"string","examples":["Issue a non-interactive JavaScript Challenge if the visitor has not solved an Interactive Challenge, Managed Challenge, or JavaScript Challenge prior to the request."]}},"title":"JavaScript Challenge Rule","type":"object"}]},"rulesets_LogRule":{"allOf":[{"$ref":"#/definitions/rulesets_Rule"},{"properties":{"action":{"type":"string","enum":["log"]},"description":{"type":"string","examples":["Log the request."]}},"title":"Log Rule","type":"object"}]},"rulesets_LogCustomFieldRule":{"allOf":[{"$ref":"#/definitions/rulesets_Rule"},{"properties":{"action":{"type":"string","enum":["log_custom_field"]},"action_parameters":{"type":"object","minProperties":1,"properties":{"cookie_fields":{"$ref":"#/definitions/rulesets_LogCustomFieldCookieFields"},"raw_response_fields":{"$ref":"#/definitions/rulesets_LogCustomFieldRawResponseFields"},"request_fields":{"$ref":"#/definitions/rulesets_LogCustomFieldRequestFields"},"response_fields":{"$ref":"#/definitions/rulesets_LogCustomFieldResponseFields"},"transformed_request_fields":{"$ref":"#/definitions/rulesets_LogCustomFieldTransformedRequestFields"}}},"description":{"type":"string","examples":["Log additional custom fields."]}},"title":"Log Custom Field Rule","type":"object"}]},"rulesets_ManagedChallengeRule":{"allOf":[{"$ref":"#/definitions/rulesets_Rule"},{"properties":{"action":{"type":"string","enum":["managed_challenge"]},"description":{"type":"string","examples":["Issue a Managed Challenge if the visitor has not solved a Managed Challenge or Interactive Challenge prior to the request."]}},"title":"Managed Challenge Rule","type":"object"}]},"rulesets_RedirectRule":{"allOf":[{"$ref":"#/definitions/rulesets_Rule"},{"properties":{"action":{"type":"string","enum":["redirect"]},"action_parameters":{"type":"object","maxProperties":1,"minProperties":1,"properties":{"from_list":{"$ref":"#/definitions/rulesets_RedirectFromList"},"from_value":{"$ref":"#/definitions/rulesets_RedirectFromValue"}}},"description":{"type":"string","examples":["Redirect the request."]}},"title":"Redirect Rule","type":"object"}]},"rulesets_RewriteRule":{"allOf":[{"$ref":"#/definitions/rulesets_Rule"},{"properties":{"action":{"type":"string","enum":["rewrite"]},"action_parameters":{"type":"object","minProperties":1,"properties":{"headers":{"$ref":"#/definitions/rulesets_RewriteHeaders"},"uri":{"$ref":"#/definitions/rulesets_RewriteUri"}}},"description":{"type":"string","examples":["Rewrite properties of the request or response."]}},"title":"Rewrite Rule","type":"object"}]},"rulesets_RouteRule":{"allOf":[{"$ref":"#/definitions/rulesets_Rule"},{"properties":{"action":{"type":"string","enum":["route"]},"action_parameters":{"type":"object","minProperties":1,"properties":{"host_header":{"$ref":"#/definitions/rulesets_RouteHostHeader"},"origin":{"$ref":"#/definitions/rulesets_RouteOrigin"},"sni":{"$ref":"#/definitions/rulesets_RouteSNI"}}},"description":{"type":"string","examples":["Select an origin server to route the request to."]}},"title":"Route Rule","type":"object"}]},"rulesets_ScoreRule":{"allOf":[{"$ref":"#/definitions/rulesets_Rule"},{"properties":{"action":{"type":"string","enum":["score"]},"action_parameters":{"type":"object","properties":{"increment":{"$ref":"#/definitions/rulesets_ScoreIncrement"}},"required":["increment"]},"description":{"type":"string","examples":["Increment the cumulative score."]}},"title":"Score Rule","type":"object"}]},"rulesets_ServeErrorRule":{"allOf":[{"$ref":"#/definitions/rulesets_Rule"},{"properties":{"action":{"type":"string","enum":["serve_error"]},"action_parameters":{"allOf":[{"properties":{"content_type":{"$ref":"#/definitions/rulesets_ServeErrorContentType"},"status_code":{"$ref":"#/definitions/rulesets_ServeErrorStatusCode"}},"required":["content_type"],"type":"object"},{"oneOf":[{"properties":{"content":{"$ref":"#/definitions/rulesets_ServeErrorContent"}},"required":["content"],"title":"Action Parameters (Content)","type":"object"},{"properties":{"asset_name":{"$ref":"#/definitions/rulesets_ServeErrorAssetName"}},"required":["asset_name"],"title":"Action Parameters (Asset)","type":"object"}]}]},"description":{"type":"string","examples":["Customize the serving of errors."]}},"title":"Serve Error Rule","type":"object"}]},"rulesets_SetCacheControlRule":{"allOf":[{"$ref":"#/definitions/rulesets_Rule"},{"properties":{"action":{"type":"string","enum":["set_cache_control"]},"action_parameters":{"type":"object","minProperties":1,"properties":{"immutable":{"$ref":"#/definitions/rulesets_SetCacheControlDirective"},"max-age":{"$ref":"#/definitions/rulesets_SetCacheControlDirectiveWithValue"},"must-revalidate":{"$ref":"#/definitions/rulesets_SetCacheControlDirective"},"must-understand":{"$ref":"#/definitions/rulesets_SetCacheControlDirective"},"no-cache":{"$ref":"#/definitions/rulesets_SetCacheControlDirectiveWithQualifiers"},"no-store":{"$ref":"#/definitions/rulesets_SetCacheControlDirective"},"no-transform":{"$ref":"#/definitions/rulesets_SetCacheControlDirective"},"private":{"$ref":"#/definitions/rulesets_SetCacheControlDirectiveWithQualifiers"},"proxy-revalidate":{"$ref":"#/definitions/rulesets_SetCacheControlDirective"},"public":{"$ref":"#/definitions/rulesets_SetCacheControlDirective"},"s-maxage":{"$ref":"#/definitions/rulesets_SetCacheControlDirectiveWithValue"},"stale-if-error":{"$ref":"#/definitions/rulesets_SetCacheControlDirectiveWithValue"},"stale-while-revalidate":{"$ref":"#/definitions/rulesets_SetCacheControlDirectiveWithValue"}}},"description":{"type":"string","examples":["Modify the cache-control header directives in an Origin response."]}},"title":"Set Cache Control Rule","type":"object"}]},"rulesets_SetCacheSettingsRule":{"allOf":[{"$ref":"#/definitions/rulesets_Rule"},{"properties":{"action":{"type":"string","enum":["set_cache_settings"]},"action_parameters":{"type":"object","minProperties":1,"properties":{"additional_cacheable_ports":{"$ref":"#/definitions/rulesets_SetCacheSettingsAdditionalCacheablePorts"},"browser_ttl":{"$ref":"#/definitions/rulesets_SetCacheSettingsBrowserTTL"},"cache":{"$ref":"#/definitions/rulesets_SetCacheSettingsCache"},"cache_key":{"$ref":"#/definitions/rulesets_SetCacheSettingsCacheKey"},"cache_reserve":{"$ref":"#/definitions/rulesets_SetCacheSettingsCacheReserve"},"edge_ttl":{"$ref":"#/definitions/rulesets_SetCacheSettingsEdgeTTL"},"origin_cache_control":{"$ref":"#/definitions/rulesets_SetCacheSettingsOriginCacheControl"},"origin_error_page_passthru":{"$ref":"#/definitions/rulesets_SetCacheSettingsOriginErrorPagePassthru"},"origin_range_requests":{"$ref":"#/definitions/rulesets_SetCacheSettingsOriginRangeRequests"},"read_timeout":{"$ref":"#/definitions/rulesets_SetCacheSettingsReadTimeout"},"respect_strong_etags":{"$ref":"#/definitions/rulesets_SetCacheSettingsRespectStrongEtags"},"serve_stale":{"$ref":"#/definitions/rulesets_SetCacheSettingsServeStale"},"shared_dictionary":{"$ref":"#/definitions/rulesets_SetCacheSettingsSharedDictionary"},"strip_etags":{"$ref":"#/definitions/rulesets_SetCacheSettingsStripETags"},"strip_last_modified":{"$ref":"#/definitions/rulesets_SetCacheSettingsStripLastModified"},"strip_set_cookie":{"$ref":"#/definitions/rulesets_SetCacheSettingsStripSetCookie"},"vary":{"$ref":"#/definitions/rulesets_SetCacheSettingsVary"}}},"description":{"type":"string","examples":["Configure settings for how the response is cached."]}},"title":"Set Cache Settings Rule","type":"object"}]},"rulesets_SetCacheTagsRule":{"allOf":[{"$ref":"#/definitions/rulesets_Rule"},{"properties":{"action":{"type":"string","enum":["set_cache_tags"]},"action_parameters":{"oneOf":[{"description":"Add cache tags using a list of values.","properties":{"operation":{"allOf":[{"$ref":"#/definitions/rulesets_SetCacheTagsOperation"},{"enum":["add"],"type":"string"}]},"values":{"$ref":"#/definitions/rulesets_SetCacheTagsValues"}},"required":["operation","values"],"title":"Add Cache Tags (Values)","type":"object"},{"description":"Add cache tags using an expression.","properties":{"expression":{"$ref":"#/definitions/rulesets_SetCacheTagsExpression"},"operation":{"allOf":[{"$ref":"#/definitions/rulesets_SetCacheTagsOperation"},{"enum":["add"],"type":"string"}]}},"required":["operation","expression"],"title":"Add Cache Tags (Expression)","type":"object"},{"description":"Remove cache tags using a list of values.","properties":{"operation":{"allOf":[{"$ref":"#/definitions/rulesets_SetCacheTagsOperation"},{"enum":["remove"],"type":"string"}]},"values":{"$ref":"#/definitions/rulesets_SetCacheTagsValues"}},"required":["operation","values"],"title":"Remove Cache Tags (Values)","type":"object"},{"description":"Remove cache tags using an expression.","properties":{"expression":{"$ref":"#/definitions/rulesets_SetCacheTagsExpression"},"operation":{"allOf":[{"$ref":"#/definitions/rulesets_SetCacheTagsOperation"},{"enum":["remove"],"type":"string"}]}},"required":["operation","expression"],"title":"Remove Cache Tags (Expression)","type":"object"},{"description":"Set cache tags using a list of values.","properties":{"operation":{"allOf":[{"$ref":"#/definitions/rulesets_SetCacheTagsOperation"},{"enum":["set"],"type":"string"}]},"values":{"$ref":"#/definitions/rulesets_SetCacheTagsValues"}},"required":["operation","values"],"title":"Set Cache Tags (Values)","type":"object"},{"description":"Set cache tags using an expression.","properties":{"expression":{"$ref":"#/definitions/rulesets_SetCacheTagsExpression"},"operation":{"allOf":[{"$ref":"#/definitions/rulesets_SetCacheTagsOperation"},{"enum":["set"],"type":"string"}]}},"required":["operation","expression"],"title":"Set Cache Tags (Expression)","type":"object"}]},"description":{"type":"string","examples":["Modify the cache tags associated with the response."]}},"title":"Set Cache Tags Rule","type":"object"}]},"rulesets_SetConfigRule":{"allOf":[{"$ref":"#/definitions/rulesets_Rule"},{"properties":{"action":{"type":"string","enum":["set_config"]},"action_parameters":{"type":"object","minProperties":1,"properties":{"automatic_https_rewrites":{"description":"Whether to enable Automatic HTTPS Rewrites.","type":"boolean","title":"Automatic HTTPS Rewrites","examples":[true]},"autominify":{"$ref":"#/definitions/rulesets_SetConfigAutominify"},"bic":{"description":"Whether to enable Browser Integrity Check (BIC).","type":"boolean","title":"Browser Integrity Check","examples":[true]},"content_converter":{"description":"Whether to enable content conversion (e.g., HTML to Markdown).","type":"boolean","title":"Content Converter","examples":[true]},"disable_apps":{"description":"Whether to disable Cloudflare Apps.","type":"boolean","enum":[true],"title":"Disable Apps"},"disable_pay_per_crawl":{"description":"Whether to disable Pay Per Crawl.","type":"boolean","enum":[true],"title":"Disable Pay Per Crawl"},"disable_rum":{"description":"Whether to disable Real User Monitoring (RUM).","type":"boolean","enum":[true],"title":"Disable RUM"},"disable_zaraz":{"description":"Whether to disable Zaraz.","type":"boolean","enum":[true],"title":"Disable Zaraz"},"email_obfuscation":{"description":"Whether to enable Email Obfuscation.","type":"boolean","title":"Email Obfuscation","examples":[true]},"fonts":{"description":"Whether to enable Cloudflare Fonts.","type":"boolean","title":"Cloudflare Fonts","examples":[true]},"hotlink_protection":{"description":"Whether to enable Hotlink Protection.","type":"boolean","title":"Hotlink Protection","examples":[true]},"mirage":{"description":"Whether to enable Mirage.","type":"boolean","title":"Mirage","examples":[true]},"opportunistic_encryption":{"description":"Whether to enable Opportunistic Encryption.","type":"boolean","title":"Opportunistic Encryption","examples":[true]},"polish":{"description":"The Polish level to configure.","type":"string","enum":["off","lossless","lossy","webp"],"title":"Polish","examples":["off"]},"redirects_for_ai_training":{"description":"Whether to redirect verified AI training crawlers to canonical URLs found in the HTML response.","type":"boolean","title":"Redirects for AI Training","examples":[true]},"request_body_buffering":{"description":"The request body buffering mode.","type":"string","enum":["none","standard","full"],"title":"Request body buffering","examples":["standard"]},"response_body_buffering":{"description":"The response body buffering mode.","type":"string","enum":["none","standard"],"title":"Response body buffering","examples":["standard"]},"rocket_loader":{"description":"Whether to enable Rocket Loader.","type":"boolean","title":"Rocket Loader","examples":[true]},"security_level":{"description":"The Security Level to configure.","type":"string","enum":["off","essentially_off","low","medium","high","under_attack"],"title":"Security Level","examples":["off"]},"server_side_excludes":{"description":"Whether to enable Server-Side Excludes.","type":"boolean","title":"Server-Side Excludes","examples":[true]},"ssl":{"description":"The SSL level to configure.","type":"string","enum":["off","flexible","full","strict","origin_pull"],"title":"SSL","examples":["off"]},"sxg":{"description":"Whether to enable Signed Exchanges (SXG).","type":"boolean","title":"Signed Exchanges","examples":[true]},"webmcp_enabled":{"description":"Whether to serve the WebMCP bridge script, which exposes the page's tools to browser AI agents.","type":"boolean","title":"WebMCP","examples":[true]},"webmcp_packs":{"description":"Bundled WebMCP tool packs to activate for matching requests. An empty array disables all packs. Omitting this parameter leaves the pack selection unchanged. Does not enable the WebMCP bridge itself.","type":"array","items":{"description":"A tool-pack identifier understood by the WebMCP interceptor.","maxLength":128,"minLength":1,"pattern":"^[A-Za-z0-9._:/@-]+$","type":"string"},"maxItems":100,"title":"WebMCP Tool Packs","uniqueItems":true,"examples":[["c2pa","mcp-server-client"]]}}},"description":{"type":"string","examples":["Configure settings for the request and response."]}},"title":"Set Configuration Rule","type":"object"}]},"rulesets_SkipRule":{"allOf":[{"$ref":"#/definitions/rulesets_Rule"},{"properties":{"action":{"type":"string","enum":["skip"]},"action_parameters":{"type":"object","minProperties":1,"properties":{"phase":{"$ref":"#/definitions/rulesets_SkipPhase"},"phases":{"$ref":"#/definitions/rulesets_SkipPhases"},"products":{"$ref":"#/definitions/rulesets_SkipProducts"},"rules":{"$ref":"#/definitions/rulesets_SkipRules"},"ruleset":{"$ref":"#/definitions/rulesets_SkipRuleset"},"rulesets":{"$ref":"#/definitions/rulesets_SkipRulesets"}}},"description":{"type":"string","examples":["Skip executing rulesets, rules, phases, and other products."]}},"title":"Skip Rule","type":"object"}]},"rulesets_TransformResponseHTMLRule":{"allOf":[{"$ref":"#/definitions/rulesets_Rule"},{"properties":{"action":{"type":"string","enum":["transform_response_html"]},"action_parameters":{"type":"object","properties":{"link_maze":{"description":"Enables the link maze transformation on the response.","type":"object","title":"Link Maze"}},"required":["link_maze"]},"description":{"type":"string","examples":["Apply a HTML transformation to the response."]}},"title":"Transform Response HTML Rule","type":"object"}]},"rulesets_Rule":{"type":"object","properties":{"action":{"$ref":"#/definitions/rulesets_RuleAction"},"action_parameters":{"description":"The parameters configuring the rule's action.","type":"object","default":{},"title":"Action Parameters"},"categories":{"$ref":"#/definitions/rulesets_RuleCategories"},"description":{"description":"An informative description of the rule.","type":"string","default":"","title":"Description"},"enabled":{"allOf":[{"$ref":"#/definitions/rulesets_RuleEnabled"},{"default":true,"type":"boolean"}]},"exposed_credential_check":{"$ref":"#/definitions/rulesets_RuleExposedCredentialCheck"},"expression":{"description":"The expression defining which traffic will match the rule.","type":"string","minLength":1,"title":"Expression","examples":["ip.src eq 1.1.1.1"]},"id":{"$ref":"#/definitions/rulesets_RuleId"},"logging":{"$ref":"#/definitions/rulesets_RuleLogging"},"ratelimit":{"$ref":"#/definitions/rulesets_RuleRatelimit"},"ref":{"description":"The reference of the rule (the rule's ID by default).","type":"string","minLength":1,"title":"Ref","examples":["my_ref"]}},"required":[],"title":"Rule"},"rulesets_ExecuteMatchedData":{"description":"The configuration to use for matched data logging.","type":"object","properties":{"public_key":{"description":"The public key to encrypt matched data logs with.","type":"string","minLength":1,"title":"Public Key","examples":["iGqBmyIUxuWt1rvxoAharN9FUXneUBxA/Y19PyyrEG0="]}},"required":["public_key"],"title":"Matched Data"},"rulesets_ExecuteOverrides":{"description":"A set of overrides to apply to the target ruleset.","type":"object","properties":{"action":{"allOf":[{"$ref":"#/definitions/rulesets_RuleAction"},{"description":"An action to override all rules with. This option has lower precedence than rule and category overrides.","type":"string","examples":["log"]}]},"categories":{"$ref":"#/definitions/rulesets_ExecuteCategoryOverrides"},"enabled":{"allOf":[{"$ref":"#/definitions/rulesets_RuleEnabled"},{"description":"Whether to enable execution of all rules. This option has lower precedence than rule and category overrides.","type":"boolean"}]},"rules":{"$ref":"#/definitions/rulesets_ExecuteRuleOverrides"},"sensitivity_level":{"allOf":[{"$ref":"#/definitions/rulesets_ExecuteSensitivityLevel"},{"description":"A sensitivity level to set for all rules. This option has lower precedence than rule and category overrides and is only applicable for DDoS phases.","type":"string"}]}},"minProperties":1,"title":"Overrides"},"rulesets_LogCustomFieldCookieFields":{"description":"The cookie fields to log.","type":"array","items":{"description":"The cookie field to log.","properties":{"name":{"description":"The name of the cookie.","type":"string","minLength":1,"title":"Cookie Name","examples":["myCookie"]}},"required":["name"],"title":"Cookie Field","type":"object"},"minItems":1,"title":"Cookie Fields"},"rulesets_LogCustomFieldRawResponseFields":{"description":"The raw response fields to log.","type":"array","items":{"description":"The raw response field to log.","properties":{"name":{"description":"The name of the response header.","type":"string","minLength":1,"title":"Header Name","examples":["my-response-header"]},"preserve_duplicates":{"description":"Whether to log duplicate values of the same header.","type":"boolean","default":false,"title":"Preserve Duplicates","examples":[true]}},"required":["name"],"title":"Raw Response Field","type":"object"},"minItems":1,"title":"Raw Response Fields"},"rulesets_LogCustomFieldRequestFields":{"description":"The raw request fields to log.","type":"array","items":{"description":"The raw request field to log.","properties":{"name":{"description":"The name of the header.","type":"string","minLength":1,"title":"Header Name","examples":["my-request-header"]}},"required":["name"],"title":"Raw Request Field","type":"object"},"minItems":1,"title":"Raw Request Fields"},"rulesets_LogCustomFieldResponseFields":{"description":"The transformed response fields to log.","type":"array","items":{"description":"The transformed response field to log.","properties":{"name":{"description":"The name of the response header.","type":"string","minLength":1,"title":"Header Name","examples":["my-response-header"]},"preserve_duplicates":{"description":"Whether to log duplicate values of the same header.","type":"boolean","default":false,"title":"Preserve Duplicates","examples":[true]}},"required":["name"],"title":"Transformed Response Field","type":"object"},"minItems":1,"title":"Transformed Response Fields"},"rulesets_LogCustomFieldTransformedRequestFields":{"description":"The transformed request fields to log.","type":"array","items":{"description":"The transformed request field to log.","properties":{"name":{"description":"The name of the header.","type":"string","minLength":1,"title":"Header Name","examples":["my-request-header"]}},"required":["name"],"title":"Transformed Request Field","type":"object"},"minItems":1,"title":"Transformed Request Fields"},"rulesets_RedirectFromList":{"description":"A redirect based on a bulk list lookup.","type":"object","properties":{"key":{"description":"An expression that evaluates to the list lookup key.","type":"string","minLength":1,"title":"Lookup Key","examples":["http.request.full_uri"]},"name":{"description":"The name of the list to match against.","type":"string","pattern":"^[a-zA-Z0-9_]+$","title":"List Name","examples":["my_list"]}},"required":["name","key"],"title":"Bulk Redirect"},"rulesets_RedirectFromValue":{"description":"A redirect based on the request properties.","type":"object","properties":{"preserve_query_string":{"description":"Whether to keep the query string of the original request.","type":"boolean","default":false,"title":"Preserve Query String","examples":[true]},"status_code":{"description":"The status code to use for the redirect.","type":"integer","enum":[301,302,303,307,308],"title":"Status Code","examples":[302]},"target_url":{"description":"A URL to redirect the request to.","type":"object","maxProperties":1,"minProperties":1,"properties":{"expression":{"description":"An expression that evaluates to a URL to redirect the request to.","type":"string","minLength":1,"title":"Redirect Expression","examples":["concat(\"https://example.com\", http.request.uri.path)"]},"value":{"description":"A URL to redirect the request to.","type":"string","minLength":1,"title":"Redirect Value","examples":["https://example.com"]}},"title":"Target URL"}},"required":["target_url"],"title":"Single Redirect"},"rulesets_RewriteHeaders":{"description":"A map of headers to rewrite.","type":"object","additionalProperties":{"oneOf":[{"description":"A header with a static value to add.","properties":{"operation":{"allOf":[{"$ref":"#/definitions/rulesets_RewriteHeaderOperation"},{"enum":["add"],"type":"string"}]},"value":{"$ref":"#/definitions/rulesets_RewriteHeaderValue"}},"required":["operation","value"],"title":"Add Static Header","type":"object"},{"description":"A header with a dynamic value to add.","properties":{"expression":{"$ref":"#/definitions/rulesets_RewriteHeaderExpression"},"operation":{"allOf":[{"$ref":"#/definitions/rulesets_RewriteHeaderOperation"},{"enum":["add"],"type":"string"}]}},"required":["operation","expression"],"title":"Add Dynamic Header","type":"object"},{"description":"A header with a static value to set.","properties":{"operation":{"allOf":[{"$ref":"#/definitions/rulesets_RewriteHeaderOperation"},{"enum":["set"],"type":"string"}]},"value":{"$ref":"#/definitions/rulesets_RewriteHeaderValue"}},"required":["operation","value"],"title":"Set Static Header","type":"object"},{"description":"A header with a dynamic value to set.","properties":{"expression":{"$ref":"#/definitions/rulesets_RewriteHeaderExpression"},"operation":{"allOf":[{"$ref":"#/definitions/rulesets_RewriteHeaderOperation"},{"enum":["set"],"type":"string"}]}},"required":["operation","expression"],"title":"Set Dynamic Header","type":"object"},{"description":"A header to remove.","properties":{"operation":{"allOf":[{"$ref":"#/definitions/rulesets_RewriteHeaderOperation"},{"enum":["remove"],"type":"string"}]}},"required":["operation"],"title":"Remove Header","type":"object"}]},"minProperties":1,"title":"Headers","examples":[{"client-http-version":{"expression":"http.request.version","operation":"set"}}]},"rulesets_RewriteUri":{"allOf":[{"anyOf":[{"description":"A URI path rewrite.","properties":{"path":{"$ref":"#/definitions/rulesets_RewriteUriPath"}},"required":["path"],"title":"URI Path","type":"object"},{"description":"A URI query rewrite.","properties":{"query":{"$ref":"#/definitions/rulesets_RewriteUriQuery"}},"required":["query"],"title":"URI Query","type":"object"}]},{"properties":{},"type":"object"}]},"rulesets_RouteHostHeader":{"description":"A value to rewrite the HTTP host header to.","type":"string","minLength":1,"title":"Host Header","examples":["static.example.com"]},"rulesets_RouteOrigin":{"description":"An origin to route to.","type":"object","properties":{"host":{"description":"A resolved host to route to.","type":"string","minLength":1,"title":"Host","examples":["static.example.com"]},"port":{"description":"A destination port to route to.","type":"integer","maximum":65535,"minimum":1,"title":"Port","examples":[80]}},"minProperties":1,"title":"Origin"},"rulesets_RouteSNI":{"description":"A Server Name Indication (SNI) override.","type":"object","properties":{"value":{"description":"A value to override the SNI to.","type":"string","minLength":1,"title":"Value","examples":["static.example.com"]}},"required":["value"],"title":"Server Name Indication"},"rulesets_ScoreIncrement":{"description":"A delta to change the score by, which can be either positive or negative.","type":"integer","title":"Increment","examples":[3]},"rulesets_ServeErrorContentType":{"description":"The content type header to set with the error response.","type":"string","enum":["application/json","text/html","text/plain","text/xml"],"title":"Content Type","examples":["application/json"]},"rulesets_ServeErrorStatusCode":{"description":"The status code to use for the error.","type":"integer","maximum":999,"minimum":400,"title":"Status Code","examples":[500]},"rulesets_ServeErrorContent":{"description":"The response content.","type":"string","minLength":1,"title":"Content","examples":["{\n  \"error\": \"1xxx error occurred\"\n}"]},"rulesets_ServeErrorAssetName":{"description":"The name of a custom asset to serve as the error response.","type":"string","minLength":1,"title":"Asset Name","examples":["500_errors"]},"rulesets_SetCacheControlDirective":{"description":"A cache-control directive configuration.","oneOf":[{"description":"Set the directive.","properties":{"cloudflare_only":{"$ref":"#/definitions/rulesets_SetCacheControlCloudflareOnly"},"operation":{"allOf":[{"$ref":"#/definitions/rulesets_SetCacheControlOperation"},{"enum":["set"],"type":"string"}]}},"required":["operation"],"title":"Set Directive","type":"object"},{"description":"Remove the directive.","properties":{"cloudflare_only":{"$ref":"#/definitions/rulesets_SetCacheControlCloudflareOnly"},"operation":{"allOf":[{"$ref":"#/definitions/rulesets_SetCacheControlOperation"},{"enum":["remove"],"type":"string"}]}},"required":["operation"],"title":"Remove Directive","type":"object"}],"title":"Cache Control Directive"},"rulesets_SetCacheControlDirectiveWithValue":{"description":"A cache-control directive configuration that accepts a duration value in seconds.","oneOf":[{"description":"Set the directive with a duration value in seconds.","properties":{"cloudflare_only":{"$ref":"#/definitions/rulesets_SetCacheControlCloudflareOnly"},"operation":{"allOf":[{"$ref":"#/definitions/rulesets_SetCacheControlOperation"},{"enum":["set"],"type":"string"}]},"value":{"description":"The duration value in seconds for the directive.","type":"integer","minimum":0,"title":"Value","examples":[3600]}},"required":["operation","value"],"title":"Set Directive","type":"object"},{"description":"Remove the directive.","properties":{"cloudflare_only":{"$ref":"#/definitions/rulesets_SetCacheControlCloudflareOnly"},"operation":{"allOf":[{"$ref":"#/definitions/rulesets_SetCacheControlOperation"},{"enum":["remove"],"type":"string"}]}},"required":["operation"],"title":"Remove Directive","type":"object"}],"title":"Cache Control Directive With Duration Seconds Value"},"rulesets_SetCacheControlDirectiveWithQualifiers":{"description":"A cache-control directive configuration that accepts optional qualifiers (header names).","oneOf":[{"description":"Set the directive with optional qualifiers.","properties":{"cloudflare_only":{"$ref":"#/definitions/rulesets_SetCacheControlCloudflareOnly"},"operation":{"allOf":[{"$ref":"#/definitions/rulesets_SetCacheControlOperation"},{"enum":["set"],"type":"string"}]},"qualifiers":{"description":"Optional list of header names to qualify the directive (e.g., for \"private\" or \"no-cache\" directives).","type":"array","items":{"description":"A header name to qualify the directive.","minLength":1,"title":"Qualifier","type":"string","examples":["X-Custom-Header"]},"title":"Qualifiers","uniqueItems":true}},"required":["operation"],"title":"Set Directive","type":"object"},{"description":"Remove the directive.","properties":{"cloudflare_only":{"$ref":"#/definitions/rulesets_SetCacheControlCloudflareOnly"},"operation":{"allOf":[{"$ref":"#/definitions/rulesets_SetCacheControlOperation"},{"enum":["remove"],"type":"string"}]}},"required":["operation"],"title":"Remove Directive","type":"object"}],"title":"Cache Control Directive With Optional Qualifiers"},"rulesets_SetCacheSettingsAdditionalCacheablePorts":{"description":"A list of additional ports that caching should be enabled on.","type":"array","items":{"description":"A port to enable caching on.","maximum":65535,"minimum":1,"title":"Additional Cacheable Port","type":"integer","examples":[8080]},"minItems":1,"title":"Additional Cacheable Ports (Enterprise-Only)","uniqueItems":true},"rulesets_SetCacheSettingsBrowserTTL":{"description":"How long client browsers should cache the response. Cloudflare cache purge will not purge content cached on client browsers, so high browser TTLs may lead to stale content.","type":"object","properties":{"default":{"description":"The browser TTL (in seconds) if you choose the \"override_origin\" mode.","type":"integer","minimum":0,"title":"Default TTL","examples":[60]},"mode":{"description":"The browser TTL mode.","type":"string","enum":["respect_origin","bypass_by_default","override_origin","bypass"],"title":"TTL Mode","examples":["override_origin"]}},"required":["mode"],"title":"Browser TTL"},"rulesets_SetCacheSettingsCache":{"description":"Whether the request's response from the origin is eligible for caching. Caching itself will still depend on the cache control header and your other caching configurations.","type":"boolean","title":"Cache","examples":[true]},"rulesets_SetCacheSettingsCacheKey":{"description":"Which components of the request are included in or excluded from the cache key Cloudflare uses to store the response in cache.","type":"object","properties":{"cache_by_device_type":{"description":"Whether to separate cached content based on the visitor's device type.","type":"boolean","title":"Cache by Device Type","examples":[true]},"cache_deception_armor":{"description":"Whether to protect from web cache deception attacks, while allowing static assets to be cached.","type":"boolean","title":"Cache Deception Armor","examples":[true]},"custom_key":{"$ref":"#/definitions/rulesets_SetCacheSettingsCustomCacheKey"},"ignore_query_strings_order":{"description":"Whether to treat requests with the same query parameters the same, regardless of the order those query parameters are in.","type":"boolean","title":"Ignore Query Strings Order","examples":[true]}},"title":"Cache Key"},"rulesets_SetCacheSettingsCacheReserve":{"description":"Settings to determine whether the request's response from origin is eligible for Cache Reserve (requires a Cache Reserve add-on plan).","type":"object","properties":{"eligible":{"description":"Whether Cache Reserve is enabled. If this is true and a request meets eligibility criteria, Cloudflare will write the resource to Cache Reserve.","type":"boolean","title":"Eligible","examples":[true]},"minimum_file_size":{"description":"The minimum file size eligible for storage in Cache Reserve.","type":"integer","minimum":0,"title":"Minimum File Size","examples":[1024]}},"required":["eligible"],"title":"Cache Reserve"},"rulesets_SetCacheSettingsEdgeTTL":{"description":"How long the Cloudflare edge network should cache the response.","type":"object","properties":{"default":{"description":"The edge TTL (in seconds) if you choose the \"override_origin\" mode.","type":"integer","minimum":0,"title":"Default TTL","examples":[60]},"mode":{"description":"The edge TTL mode.","type":"string","enum":["respect_origin","bypass_by_default","override_origin"],"title":"TTL Mode","examples":["override_origin"]},"status_code_ttl":{"$ref":"#/definitions/rulesets_SetCacheSettingsStatusCodeTTL"}},"required":["mode"],"title":"Edge TTL"},"rulesets_SetCacheSettingsOriginCacheControl":{"description":"Whether Cloudflare will aim to strictly adhere to RFC 7234.","type":"boolean","title":"Origin Cache Control (Enterprise-Only)","examples":[true]},"rulesets_SetCacheSettingsOriginErrorPagePassthru":{"description":"Whether to generate Cloudflare error pages for issues from the origin server.","type":"boolean","title":"Origin Error Page Passthrough","examples":[true]},"rulesets_SetCacheSettingsOriginRangeRequests":{"description":"Controls whether Cloudflare fetches a large asset from the origin as a series of range requests instead of one whole-body request.","type":"object","properties":{"mode":{"description":"Whether to use range requests. `default` is the behaviour the zone gets without this rule.","type":"string","enum":["on","off","default"],"title":"Mode","examples":["on"]}},"required":["mode"],"title":"Origin Range Requests"},"rulesets_SetCacheSettingsReadTimeout":{"description":"A timeout value between two successive read operations to use for your origin server. Historically, the timeout value between two read options from Cloudflare to an origin server is 100 seconds. If you are attempting to reduce HTTP 524 errors because of timeouts from an origin server, try increasing this timeout value.","type":"integer","maximum":6000,"minimum":100,"title":"Read Timeout (Enterprise-Only)","examples":[900]},"rulesets_SetCacheSettingsRespectStrongEtags":{"description":"Whether Cloudflare should respect strong ETag (entity tag) headers. If false, Cloudflare converts strong ETag headers to weak ETag headers.","type":"boolean","title":"Respect Strong ETags","examples":[true]},"rulesets_SetCacheSettingsServeStale":{"description":"When to serve stale content from cache.","type":"object","properties":{"disable_stale_while_updating":{"description":"Whether Cloudflare should disable serving stale content while getting the latest content from the origin.","type":"boolean","title":"Disable Stale While Updating","examples":[true]}},"title":"Serve Stale"},"rulesets_SetCacheSettingsSharedDictionary":{"description":"Configuration for shared dictionary compression. When set, Cloudflare injects Use-As-Dictionary headers on matching cacheable responses.","type":"object","properties":{"match_pattern":{"description":"URL pattern for the Use-As-Dictionary match field. This pattern specifies which URLs can use this response as a dictionary.","type":"string","maxLength":1024,"minLength":1,"title":"Match Pattern","examples":["/static/js/*.js"]}},"required":["match_pattern"],"title":"Shared Dictionary"},"rulesets_SetCacheSettingsStripETags":{"description":"Whether to strip ETag headers from the origin response before caching.","type":"boolean","title":"Strip ETags","examples":[true]},"rulesets_SetCacheSettingsStripLastModified":{"description":"Whether to strip Last-Modified headers from the origin response before caching.","type":"boolean","title":"Strip Last-Modified","examples":[true]},"rulesets_SetCacheSettingsStripSetCookie":{"description":"Whether to strip Set-Cookie headers from the origin response before caching.","type":"boolean","title":"Strip Set-Cookie","examples":[true]},"rulesets_SetCacheSettingsVary":{"description":"Controls how cached responses vary based on request headers. `default` is required by the API and applies to any Vary response header that does not have a per-header override.","type":"object","properties":{"default":{"$ref":"#/definitions/rulesets_SetCacheSettingsVaryDefault"},"headers":{"description":"A mapping of lowercase request header names to their vary configuration.","type":"object","additionalProperties":{"$ref":"#/definitions/rulesets_SetCacheSettingsVaryHeader"},"maxProperties":50,"title":"Headers","examples":[{"accept":{"action":"normalize","media_types":["image/webp","image/png"]}}]}},"minProperties":1,"title":"Vary"},"rulesets_SetCacheTagsOperation":{"description":"The operation to perform on the cache tags.","type":"string","enum":["add","remove","set"],"title":"Operation","examples":["add"]},"rulesets_SetCacheTagsValues":{"description":"A list of cache tag values.","type":"array","items":{"description":"A cache tag value.","minLength":1,"title":"Cache Tag","type":"string","examples":["my-cache-tag"]},"maxItems":100,"minItems":1,"title":"Values"},"rulesets_SetCacheTagsExpression":{"description":"An expression that evaluates to an array of cache tag values.","type":"string","minLength":1,"title":"Expression","examples":["http.request.uri.path.extension"]},"rulesets_SetConfigAutominify":{"description":"Which file extensions to minify automatically.","type":"object","properties":{"css":{"description":"Whether to minify CSS files.","type":"boolean","default":false,"title":"CSS","examples":[true]},"html":{"description":"Whether to minify HTML files.","type":"boolean","default":false,"title":"HTML","examples":[true]},"js":{"description":"Whether to minify JavaScript files.","type":"boolean","default":false,"title":"JavaScript","examples":[true]}},"title":"Auto-Minify"},"rulesets_SkipPhase":{"description":"A phase to skip the execution of. This option is only compatible with the products option.","type":"string","enum":["current"],"title":"Phase"},"rulesets_SkipPhases":{"description":"A list of phases to skip the execution of. This option is incompatible with the rulesets option.","type":"array","items":{"allOf":[{"$ref":"#/definitions/rulesets_RulesetPhase"},{"description":"The phase to skip the execution of.","type":"string"}]},"minItems":1,"title":"Phases","uniqueItems":true},"rulesets_SkipProducts":{"description":"A list of legacy security products to skip the execution of.","type":"array","items":{"description":"The name of a legacy security product to skip the execution of.","enum":["bic","hot","rateLimit","securityLevel","uaBlock","waf","zoneLockdown"],"title":"Product","type":"string","examples":["bic"]},"minItems":1,"title":"Products","uniqueItems":true},"rulesets_SkipRules":{"description":"A mapping of ruleset IDs to a list of rule IDs in that ruleset to skip the execution of. This option is incompatible with the ruleset option.","type":"object","additionalProperties":{"description":"A list of rule IDs in the ruleset to skip the execution of.","items":{"allOf":[{"$ref":"#/definitions/rulesets_RuleId"},{"description":"The ID of a rule in the ruleset to skip the execution of.","title":"Rule","type":"string","examples":["8ac8bc2a661e475d940980f9317f28e1"]}]},"minItems":1,"title":"Rules","type":"array","uniqueItems":true},"minProperties":1,"title":"Rules","examples":[{"4814384a9e5d4991b9815dcfc25d2f1f":["8ac8bc2a661e475d940980f9317f28e1"]}]},"rulesets_SkipRuleset":{"description":"A ruleset to skip the execution of. This option is incompatible with the rulesets option.","type":"string","enum":["current"],"title":"Ruleset"},"rulesets_SkipRulesets":{"description":"A list of ruleset IDs to skip the execution of. This option is incompatible with the ruleset and phases options.","type":"array","items":{"allOf":[{"$ref":"#/definitions/rulesets_RulesetId"},{"description":"The ID of a ruleset to skip the execution of.","title":"Ruleset","type":"string","examples":["4814384a9e5d4991b9815dcfc25d2f1f"]}]},"minItems":1,"title":"Rulesets","uniqueItems":true},"rulesets_RuleAction":{"description":"The action to perform when the rule matches.","type":"string","pattern":"^[a-z_]+$","title":"Action"},"rulesets_RuleCategories":{"description":"The categories of the rule.","type":"array","items":{"$ref":"#/definitions/rulesets_RuleCategory"},"minItems":1,"title":"Categories","uniqueItems":true},"rulesets_RuleEnabled":{"description":"Whether the rule should be executed.","type":"boolean","title":"Enabled","examples":[true]},"rulesets_RuleExposedCredentialCheck":{"description":"Configuration for exposed credential checking.","type":"object","properties":{"password_expression":{"description":"An expression that selects the password used in the credentials check.","type":"string","minLength":1,"title":"Password Expression","examples":["url_decode(http.request.body.form[\\\"password\\\"][0])"]},"username_expression":{"description":"An expression that selects the user ID used in the credentials check.","type":"string","minLength":1,"title":"Username Expression","examples":["url_decode(http.request.body.form[\\\"username\\\"][0])"]}},"required":["username_expression","password_expression"],"title":"Exposed Credential Check"},"rulesets_RuleId":{"description":"The unique ID of the rule.","type":"string","pattern":"^[0-9a-f]{32}$","title":"Rule ID","examples":["3a03d665bac047339bb530ecb439a90d"]},"rulesets_RuleLogging":{"description":"An object configuring the rule's logging behavior.","type":"object","properties":{"enabled":{"description":"Whether to generate a log when the rule matches.","type":"boolean","title":"Enabled","examples":[true]}},"required":["enabled"],"title":"Logging"},"rulesets_RuleRatelimit":{"description":"An object configuring the rule's rate limit behavior.","type":"object","properties":{"characteristics":{"description":"Characteristics of the request on which the rate limit counter will be incremented.","type":"array","items":{"description":"The characteristic of the request.","minLength":1,"title":"Characteristic","type":"string","examples":["cf.colo.id"]},"minItems":1,"title":"Characteristics","uniqueItems":true},"counting_expression":{"description":"An expression that defines when the rate limit counter should be incremented. It defaults to the same as the rule's expression.","type":"string","minLength":1,"title":"Counting Expression","examples":["http.request.body.raw eq \"abcd\""]},"mitigation_timeout":{"description":"Period of time in seconds after which the action will be disabled following its first execution.","type":"integer","title":"Mitigation Timeout","examples":[600]},"period":{"description":"Period in seconds over which the counter is being incremented.","type":"integer","minimum":0,"title":"Period","examples":[60]},"requests_per_period":{"description":"The threshold of requests per period after which the action will be executed for the first time.","type":"integer","minimum":1,"title":"Requests per Period","examples":[1000]},"requests_to_origin":{"description":"Whether counting is only performed when an origin is reached.","type":"boolean","default":false,"title":"Requests to Origin","examples":[true]},"score_per_period":{"description":"The score threshold per period for which the action will be executed the first time.","type":"integer","title":"Score per Period","examples":[400]},"score_response_header_name":{"description":"A response header name provided by the origin, which contains the score to increment rate limit counter with.","type":"string","minLength":1,"title":"Score Response Header Name","examples":["my-score"]}},"required":["characteristics","period"],"title":"Rate Limit"},"rulesets_ExecuteCategoryOverrides":{"description":"A list of category-level overrides. This option has the second-highest precedence after rule-level overrides.","type":"array","items":{"description":"A category-level override.","minProperties":2,"properties":{"action":{"allOf":[{"$ref":"#/definitions/rulesets_RuleAction"},{"description":"The action to override rules in the category with.","type":"string","examples":["log"]}]},"category":{"allOf":[{"$ref":"#/definitions/rulesets_RuleCategory"},{"description":"The name of the category to override.","type":"string"}]},"enabled":{"allOf":[{"$ref":"#/definitions/rulesets_RuleEnabled"},{"description":"Whether to enable execution of rules in the category.","type":"boolean"}]},"sensitivity_level":{"allOf":[{"$ref":"#/definitions/rulesets_ExecuteSensitivityLevel"},{"description":"The sensitivity level to use for rules in the category. This option is only applicable for DDoS phases.","type":"string"}]}},"required":["category"],"title":"Category Override","type":"object"},"minItems":1,"title":"Category Overrides","uniqueItems":true},"rulesets_ExecuteRuleOverrides":{"description":"A list of rule-level overrides. This option has the highest precedence.","type":"array","items":{"description":"A rule-level override.","minProperties":2,"properties":{"action":{"allOf":[{"$ref":"#/definitions/rulesets_RuleAction"},{"description":"The action to override the rule with.","type":"string","examples":["log"]}]},"enabled":{"allOf":[{"$ref":"#/definitions/rulesets_RuleEnabled"},{"description":"Whether to enable execution of the rule.","type":"boolean"}]},"id":{"allOf":[{"$ref":"#/definitions/rulesets_RuleId"},{"description":"The ID of the rule to override.","type":"string","examples":["8ac8bc2a661e475d940980f9317f28e1"]}]},"score_threshold":{"description":"The score threshold to use for the rule.","type":"integer","title":"Score Threshold"},"sensitivity_level":{"allOf":[{"$ref":"#/definitions/rulesets_ExecuteSensitivityLevel"},{"description":"The sensitivity level to use for the rule. This option is only applicable for DDoS phases.","type":"string"}]}},"required":["id"],"title":"Rule Override","type":"object"},"minItems":1,"title":"Rule Overrides","uniqueItems":true},"rulesets_ExecuteSensitivityLevel":{"type":"string","enum":["default","medium","low","eoff"],"title":"Sensitivity Level","examples":["default"]},"rulesets_RewriteHeaderOperation":{"description":"The operation to perform on the header.","type":"string","title":"Operation"},"rulesets_RewriteHeaderValue":{"description":"A static value for the header.","type":"string","minLength":1,"title":"Header Value","examples":["my-header-value"]},"rulesets_RewriteHeaderExpression":{"description":"An expression that evaluates to a value for the header.","type":"string","minLength":1,"title":"Header Expression","examples":["ip.src"]},"rulesets_RewriteUriPath":{"description":"A URI path rewrite.","type":"object","properties":{"expression":{"description":"An expression that evaluates to a value to rewrite the URI path to.","type":"string","minLength":1,"title":"Path Expression","examples":["regex_replace(http.request.uri.path, \"/foo$\", \"/bar\")"]},"value":{"description":"A value to rewrite the URI path to.","type":"string","minLength":1,"title":"Path Value","examples":["/foo"]}},"maxProperties":1,"minProperties":1,"title":"URI Path"},"rulesets_RewriteUriQuery":{"description":"A URI query rewrite.","type":"object","properties":{"expression":{"description":"An expression that evaluates to a value to rewrite the URI query to.","type":"string","minLength":1,"title":"Query Expression","examples":["regex_replace(http.request.uri.query, \"foo=bar\", \"\")"]},"value":{"description":"A value to rewrite the URI query to.","type":"string","title":"Query Value","examples":["foo=bar"]}},"maxProperties":1,"minProperties":1,"title":"URI Query"},"rulesets_SetCacheControlCloudflareOnly":{"description":"Whether the directive should only be applied to the Cloudflare CDN cache.","type":"boolean","default":false,"title":"Cloudflare Only","examples":[false]},"rulesets_SetCacheControlOperation":{"description":"The operation to perform on the cache-control directive.","type":"string","enum":["set","remove"],"title":"Operation","examples":["set"]},"rulesets_SetCacheSettingsCustomCacheKey":{"description":"Which components of the request are included or excluded from the cache key.","type":"object","properties":{"cookie":{"$ref":"#/definitions/rulesets_SetCacheSettingsCustomCacheKeyCookie"},"header":{"$ref":"#/definitions/rulesets_SetCacheSettingsCustomCacheKeyHeader"},"host":{"$ref":"#/definitions/rulesets_SetCacheSettingsCustomCacheKeyHost"},"query_string":{"$ref":"#/definitions/rulesets_SetCacheSettingsCustomCacheKeyQueryString"},"user":{"$ref":"#/definitions/rulesets_SetCacheSettingsCustomCacheKeyUser"}},"title":"Custom Cache Key"},"rulesets_SetCacheSettingsStatusCodeTTL":{"description":"A list of TTLs to apply to specific status codes or status code ranges.","type":"array","items":{"maxProperties":2,"minProperties":2,"properties":{"status_code":{"description":"A single status code to apply the TTL to.","type":"integer","maximum":999,"minimum":100,"title":"Status Code","examples":[200]},"status_code_range":{"description":"A range of status codes to apply the TTL to.","type":"object","minProperties":1,"properties":{"from":{"description":"The lower bound of the range.","type":"integer","maximum":999,"minimum":100,"title":"From","examples":[200]},"to":{"description":"The upper bound of the range.","type":"integer","maximum":999,"minimum":100,"title":"To","examples":[299]}},"title":"Status Code Range"},"value":{"description":"The time to cache the response for (in seconds). A value of 0 is equivalent to setting the cache control header with the value \"no-cache\". A value of -1 is equivalent to setting the cache control header with the value of \"no-store\".","type":"integer","title":"TTL Value","examples":[0]}},"required":["value"],"type":"object"},"minItems":1,"title":"Status Code TTLs","uniqueItems":true},"rulesets_SetCacheSettingsVaryDefault":{"description":"Controls how response Vary headers without a per-header override contribute to the cache key.","type":"object","properties":{"action":{"description":"How the header value is treated when building the cache key.","type":"string","enum":["bypass","passthrough","normalize"],"title":"Action","examples":["normalize"]}},"required":["action"],"title":"Vary Default"},"rulesets_SetCacheSettingsVaryHeader":{"description":"Controls how a single request header contributes to the cache key.","type":"object","properties":{"action":{"description":"How the header value is treated when building the cache key.","type":"string","enum":["bypass","passthrough","normalize"],"title":"Action","examples":["normalize"]},"languages":{"description":"The set of languages to normalize against. Only valid for the `accept-language` header.","type":"array","items":{"description":"A language tag to normalize against. Must be printable ASCII.","maxLength":64,"minLength":1,"pattern":"^[ -~]+$","title":"Language","type":"string","examples":["en"]},"maxItems":20,"title":"Languages"},"media_types":{"description":"The set of media types to normalize against. Only valid for the `accept` header.","type":"array","items":{"description":"A media type to normalize against. Must be printable ASCII.","maxLength":255,"minLength":1,"pattern":"^[ -~]+$","title":"Media Type","type":"string","examples":["image/webp"]},"maxItems":10,"title":"Media Types"}},"required":["action"],"title":"Vary Header"},"rulesets_RuleCategory":{"description":"The category of a rule.","type":"string","minLength":1,"title":"Category","examples":["directory-traversal"]},"rulesets_SetCacheSettingsCustomCacheKeyCookie":{"description":"Which cookies to include in the cache key.","type":"object","properties":{"check_presence":{"description":"A list of cookies to check for the presence of. The presence of these cookies is included in the cache key.","type":"array","items":{"description":"The name of the cookie to check for the presence of.","minLength":1,"title":"Cookie Name","type":"string","examples":["myCookie"]},"minItems":1,"title":"Check Presence","uniqueItems":true},"include":{"description":"A list of cookies to include in the cache key.","type":"array","items":{"description":"The name of the cookie to include.","minLength":1,"title":"Cookie Name","type":"string","examples":["myCookie"]},"minItems":1,"title":"Include","uniqueItems":true}},"title":"Cookies"},"rulesets_SetCacheSettingsCustomCacheKeyHeader":{"description":"Which headers to include in the cache key.","type":"object","properties":{"check_presence":{"description":"A list of headers to check for the presence of. The presence of these headers is included in the cache key.","type":"array","items":{"description":"The name of the header to check for the presence of.","minLength":1,"title":"Header","type":"string","examples":["my-header"]},"minItems":1,"title":"Check Presence","uniqueItems":true},"contains":{"description":"A mapping of header names to a list of values. If a header is present in the request and contains any of the values provided, its value is included in the cache key.","type":"object","additionalProperties":{"description":"A list of values to match the header against.","items":{"description":"The header value to match against.","minLength":1,"title":"Header Value","type":"string","examples":["my-header-value"]},"minItems":1,"title":"Header Values","type":"array","uniqueItems":true},"minProperties":1,"title":"Contains","examples":[{"my-header":["my-header-value-1","my-header-value-2"]}]},"exclude_origin":{"description":"Whether to exclude the origin header in the cache key.","type":"boolean","title":"Exclude Origin","examples":[true]},"include":{"description":"A list of headers to include in the cache key.","type":"array","items":{"description":"The name of the header to include.","minLength":1,"title":"Header","type":"string","examples":["my-header"]},"minItems":1,"title":"Include","uniqueItems":true}},"title":"Headers"},"rulesets_SetCacheSettingsCustomCacheKeyHost":{"description":"How to use the host in the cache key.","type":"object","properties":{"resolved":{"description":"Whether to use the resolved host in the cache key.","type":"boolean","title":"Use Resolved Host","examples":[true]}},"title":"Host"},"rulesets_SetCacheSettingsCustomCacheKeyQueryString":{"description":"Which query string parameters to include in or exclude from the cache key.","type":"object","properties":{"exclude":{"description":"Which query string parameters to exclude from the cache key.","type":"object","maxProperties":1,"minProperties":1,"properties":{"all":{"description":"Whether to exclude all query string parameters from the cache key.","type":"boolean","enum":[true],"title":"Exclude All"},"list":{"description":"A list of query string parameters to exclude from the cache key.","type":"array","items":{"description":"The name of the query string parameter to exclude.","minLength":1,"title":"Parameter Name","type":"string","examples":["foo"]},"minItems":1,"title":"Exclude List","uniqueItems":true}},"title":"Exclude"},"include":{"description":"Which query string parameters to include in the cache key.","type":"object","maxProperties":1,"minProperties":1,"properties":{"all":{"description":"Whether to include all query string parameters in the cache key.","type":"boolean","enum":[true],"title":"Include All"},"list":{"description":"A list of query string parameters to include in the cache key.","type":"array","items":{"description":"The name of the query string parameter to include.","minLength":1,"title":"Parameter Name","type":"string","examples":["foo"]},"minItems":1,"title":"Include List","uniqueItems":true}},"title":"Include"}},"maxProperties":1,"title":"Query String Parameters"},"rulesets_SetCacheSettingsCustomCacheKeyUser":{"description":"How to use characteristics of the request user agent in the cache key.","type":"object","properties":{"device_type":{"description":"Whether to use the user agent's device type in the cache key.","type":"boolean","title":"Device Type","examples":[true]},"geo":{"description":"Whether to use the user agents's country in the cache key.","type":"boolean","title":"Country","examples":[true]},"lang":{"description":"Whether to use the user agent's language in the cache key.","type":"boolean","title":"Language","examples":[true]}},"title":"User"}}},"name":"Update an account entry point ruleset","id":"cloudflare.updateaccountentrypointruleset","example":{"path":{"ruleset_phase":"http_request_firewall_custom","account_id":"abf9b32d38c5f572afde3336ec0ce302"},"body":{"id":"2f2feab2026849078ba485f918791bdc"}},"maxRequests":1,"summary":false}}