Skip to content

List Application Firewall.

GET
/api/config/namespaces/{namespace}/app_firewalls
curl --request GET \
--url https://example-corp.console.ves.volterra.io/api/v1/api/production/us-east-1/namespaces/default/api/config/namespaces/example/app_firewalls \
--header 'Authorization: <Authorization>'

List the set of app_firewall in a namespace.

Examples of this operation.

namespace
required
string

Namespace Namespace to scope the listing of app_firewall.

label_filter
string

A LabelSelectorType expression that every item in list response will satisfy.

report_fields
Array<string>

X-example: "" Extra fields to return along with summary fields.

report_status_fields
Array<string>

X-example: "" Extra status fields to return along with summary fields.

A successful response.

Media typeapplication/json
ListResponse is the collection of app_firewall

This is the output message of ‘List’ RPC.

object
errors
errors

Errors(if any) while listing items from collection.

Array<object>
ErrorType

Information about a error in API operation.

object
code
string
default: EOK
Allowed values: EOK EPERMS EBADINPUT ENOTFOUND EEXISTS EUNKNOWN ESERIALIZE EINTERNAL EPARTIAL
error_obj
object
type_url

A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one ”/” character. The last segment of the URL’s path must represent the fully qualified name of the type (as in path/google.protobuf.duration). The name should be in a canonical form (e.g., leading ”.” is not accepted).

In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme HTTP, HTTPS, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows:

  • If no scheme is provided, HTTPS is assumed.
  • An HTTP GET on the URL must yield a [google.protobuf.type][] value in binary format, or produce an error.
  • Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.)

Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com.

Schemes other than HTTP, HTTPS (or the empty scheme) might be used with implementation specific semantics.

string
<= 1024 characters
value

Must be a valid serialized protocol buffer of the above specified type.

string format: byte
>= 3 characters <= 1024 characters
message
message

A human readable string of the error.

string
<= 1024 characters
items
items

Items represents the collection in response.

Array<object>
ListResponseItem is an individual item in a collection of app_firewall

By default a summary of app_firewall is returned in ‘List’. By setting ‘report_fields’ in the ListRequest more details of each item can be got.

object
annotations
annotations

The set of annotations present on this app_firewall.

object
description
description

The description set for this app_firewall.

string
>= 21 characters <= 1024 characters
disabled
disabled

A value of true indicates app_firewall is administratively disabled.

boolean format: boolean
get_spec
object
allow_all_response_codes
object
allowed_response_codes
object
response_code
response_code

List of HTTP response status codes that are allowed Required: YES.

Array<integer>
>= 1 items <= 48 items
blocking
object
blocking_page
object
blocking_page
blocking_page

Define the content of the response page (e.g., an HTML document or a JSON object), use the {{request_id}} placeholder to provide users with a unique identifier to be able to trace the blocked request in the logs. The maximum allowed size of response body is 4096 bytes after base64 encoding, which would be about 3070 bytes in plain text.

string
<= 4096 characters
response_code
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
bot_protection_setting
object
good_bot_action
string
default: BLOCK
Allowed values: BLOCK REPORT IGNORE
malicious_bot_action
string
default: BLOCK
Allowed values: BLOCK REPORT IGNORE
suspicious_bot_action
string
default: BLOCK
Allowed values: BLOCK REPORT IGNORE
custom_anonymization
object
anonymization_config
AnonymizationConfiguration

List of HTTP headers, cookies and query parameters whose values will be masked

Required: YES.

Array<object>
<= 64 items
AnonymizationConfiguration

Configure anonymization for HTTP headers, parameters or cookies which may contain sensitive data.

object
cookie
object
cookie_name
cookie_name

Masks the cookie value. The setting does not mask the cookie name. Wildcard matching can be used by prefixing or suffixing the cookie name with a wildcard asterisk (*), or by using only an asterisk to match any cookie name. Required: YES.

string
<= 256 characters
http_header
object
header_name
header_name

Masks the HTTP header value. The setting does not mask the HTTP header name. Wildcard matching can be used by prefixing or suffixing the HTTP header name with a wildcard asterisk (*), or by using only an asterisk to match any HTTP header name. Required: YES.

string
<= 1024 characters
query_parameter
object
query_param_name
query_param_name

Masks the query parameter value. The setting does not mask the query parameter name. Wildcard matching can be used by prefixing or suffixing the query parameter name with a wildcard asterisk (*), or by using only an asterisk to match any query parameter name. Required: YES.

