Skip to content

Replace Protected Application.

PUT
/api/shape/bot/namespaces/{metadata.namespace}/protected_applications/{metadata.name}
curl --request PUT \
--url https://example-corp.console.ves.volterra.io/api/v1/api/production/us-east-1/namespaces/default/api/shape/bot/namespaces/example/protected_applications/example \
--header 'Authorization: <Authorization>' \
--header 'Content-Type: application/json' \
--data '{ "metadata": { "annotations": {}, "description": "example", "disable": true, "labels": {}, "name": "example", "namespace": "example" }, "spec": { "adobe_commerce_connector": {}, "big_ip_iapp": {}, "cloudflare": { "continue_mitigation_action_hdr": "example", "disable_js_insert": {}, "disable_mobile_sdk": {}, "js_insertion_rules": { "exclude_list": [ { "any_domain": {}, "domain": { "exact_value": "example", "regex_value": "example", "suffix_value": "example" }, "metadata": { "description": "example", "name": "example" }, "path": { "path": "example", "prefix": "example", "regex": "example" } } ], "javascript_location": "JAVA_SCRIPT_LOCATION_UNDEFINED", "js_download_path": "example", "rules": [ { "any_domain": {}, "domain": { "exact_value": "example", "regex_value": "example", "suffix_value": "example" }, "exact_path": "example", "glob": "example", "metadata": { "description": "example", "name": "example" }, "prefix": "example" } ] }, "loglevel": "LOG_UNDEFINED", "manual_js_insert": { "js_download_path": "example" }, "mobile_sdk_config": { "mobile_identifier": { "headers": [ { "exact": "example", "name": "example", "regex": "example" } ] } }, "protected_endpoints": [ { "any_domain": {}, "domain": { "exact_value": "example", "regex_value": "example", "suffix_value": "example" }, "http_methods": [ "METHOD_ANY" ], "metadata": { "description": "example", "name": "example" }, "mobile_client": { "block": { "body": "example", "content_type": "example", "status": "EmptyStatusCode" }, "continue": { "add_header": {}, "no_header": {} } }, "path": { "caseinsensitive": true, "path": "example" }, "query": "example", "web_client": { "block": { "body": "example", "content_type": "example", "status": "EmptyStatusCode" }, "continue": { "add_header": {}, "no_header": {} }, "redirect": { "location": "example", "status": "EmptyStatusCode" } }, "web_mobile_client": { "block_mobile": { "body": "example", "content_type": "example", "status": "EmptyStatusCode" }, "block_web": { "body": "example", "content_type": "example", "status": "EmptyStatusCode" }, "continue_mobile": { "add_header": {}, "no_header": {} }, "continue_web": { "add_header": {}, "no_header": {} }, "redirect_web": { "location": "example", "status": "EmptyStatusCode" } } } ], "timeout": 1, "trusted_clients": [ { "http_header": { "headers": [ { "exact": "example", "name": "example", "regex": "example" } ] }, "ip_prefix": "example", "metadata": { "description": "example", "name": "example" } } ] }, "cloudfront": { "aws_configuration_id_selector": { "ids": [ "example" ] }, "aws_configuration_tag_selector": { "tags": {} }, "continue_mitigation_action_hdr": "example", "data_sample": 1, "disable_aws_configuration": {}, "disable_js_insert": {}, "disable_mobile_sdk": {}, "js_insertion_rules": { "exclude_list": [ { "any_domain": {}, "domain": { "exact_value": "example", "regex_value": "example", "suffix_value": "example" }, "metadata": { "description": "example", "name": "example" }, "path": { "path": "example", "prefix": "example", "regex": "example" } } ], "javascript_location": "JAVA_SCRIPT_LOCATION_UNDEFINED", "javascript_mode": "ASYNC_JS_NO_CACHING", "js_download_path": "example", "rules": [ { "any_domain": {}, "domain": { "exact_value": "example", "regex_value": "example", "suffix_value": "example" }, "exact_path": "example", "glob": "example", "metadata": { "description": "example", "name": "example" }, "prefix": "example" } ] }, "loglevel": "LOG_UNDEFINED", "manual_js_insert": { "javascript_mode": "ASYNC_JS_NO_CACHING", "js_download_path": "example" }, "mobile_sdk_config": { "mobile_identifier": { "headers": [ { "exact": "example", "name": "example", "regex": "example" } ] } }, "protected_endpoints": [ { "any_domain": {}, "domain": { "exact_value": "example", "regex_value": "example", "suffix_value": "example" }, "flow_label": { "account_management": { "create": {}, "password_reset": {} }, "authentication": { "login": { "disable_transaction_result": {}, "transaction_result": { "failure_conditions": [ { "name": "example", "regex_values": [ "example" ], "status": "EmptyStatusCode" } ], "success_conditions": [ { "name": "example", "regex_values": [ "example" ], "status": "EmptyStatusCode" } ] } }, "login_mfa": {}, "login_partner": {}, "logout": {}, "token_refresh": {} }, "financial_services": { "apply": {}, "money_transfer": {} }, "flight": { "checkin": {} }, "profile_management": { "create": {}, "update": {}, "view": {} }, "search": { "flight_search": {}, "product_search": {}, "reservation_search": {}, "room_search": {} }, "shopping_gift_cards": { "gift_card_make_purchase_with_gift_card": {}, "gift_card_validation": {}, "shop_add_to_cart": {}, "shop_checkout": {}, "shop_choose_seat": {}, "shop_enter_drawing_submission": {}, "shop_make_payment": {}, "shop_order": {}, "shop_price_inquiry": {}, "shop_promo_code_validation": {}, "shop_purchase_gift_card": {}, "shop_update_quantity": {} } }, "http_methods": [ "METHOD_ANY" ], "metadata": { "description": "example", "name": "example" }, "mobile_client": { "block": { "body": "example", "content_type": "example", "status": "EmptyStatusCode" }, "continue": { "add_header": {}, "no_header": {} } }, "path": "example", "query": "example", "undefined_flow_label": {}, "web_client": { "block": { "body": "example", "content_type": "example", "status": "EmptyStatusCode" }, "continue": { "add_header": {}, "no_header": {} }, "redirect": { "location": "example", "status": "EmptyStatusCode" } }, "web_mobile_client": { "block_mobile": { "body": "example", "content_type": "example", "status": "EmptyStatusCode" }, "block_web": { "body": "example", "content_type": "example", "status": "EmptyStatusCode" }, "continue_mobile": { "add_header": {}, "no_header": {} }, "continue_web": { "add_header": {}, "no_header": {} }, "redirect_web": { "location": "example", "status": "EmptyStatusCode" } } } ], "timeout": 1, "trusted_clients": [ { "http_header": { "headers": [ { "exact": "example", "name": "example", "regex": "example" } ] }, "ip_prefix": "example", "metadata": { "description": "example", "name": "example" } } ] }, "custom_connector": {}, "f5_big_ip": {}, "not_applicable_connector": {}, "salesforce_commerce_connector": {}, "xc_mesh": { "http_load_balancer": { "name": "example", "namespace": "example" } } } }'

