---
title: "Update an application"
method: PATCH
path: "/applications/{id}"
tags: ["applications"]
---

# Update an application

`PATCH /applications/{id}`

## Path parameters

- `id` string, required

## Request body

- ApplicationPatch
  - `name` string — The name of the application.
  - `aliases` string[] — Ordered array of application domain names. The first array entry will be used as the primary application domain name.
  - `bot_management` BotManagement
    - `user_agent` boolean, required — When set to true, bot identification takes place using user-agent of the request.
  - `cdn_aliases` string[] — Array of application domain names published to CDN.
  - `components` Component[] — List of resource layers that are attached to this application. Examples of such resources include EC2 or RDS instances available in an AWS cloud provider.
    - `layer_name` string — Name of the resource layer being referenced here.
    - `element` string — The endpoint for a resource accessible via services available for this account.
  - `cdn_configuration` CdnConfiguration
    - `controls` CdnControl[], required — Array of cdn controls to be configured with the cdn distribution.
      - `path_pattern` string, required — The path pattern that specifies to which requests a CDN control should apply.
      - `default_ttl` integer
      - `cache_key` CdnCacheKey, required
        - `headers` 'none' | 'include-specified', required — Determines whether any HTTP headers in the viewer requests (and if so, which headers) needs to be included in the cache key.
        - `header_names` string[] — Array of header names to be included in the cache key.
        - `cookies` 'none' | 'all' | 'include-specified' | 'exclude-specified', required — Determines whether any cookies in the viewer requests (and if so, which cookies) needs to be included in the cache key.
        - `cookie_names` string[] — Array of cookie names to be included or excluded in cache key.
        - `queries` 'none' | 'all' | 'include-specified' | 'exclude-specified', required — Determines whether any URL query strings in the viewer requests (and if so, which query strings) needs to be included in the cache key
        - `query_names` string[] — Array of query names to be included or excluded in cache key.
      - `origin_request` CdnOriginRequest
        - `headers` 'none' | 'all' | 'include-specified', required — Determines whether any HTTP headers in viewer requests (and if so, which headers) needs to be sent to the origin.
        - `header_names` string[] — Array of header names to be included or excluded in origin request.
        - `cookies` 'none' | 'all' | 'include-specified', required — Determines whether any cookies in viewer requests (and if so, which cookies) needs to be sent to the origin.
        - `cookie_names` string[] — Array of cookie names to be included or excluded in origin request.
        - `queries` 'none' | 'all' | 'include-specified', required — Determines whether any URL query strings in viewer requests (and if so, which query strings) needs to be sent to the origin.
        - `query_names` string[] — Array of query names to be included or excluded in origin request.
      - `origin_request_handlers` HandlerHref[] — The handler to run for matching requests made when Webscale CDN contacts origin.
      - `origin_response_handlers` HandlerHref[] — The handler to run for matching requests made when origin responds to Webscale CDN.
  - `cdn_ready` boolean — True when a delivery = cdn has been configured and is ready.
  - `cdn_service` string — A href to the cdn service configured for the application.
  - `default_hostname` string — Alias for an application
  - `dns_service` string, nullable — A href to the dns service configured for the application.
  - `servers_hostname` union
    - unknown
    - string — A fully qualified domain name (FQD) whose addresses are used to set the backend servers to which traffic should be sent
  - `delivery` 'cdn' | 'rewrite-to-cdn' | 'without-cdn' — The mode of delivery for an application. One of 'cdn', 'without-cdn', or 'rewrite-to-cdn'. The 'rewrite-to-cdn' mode is not recommended for new applications
  - `enable_cdn` boolean — Enable CDN for the application. This is not used if the 'delivery' attribute is set
  - `enable_http2` boolean — Enable HTTP2 for the application.
  - `enable_rum` boolean — Enable RUM for the application.
  - `enable_tls` boolean — Enable TLS for the application. The tls_configuration is required if true.
  - `tls_configuration` TlsConfiguration
    - `private_key` union — A reference to a secret containing a private key
      - ResourceReference
        - `href` string, required — The endpoint for the resource.
      - string — A resource reference
    - `private_keys` union[] — A reference to an array of secrets containing private keys
      - union
        - ResourceReference
          - `href` string, required — The endpoint for the resource.
        - string — The endpoint for the secret resource.
    - `certificate_chain` string — The signed certificate followed by any intermediate certificate chain.
    - `enable_auto_tls` boolean — When enabled Auto TLS will configure your application to automatically obtain and renew certificates from Let's Encrypt.
    - `enable_force_tls` boolean — Force HTTP traffic to be routed over HTTPS for the application.
    - `enable_tls_offloading` boolean — When enabled the ADC tier will act as a TLS termination proxy, decrypting incoming HTTPS traffic and routing the unencrypted traffic to the application tier over HTTP. Response from the application tier are encrypted at the ADC tier and routed over HTTPS back to the client.
    - `enable_server_validation` boolean — Enable validation of the TLS certificate chain against the application servers.
    - `tolerate_invalid_chain` boolean — Tolerate certificate chain errors in certificates presented by the application servers.
    - `versions` TlsVersion[] — The versions of TLS that will be accepted for this application
    - `covered_aliases` CoveredAlias[] — Covered aliases by tls configuration for this application
      - `name` string, required — Covered alias name
      - `not_after` string, required — An iso8601 formatted timestamp
      - `trusted` boolean, required — Certificate is trusted or not
  - `metrics` MetricConfiguration[] — Array of metric configurations attached for the application
    - `name` string — Name of the metric
    - `frequency` integer — Frequency at which metrics are populated
    - `prototype` string, required — A reference to the metric prototype
  - `monitoring` 'none' | 'passive' | 'active' — The monitoring mode. When active, the application will be monitored regularly from a separate location, in addition to passive monitoring. When passive, the error rate for the application is monitored and used to generate alerts, but if there is no regular activity to the application, then no outage will be detected.
  - `waf_rules` WafFileReference[] — The waf rules for the application.
    - `file` ResourceReference, required
      - `href` string, required — The endpoint for the resource.
    - `name` string, required — The name of the waf rule.
    - `created` string, date-time — The timestamp when a waf rule was uploaded.
    - `active` integer, required — Indicates if the waf rule is active or not. 1 represents active and 0 is inactive.
  - `whitelist` AddressSetEntry[] — A list of addresses to always be allowed access.
    - `created` string — An iso8601 formatted timestamp
    - `created_by` string — Reference to the user that created this id
    - `description` string — Description of the address
    - `address` string, required — A ip address or range.
    - `expiry` string — An iso8601 formatted timestamp
  - `whitelist_href` string — The endpoint for an address set resource
  - `blacklist` AddressSetEntry[] — A list of addresses to be restricted access.
    - `created` string — An iso8601 formatted timestamp
    - `created_by` string — Reference to the user that created this id
    - `description` string — Description of the address
    - `address` string, required — A ip address or range.
    - `expiry` string — An iso8601 formatted timestamp
  - `blacklist_href` string — The endpoint for an address set resource
  - `blacklist_user_agents` string, nullable — A regular expression of user agents to be restricted access.
  - `concurrent_limit` integer — Maximum number of concurrently active requests that can be run in a load balancer before requests are put in the suspend queue. This attribute may only be set by system administrators
  - `maximum_queue_time` integer — Maximum amount of time a request can spend in the suspend queue of a load balancer before it is failed with a timeout. This attribute may only be set by system administrators
  - `merge_slashes` boolean — Controls whether the server merges consecutive slashes in URLs. By default, consecutive slashes are merged into a single slash.
  - `suspend_limit` integer — Maximum number of requests that can be put in the suspend queue of a load balancer before the oldest requests are failed. This attribute may only be set by system administrators
  - `probes` string[]
  - `protection` 'normal' | 'maximum' — The protection mode.
  - `protection_captcha_retry_limit` integer — Number of incorrect attempts a user is allowed before the user may be blacklisted.
  - `protection_blacklist_timeout` integer — Number of seconds to enforce blacklist on the suspicious user.
  - `protection_microsite_file` string — Endpoint for the file id associated with the captcha microsite.
  - `cluster` string, nullable — The endpoint for the cluster resource.
  - `servers` union
    - unknown
    - ApplicationServer[] — Application static servers.
      - `public_address` string, required — IP address
      - `description` string — Description of the server.
  - `page_controls` PageControlConfiguration[] — An array of specific mode page controls processed in sequence to modify the behavior of request processing
    - `name` string, required — Short name describing the page control.
    - `description` string — Optional additional description of the page control.
    - `mode` 'maintenance' | 'request' | 'response' — Set as 'maintenance' for maintenance mode page control.
    - `enabled` boolean — Enables or disables the page control.
    - `conditions` PageControlConditions — The conditions that cause a page control to trigger
      - `address_is_whitelisted` object — The actions will be applied to whitelist addresses
      - `address_is_not_whitelisted` object — The actions will be applied to all the incoming IP addresses except whitelist addresses. By default, actions are applied to whitelist addresses
      - `auth_cookie_is_not_set` PageControlConditionAuthCookieIsNotSet — Test to see if a named authorization cookie is not set or is expired.
        - `name` string, required — Name of the cookie to test
      - `auth_cookie_is_set` PageControlConditionAuthCookieIsSet — Test to see if a named authorization cookie is set and not expiredd.
        - `name` string, required — Name of the cookie to test
      - `cookie_is_not_set` PageControlConditionCookieIsNotSet — Test to see if a named cookie is not set.
        - `name` string, required — Name of the cookie to test
      - `cookie_is_set` PageControlConditionCookieIsSet — Test to see if a named cookie is set.
        - `name` string, required — Name of the cookie to test
      - `cookie_value_does_not_match` PageControlConditionCookieValueDoesNotMatch — Test to check if the named cookie value does not match the specified pattern. If the specified cookie does not exist, this condition will evaluate to true. Cookie value pattern must be a regular expression.
        - `name` string, required — Name of the cookie to test
        - `pattern` string, regex, required — A regular expression to match with cookie value
      - `cookie_value_matches` PageControlConditionCookieValueMatches — Test to check if the named cookie value matches the specified pattern. Cookie value pattern must be a regular expression.
        - `name` string, required — Name of the cookie to test
        - `pattern` string, regex, required — A regular expression to match with cookie value
      - `country_is_not` PageControlConditionCountryIsNotIncluded — Tests if the country of origin of a request is excluded from the specified list.
        - `list` CountryCode[], required — A list of country codes
      - `country_is` PageControlConditionCountryIsIncluded — Tests if the country of origin of a request is included in the specified list.
        - `list` CountryCode[], required — A list of country codes
      - `header_value_matches` PageControlConditionHeaderValueMatches — Test to check if the header value matches the specified pattern. Header value pattern must be a regular expression
        - `name` string, required — Name of the header to test
        - `pattern` string, regex, required — A regular expression to match with header
      - `header_value_does_not_match` PageControlConditionHeaderValueMatches — Test to check if the header value matches the specified pattern. Header value pattern must be a regular expression
        - `name` string, required — Name of the header to test
        - `pattern` string, regex, required — A regular expression to match with header
      - `headers_match` ConditionHeader[] — Array of headers conditions
        - `name` string, required — Name of the header to test
        - `pattern` string, regex, required — A regular expression to match with header value
      - `headers_not_match` ConditionHeader[] — Array of headers conditions
        - `name` string, required — Name of the header to test
        - `pattern` string, regex, required — A regular expression to match with header value
      - `method_is` PageControlMethodIsIncluded — Tests if the method name of a request is included in the specified list.
        - `values` MethodName[], required — A list of method names.
      - `method_is_not` PageControlMethodIsNotIncluded — Tests if the method name of a request is excluded from the specified list.
        - `values` MethodName[], required — A list of method names.
      - `address_is_threat` object — Tests if the requester's IP address is a known malicious source.
      - `address_is_not_threat` object — Tests if the requester's IP address is not a known mailicious source.
      - `is_crawler` object — The actions will be applied to requests from known web crawlers.
      - `address_in_set` PageControlConditionAddressInSet — Tests if requester's IP address is in the specified address set
        - `address_set` string, required — The endpoint for an address set resource
      - `address_not_in_set` PageControlConditionAddressNotInSet — Tests if requester's IP address is not in the specified address set
        - `address_set` string, required — The endpoint for an address set resource
      - `random` PageControlConditionRandom — A test based on generating a random variable and triggering on a specified probability
        - `probability` number, required — Probability for which condition is true
      - `rate_limit` PageControlConditionRateLimit — True when the number of request during a duration is greater than a specified threshold.
        - `duration` integer, required — The amount of time, in number of seconds, over which to accumulate the request count
        - `display_unit` 'seconds' | 'minutes' | 'hours', required — Unit to use for displaying the time duration specified.
        - `threshold` integer, required — Maximum number of requests in the given duration before the condition is triggered
      - `referrer_is` string[] — The actions will be applied to requests for which request referrer matches with the given referrer
      - `referrer_is_not` string[] — The actions will be applied to requests for which request referrer does not match with the given referrer
      - `referrer_is_defined` object — The actions will be applied to requests for which request referrer matches with one of the application aliases
      - `referrer_is_not_defined` object — The actions will be applied to requests for which request referrer does not match with one of the application aliases
      - `status_code_matches` PageControlConditionStatusCodeMatches — Test to see if the response status code matches the pattern.
        - `pattern` string, regex, required — A regular expression to match against the response status code.
      - `urls` ConditionUrl[] — Array of url objects
        - `scheme` string — Http scheme used for matching against requests. If this field is not specified then both http and https will match.
        - `domain` string — Wildcard domain used for matching against requests. If this field is not specified then all configured application domains will match.
        - `path` string — Wildcard path used for matching against requests. If this field is not specified then all paths will match.
        - `query` string — Wildcard query used for matching against requests. If this field is not specified then all query values will match.
      - `url_is_not` ConditionUrl[] — Array of url objects
        - `scheme` string — Http scheme used for matching against requests. If this field is not specified then both http and https will match.
        - `domain` string — Wildcard domain used for matching against requests. If this field is not specified then all configured application domains will match.
        - `path` string — Wildcard path used for matching against requests. If this field is not specified then all paths will match.
        - `query` string — Wildcard query used for matching against requests. If this field is not specified then all query values will match.
      - `user_agent_matches` PageControlConditionUserAgentMatches — Test if user-agent of a request matches the given regular expression
        - `pattern` string, required — A regular expression to match with user-agent
      - `user_agent_does_not_match` PageControlConditionUserAgentDoesNotMatch — Test if user-agent of a request does not match the given regular expression
        - `pattern` string, required — A regular expression to match with user-agent
    - `actions` PageControlAction[], required — Actions that are applied when the page control is triggered.
      - union — An array of actions to enact on the triggering of a page control.
        - PageControlActionAddIPToList — Add IP address of the request to address set
          - `type` 'add-address-to-set', required
          - `address_set` string, required — The endpoint for an address set resource
          - `ttl` number — The amount of time in seconds that an IP address will live in a set
        - PageControlActionAddLabels — Add custom labels to processed traffic. This is a non-final action.
          - `type` 'add-labels', required
          - `labels` Label[], required — Array of labels that will be attached to matching traffic
        - PageControlActionCacheOverrides — Update the cache-related headers of responses from backend servers.
          - `type` 'cache-overrides', required
          - `setting` string, required — Always-cache erases cache control headers and sets the cache control header to 'public' along with removing Pragma and Expires headers, allowing Webscale and browsers to cache affected responses for a default amount of time. Bypass-cache sets the cache control to disallow caching and the header is set to 'no-transform, no-cache, no-store, must-revalidate, max-age=0', ensuring that all responses are uniquely generated. Contents of the cache control header value (which will be used as is, if valid) to be used in place of the one returned from the application server when retrieving a resource
        - PageControlActionContinue — Continue execution of traffic controls. Non final action
          - `type` 'continue', required
        - PageControlActionDeny — Deny the request with the given status code. Final action
          - `type` 'deny', required
          - `status_code` string, required — Response status code that will be returned as a result of deny action
          - `body` string, required — The response body to send when a request is denied
        - PageControlActionDisableRum — Disable real user monitoring when RUM is enabled for the application. No beacon script for collecting RUM metrics will be injected into html responses.
          - `type` 'disable-rum', required
        - PageControlActionDisableSessionTracking — Disable Webscale session tracking. No session-tracking cookies will be added to responses.
          - `type` 'disable-session-tracking', required
        - PageControlActionDiscontinue — Discontinue execution of traffic controls. Final action that can be used to finalize a set of non-final actions
          - `type` 'discontinue', required
        - PageControlActionDrop — Drop the request. Final action
          - `type` 'drop', required
        - PageControlActionRedirect — Redirect the request. Final action
          - `type` 'redirect', required
          - `status_code` string, required — Response status code that will be returned as a result of redirection
          - `location` string, required — A valid URL with http or https scheme, a hostname, and a path
        - PageControlActionRedirectUsingMap — Redirect the request using a url map. If the request URL is found in the url map and a redirect occurs, then this is a final action
          - `type` 'redirect-using-map', required
          - `preserve_query` boolean, required — When true, query parameters from the request are preserved in the redirect location, unless the location in the url map specifies a query separator (question mark)
          - `status_code` string, required — Response status code that will be returned in a redirect response
          - `url_map` string, required — A reference to a url map
        - PageControlActionRewriteUrl — Rewrite the incoming request URL prior to serving it. The rewrite is designed to rewrite the URL path and the query parameters. If the URL scheme or the hostname is attempted to be modified the resulting behavior is unspecified.
          - `type` 'rewrite-url', required
          - `url` string, required — A valid URL with http or https scheme, a hostname, and a path
        - PageControlActionSetRequestTimeout — Set timeout for a request
          - `type` 'set-request-timeout', required
          - `timeout` integer, required — An integer of value 1 or more.
        - PageControlActionScriptAddAsync — Update matching script elements to add the async attribute.
          - `type` 'script-add-async', required
          - `scripts` Script[], required — Array of urls that has to be made async
        - PageControlActionScriptAddDefer — Update matching script elements to add the defer attribute.
          - `type` 'script-add-defer', required
          - `scripts` Script[], required — Array of urls that has to be deferred
        - PageControlActionSetContentSecurityPolicy — Set a content security policy.
          - `type` 'set-content-security-policy', required
          - `value` object, required — CSP action value is a hash where the key is the directive name and the value is the directive value. The directive value is usually an array of strings, but for a couple directives it is a boolean.
        - PageControlActionSetAuthCookie — Set or extend an authorization cookie. The cookie is valid for a specified duration and a domain and path if specified
          - `type` 'set-auth-cookie', required
          - `name` string, required — The name of the cookie to be set
          - `domain` string — Optional domain to be sent with cookie
          - `duration` integer, required — The lifespan of the cookie when issued, in seconds. After the cookie is initially sent, it will be refreshed if the expiry is less than 1/2 the duration from the current time
          - `path` string — Optional path to be sent with the cookie
        - PageControlActionSetCookie — Set a response cookie.
          - `type` 'set-cookie', required
          - `name` string, required — The name of the cookie to be set
          - `value` string, required — The value to set for the cookie
          - `max_age` integer — An integer of value 0 or more.
          - `path` string — The path to which the cookie applies
        - PageControlActionSetPagespeedOptions — Provides options for the pagespeed integration
          - `type` 'set-pagespeed-options', required
          - `disable_filters` PagespeedFilterName[] — Array of filter names to disable. See the enable_filters attribute for the filters enabled by default
          - `enable` boolean — Set to false to disable pagespeed processing
          - `enable_filters` PagespeedFilterName[] — Array of filter names to enable. The filters enabled by default are: add_head, canonicalize_javascript_libraries, combine_css, convert_meta_tags, extend_cache, fallback_rewrite_css_urls, flatten_css_imports, inline_css, inline_import_to_link, inline_javascript, insert_dns_prefetch, rewrite_css, rewrite_images, rewrite_javascript, and rewrite_style_attributes_with_url
        - PageControlActionSetRequestHeader — Set a request header before a request is sent to a backend server.
          - `type` 'set-request-header', required
          - `name` string, required — The name of the header to be set
          - `value` string, required — The value for the specified header
        - PageControlActionSetResponseHeader — Set a response header before a response is returned to a web browser.
          - `type` 'set-response-header', required
          - `name` string, required — The name of the header to be set
          - `value` string, required — The value for the specified header
        - PageControlActionServe — Serve the microsite resource specified by a relative path with a specified status code. If the resource does not exist in the application's microsite, then the file index.html is used instead, which is guaranteed to exist.
          - `type` 'serve', required
          - `code` string, required — The HTTP status code to return
          - `file` string — Endpoint resource reference to a file.
          - `path` string, required — The file path for the page to serve
        - PageControlActionServeCaptchaChallenge — Issue a reCaptcha challenge to the user for all incoming requests unless the user has successfully completed a validation before.
          - `type` 'serve-captcha-challenge', required
        - PageControlActionTerminateHttps — Use HTTP to communicate with backend servers regardless of the request protocol. Final action
          - `type` 'terminate-https', required
        - PageControlActionUseAlternateBackends — Use different servers than the default for matching requests. Final action
          - `type` 'use-alternate-backends', required
          - `cluster` string, nullable — The endpoint for the cluster resource.
          - `servers` ApplicationServer[] — A list of IP addresses to which traffic is sent. One of cluster or servers is required
            - `public_address` string, required — IP address
            - `description` string — Description of the server.
          - `servers_hostname` string — A fully qualified domain name (FQD) whose addresses are used to set the backend servers to which traffic should be sent
          - `remote_url` union
            - unknown
            - string — A URL used to access backend servers. This URL may omit the scheme. If the scheme is set, then that scheme will be used to access the backend server regardless of the request scheme. When a hostname is provided in the URL, then it will be used instead of the request hostname. If a path is provided, the pathname requested from the backend server will be the path formed by joining the URL path and the request path. <h3>Examples</h3><table><thead><tr><th>Request URL</th><th>Remote URL</th><th>Effective URL</th></tr></thead><tbody><tr><td>https://example.com/page</td><td>—</td><td>https://example.com/page</td></tr><tr><td>https://example.com/page</td><td>/prefix</td><td>https://example.com/prefix/page</td></tr><tr><td>https://example.com/page</td><td>//althost.com/</td><td>https://althost.com/page</td></tr><tr><td>https://example.com/page</td><td>//althost.com/prefix</td><td>https://althost.com/prefix/page</td></tr><tr><td>https://example.com/page</td><td>http://althost.com/prefix</td><td>http://althost.com/prefix/page</td></tr></tbody></table>
          - `relative_to` union
            - unknown
            - string — A path in the URL space of the application at which the resources obtained from the backend server are mapped. If not used with a condition that only matches URL paths that begin with this value, then the result may be unpredictable. The path mapping logically happens before any mapping performed by the remote_url attribute. <h3>Examples</h3><table><thead><tr><th>Request URL</th><th>Relative to</th><th>Effective path</th></tr></thead><tbody><tr><td>/</td><td>—</td><td>/</td></tr><tr><td>/base</td><td>—</td><td>/base</td></tr><tr><td>/base</td><td>/base</td><td>/</td></tr><tr><td>/base/page</td><td>/base</td><td>/page</td></tr></tbody></table>
        - PageControlActionUserHasRole — Limit access to accounts and applications to users belonging to the given role.
          - `type` 'user-has-role', required
          - `roles` string[], required — Users must belong to at least one of these roles
        - PageControlActionSubstitute — Substitute a string with an alternate string.
          - `type` 'substitute', required
          - `substitutes` Substitute[], required — Array of substitutes
            - `contains` string, required — Case sensitive text in URL or query.
            - `replace` string, required — Text that will replace the case sensitive input provided by user.
        - PageControlActionUseServerlessFunction — Allows the user to invoke serverless function
          - `type` 'use-serverless-function'
          - `function` string, required — A reference to the handler.
  - `request_timeout` integer — Time for which Webscale proxy will wait for a backend server to respond. If proxy does not receive response in a specified time from the backend server, a maintenance page with status 502 Bad Gateway will be returned
  - `shields` union[] — A list of href's referencing firewalls that can be enabled/disabled for the application.
    - union
      - string — Endpoint resource reference to the firewall rule.
      - string — The endpoint resource identifier for the security group, must be a URL encoded string.
  - `shields_include_whitelist` boolean — Add whitelist addresses to shields. By default whitelist addresses are not added to the shields. Google cloud supports only IPv4 addresses in their firewall rules. Any IPv6 addresses in the whitelist will not be added to the firewall rules for Google. AWS supports both IPv4 and IPv6 addresses in the security groups
  - `site_cache` union
    - unknown
    - SiteCache — A configuration for Dynamic Site Cache
      - `enabled` boolean, required — When false, site cache will be turned off
      - `rules` SiteCacheRule[], required — A sequence of rules for caching. Each enabled rule is evaluated in sequence, and the first whose conditions match a request will apply to that request. If none match, then no caching will be done
        - `conditions` SiteCacheCondition[], required — An array of conditions. When empty, all requests match
          - union — A condition used to match requests for Dynamic Site Cache
            - ConditionAddressInSet — Tests if requester's IP address is in the specified address set.
              - …
            - ConditionAddressIsNotThreat — True if the requester's IP address is not a known malicious source.
              - …
            - ConditionAddressIsNotWhitelisted — True if the requester's IP address is not on the application whitelist.
              - …
            - ConditionAddressIsThreat — True if the requester's IP address is a known malicious source.
              - …
            - ConditionAddressIsWhitelisted — True if the requester's IP address is on the application whitelist.
              - …
            - ConditionAddressNotInSet — Tests if requester's IP address is not in the specified address set
              - …
            - ConditionAuthCookieIsNotSet — True when a specified authorization cookie is not set or is expired.
              - …
            - ConditionAuthCookieIsSet — True when a specified authorization cookie is set and not expired.
              - …
            - ConditionCookieIsNotSet — True if a named cookie is not set.
              - …
            - ConditionCookieIsSet — True to see if a named cookie is set.
              - …
            - ConditionCookieValueDoesNotMatch — Test to check if the named cookie value does not match the specified pattern. If the specified cookie does not exist, this condition will evaluate to true. Cookie value pattern must be a regular expression.
              - …
            - ConditionCookieValueMatches — Test to check if the named cookie value matches the specified pattern. Cookie value pattern must be a regular expression.
              - …
            - ConditionCountryIs — True if the country of origin of a request is included in the specified list.
              - …
            - ConditionCountryIsNot — True if the country of origin of a request is not in the specified list.
              - …
            - ConditionRandom — True if a value from a uniform random variable from 0.0 to 1.0 is less than or equal to the specified probability.
              - …
            - ConditionReferrerDoesNotMatch — True for a request for which request referrer does not match any referrer pattern from a list
              - …
            - ConditionReferrerIsDefined — True for a request for which request referrer hostname matches a hostname for this application
              - …
            - ConditionReferrerIsNotDefined — True for a request for which request referrer hostname does not match a hostname for this application.
              - …
            - ConditionReferrerMatches — True for a request for which request referrer matches a referrer pattern from a list
              - …
            - ConditionUrlDoesNotMatch — True for a request URL that does not match any URL pattern from a list.
              - …
            - ConditionUrlMatches — True for a request URL that matches a URL pattern from a list.
              - …
            - ConditionUserAgentDoesNotMatch — True for a request user-agent that does not match a specified regular expression
              - …
            - ConditionUserAgentMatches — True for a request user-agent that matches a specified regular expression
              - …
            - ConditionHeaderValueMatches — Test to check if the header value matches the specified pattern. Header value pattern must be a regular expression.
              - …
            - ConditionHeaderValueDoesNotMatch — Test to check if the header value does not match the specified pattern. If the specified header does not exist, this condition will evaluate to true. Header value pattern must be a regular expression.
              - …
            - ConditionHeadersMatch — Test to check if the list of named header values match their respective specified patterns.
              - …
            - ConditionHeadersNotMatch — Test to check if the list of named header values does not match their respective specified patterns.
              - …
            - ConditionMethodIs — True if the method name of a request is included in the specified list.
              - …
            - ConditionMethodIsNot — True if the method name of a request is not included in the specified list.
              - …
            - ConditionIsCrawler — True if the requester's IP address is a known Web Crawler.
              - …
        - `enabled` boolean, required — When false, this rule will not be used
        - `ttl_sec` number, required — The amount of time in seconds that a cached item is retained after it is initially stored
        - `key` union
          - unknown
          - CacheKeyConfiguration — The request attributes used to construct the cache key for requests matching this rule. Note that the request path is always included in the cache key construction.
            - `browser` boolean — When set to true, browser attributes used for content optimization are used in the cache key construction, ignored otherwise.
            - `cookie` string — The value of the specified cookie will be used to construct the cache key. If the value is null, it will be ignored.
            - `hostname` boolean — When set to true, the host name is used in the cache key construction, ignored otherwise.
            - `query` boolean — When set to true, query parameters are used in the cache key construction, ignored otherwise.
        - `tags` CacheTagConfiguration — The configuration to populate cache tags.
          - `from` 'header', required — The tags are used from the request header by default.
          - `name` string, required — Header names to be included in the cache tag.
  - `trusted_proxies` union
    - unknown
    - AddressSetHref[] — Trust only the referenced peers. The client address from the X-Forwarded-For header is accepted provided that the peer address is in one of the referenced sets, but otherwise ignored. If the array is empty, then no proxies are trusted and the X-Forwarded-For header is ignored.
  - `data_planes` string[] — Configured data planes
  - `trusted_proxies_only` boolean — Allows external traffic only from addresses from the configured trusted proxies, the control addresses, and pingdom.
  - `trusted_proxies_header` string — The name of the header from a trusted proxy that is used to obtain the request address. When not set, X-Forwarded-For is used.
  - `labels` Label[] — Array of labels that will be attached to the application.
  - `translate_path` 'preserve' | 'unescape' — Configuration to specify the handling of URL paths through the Webscale proxy. The default behavior is to leave the path value untouched (preserve). A value of 'unescape' would remove all escaped characters in the path and replace them with their equivalent unicode character.
  - `pagespeed_disallow` string[] — A set of URL patterns to exclude from pagespeed optimization
  - `pagespeed_exclude_agents` string — User agents that match this regular expression are excluded from pagespeed
  - `pagespeed_map_proxy_domains` string[] — A set of domains that are integrated into the pages for this site
  - `microsite` string — Endpoint resource reference to a file.
  - `web_controls` WebControlConfiguration[] — An array of specific mode web controls processed in sequence to modify the behavior of request processing
    - `name` string, required — Short name describing the web control.
    - `description` string — Optional additional description of the web control.
    - `mode` 'maintenance' | 'request' | 'response' — Set as 'maintenance' for maintenance mode web control.
    - `enabled` boolean — Enables or disables the web control.
    - `conditions` WebControlCondition[] — An array of conditions. When empty, all requests match
      - union — The condition that cause a web control to trigger
        - ConditionAddressInSet — Tests if requester's IP address is in the specified address set.
          - `type` 'address_in_set', required
          - `address_set` string, required — The endpoint for an address set resource
        - ConditionAddressIsNotThreat — True if the requester's IP address is not a known malicious source.
          - `type` 'address_is_not_threat', required
        - ConditionAddressIsNotWhitelisted — True if the requester's IP address is not on the application whitelist.
          - `type` 'address_is_not_whitelisted', required
        - ConditionAddressIsThreat — True if the requester's IP address is a known malicious source.
          - `type` 'address_is_threat', required
        - ConditionAddressIsWhitelisted — True if the requester's IP address is on the application whitelist.
          - `type` 'address_is_whitelisted', required
        - ConditionAddressNotInSet — Tests if requester's IP address is not in the specified address set
          - `type` 'address_not_in_set', required
          - `address_set` string — The endpoint for an address set resource
        - ConditionAuthCookieIsNotSet — True when a specified authorization cookie is not set or is expired.
          - `name` string, required — Name of the cookie to test
          - `type` 'auth_cookie_is_not_set', required
        - ConditionAuthCookieIsSet — True when a specified authorization cookie is set and not expired.
          - `name` string, required — Name of the cookie to test
          - `type` 'auth_cookie_is_set', required
        - ConditionCookieIsNotSet — True if a named cookie is not set.
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `name` string, required — Name of the cookie to test
          - `type` 'cookie_is_not_set', required
        - ConditionCookieIsSet — True to see if a named cookie is set.
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `name` string, required — Name of the cookie to test
          - `type` 'cookie_is_set', required
        - ConditionCookieValueDoesNotMatch — Test to check if the named cookie value does not match the specified pattern. If the specified cookie does not exist, this condition will evaluate to true. Cookie value pattern must be a regular expression.
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `name` string, required — Name of the cookie to test
          - `pattern` string, regex, required — A regular expression to match with cookie value
          - `type` 'cookie_value_does_not_match', required
        - ConditionCookieValueMatches — Test to check if the named cookie value matches the specified pattern. Cookie value pattern must be a regular expression.
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `name` string, required — Name of the cookie to test
          - `pattern` string, regex, required — A regular expression to match with cookie value
          - `type` 'cookie_value_matches', required
        - ConditionCountryIs — True if the country of origin of a request is included in the specified list.
          - `list` CountryCode[], required — A list of country codes
          - `type` 'country_is', required
        - ConditionCountryIsNot — True if the country of origin of a request is not in the specified list.
          - `list` CountryCode[], required — A list of country codes
          - `type` 'country_is_not', required
        - ConditionHeaderValueDoesNotMatch — Test to check if the header value does not match the specified pattern. If the specified header does not exist, this condition will evaluate to true. Header value pattern must be a regular expression.
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `name` string, required — Name of the header to test
          - `pattern` string, regex, required — A regular expression to match with header value
          - `type` 'header_value_does_not_match', required
        - ConditionHeaderValueMatches — Test to check if the header value matches the specified pattern. Header value pattern must be a regular expression.
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `name` string, required — Name of the header to test
          - `pattern` string, regex, required — A regular expression to match with header value
          - `type` 'header_value_matches', required
        - ConditionHeadersMatch — Test to check if the list of named header values match their respective specified patterns.
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `list` ConditionHeader[], required — Array of headers conditions
            - `name` string, required — Name of the header to test
            - `pattern` string, regex, required — A regular expression to match with header value
          - `type` 'headers_match' | 'response_headers_match', required
        - ConditionHeadersNotMatch — Test to check if the list of named header values does not match their respective specified patterns.
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `list` ConditionHeader[], required — Array of headers conditions
            - `name` string, required — Name of the header to test
            - `pattern` string, regex, required — A regular expression to match with header value
          - `type` 'headers_not_match' | 'response_headers_not_match', required
        - ConditionMethodIs — True if the method name of a request is included in the specified list.
          - `values` MethodName[], required — A list of method names.
          - `type` 'method_is', required
        - ConditionMethodIsNot — True if the method name of a request is not included in the specified list.
          - `values` MethodName[], required — A list of method names.
          - `type` 'method_is_not', required
        - ConditionRandom — True if a value from a uniform random variable from 0.0 to 1.0 is less than or equal to the specified probability.
          - `probability` number, required — Probability for which condition is true
          - `type` 'random', required
        - ConditionRateLimit — True when the number of request during a duration is greater than a specified threshold.
          - `duration` integer, required — The amount of time, in number of seconds, over which to accumulate the request count
          - `display_unit` 'seconds' | 'minutes' | 'hours', required — Unit to use for displaying the time duration specified.
          - `threshold` integer, required — Maximum number of requests in the given duration before the condition is triggered
          - `type` 'rate_limit'
        - ConditionReferrerDoesNotMatch — True for a request for which request referrer does not match any referrer pattern from a list
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `list` string[], required — A list of referrer wildcard patterns
          - `type` 'referrer_is_not', required
        - ConditionReferrerIsDefined — True for a request for which request referrer hostname matches a hostname for this application
          - `type` 'referrer_is_defined', required
        - ConditionReferrerIsNotDefined — True for a request for which request referrer hostname does not match a hostname for this application.
          - `type` 'referrer_is_not_defined', required
        - ConditionReferrerMatches — True for a request for which request referrer matches a referrer pattern from a list
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `list` string[], required — A list of referrer wildcard patterns
          - `type` 'referrer_is', required
        - ConditionStatusCodeMatches — True if the response code matches the pattern.
          - `pattern` string, regex, required — A regular expression to match against the response status code.
          - `type` 'status_code_matches', required
        - ConditionUrlDoesNotMatch — True for a request URL that does not match any URL pattern from a list.
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `list` ConditionUrl[], required — Array of url objects
            - `scheme` string — Http scheme used for matching against requests. If this field is not specified then both http and https will match.
            - `domain` string — Wildcard domain used for matching against requests. If this field is not specified then all configured application domains will match.
            - `path` string — Wildcard path used for matching against requests. If this field is not specified then all paths will match.
            - `query` string — Wildcard query used for matching against requests. If this field is not specified then all query values will match.
          - `type` 'url_is_not', required
        - ConditionUrlMatches — True for a request URL that matches a URL pattern from a list.
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `list` ConditionUrl[], required — Array of url objects
            - `scheme` string — Http scheme used for matching against requests. If this field is not specified then both http and https will match.
            - `domain` string — Wildcard domain used for matching against requests. If this field is not specified then all configured application domains will match.
            - `path` string — Wildcard path used for matching against requests. If this field is not specified then all paths will match.
            - `query` string — Wildcard query used for matching against requests. If this field is not specified then all query values will match.
          - `type` 'urls', required
        - ConditionUserAgentDoesNotMatch — True for a request user-agent that does not match a specified regular expression
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `pattern` string, required — A regular expression
          - `type` 'user_agent_does_not_match', required
        - ConditionUserAgentMatches — True for a request user-agent that matches a specified regular expression
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `pattern` string, required — A regular expression
          - `type` 'user_agent_matches', required
        - ConditionIsCrawler — True if the requester's IP address is a known Web Crawler.
          - `type` 'is_crawler', required
    - `actions` PageControlAction[], required — Actions that are applied when the web control is triggered.
      - union — An array of actions to enact on the triggering of a page control.
        - PageControlActionAddIPToList — Add IP address of the request to address set
          - `type` 'add-address-to-set', required
          - `address_set` string, required — The endpoint for an address set resource
          - `ttl` number — The amount of time in seconds that an IP address will live in a set
        - PageControlActionAddLabels — Add custom labels to processed traffic. This is a non-final action.
          - `type` 'add-labels', required
          - `labels` Label[], required — Array of labels that will be attached to matching traffic
        - PageControlActionCacheOverrides — Update the cache-related headers of responses from backend servers.
          - `type` 'cache-overrides', required
          - `setting` string, required — Always-cache erases cache control headers and sets the cache control header to 'public' along with removing Pragma and Expires headers, allowing Webscale and browsers to cache affected responses for a default amount of time. Bypass-cache sets the cache control to disallow caching and the header is set to 'no-transform, no-cache, no-store, must-revalidate, max-age=0', ensuring that all responses are uniquely generated. Contents of the cache control header value (which will be used as is, if valid) to be used in place of the one returned from the application server when retrieving a resource
        - PageControlActionContinue — Continue execution of traffic controls. Non final action
          - `type` 'continue', required
        - PageControlActionDeny — Deny the request with the given status code. Final action
          - `type` 'deny', required
          - `status_code` string, required — Response status code that will be returned as a result of deny action
          - `body` string, required — The response body to send when a request is denied
        - PageControlActionDisableRum — Disable real user monitoring when RUM is enabled for the application. No beacon script for collecting RUM metrics will be injected into html responses.
          - `type` 'disable-rum', required
        - PageControlActionDisableSessionTracking — Disable Webscale session tracking. No session-tracking cookies will be added to responses.
          - `type` 'disable-session-tracking', required
        - PageControlActionDiscontinue — Discontinue execution of traffic controls. Final action that can be used to finalize a set of non-final actions
          - `type` 'discontinue', required
        - PageControlActionDrop — Drop the request. Final action
          - `type` 'drop', required
        - PageControlActionRedirect — Redirect the request. Final action
          - `type` 'redirect', required
          - `status_code` string, required — Response status code that will be returned as a result of redirection
          - `location` string, required — A valid URL with http or https scheme, a hostname, and a path
        - PageControlActionRedirectUsingMap — Redirect the request using a url map. If the request URL is found in the url map and a redirect occurs, then this is a final action
          - `type` 'redirect-using-map', required
          - `preserve_query` boolean, required — When true, query parameters from the request are preserved in the redirect location, unless the location in the url map specifies a query separator (question mark)
          - `status_code` string, required — Response status code that will be returned in a redirect response
          - `url_map` string, required — A reference to a url map
        - PageControlActionRewriteUrl — Rewrite the incoming request URL prior to serving it. The rewrite is designed to rewrite the URL path and the query parameters. If the URL scheme or the hostname is attempted to be modified the resulting behavior is unspecified.
          - `type` 'rewrite-url', required
          - `url` string, required — A valid URL with http or https scheme, a hostname, and a path
        - PageControlActionSetRequestTimeout — Set timeout for a request
          - `type` 'set-request-timeout', required
          - `timeout` integer, required — An integer of value 1 or more.
        - PageControlActionScriptAddAsync — Update matching script elements to add the async attribute.
          - `type` 'script-add-async', required
          - `scripts` Script[], required — Array of urls that has to be made async
        - PageControlActionScriptAddDefer — Update matching script elements to add the defer attribute.
          - `type` 'script-add-defer', required
          - `scripts` Script[], required — Array of urls that has to be deferred
        - PageControlActionSetContentSecurityPolicy — Set a content security policy.
          - `type` 'set-content-security-policy', required
          - `value` object, required — CSP action value is a hash where the key is the directive name and the value is the directive value. The directive value is usually an array of strings, but for a couple directives it is a boolean.
        - PageControlActionSetAuthCookie — Set or extend an authorization cookie. The cookie is valid for a specified duration and a domain and path if specified
          - `type` 'set-auth-cookie', required
          - `name` string, required — The name of the cookie to be set
          - `domain` string — Optional domain to be sent with cookie
          - `duration` integer, required — The lifespan of the cookie when issued, in seconds. After the cookie is initially sent, it will be refreshed if the expiry is less than 1/2 the duration from the current time
          - `path` string — Optional path to be sent with the cookie
        - PageControlActionSetCookie — Set a response cookie.
          - `type` 'set-cookie', required
          - `name` string, required — The name of the cookie to be set
          - `value` string, required — The value to set for the cookie
          - `max_age` integer — An integer of value 0 or more.
          - `path` string — The path to which the cookie applies
        - PageControlActionSetPagespeedOptions — Provides options for the pagespeed integration
          - `type` 'set-pagespeed-options', required
          - `disable_filters` PagespeedFilterName[] — Array of filter names to disable. See the enable_filters attribute for the filters enabled by default
          - `enable` boolean — Set to false to disable pagespeed processing
          - `enable_filters` PagespeedFilterName[] — Array of filter names to enable. The filters enabled by default are: add_head, canonicalize_javascript_libraries, combine_css, convert_meta_tags, extend_cache, fallback_rewrite_css_urls, flatten_css_imports, inline_css, inline_import_to_link, inline_javascript, insert_dns_prefetch, rewrite_css, rewrite_images, rewrite_javascript, and rewrite_style_attributes_with_url
        - PageControlActionSetRequestHeader — Set a request header before a request is sent to a backend server.
          - `type` 'set-request-header', required
          - `name` string, required — The name of the header to be set
          - `value` string, required — The value for the specified header
        - PageControlActionSetResponseHeader — Set a response header before a response is returned to a web browser.
          - `type` 'set-response-header', required
          - `name` string, required — The name of the header to be set
          - `value` string, required — The value for the specified header
        - PageControlActionServe — Serve the microsite resource specified by a relative path with a specified status code. If the resource does not exist in the application's microsite, then the file index.html is used instead, which is guaranteed to exist.
          - `type` 'serve', required
          - `code` string, required — The HTTP status code to return
          - `file` string — Endpoint resource reference to a file.
          - `path` string, required — The file path for the page to serve
        - PageControlActionServeCaptchaChallenge — Issue a reCaptcha challenge to the user for all incoming requests unless the user has successfully completed a validation before.
          - `type` 'serve-captcha-challenge', required
        - PageControlActionTerminateHttps — Use HTTP to communicate with backend servers regardless of the request protocol. Final action
          - `type` 'terminate-https', required
        - PageControlActionUseAlternateBackends — Use different servers than the default for matching requests. Final action
          - `type` 'use-alternate-backends', required
          - `cluster` string, nullable — The endpoint for the cluster resource.
          - `servers` ApplicationServer[] — A list of IP addresses to which traffic is sent. One of cluster or servers is required
            - `public_address` string, required — IP address
            - `description` string — Description of the server.
          - `servers_hostname` string — A fully qualified domain name (FQD) whose addresses are used to set the backend servers to which traffic should be sent
          - `remote_url` union
            - unknown
            - string — A URL used to access backend servers. This URL may omit the scheme. If the scheme is set, then that scheme will be used to access the backend server regardless of the request scheme. When a hostname is provided in the URL, then it will be used instead of the request hostname. If a path is provided, the pathname requested from the backend server will be the path formed by joining the URL path and the request path. <h3>Examples</h3><table><thead><tr><th>Request URL</th><th>Remote URL</th><th>Effective URL</th></tr></thead><tbody><tr><td>https://example.com/page</td><td>—</td><td>https://example.com/page</td></tr><tr><td>https://example.com/page</td><td>/prefix</td><td>https://example.com/prefix/page</td></tr><tr><td>https://example.com/page</td><td>//althost.com/</td><td>https://althost.com/page</td></tr><tr><td>https://example.com/page</td><td>//althost.com/prefix</td><td>https://althost.com/prefix/page</td></tr><tr><td>https://example.com/page</td><td>http://althost.com/prefix</td><td>http://althost.com/prefix/page</td></tr></tbody></table>
          - `relative_to` union
            - unknown
            - string — A path in the URL space of the application at which the resources obtained from the backend server are mapped. If not used with a condition that only matches URL paths that begin with this value, then the result may be unpredictable. The path mapping logically happens before any mapping performed by the remote_url attribute. <h3>Examples</h3><table><thead><tr><th>Request URL</th><th>Relative to</th><th>Effective path</th></tr></thead><tbody><tr><td>/</td><td>—</td><td>/</td></tr><tr><td>/base</td><td>—</td><td>/base</td></tr><tr><td>/base</td><td>/base</td><td>/</td></tr><tr><td>/base/page</td><td>/base</td><td>/page</td></tr></tbody></table>
        - PageControlActionUserHasRole — Limit access to accounts and applications to users belonging to the given role.
          - `type` 'user-has-role', required
          - `roles` string[], required — Users must belong to at least one of these roles
        - PageControlActionSubstitute — Substitute a string with an alternate string.
          - `type` 'substitute', required
          - `substitutes` Substitute[], required — Array of substitutes
            - `contains` string, required — Case sensitive text in URL or query.
            - `replace` string, required — Text that will replace the case sensitive input provided by user.
        - PageControlActionUseServerlessFunction — Allows the user to invoke serverless function
          - `type` 'use-serverless-function'
          - `function` string, required — A reference to the handler.
  - `stratus_id` union
    - unknown
    - string — Identification for stratus applications
  - `log_retention` ApplicationLogRetention[] — An array of application log retention configuration objects
    - `type` 'default' | 'cdn' | 'custom' | 'csp-reports' | 'pageviews' | 'proxy-logs', required — Type of log retention
    - `online_days` integer — Number of online days
    - `archive_days` integer — Number of archive days
    - `online_space_allowance` integer — Allowance for online space
    - `archive_space_allowance` integer — Allowance for archive space