string
<= 256 characters
default_anonymization
object
default_bot_setting
object
default_detection_settings
object
detection_settings
object
bot_protection_setting
object
good_bot_action
string
default: BLOCK
Allowed values: BLOCK REPORT IGNORE
malicious_bot_action
string
default: BLOCK
Allowed values: BLOCK REPORT IGNORE
suspicious_bot_action
string
default: BLOCK
Allowed values: BLOCK REPORT IGNORE
default_bot_setting
object
default_violation_settings
object
disable_staging
object
disable_suppression
object
disable_threat_campaigns
object
enable_suppression
object
enable_threat_campaigns
object
signature_selection_setting
object
attack_type_settings
object
disabled_attack_types
Disabled Attack Types

List of Attack Types that will be ignored and not trigger a detection

Required: YES.

Array<string>
<= 22 items
Allowed values: ATTACK_TYPE_NONE ATTACK_TYPE_NON_BROWSER_CLIENT ATTACK_TYPE_OTHER_APPLICATION_ATTACKS ATTACK_TYPE_TROJAN_BACKDOOR_SPYWARE ATTACK_TYPE_DETECTION_EVASION ATTACK_TYPE_VULNERABILITY_SCAN ATTACK_TYPE_ABUSE_OF_FUNCTIONALITY ATTACK_TYPE_AUTHENTICATION_AUTHORIZATION_ATTACKS ATTACK_TYPE_BUFFER_OVERFLOW ATTACK_TYPE_PREDICTABLE_RESOURCE_LOCATION ATTACK_TYPE_INFORMATION_LEAKAGE ATTACK_TYPE_DIRECTORY_INDEXING ATTACK_TYPE_PATH_TRAVERSAL ATTACK_TYPE_XPATH_INJECTION ATTACK_TYPE_LDAP_INJECTION ATTACK_TYPE_SERVER_SIDE_CODE_INJECTION ATTACK_TYPE_COMMAND_EXECUTION ATTACK_TYPE_SQL_INJECTION ATTACK_TYPE_CROSS_SITE_SCRIPTING ATTACK_TYPE_DENIAL_OF_SERVICE ATTACK_TYPE_HTTP_PARSER_ATTACK ATTACK_TYPE_SESSION_HIJACKING ATTACK_TYPE_HTTP_RESPONSE_SPLITTING ATTACK_TYPE_FORCEFUL_BROWSING ATTACK_TYPE_REMOTE_FILE_INCLUDE ATTACK_TYPE_MALICIOUS_FILE_UPLOAD ATTACK_TYPE_GRAPHQL_PARSER_ATTACK
default_attack_type_settings
object
high_medium_accuracy_signatures
object
high_medium_low_accuracy_signatures
object
only_high_accuracy_signatures
object
stage_new_and_updated_signatures
object
staging_period
Staging Period

Define staging period in days. The default staging period is 7 days and the max supported staging period is 20 days. Required: YES.

integer format: int64
stage_new_signatures
object
staging_period
Staging Period

Define staging period in days. The default staging period is 7 days and the max supported staging period is 20 days. Required: YES.

integer format: int64
violation_settings
object
disabled_violation_types
Disabled Violations

List of violations to be excluded

Required: YES.

Array<string>
<= 40 items
Allowed values: VIOL_NONE VIOL_FILETYPE VIOL_METHOD VIOL_MANDATORY_HEADER VIOL_HTTP_RESPONSE_STATUS VIOL_REQUEST_MAX_LENGTH VIOL_FILE_UPLOAD VIOL_FILE_UPLOAD_IN_BODY VIOL_XML_MALFORMED VIOL_JSON_MALFORMED VIOL_ASM_COOKIE_MODIFIED VIOL_HTTP_PROTOCOL_MULTIPLE_HOST_HEADERS VIOL_HTTP_PROTOCOL_BAD_HOST_HEADER_VALUE VIOL_HTTP_PROTOCOL_UNPARSABLE_REQUEST_CONTENT VIOL_HTTP_PROTOCOL_NULL_IN_REQUEST VIOL_HTTP_PROTOCOL_BAD_HTTP_VERSION VIOL_HTTP_PROTOCOL_CRLF_CHARACTERS_BEFORE_REQUEST_START VIOL_HTTP_PROTOCOL_NO_HOST_HEADER_IN_HTTP_1_1_REQUEST VIOL_HTTP_PROTOCOL_BAD_MULTIPART_PARAMETERS_PARSING VIOL_HTTP_PROTOCOL_SEVERAL_CONTENT_LENGTH_HEADERS VIOL_HTTP_PROTOCOL_CONTENT_LENGTH_SHOULD_BE_A_POSITIVE_NUMBER VIOL_EVASION_DIRECTORY_TRAVERSALS VIOL_MALFORMED_REQUEST VIOL_EVASION_MULTIPLE_DECODING VIOL_DATA_GUARD VIOL_EVASION_APACHE_WHITESPACE VIOL_COOKIE_MODIFIED VIOL_EVASION_IIS_UNICODE_CODEPOINTS VIOL_EVASION_IIS_BACKSLASHES VIOL_EVASION_PERCENT_U_DECODING VIOL_EVASION_BARE_BYTE_DECODING VIOL_EVASION_BAD_UNESCAPE VIOL_HTTP_PROTOCOL_BAD_MULTIPART_FORMDATA_REQUEST_PARSING VIOL_HTTP_PROTOCOL_BODY_IN_GET_OR_HEAD_REQUEST VIOL_HTTP_PROTOCOL_HIGH_ASCII_CHARACTERS_IN_HEADERS VIOL_ENCODING VIOL_COOKIE_MALFORMED VIOL_GRAPHQL_FORMAT VIOL_GRAPHQL_MALFORMED VIOL_GRAPHQL_INTROSPECTION_QUERY
violations_view
Violations configuration settings for view only