Replace applications protected by Bot Defense.

Examples of this operation.

metadata.namespace
required
string

Namespace This defines the workspace within which each the configuration object is to be created. Must be a DNS_LABEL format. For a namespace object itself, namespace value will be ""

metadata.name
required
string

Name The configuration object to be replaced will be looked up by name.

Media typeapplication/json
ReplaceRequest is used to replace contents of a protected_application

This is the input message of the ‘Replace’ RPC.

object
metadata
object
annotations
annotations

Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects.

object
description
description

Human readable description for the object.

string
>= 21 characters <= 1200 characters
disable
disable

A value of true will administratively disable the object.

boolean format: boolean
labels
labels

Map of string keys and values that can be used to organize and categorize (scope and select) objects as chosen by the user. Values specified here will be used by selector expression.

object
name
name

This is the name of configuration object. It has to be unique within the namespace. It can only be specified during create API and cannot be changed during replace API. The value of name has to follow DNS-1035 format. Required: YES.

string
>= 6 characters <= 1024 characters
namespace
namespace

This defines the workspace within which each the configuration object is to be created. Must be a DNS_LABEL format. For a namespace object itself, namespace value will be ""

string
>= 6 characters <= 1024 characters
spec
object
adobe_commerce_connector
object
big_ip_iapp
object
cloudflare
object
continue_mitigation_action_hdr
Continue Header name

A case-insensitive HTTP header name for Continue Mitigation Action when add header selected.

string
<= 256 characters
disable_js_insert
object
disable_mobile_sdk
object
js_insertion_rules
object
exclude_list
exclude_list

Optional JavaScript insertions exclude list of domain and path matchers.

Array<object>
<= 128 items
JavaScriptExclusionRule

Define JavaScript insertion exclusion rule.

object
any_domain
object
domain
object
exact_value
exact value

Exclusive with [regex_value suffix_value] Exact domain name.

string
>= 1 characters <= 256 characters
regex_value
regex values of Domains

Exclusive with [exact_value suffix_value] Regular Expression value for the domain name.

string
>= 1 characters <= 256 characters
suffix_value
suffix value

Exclusive with [exact_value regex_value] Suffix of domain name e.g “xyz.com” will match “*.xyz.com” and “xyz.com”

string
>= 1 characters <= 256 characters
metadata
object
description
description

Human readable description.

string
>= 21 characters <= 256 characters
name
name

This is the name of the message. The value of name has to follow DNS-1035 format. Required: YES.

string
>= 1 characters <= 1024 characters
path
object
path
exact

Exclusive with [prefix regex] Exact path value to match.

string
<= 256 characters
prefix
prefix

Exclusive with [path regex] Path prefix to match (e.g. The value / will match on all paths)

string
<= 256 characters
regex
regex

Exclusive with [path prefix] Regular expression of path match (e.g. The value .* will match on all paths)

string
>= 1 characters <= 256 characters
javascript_location
string
default: JAVA_SCRIPT_LOCATION_UNDEFINED
Allowed values: JAVA_SCRIPT_LOCATION_UNDEFINED AFTER_HEAD AFTER_TITLE_END BEFORE_SCRIPT
js_download_path
js_download_path

Web client will fetch F5 Client Java Script from this path. This path must not conflict with any other website/application paths.

If not specified, default to ‘/common.js’.

string
<= 1024 characters
rules
rules

Required list of pages to insert Bot Defense client JavaScript.

Required: YES.

Array<object>
>= 1 items <= 128 items
JavaScriptInsertionRule

This defines a rule for Bot Defense JavaScript insertion.

object
any_domain
object
domain
object
exact_value
exact value

Exclusive with [regex_value suffix_value] Exact domain name.

string
>= 1 characters <= 256 characters
regex_value
regex values of Domains

