- Property Manager name: Site Failover
- Behavior version: The
v2024-10-21
rule format supports thefailAction
behavior v1.7. - Rule format status: GA, stable
- Access: Read/Write
- Allowed in includes: Yes
Specifies how to respond when the origin is not available: by serving stale content, by serving an error page, or by redirecting. To apply this behavior, you should match on an originTimeout
or matchResponseCode
.
Option | Type | Description | Requires | |
---|---|---|---|---|
enabled | boolean | When enabled in case of a failure to contact the origin, the current behavior applies. | {"displayType":"boolean","tag":"input","type":"checkbox"} | |
actionType | enum | Specifies the basic action to take when there is a failure to contact the origin. | {"displayType":"enum","options":["SERVE_STALE","REDIRECT","RECREATED_CO","RECREATED_CEX","RECREATED_NS","DYNAMIC"],"tag":"select"} {"if":{"attribute":"enabled","op":"eq","value":true}} | |
SERVE_STALE | Serves content that is already in the cache. | |||
REDIRECT | Specifies a redirect action. (Use with these options: | |||
RECREATED_CO | Serves alternate content from your network. (Use with these options: | |||
RECREATED_CEX | Serves alternate content from an external network. (Use with these options: | |||
RECREATED_NS | Serves NetStorage content. (Use with these options: | |||
DYNAMIC | Allows you to serve dynamic SaaS content if SaaS acceleration is available on your contract. (Use with these options: | |||
saasType | enum | Identifies the component of the request that identifies the SaaS dynamic fail action. | actionType is DYNAMIC | {"displayType":"enum","options":["HOSTNAME","PATH","QUERY_STRING","COOKIE"],"tag":"select"} {"if":{"attribute":"actionType","op":"eq","value":"DYNAMIC"}} |
Supported values: COOKIE HOSTNAME PATH QUERY_STRING | ||||
saasCnameEnabled | boolean | Specifies whether to use a CNAME chain to determine the hostname for the SaaS dynamic failaction. | saasType is HOSTNAME | {"displayType":"boolean","tag":"input","type":"checkbox"} {"if":{"attribute":"saasType","op":"eq","value":"HOSTNAME"}} |
saasCnameLevel | number | Specifies the number of elements in the CNAME chain backwards from the edge hostname that determines the hostname for the SaaS dynamic failaction. | saasCnameEnabled is true | {"displayType":"number","tag":"input","type":"number"} {"if":{"attribute":"saasCnameEnabled","op":"eq","value":true}} |
saasCookie | string (allows variables) | Specifies the name of the cookie that identifies this SaaS dynamic failaction. | saasType is COOKIE | {"displayType":"string","tag":"input","type":"text"} {"if":{"attribute":"saasType","op":"eq","value":"COOKIE"}} |
saasQueryString | string (allows variables) | Specifies the name of the query parameter that identifies this SaaS dynamic failaction. | saasType is QUERY_STRING | {"displayType":"string","tag":"input","type":"text"} {"if":{"attribute":"saasType","op":"eq","value":"QUERY_STRING"}} |
saasRegex | string | Specifies the substitution pattern (a Perl-compatible regular expression) that defines the SaaS dynamic failaction. | actionType is DYNAMIC | {"displayType":"string","tag":"input","type":"text"} {"if":{"attribute":"actionType","op":"eq","value":"DYNAMIC"}} |
saasReplace | string (allows variables) | Specifies the replacement pattern that defines the SaaS dynamic failaction. | actionType is DYNAMIC | {"displayType":"string","tag":"input","type":"text"} {"if":{"attribute":"actionType","op":"eq","value":"DYNAMIC"}} |
saasSuffix | string (allows variables) | Specifies the static portion of the SaaS dynamic failaction. | actionType is DYNAMIC | {"displayType":"string","tag":"input","type":"text"} {"if":{"attribute":"actionType","op":"eq","value":"DYNAMIC"}} |
dynamicMethod | enum | Specifies the redirect method. | actionType is DYNAMIC | {"displayType":"enum","options":["SERVE_301","SERVE_302","SERVE_ALTERNATE"],"tag":"select"} {"if":{"attribute":"actionType","op":"eq","value":"DYNAMIC"}} |
SERVE_301 | A 301 redirect response. | |||
SERVE_302 | A 302 redirect response. | |||
SERVE_ALTERNATE | Serve an alternate response. | |||
dynamicCustomPath | boolean | Allows you to modify the original requested path. | actionType is DYNAMIC | {"displayType":"boolean","tag":"input","type":"checkbox"} {"if":{"attribute":"actionType","op":"eq","value":"DYNAMIC"}} |
dynamicPath | string (allows variables) | Specifies the new path. | dynamicCustomPath is true | {"displayType":"string","tag":"input","type":"text"} {"if":{"attribute":"dynamicCustomPath","op":"eq","value":true}} |
redirectHostnameType | enum | Whether to preserve or customize the hostname. | actionType is REDIRECT | {"displayType":"enum","options":["ORIGINAL","ALTERNATE"],"tag":"select"} {"if":{"attribute":"actionType","op":"eq","value":"REDIRECT"}} |
ORIGINAL | Preserve the original hostname in the redirect. | |||
ALTERNATE | Specify a | |||
redirectHostname | string (allows variables) | When the | redirectHostnameType is ALTERNATE | {"displayType":"string","tag":"input","type":"text"} {"if":{"attribute":"redirectHostnameType","op":"eq","value":"ALTERNATE"}} |
redirectCustomPath | boolean | Uses the | actionType is REDIRECT | {"displayType":"boolean","tag":"input","type":"checkbox"} {"if":{"attribute":"actionType","op":"eq","value":"REDIRECT"}} |
redirectPath | string (allows variables) | Specifies a new path. | redirectCustomPath is true | {"displayType":"string","tag":"input","type":"text"} {"if":{"attribute":"redirectCustomPath","op":"eq","value":true}} |
redirectMethod | enum | Specifies the HTTP response code. | actionType is REDIRECT | {"displayType":"enum","options":["302","301"],"tag":"select"} {"if":{"attribute":"actionType","op":"eq","value":"REDIRECT"}} |
Supported values: 301 302 | ||||
contentHostname | string (allows variables) | Specifies the static hostname for the alternate redirect. | actionType is RECREATED_CO | {"displayType":"string","tag":"input","type":"text"} {"if":{"attribute":"actionType","op":"eq","value":"RECREATED_CO"}} |
contentCustomPath | boolean | Specifies a custom redirect path. | actionType is RECREATED_CO | {"displayType":"boolean","tag":"input","type":"checkbox"} {"if":{"attribute":"actionType","op":"eq","value":"RECREATED_CO"}} |
contentPath | string (allows variables) | Specifies a custom redirect path. | contentCustomPath is true | {"displayType":"string","tag":"input","type":"text"} {"if":{"attribute":"contentCustomPath","op":"eq","value":true}} |
netStorageHostname | object | When the | actionType is RECREATED_NS | {"displayType":"object","tag":"input","todo":true} {"if":{"attribute":"actionType","op":"eq","value":"RECREATED_NS"}} |
netStorageHostname.cpCode | integer | Identifies a CP code assigned to this storage group. | ||
netStorageHostname.downloadDomainName | string | Domain name from which content can be downloaded. | ||
netStorageHostname.g2oToken | string | Signature Header Authentication key. | ||
netStorageHostname.id | integer | Unique identifier for the storage group. | ||
netStorageHostname.name | string | Name of the storage group. | ||
netStoragePath | string (allows variables) | When the | actionType is RECREATED_NS | {"displayType":"string","tag":"input","type":"text"} {"if":{"attribute":"actionType","op":"eq","value":"RECREATED_NS"}} |
cexHostname | string (allows variables) | Specifies a hostname. | actionType is RECREATED_CEX | {"displayType":"string","tag":"input","type":"text"} {"if":{"attribute":"actionType","op":"eq","value":"RECREATED_CEX"}} |
cexCustomPath | boolean | Specifies a custom path. | actionType is RECREATED_CEX | {"displayType":"boolean","tag":"input","type":"checkbox"} {"if":{"attribute":"actionType","op":"eq","value":"RECREATED_CEX"}} |
cexPath | string (allows variables) | Specifies a custom path. | cexCustomPath is true | {"displayType":"string","tag":"input","type":"text"} {"if":{"attribute":"cexCustomPath","op":"eq","value":true}} |
cpCode | object | Specifies a CP code for which to log errors for the NetStorage location. You only need to provide the initial | actionType is RECREATED_NS | {"displayType":"object","tag":"input","todo":true} {"if":{"attribute":"actionType","op":"eq","value":"RECREATED_NS"}} |
cpCode.cpCodeLimits | array | Read-only. Describes the current usage limit for the CP code. | ||
cpCode.createdDate | integer | Read-only. UNIX epoch timestamp reflecting when the CP code was originally created. | ||
cpCode.description | string | Read-only. Additional description for the CP code. | ||
cpCode.id | integer | Unique identifier for each CP code. Initially, you get this value when creating a new CP code in PAPI. You can also assign a | ||
cpCode.name | string | Read-only. The name of the CP code you specify as the | ||
cpCode.products | array | Read-only. The set of products the CP code is assigned to. This reflects | ||
statusCode | enum | Assigns a new HTTP status code to the failure response. | actionType is RECREATED_NS | {"displayType":"enum","options":["200","404","500","100","101","102","103","122","201","202","203","204","205","206","207","226","400","401","402","403","405","406","407","408","409","410","411","412","413","414","415","416","417","422","423","424","425","426","428","429","431","444","449","450","499","501","502","503","504","505","506","507","509","510","511","598","599"],"tag":"select"} {"if":{"attribute":"actionType","op":"eq","value":"RECREATED_NS"}} |
Supported values: 100 101 102 103 122 200 201 202 203 204 205 206 207 226 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 422 423 424 425 426 428 429 431 444 449 450 499 500 501 502 503 504 505 506 507 509 510 511 598 599 | ||||
preserveQueryString | boolean | When using either | contentCustomPath is true OR cexCustomPath is true OR redirectCustomPath is true OR dynamicCustomPath is true | {"displayType":"boolean","tag":"input","type":"checkbox"} {"if":{"op":"or","params":[{"attribute":"contentCustomPath","op":"eq","value":true},{"attribute":"cexCustomPath","op":"eq","value":true},{"attribute":"redirectCustomPath","op":"eq","value":true},{"attribute":"dynamicCustomPath","op":"eq","value":true}]}} |
modifyProtocol | boolean | Modifies the redirect's protocol using the value of the | actionType is REDIRECT OR dynamicMethod is either: SERVE_301 , SERVE_302 | {"displayType":"boolean","tag":"input","type":"checkbox"} {"if":{"op":"or","params":[{"attribute":"actionType","op":"eq","value":"REDIRECT"},{"attribute":"dynamicMethod","op":"in","value":["SERVE_301","SERVE_302"]}]}} |
protocol | enum | When the | modifyProtocol is true | {"displayType":"enum","options":["HTTP","HTTPS"],"tag":"select"} {"if":{"attribute":"modifyProtocol","op":"eq","value":true}} |
Supported values: HTTP HTTPS |