List of violation checks that are performed on HTTP request to ensure the requests are properly formatted, detection of evasion techniques and other violations.

Required: YES.

Array<object>
Violation Config will be used by UI for view only

Custom configuration for a violation.

object
description
description

Human-readable description text

string
>= 21 characters <= 1024 characters
enabled
user customised state

Enable or disable the feature

boolean format: boolean
enabled_by_default
enabled_by_default

Violations that are enabled by default by F5 are advisable to leave enabled.

string
<= 1024 characters
name
code

Human-readable name for the resource

string
>= 6 characters <= 1024 characters
title
name

Human-readable title for the resource

string
>= 6 characters <= 1024 characters
disable_ai_enhancements
object
disable_anonymization
object
enable_ai_enhancements
object
mitigate_high_medium_risk_action
object
mitigate_high_risk_action
object
monitoring
object
use_default_blocking_page
object
labels
labels

The set of labels present on this app_firewall.

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
name
name

The name of this app_firewall.

string
>= 6 characters <= 1024 characters
namespace
namespace

The namespace this item belongs to.

string
>= 6 characters <= 1024 characters
owner_view
object
kind
kind

Kind of the view object.

string
>= 12 characters <= 1024 characters
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.

string
>= 6 characters <= 1024 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 <= 1024 characters
uid
uid

UID of the view object.

string format: uuid
>= 36 characters <= 1024 characters
status_set
status

The status reported by different services for this configuration object.

Array<object>
Application Firewall Status Object

Most recently observed status of object.

object
conditions
conditions

Conditions.

Array<object>
ConditionType

Conditions are used in the object status to describe the current state of the object, e.g. Ready, Succeeded, etc.

object
hostname
hostname

Hostname of the instance of the site that sent the status.

string
<= 1024 characters
last_update_time
last_update_time

Last time the condition was updated.

string format: date-time
<= 1024 characters
reason
reason

A human readable string explaining the reason for reaching this condition.

string
>= 27 characters <= 1024 characters
service_name
service name

Name of the service that sent the status.

string
<= 1024 characters
status
status

Status of the condition “Success” Validation has succeeded. Requested operation was successful. “Failed” Validation has failed. “Incomplete” Validation of configuration has failed due to missing configuration. “Installed” Validation has passed and configuration has been installed in data path or K8s “Down” Configuration is operationally down. E.g. Down interface “Disabled” Configuration is administratively disabled i.e. objectmetatype.disable = true. “NotApplicable” Configuration is not applicable e.g. Tenant service_policy_set(s) in system namespace are not applicable on REs.

string
>= 17 characters <= 1024 characters
type
type

Type of the condition “Validation” represents validation user given configuration object “Operational” represents operational status of a given configuration object.

string
<= 1024 characters
metadata
object
creation_timestamp
creation_timestamp

Creation_timestamp is when the status object was created. It is used to find/tie-break for latest status object from same origin.

string format: date-time
<= 1024 characters
creator_class
creator_class

Class of creator which created this StatusObject. This will be service’s DNS FQDN. This will be set by the system based on client certificate information.

string
<= 1024 characters
creator_id
creator_id

ID of creator which created this StatusObject. This will be a concrete identifier for service (e.g. Identifying the environment also). This will be set by the system based on client certificate information.

string
<= 1024 characters
publish
string
default: STATUS_DO_NOT_PUBLISH
Allowed values: STATUS_DO_NOT_PUBLISH STATUS_PUBLISH
status_id
status_id

Status_id is a field used by the generator to distinguish (if necessary) between two status objects for the same config object from the same site and same service and potentially same daemon(creator-ID)

string
<= 1024 characters
uid
uid