Exclusive with [exact_value suffix_value] Regular Expression value for the domain name.

string
>= 1 characters <= 256 characters
suffix_value
suffix value

Exclusive with [exact_value regex_value] Suffix of domain name e.g “xyz.com” will match “*.xyz.com” and “xyz.com”

string
>= 1 characters <= 256 characters
exact_path
path

Exclusive with [glob prefix] Exact path value to match.

string
<= 256 characters
glob
glob

Exclusive with [exact_path prefix]

Accepts wildcards * to match multiple characters or ? To match a single character.

string
>= 1 characters <= 256 characters
metadata
object
description
description

Human readable description.

string
>= 21 characters <= 256 characters
name
name

This is the name of the message. The value of name has to follow DNS-1035 format. Required: YES.

string
>= 1 characters <= 1024 characters
prefix
prefix

Exclusive with [exact_path glob] Path prefix to match (e.g. The value / will match on all paths)

string
<= 256 characters
loglevel
string
default: LOG_UNDEFINED
Allowed values: LOG_UNDEFINED LOG_ERROR LOG_WARNING LOG_INFO LOG_DEBUG
manual_js_insert
object
js_download_path
js_download_path

Web client will fetch F5 Client Java Script from this path. This path must not conflict with any other website/application paths.

If not specified, default to ‘/common.js’.

string
<= 1024 characters
mobile_sdk_config
object
mobile_identifier
object
headers
Mobile headers

A list of headers that can be used to identify mobile traffic.

Array<object>
<= 16 items
HeaderMatcherType

Header match is done using the name of the header and its value. The value match is done using one of the following regex match on value exact match of value presence of header.

object
exact
exact

Exclusive with [regex] Header value to match exactly.

string
<= 256 characters
name
name

Name of the header Required: YES.

string
>= 1 characters <= 256 characters
regex
regex

Exclusive with [exact] Regex match of the header value in re2 format.

string
<= 256 characters
protected_endpoints
protected_endpoints

List of protected endpoints (max 128 items)

Required: YES.

Array<object>
>= 1 items <= 128 items
ProtectedEndpointType

Add the name and description for the protected endpoint.

object
any_domain
object
domain
object
exact_value
exact value

Exclusive with [regex_value suffix_value] Exact domain name.

string
>= 1 characters <= 256 characters
regex_value
regex values of Domains

Exclusive with [exact_value suffix_value] Regular Expression value for the domain name.

string
>= 1 characters <= 256 characters
suffix_value
suffix value

Exclusive with [exact_value regex_value] Suffix of domain name e.g “xyz.com” will match “*.xyz.com” and “xyz.com”

string
>= 1 characters <= 256 characters
http_methods
HTTP Methods

List of HTTP methods.

Required: YES.

Array<string>
>= 1 items <= 4 items
Allowed values: METHOD_ANY METHOD_GET METHOD_POST METHOD_PUT METHOD_PATCH METHOD_DELETE METHOD_GET_DOCUMENT
metadata
object
description
description

Human readable description.

string
>= 21 characters <= 256 characters
name
name

This is the name of the message. The value of name has to follow DNS-1035 format. Required: YES.

string
>= 1 characters <= 1024 characters
mobile_client
object
block
object
body
body

Custom body message.

string
<= 4096 characters
content_type
content_type

Content type to use in a block response.

string
<= 128 characters
status
string
default: EmptyStatusCode
Allowed values: EmptyStatusCode Continue OK Created Accepted NonAuthoritativeInformation NoContent ResetContent PartialContent MultiStatus AlreadyReported IMUsed MultipleChoices MovedPermanently Found SeeOther NotModified UseProxy TemporaryRedirect PermanentRedirect BadRequest Unauthorized PaymentRequired Forbidden NotFound MethodNotAllowed NotAcceptable ProxyAuthenticationRequired RequestTimeout Conflict Gone LengthRequired PreconditionFailed PayloadTooLarge URITooLong UnsupportedMediaType RangeNotSatisfiable ExpectationFailed MisdirectedRequest UnprocessableEntity Locked FailedDependency UpgradeRequired PreconditionRequired TooManyRequests RequestHeaderFieldsTooLarge InternalServerError NotImplemented BadGateway ServiceUnavailable GatewayTimeout HTTPVersionNotSupported VariantAlsoNegotiates InsufficientStorage LoopDetected NotExtended NetworkAuthenticationRequired
continue
object
add_header
object
no_header
object
path
object
caseinsensitive
Case insensitive

Should path be searched case insensitive;

boolean format: boolean
path
Path

URI Path Required: YES.

string
>= 1 characters <= 256 characters
query
Query

Enter a regular expression to match your query parameters of interest.

string
<= 256 characters
web_client
object
block
object
body
body

Custom body message.

string
<= 4096 characters
content_type
content_type

Content type to use in a block response.

string
<= 128 characters
status
string
default: EmptyStatusCode
Allowed values: EmptyStatusCode Continue OK Created Accepted NonAuthoritativeInformation NoContent ResetContent PartialContent MultiStatus AlreadyReported IMUsed MultipleChoices MovedPermanently Found SeeOther NotModified UseProxy TemporaryRedirect PermanentRedirect BadRequest Unauthorized PaymentRequired Forbidden NotFound MethodNotAllowed NotAcceptable ProxyAuthenticationRequired RequestTimeout Conflict Gone LengthRequired PreconditionFailed PayloadTooLarge URITooLong UnsupportedMediaType RangeNotSatisfiable ExpectationFailed MisdirectedRequest UnprocessableEntity Locked FailedDependency UpgradeRequired PreconditionRequired TooManyRequests RequestHeaderFieldsTooLarge InternalServerError NotImplemented BadGateway ServiceUnavailable GatewayTimeout HTTPVersionNotSupported VariantAlsoNegotiates InsufficientStorage LoopDetected NotExtended NetworkAuthenticationRequired
continue
object
add_header
object
no_header
object
redirect
object
location
URI