## Response `200`

The application was successfully updated.

- Application — An application configuration and its state.
  - `href` string, required — The endpoint for the resource.
  - `id` string, required — The id of the resource.
  - `endpoint` string — The DNS endpoint for the application.
  - `subscriptions` union[] — Plans that this application will be subscribed to.
    - union
      - SubscriptionReadWrite
        - `plan` PlanReadWrite, required
          - `href` string, required — The plan reference.
      - string — Plan name
  - `cdn_state` string — The current state of the CDN assigned to the application. This field can be null.
  - `challenges` Challenge[] — The challenges used to verify ownership of application aliases.
    - `alias` string, uri, required — The application alias that this challenge applies to.
    - `verified` boolean, required — Boolean indicating whether the challenge has been verified or not.
    - `url` string, uri — Ownership of the alias is demonstrated by making specified challenge content available here.
    - `content` string — This content (and no other content) must be available at the challenge url for the challenge to pass verification.
  - `created` string, required — An iso8601 formatted timestamp
  - `current_outage` boolean, required — Indicates if the application is currently experiencing an outage.
  - `last_outage` string — An iso8601 formatted timestamp
  - `stage` 'initial' | 'configured' — The stage that the application is in.
  - `state` 'running' | 'maintenance' | 'entering_maintenance' | 'exiting_maintenance' | 'starting' | 'stopped' | 'stopping', required — The current state of the application.
  - `name` string — The name of the application.
  - `aliases` string[] — Ordered array of application domain names. The first array entry will be used as the primary application domain name.
  - `bot_management` BotManagement
    - `user_agent` boolean, required — When set to true, bot identification takes place using user-agent of the request.
  - `cdn_aliases` string[] — Array of application domain names published to CDN.
  - `components` Component[] — List of resource layers that are attached to this application. Examples of such resources include EC2 or RDS instances available in an AWS cloud provider.
    - `layer_name` string — Name of the resource layer being referenced here.
    - `element` string — The endpoint for a resource accessible via services available for this account.
  - `cdn_configuration` CdnConfiguration
    - `controls` CdnControl[], required — Array of cdn controls to be configured with the cdn distribution.
      - `path_pattern` string, required — The path pattern that specifies to which requests a CDN control should apply.
      - `default_ttl` integer
      - `cache_key` CdnCacheKey, required
        - `headers` 'none' | 'include-specified', required — Determines whether any HTTP headers in the viewer requests (and if so, which headers) needs to be included in the cache key.
        - `header_names` string[] — Array of header names to be included in the cache key.
        - `cookies` 'none' | 'all' | 'include-specified' | 'exclude-specified', required — Determines whether any cookies in the viewer requests (and if so, which cookies) needs to be included in the cache key.
        - `cookie_names` string[] — Array of cookie names to be included or excluded in cache key.
        - `queries` 'none' | 'all' | 'include-specified' | 'exclude-specified', required — Determines whether any URL query strings in the viewer requests (and if so, which query strings) needs to be included in the cache key
        - `query_names` string[] — Array of query names to be included or excluded in cache key.
      - `origin_request` CdnOriginRequest
        - `headers` 'none' | 'all' | 'include-specified', required — Determines whether any HTTP headers in viewer requests (and if so, which headers) needs to be sent to the origin.
        - `header_names` string[] — Array of header names to be included or excluded in origin request.
        - `cookies` 'none' | 'all' | 'include-specified', required — Determines whether any cookies in viewer requests (and if so, which cookies) needs to be sent to the origin.
        - `cookie_names` string[] — Array of cookie names to be included or excluded in origin request.
        - `queries` 'none' | 'all' | 'include-specified', required — Determines whether any URL query strings in viewer requests (and if so, which query strings) needs to be sent to the origin.
        - `query_names` string[] — Array of query names to be included or excluded in origin request.
      - `origin_request_handlers` HandlerHref[] — The handler to run for matching requests made when Webscale CDN contacts origin.
      - `origin_response_handlers` HandlerHref[] — The handler to run for matching requests made when origin responds to Webscale CDN.
  - `cdn_ready` boolean — True when a delivery = cdn has been configured and is ready.
  - `cdn_service` string — A href to the cdn service configured for the application.
  - `default_hostname` string — Alias for an application
  - `dns_service` string, nullable — A href to the dns service configured for the application.
  - `servers_hostname` union
    - unknown
    - string — A fully qualified domain name (FQD) whose addresses are used to set the backend servers to which traffic should be sent
  - `delivery` 'cdn' | 'rewrite-to-cdn' | 'without-cdn' — The mode of delivery for an application. One of 'cdn', 'without-cdn', or 'rewrite-to-cdn'. The 'rewrite-to-cdn' mode is not recommended for new applications
  - `enable_cdn` boolean — Enable CDN for the application. This is not used if the 'delivery' attribute is set
  - `enable_http2` boolean — Enable HTTP2 for the application.
  - `enable_rum` boolean — Enable RUM for the application.
  - `enable_tls` boolean — Enable TLS for the application. The tls_configuration is required if true.
  - `tls_configuration` TlsConfiguration
    - `private_key` union — A reference to a secret containing a private key
      - ResourceReference
        - `href` string, required — The endpoint for the resource.
      - string — A resource reference
    - `private_keys` union[] — A reference to an array of secrets containing private keys
      - union
        - ResourceReference
          - `href` string, required — The endpoint for the resource.
        - string — The endpoint for the secret resource.
    - `certificate_chain` string — The signed certificate followed by any intermediate certificate chain.
    - `enable_auto_tls` boolean — When enabled Auto TLS will configure your application to automatically obtain and renew certificates from Let's Encrypt.
    - `enable_force_tls` boolean — Force HTTP traffic to be routed over HTTPS for the application.
    - `enable_tls_offloading` boolean — When enabled the ADC tier will act as a TLS termination proxy, decrypting incoming HTTPS traffic and routing the unencrypted traffic to the application tier over HTTP. Response from the application tier are encrypted at the ADC tier and routed over HTTPS back to the client.
    - `enable_server_validation` boolean — Enable validation of the TLS certificate chain against the application servers.
    - `tolerate_invalid_chain` boolean — Tolerate certificate chain errors in certificates presented by the application servers.
    - `versions` TlsVersion[] — The versions of TLS that will be accepted for this application
    - `covered_aliases` CoveredAlias[] — Covered aliases by tls configuration for this application
      - `name` string, required — Covered alias name
      - `not_after` string, required — An iso8601 formatted timestamp
      - `trusted` boolean, required — Certificate is trusted or not
  - `metrics` MetricConfiguration[] — Array of metric configurations attached for the application
    - `name` string — Name of the metric
    - `frequency` integer — Frequency at which metrics are populated
    - `prototype` string, required — A reference to the metric prototype
  - `monitoring` 'none' | 'passive' | 'active' — The monitoring mode. When active, the application will be monitored regularly from a separate location, in addition to passive monitoring. When passive, the error rate for the application is monitored and used to generate alerts, but if there is no regular activity to the application, then no outage will be detected.
  - `waf_rules` WafFileReference[] — The waf rules for the application.
    - `file` ResourceReference, required
      - `href` string, required — The endpoint for the resource.
    - `name` string, required — The name of the waf rule.
    - `created` string, date-time — The timestamp when a waf rule was uploaded.
    - `active` integer, required — Indicates if the waf rule is active or not. 1 represents active and 0 is inactive.
  - `whitelist` AddressSetEntry[] — A list of addresses to always be allowed access.
    - `created` string — An iso8601 formatted timestamp
    - `created_by` string — Reference to the user that created this id
    - `description` string — Description of the address
    - `address` string, required — A ip address or range.
    - `expiry` string — An iso8601 formatted timestamp
  - `whitelist_href` string — The endpoint for an address set resource
  - `blacklist` AddressSetEntry[] — A list of addresses to be restricted access.
    - `created` string — An iso8601 formatted timestamp
    - `created_by` string — Reference to the user that created this id
    - `description` string — Description of the address
    - `address` string, required — A ip address or range.
    - `expiry` string — An iso8601 formatted timestamp
  - `blacklist_href` string — The endpoint for an address set resource
  - `blacklist_user_agents` string, nullable — A regular expression of user agents to be restricted access.
  - `concurrent_limit` integer — Maximum number of concurrently active requests that can be run in a load balancer before requests are put in the suspend queue. This attribute may only be set by system administrators
  - `maximum_queue_time` integer — Maximum amount of time a request can spend in the suspend queue of a load balancer before it is failed with a timeout. This attribute may only be set by system administrators
  - `merge_slashes` boolean — Controls whether the server merges consecutive slashes in URLs. By default, consecutive slashes are merged into a single slash.
  - `suspend_limit` integer — Maximum number of requests that can be put in the suspend queue of a load balancer before the oldest requests are failed. This attribute may only be set by system administrators
  - `probes` string[]
  - `protection` 'normal' | 'maximum' — The protection mode.
  - `protection_captcha_retry_limit` integer — Number of incorrect attempts a user is allowed before the user may be blacklisted.
  - `protection_blacklist_timeout` integer — Number of seconds to enforce blacklist on the suspicious user.
  - `protection_microsite_file` string — Endpoint for the file id associated with the captcha microsite.
  - `cluster` string, nullable — The endpoint for the cluster resource.
  - `servers` union
    - unknown
    - ApplicationServer[] — Application static servers.
      - `public_address` string, required — IP address
      - `description` string — Description of the server.
  - `page_controls` PageControlConfiguration[] — An array of specific mode page controls processed in sequence to modify the behavior of request processing
    - `name` string, required — Short name describing the page control.
    - `description` string — Optional additional description of the page control.
    - `mode` 'maintenance' | 'request' | 'response' — Set as 'maintenance' for maintenance mode page control.
    - `enabled` boolean — Enables or disables the page control.
    - `conditions` PageControlConditions — The conditions that cause a page control to trigger
      - `address_is_whitelisted` object — The actions will be applied to whitelist addresses
      - `address_is_not_whitelisted` object — The actions will be applied to all the incoming IP addresses except whitelist addresses. By default, actions are applied to whitelist addresses
      - `auth_cookie_is_not_set` PageControlConditionAuthCookieIsNotSet — Test to see if a named authorization cookie is not set or is expired.
        - `name` string, required — Name of the cookie to test
      - `auth_cookie_is_set` PageControlConditionAuthCookieIsSet — Test to see if a named authorization cookie is set and not expiredd.
        - `name` string, required — Name of the cookie to test
      - `cookie_is_not_set` PageControlConditionCookieIsNotSet — Test to see if a named cookie is not set.
        - `name` string, required — Name of the cookie to test
      - `cookie_is_set` PageControlConditionCookieIsSet — Test to see if a named cookie is set.
        - `name` string, required — Name of the cookie to test
      - `cookie_value_does_not_match` PageControlConditionCookieValueDoesNotMatch — Test to check if the named cookie value does not match the specified pattern. If the specified cookie does not exist, this condition will evaluate to true. Cookie value pattern must be a regular expression.
        - `name` string, required — Name of the cookie to test
        - `pattern` string, regex, required — A regular expression to match with cookie value
      - `cookie_value_matches` PageControlConditionCookieValueMatches — Test to check if the named cookie value matches the specified pattern. Cookie value pattern must be a regular expression.
        - `name` string, required — Name of the cookie to test
        - `pattern` string, regex, required — A regular expression to match with cookie value
      - `country_is_not` PageControlConditionCountryIsNotIncluded — Tests if the country of origin of a request is excluded from the specified list.
        - `list` CountryCode[], required — A list of country codes
      - `country_is` PageControlConditionCountryIsIncluded — Tests if the country of origin of a request is included in the specified list.
        - `list` CountryCode[], required — A list of country codes
      - `header_value_matches` PageControlConditionHeaderValueMatches — Test to check if the header value matches the specified pattern. Header value pattern must be a regular expression
        - `name` string, required — Name of the header to test
        - `pattern` string, regex, required — A regular expression to match with header
      - `header_value_does_not_match` PageControlConditionHeaderValueMatches — Test to check if the header value matches the specified pattern. Header value pattern must be a regular expression
        - `name` string, required — Name of the header to test
        - `pattern` string, regex, required — A regular expression to match with header
      - `headers_match` ConditionHeader[] — Array of headers conditions
        - `name` string, required — Name of the header to test
        - `pattern` string, regex, required — A regular expression to match with header value
      - `headers_not_match` ConditionHeader[] — Array of headers conditions
        - `name` string, required — Name of the header to test
        - `pattern` string, regex, required — A regular expression to match with header value
      - `method_is` PageControlMethodIsIncluded — Tests if the method name of a request is included in the specified list.
        - `values` MethodName[], required — A list of method names.
      - `method_is_not` PageControlMethodIsNotIncluded — Tests if the method name of a request is excluded from the specified list.
        - `values` MethodName[], required — A list of method names.
      - `address_is_threat` object — Tests if the requester's IP address is a known malicious source.
      - `address_is_not_threat` object — Tests if the requester's IP address is not a known mailicious source.
      - `is_crawler` object — The actions will be applied to requests from known web crawlers.
      - `address_in_set` PageControlConditionAddressInSet — Tests if requester's IP address is in the specified address set
        - `address_set` string, required — The endpoint for an address set resource
      - `address_not_in_set` PageControlConditionAddressNotInSet — Tests if requester's IP address is not in the specified address set
        - `address_set` string, required — The endpoint for an address set resource
      - `random` PageControlConditionRandom — A test based on generating a random variable and triggering on a specified probability
        - `probability` number, required — Probability for which condition is true
      - `rate_limit` PageControlConditionRateLimit — True when the number of request during a duration is greater than a specified threshold.
        - `duration` integer, required — The amount of time, in number of seconds, over which to accumulate the request count
        - `display_unit` 'seconds' | 'minutes' | 'hours', required — Unit to use for displaying the time duration specified.
        - `threshold` integer, required — Maximum number of requests in the given duration before the condition is triggered
      - `referrer_is` string[] — The actions will be applied to requests for which request referrer matches with the given referrer
      - `referrer_is_not` string[] — The actions will be applied to requests for which request referrer does not match with the given referrer
      - `referrer_is_defined` object — The actions will be applied to requests for which request referrer matches with one of the application aliases
      - `referrer_is_not_defined` object — The actions will be applied to requests for which request referrer does not match with one of the application aliases
      - `status_code_matches` PageControlConditionStatusCodeMatches — Test to see if the response status code matches the pattern.
        - `pattern` string, regex, required — A regular expression to match against the response status code.
      - `urls` ConditionUrl[] — Array of url objects
        - `scheme` string — Http scheme used for matching against requests. If this field is not specified then both http and https will match.
        - `domain` string — Wildcard domain used for matching against requests. If this field is not specified then all configured application domains will match.
        - `path` string — Wildcard path used for matching against requests. If this field is not specified then all paths will match.
        - `query` string — Wildcard query used for matching against requests. If this field is not specified then all query values will match.
      - `url_is_not` ConditionUrl[] — Array of url objects
        - `scheme` string — Http scheme used for matching against requests. If this field is not specified then both http and https will match.
        - `domain` string — Wildcard domain used for matching against requests. If this field is not specified then all configured application domains will match.
        - `path` string — Wildcard path used for matching against requests. If this field is not specified then all paths will match.
        - `query` string — Wildcard query used for matching against requests. If this field is not specified then all query values will match.
      - `user_agent_matches` PageControlConditionUserAgentMatches — Test if user-agent of a request matches the given regular expression
        - `pattern` string, required — A regular expression to match with user-agent
      - `user_agent_does_not_match` PageControlConditionUserAgentDoesNotMatch — Test if user-agent of a request does not match the given regular expression
        - `pattern` string, required — A regular expression to match with user-agent
    - `actions` PageControlAction[], required — Actions that are applied when the page control is triggered.
      - union — An array of actions to enact on the triggering of a page control.
        - PageControlActionAddIPToList — Add IP address of the request to address set
          - `type` 'add-address-to-set', required
          - `address_set` string, required — The endpoint for an address set resource
          - `ttl` number — The amount of time in seconds that an IP address will live in a set
        - PageControlActionAddLabels — Add custom labels to processed traffic. This is a non-final action.
          - `type` 'add-labels', required
          - `labels` Label[], required — Array of labels that will be attached to matching traffic
        - PageControlActionCacheOverrides — Update the cache-related headers of responses from backend servers.
          - `type` 'cache-overrides', required
          - `setting` string, required — Always-cache erases cache control headers and sets the cache control header to 'public' along with removing Pragma and Expires headers, allowing Webscale and browsers to cache affected responses for a default amount of time. Bypass-cache sets the cache control to disallow caching and the header is set to 'no-transform, no-cache, no-store, must-revalidate, max-age=0', ensuring that all responses are uniquely generated. Contents of the cache control header value (which will be used as is, if valid) to be used in place of the one returned from the application server when retrieving a resource
        - PageControlActionContinue — Continue execution of traffic controls. Non final action
          - `type` 'continue', required
        - PageControlActionDeny — Deny the request with the given status code. Final action
          - `type` 'deny', required
          - `status_code` string, required — Response status code that will be returned as a result of deny action
          - `body` string, required — The response body to send when a request is denied
        - PageControlActionDisableRum — Disable real user monitoring when RUM is enabled for the application. No beacon script for collecting RUM metrics will be injected into html responses.
          - `type` 'disable-rum', required
        - PageControlActionDisableSessionTracking — Disable Webscale session tracking. No session-tracking cookies will be added to responses.
          - `type` 'disable-session-tracking', required
        - PageControlActionDiscontinue — Discontinue execution of traffic controls. Final action that can be used to finalize a set of non-final actions
          - `type` 'discontinue', required
        - PageControlActionDrop — Drop the request. Final action
          - `type` 'drop', required
        - PageControlActionRedirect — Redirect the request. Final action
          - `type` 'redirect', required
          - `status_code` string, required — Response status code that will be returned as a result of redirection
          - `location` string, required — A valid URL with http or https scheme, a hostname, and a path
        - PageControlActionRedirectUsingMap — Redirect the request using a url map. If the request URL is found in the url map and a redirect occurs, then this is a final action
          - `type` 'redirect-using-map', required
          - `preserve_query` boolean, required — When true, query parameters from the request are preserved in the redirect location, unless the location in the url map specifies a query separator (question mark)
          - `status_code` string, required — Response status code that will be returned in a redirect response
          - `url_map` string, required — A reference to a url map
        - PageControlActionRewriteUrl — Rewrite the incoming request URL prior to serving it. The rewrite is designed to rewrite the URL path and the query parameters. If the URL scheme or the hostname is attempted to be modified the resulting behavior is unspecified.
          - `type` 'rewrite-url', required
          - `url` string, required — A valid URL with http or https scheme, a hostname, and a path
        - PageControlActionSetRequestTimeout — Set timeout for a request
          - `type` 'set-request-timeout', required
          - `timeout` integer, required — An integer of value 1 or more.
        - PageControlActionScriptAddAsync — Update matching script elements to add the async attribute.
          - `type` 'script-add-async', required
          - `scripts` Script[], required — Array of urls that has to be made async
        - PageControlActionScriptAddDefer — Update matching script elements to add the defer attribute.
          - `type` 'script-add-defer', required
          - `scripts` Script[], required — Array of urls that has to be deferred
        - PageControlActionSetContentSecurityPolicy — Set a content security policy.
          - `type` 'set-content-security-policy', required
          - `value` object, required — CSP action value is a hash where the key is the directive name and the value is the directive value. The directive value is usually an array of strings, but for a couple directives it is a boolean.
        - PageControlActionSetAuthCookie — Set or extend an authorization cookie. The cookie is valid for a specified duration and a domain and path if specified
          - `type` 'set-auth-cookie', required
          - `name` string, required — The name of the cookie to be set
          - `domain` string — Optional domain to be sent with cookie
          - `duration` integer, required — The lifespan of the cookie when issued, in seconds. After the cookie is initially sent, it will be refreshed if the expiry is less than 1/2 the duration from the current time
          - `path` string — Optional path to be sent with the cookie
        - PageControlActionSetCookie — Set a response cookie.
          - `type` 'set-cookie', required
          - `name` string, required — The name of the cookie to be set
          - `value` string, required — The value to set for the cookie
          - `max_age` integer — An integer of value 0 or more.
          - `path` string — The path to which the cookie applies
        - PageControlActionSetPagespeedOptions — Provides options for the pagespeed integration
          - `type` 'set-pagespeed-options', required
          - `disable_filters` PagespeedFilterName[] — Array of filter names to disable. See the enable_filters attribute for the filters enabled by default
          - `enable` boolean — Set to false to disable pagespeed processing
          - `enable_filters` PagespeedFilterName[] — Array of filter names to enable. The filters enabled by default are: add_head, canonicalize_javascript_libraries, combine_css, convert_meta_tags, extend_cache, fallback_rewrite_css_urls, flatten_css_imports, inline_css, inline_import_to_link, inline_javascript, insert_dns_prefetch, rewrite_css, rewrite_images, rewrite_javascript, and rewrite_style_attributes_with_url
        - PageControlActionSetRequestHeader — Set a request header before a request is sent to a backend server.
          - `type` 'set-request-header', required
          - `name` string, required — The name of the header to be set
          - `value` string, required — The value for the specified header
        - PageControlActionSetResponseHeader — Set a response header before a response is returned to a web browser.
          - `type` 'set-response-header', required
          - `name` string, required — The name of the header to be set
          - `value` string, required — The value for the specified header
        - PageControlActionServe — Serve the microsite resource specified by a relative path with a specified status code. If the resource does not exist in the application's microsite, then the file index.html is used instead, which is guaranteed to exist.
          - `type` 'serve', required
          - `code` string, required — The HTTP status code to return
          - `file` string — Endpoint resource reference to a file.
          - `path` string, required — The file path for the page to serve
        - PageControlActionServeCaptchaChallenge — Issue a reCaptcha challenge to the user for all incoming requests unless the user has successfully completed a validation before.
          - `type` 'serve-captcha-challenge', required
        - PageControlActionTerminateHttps — Use HTTP to communicate with backend servers regardless of the request protocol. Final action
          - `type` 'terminate-https', required
        - PageControlActionUseAlternateBackends — Use different servers than the default for matching requests. Final action
          - `type` 'use-alternate-backends', required
          - `cluster` string, nullable — The endpoint for the cluster resource.
          - `servers` ApplicationServer[] — A list of IP addresses to which traffic is sent. One of cluster or servers is required
            - `public_address` string, required — IP address
            - `description` string — Description of the server.
          - `servers_hostname` string — A fully qualified domain name (FQD) whose addresses are used to set the backend servers to which traffic should be sent
          - `remote_url` union
            - unknown
            - string — A URL used to access backend servers. This URL may omit the scheme. If the scheme is set, then that scheme will be used to access the backend server regardless of the request scheme. When a hostname is provided in the URL, then it will be used instead of the request hostname. If a path is provided, the pathname requested from the backend server will be the path formed by joining the URL path and the request path. <h3>Examples</h3><table><thead><tr><th>Request URL</th><th>Remote URL</th><th>Effective URL</th></tr></thead><tbody><tr><td>https://example.com/page</td><td>—</td><td>https://example.com/page</td></tr><tr><td>https://example.com/page</td><td>/prefix</td><td>https://example.com/prefix/page</td></tr><tr><td>https://example.com/page</td><td>//althost.com/</td><td>https://althost.com/page</td></tr><tr><td>https://example.com/page</td><td>//althost.com/prefix</td><td>https://althost.com/prefix/page</td></tr><tr><td>https://example.com/page</td><td>http://althost.com/prefix</td><td>http://althost.com/prefix/page</td></tr></tbody></table>
          - `relative_to` union
            - unknown
            - string — A path in the URL space of the application at which the resources obtained from the backend server are mapped. If not used with a condition that only matches URL paths that begin with this value, then the result may be unpredictable. The path mapping logically happens before any mapping performed by the remote_url attribute. <h3>Examples</h3><table><thead><tr><th>Request URL</th><th>Relative to</th><th>Effective path</th></tr></thead><tbody><tr><td>/</td><td>—</td><td>/</td></tr><tr><td>/base</td><td>—</td><td>/base</td></tr><tr><td>/base</td><td>/base</td><td>/</td></tr><tr><td>/base/page</td><td>/base</td><td>/page</td></tr></tbody></table>
        - PageControlActionUserHasRole — Limit access to accounts and applications to users belonging to the given role.
          - `type` 'user-has-role', required
          - `roles` string[], required — Users must belong to at least one of these roles
        - PageControlActionSubstitute — Substitute a string with an alternate string.
          - `type` 'substitute', required
          - `substitutes` Substitute[], required — Array of substitutes
            - `contains` string, required — Case sensitive text in URL or query.
            - `replace` string, required — Text that will replace the case sensitive input provided by user.
        - PageControlActionUseServerlessFunction — Allows the user to invoke serverless function
          - `type` 'use-serverless-function'
          - `function` string, required — A reference to the handler.
  - `request_timeout` integer — Time for which Webscale proxy will wait for a backend server to respond. If proxy does not receive response in a specified time from the backend server, a maintenance page with status 502 Bad Gateway will be returned
  - `shields` union[] — A list of href's referencing firewalls that can be enabled/disabled for the application.
    - union
      - string — Endpoint resource reference to the firewall rule.
      - string — The endpoint resource identifier for the security group, must be a URL encoded string.
  - `shields_include_whitelist` boolean — Add whitelist addresses to shields. By default whitelist addresses are not added to the shields. Google cloud supports only IPv4 addresses in their firewall rules. Any IPv6 addresses in the whitelist will not be added to the firewall rules for Google. AWS supports both IPv4 and IPv6 addresses in the security groups
  - `site_cache` union
    - unknown
    - SiteCache — A configuration for Dynamic Site Cache
      - `enabled` boolean, required — When false, site cache will be turned off
      - `rules` SiteCacheRule[], required — A sequence of rules for caching. Each enabled rule is evaluated in sequence, and the first whose conditions match a request will apply to that request. If none match, then no caching will be done
        - `conditions` SiteCacheCondition[], required — An array of conditions. When empty, all requests match
          - union — A condition used to match requests for Dynamic Site Cache
            - ConditionAddressInSet — Tests if requester's IP address is in the specified address set.
              - …
            - ConditionAddressIsNotThreat — True if the requester's IP address is not a known malicious source.
              - …
            - ConditionAddressIsNotWhitelisted — True if the requester's IP address is not on the application whitelist.
              - …
            - ConditionAddressIsThreat — True if the requester's IP address is a known malicious source.
              - …
            - ConditionAddressIsWhitelisted — True if the requester's IP address is on the application whitelist.
              - …
            - ConditionAddressNotInSet — Tests if requester's IP address is not in the specified address set
              - …
            - ConditionAuthCookieIsNotSet — True when a specified authorization cookie is not set or is expired.
              - …
            - ConditionAuthCookieIsSet — True when a specified authorization cookie is set and not expired.
              - …
            - ConditionCookieIsNotSet — True if a named cookie is not set.
              - …
            - ConditionCookieIsSet — True to see if a named cookie is set.
              - …
            - ConditionCookieValueDoesNotMatch — Test to check if the named cookie value does not match the specified pattern. If the specified cookie does not exist, this condition will evaluate to true. Cookie value pattern must be a regular expression.
              - …
            - ConditionCookieValueMatches — Test to check if the named cookie value matches the specified pattern. Cookie value pattern must be a regular expression.
              - …
            - ConditionCountryIs — True if the country of origin of a request is included in the specified list.
              - …
            - ConditionCountryIsNot — True if the country of origin of a request is not in the specified list.
              - …
            - ConditionRandom — True if a value from a uniform random variable from 0.0 to 1.0 is less than or equal to the specified probability.
              - …
            - ConditionReferrerDoesNotMatch — True for a request for which request referrer does not match any referrer pattern from a list
              - …
            - ConditionReferrerIsDefined — True for a request for which request referrer hostname matches a hostname for this application
              - …
            - ConditionReferrerIsNotDefined — True for a request for which request referrer hostname does not match a hostname for this application.
              - …
            - ConditionReferrerMatches — True for a request for which request referrer matches a referrer pattern from a list
              - …
            - ConditionUrlDoesNotMatch — True for a request URL that does not match any URL pattern from a list.
              - …
            - ConditionUrlMatches — True for a request URL that matches a URL pattern from a list.
              - …
            - ConditionUserAgentDoesNotMatch — True for a request user-agent that does not match a specified regular expression
              - …
            - ConditionUserAgentMatches — True for a request user-agent that matches a specified regular expression
              - …
            - ConditionHeaderValueMatches — Test to check if the header value matches the specified pattern. Header value pattern must be a regular expression.
              - …
            - ConditionHeaderValueDoesNotMatch — Test to check if the header value does not match the specified pattern. If the specified header does not exist, this condition will evaluate to true. Header value pattern must be a regular expression.
              - …
            - ConditionHeadersMatch — Test to check if the list of named header values match their respective specified patterns.
              - …
            - ConditionHeadersNotMatch — Test to check if the list of named header values does not match their respective specified patterns.
              - …
            - ConditionMethodIs — True if the method name of a request is included in the specified list.
              - …
            - ConditionMethodIsNot — True if the method name of a request is not included in the specified list.
              - …
            - ConditionIsCrawler — True if the requester's IP address is a known Web Crawler.
              - …
        - `enabled` boolean, required — When false, this rule will not be used
        - `ttl_sec` number, required — The amount of time in seconds that a cached item is retained after it is initially stored
        - `key` union
          - unknown
          - CacheKeyConfiguration — The request attributes used to construct the cache key for requests matching this rule. Note that the request path is always included in the cache key construction.
            - `browser` boolean — When set to true, browser attributes used for content optimization are used in the cache key construction, ignored otherwise.
            - `cookie` string — The value of the specified cookie will be used to construct the cache key. If the value is null, it will be ignored.
            - `hostname` boolean — When set to true, the host name is used in the cache key construction, ignored otherwise.
            - `query` boolean — When set to true, query parameters are used in the cache key construction, ignored otherwise.
        - `tags` CacheTagConfiguration — The configuration to populate cache tags.
          - `from` 'header', required — The tags are used from the request header by default.
          - `name` string, required — Header names to be included in the cache tag.
  - `trusted_proxies` union
    - unknown
    - AddressSetHref[] — Trust only the referenced peers. The client address from the X-Forwarded-For header is accepted provided that the peer address is in one of the referenced sets, but otherwise ignored. If the array is empty, then no proxies are trusted and the X-Forwarded-For header is ignored.
  - `data_planes` string[] — Configured data planes
  - `trusted_proxies_only` boolean — Allows external traffic only from addresses from the configured trusted proxies, the control addresses, and pingdom.
  - `trusted_proxies_header` string — The name of the header from a trusted proxy that is used to obtain the request address. When not set, X-Forwarded-For is used.
  - `labels` Label[] — Array of labels that will be attached to the application.
  - `translate_path` 'preserve' | 'unescape' — Configuration to specify the handling of URL paths through the Webscale proxy. The default behavior is to leave the path value untouched (preserve). A value of 'unescape' would remove all escaped characters in the path and replace them with their equivalent unicode character.
  - `pagespeed_disallow` string[] — A set of URL patterns to exclude from pagespeed optimization
  - `pagespeed_exclude_agents` string — User agents that match this regular expression are excluded from pagespeed
  - `pagespeed_map_proxy_domains` string[] — A set of domains that are integrated into the pages for this site
  - `microsite` string — Endpoint resource reference to a file.
  - `web_controls` WebControlConfiguration[] — An array of specific mode web controls processed in sequence to modify the behavior of request processing
    - `name` string, required — Short name describing the web control.
    - `description` string — Optional additional description of the web control.
    - `mode` 'maintenance' | 'request' | 'response' — Set as 'maintenance' for maintenance mode web control.
    - `enabled` boolean — Enables or disables the web control.
    - `conditions` WebControlCondition[] — An array of conditions. When empty, all requests match
      - union — The condition that cause a web control to trigger
        - ConditionAddressInSet — Tests if requester's IP address is in the specified address set.
          - `type` 'address_in_set', required
          - `address_set` string, required — The endpoint for an address set resource
        - ConditionAddressIsNotThreat — True if the requester's IP address is not a known malicious source.
          - `type` 'address_is_not_threat', required
        - ConditionAddressIsNotWhitelisted — True if the requester's IP address is not on the application whitelist.
          - `type` 'address_is_not_whitelisted', required
        - ConditionAddressIsThreat — True if the requester's IP address is a known malicious source.
          - `type` 'address_is_threat', required
        - ConditionAddressIsWhitelisted — True if the requester's IP address is on the application whitelist.
          - `type` 'address_is_whitelisted', required
        - ConditionAddressNotInSet — Tests if requester's IP address is not in the specified address set
          - `type` 'address_not_in_set', required
          - `address_set` string — The endpoint for an address set resource
        - ConditionAuthCookieIsNotSet — True when a specified authorization cookie is not set or is expired.
          - `name` string, required — Name of the cookie to test
          - `type` 'auth_cookie_is_not_set', required
        - ConditionAuthCookieIsSet — True when a specified authorization cookie is set and not expired.
          - `name` string, required — Name of the cookie to test
          - `type` 'auth_cookie_is_set', required
        - ConditionCookieIsNotSet — True if a named cookie is not set.
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `name` string, required — Name of the cookie to test
          - `type` 'cookie_is_not_set', required
        - ConditionCookieIsSet — True to see if a named cookie is set.
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `name` string, required — Name of the cookie to test
          - `type` 'cookie_is_set', required
        - ConditionCookieValueDoesNotMatch — Test to check if the named cookie value does not match the specified pattern. If the specified cookie does not exist, this condition will evaluate to true. Cookie value pattern must be a regular expression.
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `name` string, required — Name of the cookie to test
          - `pattern` string, regex, required — A regular expression to match with cookie value
          - `type` 'cookie_value_does_not_match', required
        - ConditionCookieValueMatches — Test to check if the named cookie value matches the specified pattern. Cookie value pattern must be a regular expression.
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `name` string, required — Name of the cookie to test
          - `pattern` string, regex, required — A regular expression to match with cookie value
          - `type` 'cookie_value_matches', required
        - ConditionCountryIs — True if the country of origin of a request is included in the specified list.
          - `list` CountryCode[], required — A list of country codes
          - `type` 'country_is', required
        - ConditionCountryIsNot — True if the country of origin of a request is not in the specified list.
          - `list` CountryCode[], required — A list of country codes
          - `type` 'country_is_not', required
        - ConditionHeaderValueDoesNotMatch — Test to check if the header value does not match the specified pattern. If the specified header does not exist, this condition will evaluate to true. Header value pattern must be a regular expression.
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `name` string, required — Name of the header to test
          - `pattern` string, regex, required — A regular expression to match with header value
          - `type` 'header_value_does_not_match', required
        - ConditionHeaderValueMatches — Test to check if the header value matches the specified pattern. Header value pattern must be a regular expression.
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `name` string, required — Name of the header to test
          - `pattern` string, regex, required — A regular expression to match with header value
          - `type` 'header_value_matches', required
        - ConditionHeadersMatch — Test to check if the list of named header values match their respective specified patterns.
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `list` ConditionHeader[], required — Array of headers conditions
            - `name` string, required — Name of the header to test
            - `pattern` string, regex, required — A regular expression to match with header value
          - `type` 'headers_match' | 'response_headers_match', required
        - ConditionHeadersNotMatch — Test to check if the list of named header values does not match their respective specified patterns.
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `list` ConditionHeader[], required — Array of headers conditions
            - `name` string, required — Name of the header to test
            - `pattern` string, regex, required — A regular expression to match with header value
          - `type` 'headers_not_match' | 'response_headers_not_match', required
        - ConditionMethodIs — True if the method name of a request is included in the specified list.
          - `values` MethodName[], required — A list of method names.
          - `type` 'method_is', required
        - ConditionMethodIsNot — True if the method name of a request is not included in the specified list.
          - `values` MethodName[], required — A list of method names.
          - `type` 'method_is_not', required
        - ConditionRandom — True if a value from a uniform random variable from 0.0 to 1.0 is less than or equal to the specified probability.
          - `probability` number, required — Probability for which condition is true
          - `type` 'random', required
        - ConditionRateLimit — True when the number of request during a duration is greater than a specified threshold.
          - `duration` integer, required — The amount of time, in number of seconds, over which to accumulate the request count
          - `display_unit` 'seconds' | 'minutes' | 'hours', required — Unit to use for displaying the time duration specified.
          - `threshold` integer, required — Maximum number of requests in the given duration before the condition is triggered
          - `type` 'rate_limit'
        - ConditionReferrerDoesNotMatch — True for a request for which request referrer does not match any referrer pattern from a list
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `list` string[], required — A list of referrer wildcard patterns
          - `type` 'referrer_is_not', required
        - ConditionReferrerIsDefined — True for a request for which request referrer hostname matches a hostname for this application
          - `type` 'referrer_is_defined', required
        - ConditionReferrerIsNotDefined — True for a request for which request referrer hostname does not match a hostname for this application.
          - `type` 'referrer_is_not_defined', required
        - ConditionReferrerMatches — True for a request for which request referrer matches a referrer pattern from a list
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `list` string[], required — A list of referrer wildcard patterns
          - `type` 'referrer_is', required
        - ConditionStatusCodeMatches — True if the response code matches the pattern.
          - `pattern` string, regex, required — A regular expression to match against the response status code.
          - `type` 'status_code_matches', required
        - ConditionUrlDoesNotMatch — True for a request URL that does not match any URL pattern from a list.
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `list` ConditionUrl[], required — Array of url objects
            - `scheme` string — Http scheme used for matching against requests. If this field is not specified then both http and https will match.
            - `domain` string — Wildcard domain used for matching against requests. If this field is not specified then all configured application domains will match.
            - `path` string — Wildcard path used for matching against requests. If this field is not specified then all paths will match.
            - `query` string — Wildcard query used for matching against requests. If this field is not specified then all query values will match.
          - `type` 'url_is_not', required
        - ConditionUrlMatches — True for a request URL that matches a URL pattern from a list.
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `list` ConditionUrl[], required — Array of url objects
            - `scheme` string — Http scheme used for matching against requests. If this field is not specified then both http and https will match.
            - `domain` string — Wildcard domain used for matching against requests. If this field is not specified then all configured application domains will match.
            - `path` string — Wildcard path used for matching against requests. If this field is not specified then all paths will match.
            - `query` string — Wildcard query used for matching against requests. If this field is not specified then all query values will match.
          - `type` 'urls', required
        - ConditionUserAgentDoesNotMatch — True for a request user-agent that does not match a specified regular expression
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `pattern` string, required — A regular expression
          - `type` 'user_agent_does_not_match', required
        - ConditionUserAgentMatches — True for a request user-agent that matches a specified regular expression
          - `case_sensitive` boolean — Flag for determining if the condition is case sensitive
          - `pattern` string, required — A regular expression
          - `type` 'user_agent_matches', required
        - ConditionIsCrawler — True if the requester's IP address is a known Web Crawler.
          - `type` 'is_crawler', required
    - `actions` PageControlAction[], required — Actions that are applied when the web control is triggered.
      - union — An array of actions to enact on the triggering of a page control.
        - PageControlActionAddIPToList — Add IP address of the request to address set
          - `type` 'add-address-to-set', required
          - `address_set` string, required — The endpoint for an address set resource
          - `ttl` number — The amount of time in seconds that an IP address will live in a set
        - PageControlActionAddLabels — Add custom labels to processed traffic. This is a non-final action.
          - `type` 'add-labels', required
          - `labels` Label[], required — Array of labels that will be attached to matching traffic
        - PageControlActionCacheOverrides — Update the cache-related headers of responses from backend servers.
          - `type` 'cache-overrides', required
          - `setting` string, required — Always-cache erases cache control headers and sets the cache control header to 'public' along with removing Pragma and Expires headers, allowing Webscale and browsers to cache affected responses for a default amount of time. Bypass-cache sets the cache control to disallow caching and the header is set to 'no-transform, no-cache, no-store, must-revalidate, max-age=0', ensuring that all responses are uniquely generated. Contents of the cache control header value (which will be used as is, if valid) to be used in place of the one returned from the application server when retrieving a resource
        - PageControlActionContinue — Continue execution of traffic controls. Non final action
          - `type` 'continue', required
        - PageControlActionDeny — Deny the request with the given status code. Final action
          - `type` 'deny', required
          - `status_code` string, required — Response status code that will be returned as a result of deny action
          - `body` string, required — The response body to send when a request is denied
        - PageControlActionDisableRum — Disable real user monitoring when RUM is enabled for the application. No beacon script for collecting RUM metrics will be injected into html responses.
          - `type` 'disable-rum', required
        - PageControlActionDisableSessionTracking — Disable Webscale session tracking. No session-tracking cookies will be added to responses.
          - `type` 'disable-session-tracking', required
        - PageControlActionDiscontinue — Discontinue execution of traffic controls. Final action that can be used to finalize a set of non-final actions
          - `type` 'discontinue', required
        - PageControlActionDrop — Drop the request. Final action
          - `type` 'drop', required
        - PageControlActionRedirect — Redirect the request. Final action
          - `type` 'redirect', required
          - `status_code` string, required — Response status code that will be returned as a result of redirection
          - `location` string, required — A valid URL with http or https scheme, a hostname, and a path
        - PageControlActionRedirectUsingMap — Redirect the request using a url map. If the request URL is found in the url map and a redirect occurs, then this is a final action
          - `type` 'redirect-using-map', required
          - `preserve_query` boolean, required — When true, query parameters from the request are preserved in the redirect location, unless the location in the url map specifies a query separator (question mark)
          - `status_code` string, required — Response status code that will be returned in a redirect response
          - `url_map` string, required — A reference to a url map
        - PageControlActionRewriteUrl — Rewrite the incoming request URL prior to serving it. The rewrite is designed to rewrite the URL path and the query parameters. If the URL scheme or the hostname is attempted to be modified the resulting behavior is unspecified.
          - `type` 'rewrite-url', required
          - `url` string, required — A valid URL with http or https scheme, a hostname, and a path
        - PageControlActionSetRequestTimeout — Set timeout for a request
          - `type` 'set-request-timeout', required
          - `timeout` integer, required — An integer of value 1 or more.
        - PageControlActionScriptAddAsync — Update matching script elements to add the async attribute.
          - `type` 'script-add-async', required
          - `scripts` Script[], required — Array of urls that has to be made async
        - PageControlActionScriptAddDefer — Update matching script elements to add the defer attribute.
          - `type` 'script-add-defer', required
          - `scripts` Script[], required — Array of urls that has to be deferred
        - PageControlActionSetContentSecurityPolicy — Set a content security policy.
          - `type` 'set-content-security-policy', required
          - `value` object, required — CSP action value is a hash where the key is the directive name and the value is the directive value. The directive value is usually an array of strings, but for a couple directives it is a boolean.
        - PageControlActionSetAuthCookie — Set or extend an authorization cookie. The cookie is valid for a specified duration and a domain and path if specified
          - `type` 'set-auth-cookie', required
          - `name` string, required — The name of the cookie to be set
          - `domain` string — Optional domain to be sent with cookie
          - `duration` integer, required — The lifespan of the cookie when issued, in seconds. After the cookie is initially sent, it will be refreshed if the expiry is less than 1/2 the duration from the current time
          - `path` string — Optional path to be sent with the cookie
        - PageControlActionSetCookie — Set a response cookie.
          - `type` 'set-cookie', required
          - `name` string, required — The name of the cookie to be set
          - `value` string, required — The value to set for the cookie
          - `max_age` integer — An integer of value 0 or more.
          - `path` string — The path to which the cookie applies
        - PageControlActionSetPagespeedOptions — Provides options for the pagespeed integration
          - `type` 'set-pagespeed-options', required
          - `disable_filters` PagespeedFilterName[] — Array of filter names to disable. See the enable_filters attribute for the filters enabled by default
          - `enable` boolean — Set to false to disable pagespeed processing
          - `enable_filters` PagespeedFilterName[] — Array of filter names to enable. The filters enabled by default are: add_head, canonicalize_javascript_libraries, combine_css, convert_meta_tags, extend_cache, fallback_rewrite_css_urls, flatten_css_imports, inline_css, inline_import_to_link, inline_javascript, insert_dns_prefetch, rewrite_css, rewrite_images, rewrite_javascript, and rewrite_style_attributes_with_url
        - PageControlActionSetRequestHeader — Set a request header before a request is sent to a backend server.
          - `type` 'set-request-header', required
          - `name` string, required — The name of the header to be set
          - `value` string, required — The value for the specified header
        - PageControlActionSetResponseHeader — Set a response header before a response is returned to a web browser.
          - `type` 'set-response-header', required
          - `name` string, required — The name of the header to be set
          - `value` string, required — The value for the specified header
        - PageControlActionServe — Serve the microsite resource specified by a relative path with a specified status code. If the resource does not exist in the application's microsite, then the file index.html is used instead, which is guaranteed to exist.
          - `type` 'serve', required
          - `code` string, required — The HTTP status code to return
          - `file` string — Endpoint resource reference to a file.
          - `path` string, required — The file path for the page to serve
        - PageControlActionServeCaptchaChallenge — Issue a reCaptcha challenge to the user for all incoming requests unless the user has successfully completed a validation before.
          - `type` 'serve-captcha-challenge', required
        - PageControlActionTerminateHttps — Use HTTP to communicate with backend servers regardless of the request protocol. Final action
          - `type` 'terminate-https', required
        - PageControlActionUseAlternateBackends — Use different servers than the default for matching requests. Final action
          - `type` 'use-alternate-backends', required
          - `cluster` string, nullable — The endpoint for the cluster resource.
          - `servers` ApplicationServer[] — A list of IP addresses to which traffic is sent. One of cluster or servers is required
            - `public_address` string, required — IP address
            - `description` string — Description of the server.
          - `servers_hostname` string — A fully qualified domain name (FQD) whose addresses are used to set the backend servers to which traffic should be sent
          - `remote_url` union
            - unknown
            - string — A URL used to access backend servers. This URL may omit the scheme. If the scheme is set, then that scheme will be used to access the backend server regardless of the request scheme. When a hostname is provided in the URL, then it will be used instead of the request hostname. If a path is provided, the pathname requested from the backend server will be the path formed by joining the URL path and the request path. <h3>Examples</h3><table><thead><tr><th>Request URL</th><th>Remote URL</th><th>Effective URL</th></tr></thead><tbody><tr><td>https://example.com/page</td><td>—</td><td>https://example.com/page</td></tr><tr><td>https://example.com/page</td><td>/prefix</td><td>https://example.com/prefix/page</td></tr><tr><td>https://example.com/page</td><td>//althost.com/</td><td>https://althost.com/page</td></tr><tr><td>https://example.com/page</td><td>//althost.com/prefix</td><td>https://althost.com/prefix/page</td></tr><tr><td>https://example.com/page</td><td>http://althost.com/prefix</td><td>http://althost.com/prefix/page</td></tr></tbody></table>
          - `relative_to` union
            - unknown
            - string — A path in the URL space of the application at which the resources obtained from the backend server are mapped. If not used with a condition that only matches URL paths that begin with this value, then the result may be unpredictable. The path mapping logically happens before any mapping performed by the remote_url attribute. <h3>Examples</h3><table><thead><tr><th>Request URL</th><th>Relative to</th><th>Effective path</th></tr></thead><tbody><tr><td>/</td><td>—</td><td>/</td></tr><tr><td>/base</td><td>—</td><td>/base</td></tr><tr><td>/base</td><td>/base</td><td>/</td></tr><tr><td>/base/page</td><td>/base</td><td>/page</td></tr></tbody></table>
        - PageControlActionUserHasRole — Limit access to accounts and applications to users belonging to the given role.
          - `type` 'user-has-role', required
          - `roles` string[], required — Users must belong to at least one of these roles
        - PageControlActionSubstitute — Substitute a string with an alternate string.
          - `type` 'substitute', required
          - `substitutes` Substitute[], required — Array of substitutes
            - `contains` string, required — Case sensitive text in URL or query.
            - `replace` string, required — Text that will replace the case sensitive input provided by user.
        - PageControlActionUseServerlessFunction — Allows the user to invoke serverless function
          - `type` 'use-serverless-function'
          - `function` string, required — A reference to the handler.
  - `stratus_id` union
    - unknown
    - string — Identification for stratus applications
  - `log_retention` ApplicationLogRetention[] — An array of application log retention configuration objects
    - `type` 'default' | 'cdn' | 'custom' | 'csp-reports' | 'pageviews' | 'proxy-logs', required — Type of log retention
    - `online_days` integer — Number of online days
    - `archive_days` integer — Number of archive days
    - `online_space_allowance` integer — Allowance for online space
    - `archive_space_allowance` integer — Allowance for archive space

## Other responses

- `201` — A task was created to patch the application.

---

[API](https://skmtc.dev/webscale/apis/webscale-apis.md) · [All operations](https://skmtc.dev/webscale/apis/webscale-apis/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/webscale/webscale-apis/revisions/c98d872b50cb/schema)
