- Home
- API Enriched
- Shape
- shape
- Replace Protected Application.
Replace Protected Application.
const 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';const options = { method: 'PUT', headers: {Authorization: '<Authorization>', 'Content-Type': 'application/json'}, body: '{"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"}}}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}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.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”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 ""
Name The configuration object to be replaced will be looked up by name.
Request Bodyrequired
Section titled “Request Bodyrequired”This is the input message of the ‘Replace’ RPC.
object
object
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
Human readable description for the object.
A value of true will administratively disable the object.
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
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.
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 ""
object
object
object
object
A case-insensitive HTTP header name for Continue Mitigation Action when add header selected.
object
object
object
Optional JavaScript insertions exclude list of domain and path matchers.
Define JavaScript insertion exclusion rule.
object
object
object
Exclusive with [regex_value suffix_value] Exact domain name.
Exclusive with [exact_value suffix_value] Regular Expression value for the domain name.
Exclusive with [exact_value regex_value] Suffix of domain name e.g “xyz.com” will match “*.xyz.com” and “xyz.com”
object
Human readable description.
This is the name of the message. The value of name has to follow DNS-1035 format. Required: YES.
object
Exclusive with [prefix regex] Exact path value to match.
Exclusive with [path regex] Path prefix to match (e.g. The value / will match on all paths)
Exclusive with [path prefix] Regular expression of path match (e.g. The value .* will match on all paths)
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’.
Required list of pages to insert Bot Defense client JavaScript.
Required: YES.
This defines a rule for Bot Defense JavaScript insertion.
object
object
object
Exclusive with [regex_value suffix_value] Exact domain name.
Exclusive with [exact_value suffix_value] Regular Expression value for the domain name.
Exclusive with [exact_value regex_value] Suffix of domain name e.g “xyz.com” will match “*.xyz.com” and “xyz.com”
Exclusive with [glob prefix] Exact path value to match.
Exclusive with [exact_path prefix]
Accepts wildcards * to match multiple characters or ? To match a single character.
object
Human readable description.
This is the name of the message. The value of name has to follow DNS-1035 format. Required: YES.
Exclusive with [exact_path glob] Path prefix to match (e.g. The value / will match on all paths)
object
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’.
object
object
A list of headers that can be used to identify mobile traffic.
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
Exclusive with [regex] Header value to match exactly.
Name of the header Required: YES.
Exclusive with [exact] Regex match of the header value in re2 format.
List of protected endpoints (max 128 items)
Required: YES.
Add the name and description for the protected endpoint.
object
object
object
Exclusive with [regex_value suffix_value] Exact domain name.
Exclusive with [exact_value suffix_value] Regular Expression value for the domain name.
Exclusive with [exact_value regex_value] Suffix of domain name e.g “xyz.com” will match “*.xyz.com” and “xyz.com”
List of HTTP methods.
Required: YES.
object
Human readable description.
This is the name of the message. The value of name has to follow DNS-1035 format. Required: YES.
object
object
Custom body message.
Content type to use in a block response.
object
object
object
object
Should path be searched case insensitive;
URI Path Required: YES.
Enter a regular expression to match your query parameters of interest.
object
object
Custom body message.
Content type to use in a block response.
object
object
object
object
URI location for redirect reponse Required: YES.
object
object
Custom body message.
Content type to use in a block response.
object
Custom body message.
Content type to use in a block response.
object
object
object
object
object
object
object
URI location for redirect reponse Required: YES.
The timeout for the inference check, in milliseconds.
Define your allowlists to skip Bot Defense inference processing.
Client source rule specifies the sources to be trusted.
object
object
List of HTTP header name and value pairs
Required: YES.
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
Exclusive with [regex] Header value to match exactly.
Name of the header Required: YES.
Exclusive with [exact] Regex match of the header value in re2 format.
Exclusive with [http_header] IP prefix string.
object
Human readable description.
This is the name of the message. The value of name has to follow DNS-1035 format. Required: YES.
object
object
Add AWS CloudFront distribution ID, e.g. ABCDEFGHI0JKLM Required: YES.
object
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
A case-insensitive HTTP header name for Continue Mitigation Action when add header selected.
Limit on amount of request-body data (other than F5 telemetry) to send for analysis (limit 1,048,576 == 1 MiByte)
object
object
object
object
Optional JavaScript insertions exclude list of domain and path matchers.
Define JavaScript insertion exclusion rule.
object
object
object
Exclusive with [regex_value suffix_value] Exact domain name.
Exclusive with [exact_value suffix_value] Regular Expression value for the domain name.
Exclusive with [exact_value regex_value] Suffix of domain name e.g “xyz.com” will match “*.xyz.com” and “xyz.com”
object
Human readable description.
This is the name of the message. The value of name has to follow DNS-1035 format. Required: YES.
object
Exclusive with [prefix regex] Exact path value to match.
Exclusive with [path regex] Path prefix to match (e.g. The value / will match on all paths)
Exclusive with [path prefix] Regular expression of path match (e.g. The value .* will match on all paths)
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’.
Required list of pages to insert Bot Defense client JavaScript.
Required: YES.
This defines a rule for Bot Defense JavaScript insertion.
object
object
object
Exclusive with [regex_value suffix_value] Exact domain name.
Exclusive with [exact_value suffix_value] Regular Expression value for the domain name.
Exclusive with [exact_value regex_value] Suffix of domain name e.g “xyz.com” will match “*.xyz.com” and “xyz.com”
Exclusive with [glob prefix] Exact path value to match.
Exclusive with [exact_path prefix]
Accepts wildcards * to match multiple characters or ? To match a single character.
object
Human readable description.
This is the name of the message. The value of name has to follow DNS-1035 format. Required: YES.
Exclusive with [exact_path glob] Path prefix to match (e.g. The value / will match on all paths)
object
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’.
object
object
A list of headers that can be used to identify mobile traffic.
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
Exclusive with [regex] Header value to match exactly.
Name of the header Required: YES.
Exclusive with [exact] Regex match of the header value in re2 format.
List of protected endpoints (max 128 items)
Required: YES.
Add the name and description for the protected endpoint.
object
object
object
Exclusive with [regex_value suffix_value] Exact domain name.
Exclusive with [exact_value suffix_value] Regular Expression value for the domain name.
Exclusive with [exact_value regex_value] Suffix of domain name e.g “xyz.com” will match “*.xyz.com” and “xyz.com”
object
object
object
object
object
object
object
object
Failure Conditions.
Bot Defense Transaction Result Condition.
object
A case-insensitive HTTP header name.
A list of regular expressions to match the input against.
Success Conditions.
Bot Defense Transaction Result Condition.
object
A case-insensitive HTTP header name.
A list of regular expressions to match the input against.
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
List of HTTP methods.
Required: YES.
object
Human readable description.
This is the name of the message. The value of name has to follow DNS-1035 format. Required: YES.
object
object
Custom body message.
Content type to use in a block response.
object
object
object
Accepts wildcards * to match multiple characters or ? To match a single character Required: YES.
Enter a regular expression to match your query parameters of interest.
object
object
object
Custom body message.
Content type to use in a block response.
object
object
object
object
URI location for redirect reponse Required: YES.
object
object
Custom body message.
Content type to use in a block response.
object
Custom body message.
Content type to use in a block response.
object
object
object
object
object
object
object
URI location for redirect reponse Required: YES.
The timeout for the inference check, in milliseconds.
Define your allowlists to skip Bot Defense inference processing.
Client source rule specifies the sources to be trusted.
object
object
List of HTTP header name and value pairs
Required: YES.
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
Exclusive with [regex] Header value to match exactly.
Name of the header Required: YES.
Exclusive with [exact] Regex match of the header value in re2 format.
Exclusive with [http_header] IP prefix string.
object
Human readable description.
This is the name of the message. The value of name has to follow DNS-1035 format. Required: YES.
object
object
object
object
object
object
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.
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.
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.
Responses
Section titled “Responses”A successful response.
object
Examplegenerated
{}Returned when operation is not authorized.
Examplegenerated
exampleReturned when there is no permission to access resource.
Examplegenerated
exampleReturned when resource is not found.
Examplegenerated
exampleReturned when operation on resource is conflicting with current value.
Examplegenerated
exampleReturned when operation has been rejected as it is happening too frequently.
Examplegenerated
exampleReturned when server encountered an error in processing API.
Examplegenerated
exampleReturned when service is unavailable temporarily.
Examplegenerated
exampleReturned when server timed out processing request.
Examplegenerated
example