URI location for redirect reponse Required: YES.

string
>= 4 characters <= 512 characters
status
string
default: EmptyStatusCode
Allowed values: EmptyStatusCode Continue OK Created Accepted NonAuthoritativeInformation NoContent ResetContent PartialContent MultiStatus AlreadyReported IMUsed MultipleChoices MovedPermanently Found SeeOther NotModified UseProxy TemporaryRedirect PermanentRedirect BadRequest Unauthorized PaymentRequired Forbidden NotFound MethodNotAllowed NotAcceptable ProxyAuthenticationRequired RequestTimeout Conflict Gone LengthRequired PreconditionFailed PayloadTooLarge URITooLong UnsupportedMediaType RangeNotSatisfiable ExpectationFailed MisdirectedRequest UnprocessableEntity Locked FailedDependency UpgradeRequired PreconditionRequired TooManyRequests RequestHeaderFieldsTooLarge InternalServerError NotImplemented BadGateway ServiceUnavailable GatewayTimeout HTTPVersionNotSupported VariantAlsoNegotiates InsufficientStorage LoopDetected NotExtended NetworkAuthenticationRequired
web_mobile_client
object
block_mobile
object
body
body

Custom body message.

string
<= 4096 characters
content_type
content_type

Content type to use in a block response.

string
<= 128 characters
status
string
default: EmptyStatusCode
Allowed values: EmptyStatusCode Continue OK Created Accepted NonAuthoritativeInformation NoContent ResetContent PartialContent MultiStatus AlreadyReported IMUsed MultipleChoices MovedPermanently Found SeeOther NotModified UseProxy TemporaryRedirect PermanentRedirect BadRequest Unauthorized PaymentRequired Forbidden NotFound MethodNotAllowed NotAcceptable ProxyAuthenticationRequired RequestTimeout Conflict Gone LengthRequired PreconditionFailed PayloadTooLarge URITooLong UnsupportedMediaType RangeNotSatisfiable ExpectationFailed MisdirectedRequest UnprocessableEntity Locked FailedDependency UpgradeRequired PreconditionRequired TooManyRequests RequestHeaderFieldsTooLarge InternalServerError NotImplemented BadGateway ServiceUnavailable GatewayTimeout HTTPVersionNotSupported VariantAlsoNegotiates InsufficientStorage LoopDetected NotExtended NetworkAuthenticationRequired
block_web
object
body
body

Custom body message.

string
<= 4096 characters
content_type
content_type

Content type to use in a block response.

string
<= 128 characters
status
string
default: EmptyStatusCode
Allowed values: EmptyStatusCode Continue OK Created Accepted NonAuthoritativeInformation NoContent ResetContent PartialContent MultiStatus AlreadyReported IMUsed MultipleChoices MovedPermanently Found SeeOther NotModified UseProxy TemporaryRedirect PermanentRedirect BadRequest Unauthorized PaymentRequired Forbidden NotFound MethodNotAllowed NotAcceptable ProxyAuthenticationRequired RequestTimeout Conflict Gone LengthRequired PreconditionFailed PayloadTooLarge URITooLong UnsupportedMediaType RangeNotSatisfiable ExpectationFailed MisdirectedRequest UnprocessableEntity Locked FailedDependency UpgradeRequired PreconditionRequired TooManyRequests RequestHeaderFieldsTooLarge InternalServerError NotImplemented BadGateway ServiceUnavailable GatewayTimeout HTTPVersionNotSupported VariantAlsoNegotiates InsufficientStorage LoopDetected NotExtended NetworkAuthenticationRequired
continue_mobile
object
add_header
object
no_header
object
continue_web
object
add_header
object
no_header
object
redirect_web
object
location
URI

URI location for redirect reponse Required: YES.

string
>= 4 characters <= 512 characters
status
string
default: EmptyStatusCode
Allowed values: EmptyStatusCode Continue OK Created Accepted NonAuthoritativeInformation NoContent ResetContent PartialContent MultiStatus AlreadyReported IMUsed MultipleChoices MovedPermanently Found SeeOther NotModified UseProxy TemporaryRedirect PermanentRedirect BadRequest Unauthorized PaymentRequired Forbidden NotFound MethodNotAllowed NotAcceptable ProxyAuthenticationRequired RequestTimeout Conflict Gone LengthRequired PreconditionFailed PayloadTooLarge URITooLong UnsupportedMediaType RangeNotSatisfiable ExpectationFailed MisdirectedRequest UnprocessableEntity Locked FailedDependency UpgradeRequired PreconditionRequired TooManyRequests RequestHeaderFieldsTooLarge InternalServerError NotImplemented BadGateway ServiceUnavailable GatewayTimeout HTTPVersionNotSupported VariantAlsoNegotiates InsufficientStorage LoopDetected NotExtended NetworkAuthenticationRequired
timeout
timeout

The timeout for the inference check, in milliseconds.