Uid is the unique in time and space value for a StatusObject.

string format: uuid
>= 36 characters <= 1024 characters
vtrp_id
vtrp_id

Origin of this status exchanged by VTRP.

string
<= 1024 characters
vtrp_stale
vtrp_stale

Indicate whether mars deems this object to be stale via graceful restart timer information.

boolean format: boolean
object_refs
object_refs

Object reference.

Array<object>
ObjectRefType

This type establishes a ‘direct reference’ from one object(the referrer) to another(the referred). Such a reference is in form of tenant/namespace/name for public API and Uid for private API This type of reference is called direct because the relation is explicit and concrete (as opposed to selector reference which builds a group based on labels of selectee objects)

object
kind
kind

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

string
>= 12 characters <= 1024 characters
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.

string
>= 6 characters <= 1024 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 <= 1024 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 <= 1024 characters
uid
uid

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

string format: uuid
>= 36 characters <= 1024 characters
system_metadata
object
creation_timestamp
creation_timestamp

CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.

string format: date-time
<= 1024 characters
creator_class
creator_class

A value identifying the class of the user or service which created this configuration object.

string
<= 1024 characters
creator_id
creator_id

A value identifying the exact user or service that created this configuration object.

string
<= 1024 characters
deletion_timestamp
deletion_timestamp

DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

Populated by the system when a graceful deletion is requested. Read-only.

string format: date-time
<= 1024 characters
finalizers
finalizers

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed.

Array<string>
initializers
object
pending
pending

Pending is a list of initializers that must execute in order before this object is initialized. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.

Array<object>
InitializerType

Initializer is information about an initializer that has not yet completed.

object
name
name

Name of the service that is responsible for initializing this object.

string
>= 6 characters <= 1024 characters
result
object
code
code

Suggested HTTP return code for this status, 0 if not set.

integer format: int32
reason
reason

A human-readable description of why this operation is in the “Failure” status. If this value is empty there is no information available.

string
>= 27 characters <= 1024 characters
status
status

Status of the operation. One of: “Success” or “Failure”.

string
>= 17 characters <= 1024 characters
labels
labels

Map of string keys and values that can be used to organize and categorize (scope and select) objects as chosen by the operator or software. Values here can be interpreted by software(backend or frontend) to enable certain behavior e.g. Things marked as soft-deleted(restorable).

object
modification_timestamp
modification_timestamp

ModificationTimestamp is a timestamp representing the server time when this object was last modified.

string format: date-time
<= 1024 characters
object_index
object_index

Unique index for the object. Some objects need a unique integer index to be allocated for each object type. This field will be populated for all objects that need it and will be zero otherwise.

integer format: int64
owner_view
object
kind
kind

Kind of the view object.

string
>= 12 characters <= 1024 characters
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.

string
>= 6 characters <= 1024 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 <= 1024 characters
uid
uid

UID of the view object.

string format: uuid
>= 36 characters <= 1024 characters
tenant
tenant

Tenant to which this configuration object belongs to. The value for this is found from presented credentials.

string
>= 6 characters <= 1024 characters
uid
uid

Uid is the unique in time and space value for this object. It is generated by the server on successful creation of an object and is not allowed to change on Replace API. The value of is taken from uid field of ObjectMetaType, if provided.

string format: uuid
>= 36 characters <= 1024 characters
tenant
tenant

The tenant this item belongs to.

string
>= 6 characters <= 1024 characters
uid
uid

The unique uid of this app_firewall.

string format: uuid
>= 36 characters <= 1024 characters
Example
{
"errors": [
{
"code": "EOK"
}
],
"items": [
{
"get_spec": {
"allow_all_response_codes": {},
"blocking_page": {
"response_code": "EmptyStatusCode"
},
"bot_protection_setting": {
"good_bot_action": "BLOCK",
"malicious_bot_action": "BLOCK",
"suspicious_bot_action": "BLOCK"
},
"default_anonymization": {},
"default_bot_setting": {},
"default_detection_settings": {},
"detection_settings": {
"bot_protection_setting": {
"good_bot_action": "BLOCK",
"malicious_bot_action": "BLOCK",
"suspicious_bot_action": "BLOCK"
},
"signature_selection_setting": {
"attack_type_settings": {
"disabled_attack_types": [
"ATTACK_TYPE_NONE"
]
}
},
"violation_settings": {
"disabled_violation_types": [
"VIOL_NONE"
]
}
},
"disable_ai_enhancements": {},
"monitoring": {},
"use_default_blocking_page": {}
},
"status_set": [
{
"metadata": {
"publish": "STATUS_DO_NOT_PUBLISH"
}
}
]
}
]
}

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