integer format: int64
trusted_clients
Trusted Client Rules

Define your allowlists to skip Bot Defense inference processing.

Array<object>
<= 256 items
ClientBypassRule

Client source rule specifies the sources to be trusted.

object
http_header
object
headers
headers

List of HTTP header name and value pairs

Required: YES.

Array<object>
<= 16 items
HeaderMatcherType

Header match is done using the name of the header and its value. The value match is done using one of the following regex match on value exact match of value presence of header.

object
exact
exact

Exclusive with [regex] Header value to match exactly.

string
<= 256 characters
name
name

Name of the header Required: YES.

string
>= 1 characters <= 256 characters
regex
regex

Exclusive with [exact] Regex match of the header value in re2 format.

string
<= 256 characters
ip_prefix
ip prefix

Exclusive with [http_header] IP prefix string.

string
<= 1024 characters
metadata
object
description
description

Human readable description.

string
>= 21 characters <= 256 characters
name
name

This is the name of the message. The value of name has to follow DNS-1035 format. Required: YES.

string
>= 1 characters <= 1024 characters
cloudfront
object
aws_configuration_id_selector
object
ids
ids

Add AWS CloudFront distribution ID, e.g. ABCDEFGHI0JKLM Required: YES.

Array<string>
>= 1 items <= 16 items
aws_configuration_tag_selector
object
tags
tags

List contains the Cloudfront distribution selection by tags key is a AWS tag name, and the value is regular expression to match Required: YES.

object
continue_mitigation_action_hdr
Continue Header name

A case-insensitive HTTP header name for Continue Mitigation Action when add header selected.

string
<= 256 characters
data_sample
DataSample

Limit on amount of request-body data (other than F5 telemetry) to send for analysis (limit 1,048,576 == 1 MiByte)

integer format: int64
disable_aws_configuration
object
disable_js_insert
object
disable_mobile_sdk
object
js_insertion_rules
object
exclude_list
exclude_list

Optional JavaScript insertions exclude list of domain and path matchers.

Array<object>
<= 128 items
JavaScriptExclusionRule

Define JavaScript insertion exclusion rule.

object
any_domain
object
domain
object
exact_value
exact value

Exclusive with [regex_value suffix_value] Exact domain name.

string
>= 1 characters <= 256 characters
regex_value
regex values of Domains

Exclusive with [exact_value suffix_value] Regular Expression value for the domain name.

string
>= 1 characters <= 256 characters
suffix_value
suffix value

Exclusive with [exact_value regex_value] Suffix of domain name e.g “xyz.com” will match “*.xyz.com” and “xyz.com”

string
>= 1 characters <= 256 characters
metadata
object
description
description

Human readable description.

string
>= 21 characters <= 256 characters
name
name

This is the name of the message. The value of name has to follow DNS-1035 format. Required: YES.

string
>= 1 characters <= 1024 characters
path
object
path
exact

Exclusive with [prefix regex] Exact path value to match.

string
<= 256 characters
prefix
prefix

Exclusive with [path regex] Path prefix to match (e.g. The value / will match on all paths)

string
<= 256 characters
regex
regex

Exclusive with [path prefix] Regular expression of path match (e.g. The value .* will match on all paths)

string
>= 1 characters <= 256 characters
javascript_location
string
default: JAVA_SCRIPT_LOCATION_UNDEFINED
Allowed values: JAVA_SCRIPT_LOCATION_UNDEFINED AFTER_HEAD AFTER_TITLE_END BEFORE_SCRIPT
javascript_mode
string
default: ASYNC_JS_NO_CACHING
Allowed values: ASYNC_JS_NO_CACHING ASYNC_JS_CACHING SYNC_JS_NO_CACHING SYNC_JS_CACHING
js_download_path
js_download_path

Web client will fetch F5 Client Java Script from this path. This path must not conflict with any other website/application paths.

If not specified, default to ‘/common.js’.

string
<= 1024 characters
rules
rules

Required list of pages to insert Bot Defense client JavaScript.

Required: YES.

Array<object>
>= 1 items <= 128 items
JavaScriptInsertionRule

This defines a rule for Bot Defense JavaScript insertion.

object
any_domain
object
domain
object
exact_value
exact value

Exclusive with [regex_value suffix_value] Exact domain name.

string
>= 1 characters <= 256 characters
regex_value
regex values of Domains

Exclusive with [exact_value suffix_value] Regular Expression value for the domain name.

string
>= 1 characters <= 256 characters
suffix_value
suffix value

Exclusive with [exact_value regex_value] Suffix of domain name e.g “xyz.com” will match “*.xyz.com” and “xyz.com”

string
>= 1 characters <= 256 characters
exact_path
path

Exclusive with [glob prefix] Exact path value to match.

string
<= 256 characters
glob
glob

Exclusive with [exact_path prefix]

Accepts wildcards * to match multiple characters or ? To match a single character.

string
>= 1 characters <= 256 characters
metadata
object
description
description

Human readable description.

string
>= 21 characters <= 256 characters
name
name

This is the name of the message. The value of name has to follow DNS-1035 format. Required: YES.

string
>= 1 characters <= 1024 characters
prefix
prefix

Exclusive with [exact_path glob] Path prefix to match (e.g. The value / will match on all paths)

string
<= 256 characters
loglevel
string
default: LOG_UNDEFINED
Allowed values: LOG_UNDEFINED LOG_ERROR LOG_WARNING LOG_INFO LOG_DEBUG
manual_js_insert
object
javascript_mode
string
default: ASYNC_JS_NO_CACHING
Allowed values: ASYNC_JS_NO_CACHING ASYNC_JS_CACHING SYNC_JS_NO_CACHING SYNC_JS_CACHING
js_download_path
js_download_path

Web client will fetch F5 Client Java Script from this path. This path must not conflict with any other website/application paths.

If not specified, default to ‘/common.js’.

string
<= 1024 characters
mobile_sdk_config
object
mobile_identifier
object
headers
Mobile headers

A list of headers that can be used to identify mobile traffic.

Array<object>
<= 16 items
HeaderMatcherType

Header match is done using the name of the header and its value. The value match is done using one of the following regex match on value exact match of value presence of header.

object
exact
exact

Exclusive with [regex] Header value to match exactly.

string
<= 256 characters
name
name

Name of the header Required: YES.

string
>= 1 characters <= 256 characters
regex
regex

Exclusive with [exact] Regex match of the header value in re2 format.

string
<= 256 characters
protected_endpoints
protected_endpoints

List of protected endpoints (max 128 items)

Required: YES.

Array<object>
>= 1 items <= 128 items
ProtectedEndpointType

Add the name and description for the protected endpoint.

object
any_domain
object
domain
object
exact_value
exact value

Exclusive with [regex_value suffix_value] Exact domain name.

string
>= 1 characters <= 256 characters
regex_value
regex values of Domains

Exclusive with [exact_value suffix_value] Regular Expression value for the domain name.

string
>= 1 characters <= 256 characters
suffix_value
suffix value

Exclusive with [exact_value regex_value] Suffix of domain name e.g “xyz.com” will match “*.xyz.com” and “xyz.com”

string
>= 1 characters <= 256 characters
flow_label
object
account_management
object
create
object
password_reset
object
authentication
object
login
object
disable_transaction_result
object
transaction_result
object
failure_conditions
Failure Conditions

Failure Conditions.

Array<object>
<= 3 items
BotDefenseTransactionResultCondition

Bot Defense Transaction Result Condition.

object
name
name

A case-insensitive HTTP header name.

string
>= 6 characters <= 256 characters
regex_values
regex values

A list of regular expressions to match the input against.

Array<string>
<= 16 items
status
string
default: EmptyStatusCode
Allowed values: EmptyStatusCode Continue OK Created Accepted NonAuthoritativeInformation NoContent ResetContent PartialContent MultiStatus AlreadyReported IMUsed MultipleChoices MovedPermanently Found SeeOther NotModified UseProxy TemporaryRedirect PermanentRedirect BadRequest Unauthorized PaymentRequired Forbidden NotFound MethodNotAllowed NotAcceptable ProxyAuthenticationRequired RequestTimeout Conflict Gone LengthRequired PreconditionFailed PayloadTooLarge URITooLong UnsupportedMediaType RangeNotSatisfiable ExpectationFailed MisdirectedRequest UnprocessableEntity Locked FailedDependency UpgradeRequired PreconditionRequired TooManyRequests RequestHeaderFieldsTooLarge InternalServerError NotImplemented BadGateway ServiceUnavailable GatewayTimeout HTTPVersionNotSupported VariantAlsoNegotiates InsufficientStorage LoopDetected NotExtended NetworkAuthenticationRequired
success_conditions
Success Conditions

Success Conditions.

Array<object>
<= 3 items
BotDefenseTransactionResultCondition

Bot Defense Transaction Result Condition.

object
name
name

A case-insensitive HTTP header name.

string
>= 6 characters <= 256 characters
regex_values
regex values

A list of regular expressions to match the input against.

Array<string>
<= 16 items
status
string
default: EmptyStatusCode
Allowed values: EmptyStatusCode Continue OK Created Accepted NonAuthoritativeInformation NoContent ResetContent PartialContent MultiStatus AlreadyReported IMUsed MultipleChoices MovedPermanently Found SeeOther NotModified UseProxy TemporaryRedirect PermanentRedirect BadRequest Unauthorized PaymentRequired Forbidden NotFound MethodNotAllowed NotAcceptable ProxyAuthenticationRequired RequestTimeout Conflict Gone LengthRequired PreconditionFailed PayloadTooLarge URITooLong UnsupportedMediaType RangeNotSatisfiable ExpectationFailed MisdirectedRequest UnprocessableEntity Locked FailedDependency UpgradeRequired PreconditionRequired TooManyRequests RequestHeaderFieldsTooLarge InternalServerError NotImplemented BadGateway ServiceUnavailable GatewayTimeout HTTPVersionNotSupported VariantAlsoNegotiates InsufficientStorage LoopDetected NotExtended NetworkAuthenticationRequired
login_mfa
object
login_partner
object
logout
object
token_refresh
object
financial_services
object
apply
object
money_transfer
object
flight
object
checkin
object
profile_management
object
create
object
update
object
view
object
search
object
flight_search
object
product_search
object
reservation_search
object
room_search
object
shopping_gift_cards
object
gift_card_make_purchase_with_gift_card
object
gift_card_validation
object
shop_add_to_cart
object
shop_checkout
object
shop_choose_seat
object
shop_enter_drawing_submission
object
shop_make_payment
object
shop_order
object
shop_price_inquiry
object
shop_promo_code_validation
object
shop_purchase_gift_card
object
shop_update_quantity
object
http_methods
HTTP Methods

List of HTTP methods.

Required: YES.

Array<string>
>= 1 items <= 4 items
Allowed values: METHOD_ANY METHOD_GET METHOD_POST METHOD_PUT METHOD_PATCH METHOD_DELETE METHOD_GET_DOCUMENT
metadata
object
description
description

Human readable description.

string
>= 21 characters <= 256 characters
name
name

This is the name of the message. The value of name has to follow DNS-1035 format. Required: YES.

string
>= 1 characters <= 1024 characters
mobile_client
object
block
object
body
body

Custom body message.

string
<= 4096 characters
content_type
content_type

Content type to use in a block response.

string
<= 128 characters
status
string
default: EmptyStatusCode
Allowed values: EmptyStatusCode Continue OK Created Accepted NonAuthoritativeInformation NoContent ResetContent PartialContent MultiStatus AlreadyReported IMUsed MultipleChoices MovedPermanently Found SeeOther NotModified UseProxy TemporaryRedirect PermanentRedirect BadRequest Unauthorized PaymentRequired Forbidden NotFound MethodNotAllowed NotAcceptable ProxyAuthenticationRequired RequestTimeout Conflict Gone LengthRequired PreconditionFailed PayloadTooLarge URITooLong UnsupportedMediaType RangeNotSatisfiable ExpectationFailed MisdirectedRequest UnprocessableEntity Locked FailedDependency UpgradeRequired PreconditionRequired TooManyRequests RequestHeaderFieldsTooLarge InternalServerError NotImplemented BadGateway ServiceUnavailable GatewayTimeout HTTPVersionNotSupported VariantAlsoNegotiates InsufficientStorage LoopDetected NotExtended NetworkAuthenticationRequired
continue
object
add_header
object
no_header
object
path
Path

Accepts wildcards * to match multiple characters or ? To match a single character Required: YES.

string
>= 1 characters <= 256 characters
query
Query

Enter a regular expression to match your query parameters of interest.

string
<= 256 characters
undefined_flow_label
object
web_client
object
block
object
body
body

Custom body message.

string
<= 4096 characters
content_type
content_type

Content type to use in a block response.

string
<= 128 characters
status
string
default: EmptyStatusCode
Allowed values: EmptyStatusCode Continue OK Created Accepted NonAuthoritativeInformation NoContent ResetContent PartialContent MultiStatus AlreadyReported IMUsed MultipleChoices MovedPermanently Found SeeOther NotModified UseProxy TemporaryRedirect PermanentRedirect BadRequest Unauthorized PaymentRequired Forbidden NotFound MethodNotAllowed NotAcceptable ProxyAuthenticationRequired RequestTimeout Conflict Gone LengthRequired PreconditionFailed PayloadTooLarge URITooLong UnsupportedMediaType RangeNotSatisfiable ExpectationFailed MisdirectedRequest UnprocessableEntity Locked FailedDependency UpgradeRequired PreconditionRequired TooManyRequests RequestHeaderFieldsTooLarge InternalServerError NotImplemented BadGateway ServiceUnavailable GatewayTimeout HTTPVersionNotSupported VariantAlsoNegotiates InsufficientStorage LoopDetected NotExtended NetworkAuthenticationRequired
continue
object
add_header
object
no_header
object
redirect
object
location
URI

URI location for redirect reponse Required: YES.

string
>= 4 characters <= 512 characters
status
string
default: EmptyStatusCode
Allowed values: EmptyStatusCode Continue OK Created Accepted NonAuthoritativeInformation NoContent ResetContent PartialContent MultiStatus AlreadyReported IMUsed MultipleChoices MovedPermanently Found SeeOther NotModified UseProxy TemporaryRedirect PermanentRedirect BadRequest Unauthorized PaymentRequired Forbidden NotFound MethodNotAllowed NotAcceptable ProxyAuthenticationRequired RequestTimeout Conflict Gone LengthRequired PreconditionFailed PayloadTooLarge URITooLong UnsupportedMediaType RangeNotSatisfiable ExpectationFailed MisdirectedRequest UnprocessableEntity Locked FailedDependency UpgradeRequired PreconditionRequired TooManyRequests RequestHeaderFieldsTooLarge InternalServerError NotImplemented BadGateway ServiceUnavailable GatewayTimeout HTTPVersionNotSupported VariantAlsoNegotiates InsufficientStorage LoopDetected NotExtended NetworkAuthenticationRequired
web_mobile_client
object
block_mobile
object
body
body

Custom body message.

string
<= 4096 characters
content_type
content_type

Content type to use in a block response.

string
<= 128 characters
status
string
default: EmptyStatusCode
Allowed values: EmptyStatusCode Continue OK Created Accepted NonAuthoritativeInformation NoContent ResetContent PartialContent MultiStatus AlreadyReported IMUsed MultipleChoices MovedPermanently Found SeeOther NotModified UseProxy TemporaryRedirect PermanentRedirect BadRequest Unauthorized PaymentRequired Forbidden NotFound MethodNotAllowed NotAcceptable ProxyAuthenticationRequired RequestTimeout Conflict Gone LengthRequired PreconditionFailed PayloadTooLarge URITooLong UnsupportedMediaType RangeNotSatisfiable ExpectationFailed MisdirectedRequest UnprocessableEntity Locked FailedDependency UpgradeRequired PreconditionRequired TooManyRequests RequestHeaderFieldsTooLarge InternalServerError NotImplemented BadGateway ServiceUnavailable GatewayTimeout HTTPVersionNotSupported VariantAlsoNegotiates InsufficientStorage LoopDetected NotExtended NetworkAuthenticationRequired
block_web
object
body
body

Custom body message.

string
<= 4096 characters
content_type
content_type

Content type to use in a block response.

string
<= 128 characters
status
string
default: EmptyStatusCode
Allowed values: EmptyStatusCode Continue OK Created Accepted NonAuthoritativeInformation NoContent ResetContent PartialContent MultiStatus AlreadyReported IMUsed MultipleChoices MovedPermanently Found SeeOther NotModified UseProxy TemporaryRedirect PermanentRedirect BadRequest Unauthorized PaymentRequired Forbidden NotFound MethodNotAllowed NotAcceptable ProxyAuthenticationRequired RequestTimeout Conflict Gone LengthRequired PreconditionFailed PayloadTooLarge URITooLong UnsupportedMediaType RangeNotSatisfiable ExpectationFailed MisdirectedRequest UnprocessableEntity Locked FailedDependency UpgradeRequired PreconditionRequired TooManyRequests RequestHeaderFieldsTooLarge InternalServerError NotImplemented BadGateway ServiceUnavailable GatewayTimeout HTTPVersionNotSupported VariantAlsoNegotiates InsufficientStorage LoopDetected NotExtended NetworkAuthenticationRequired
continue_mobile
object
add_header
object
no_header
object
continue_web
object
add_header
object
no_header
object
redirect_web
object
location
URI

URI location for redirect reponse Required: YES.

string
>= 4 characters <= 512 characters
status
string
default: EmptyStatusCode
Allowed values: EmptyStatusCode Continue OK Created Accepted NonAuthoritativeInformation NoContent ResetContent PartialContent MultiStatus AlreadyReported IMUsed MultipleChoices MovedPermanently Found SeeOther NotModified UseProxy TemporaryRedirect PermanentRedirect BadRequest Unauthorized PaymentRequired Forbidden NotFound MethodNotAllowed NotAcceptable ProxyAuthenticationRequired RequestTimeout Conflict Gone LengthRequired PreconditionFailed PayloadTooLarge URITooLong UnsupportedMediaType RangeNotSatisfiable ExpectationFailed MisdirectedRequest UnprocessableEntity Locked FailedDependency UpgradeRequired PreconditionRequired TooManyRequests RequestHeaderFieldsTooLarge InternalServerError NotImplemented BadGateway ServiceUnavailable GatewayTimeout HTTPVersionNotSupported VariantAlsoNegotiates InsufficientStorage LoopDetected NotExtended NetworkAuthenticationRequired
timeout
timeout

The timeout for the inference check, in milliseconds.

integer format: int64
trusted_clients
Trusted Client Rules

Define your allowlists to skip Bot Defense inference processing.

Array<object>
<= 256 items
ClientBypassRule

Client source rule specifies the sources to be trusted.

object
http_header
object
headers
headers

List of HTTP header name and value pairs

Required: YES.

Array<object>
<= 16 items
HeaderMatcherType

Header match is done using the name of the header and its value. The value match is done using one of the following regex match on value exact match of value presence of header.

object
exact
exact

Exclusive with [regex] Header value to match exactly.

string
<= 256 characters
name
name

Name of the header Required: YES.

string
>= 1 characters <= 256 characters
regex
regex

Exclusive with [exact] Regex match of the header value in re2 format.

string
<= 256 characters
ip_prefix
ip prefix

Exclusive with [http_header] IP prefix string.

string
<= 1024 characters
metadata
object
description
description

Human readable description.

string
>= 21 characters <= 256 characters
name
name

This is the name of the message. The value of name has to follow DNS-1035 format. Required: YES.

string
>= 1 characters <= 1024 characters
custom_connector
object
f5_big_ip
object
not_applicable_connector
object
salesforce_commerce_connector
object
xc_mesh
object
http_load_balancer
object
name
name

When a configuration object(e.g. Virtual_host) refers to another(e.g route) then name will hold the referred object’s(e.g. Route’s) name. Required: YES.

string
>= 1 characters <= 128 characters
namespace
namespace

When a configuration object(e.g. Virtual_host) refers to another(e.g route) then namespace will hold the referred object’s(e.g. Route’s) namespace.

string
>= 6 characters <= 64 characters
tenant
tenant

When a configuration object(e.g. Virtual_host) refers to another(e.g route) then tenant will hold the referred object’s(e.g. Route’s) tenant.

string
>= 6 characters <= 64 characters

A successful response.

Media typeapplication/json
object
Examplegenerated
{}

Returned when operation is not authorized.

Media typeapplication/json
string format: string
Examplegenerated
example

Returned when there is no permission to access resource.

Media typeapplication/json
string format: string
Examplegenerated
example

Returned when resource is not found.

Media typeapplication/json
string format: string
Examplegenerated
example

Returned when operation on resource is conflicting with current value.

Media typeapplication/json
string format: string
Examplegenerated
example

Returned when operation has been rejected as it is happening too frequently.

Media typeapplication/json
string format: string
Examplegenerated
example

Returned when server encountered an error in processing API.

Media typeapplication/json
string format: string
Examplegenerated
example

Returned when service is unavailable temporarily.

Media typeapplication/json
string format: string
Examplegenerated
example

Returned when server timed out processing request.

Media typeapplication/json
string format: string
Examplegenerated
example