Skip to content

List WAF Exclusion Policy.

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

List the set of waf_exclusion_policy in a namespace.

Examples of this operation.

namespace
required
string

Namespace Namespace to scope the listing of waf_exclusion_policy.

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 waf_exclusion_policy

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 waf_exclusion_policy

By default a summary of waf_exclusion_policy 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 waf_exclusion_policy.

object
description
description

The description set for this waf_exclusion_policy.

string
>= 21 characters <= 1024 characters
disabled
disabled

A value of true indicates waf_exclusion_policy is administratively disabled.

boolean format: boolean
get_spec
object
waf_exclusion_rules

An ordered list of rules.

Required: YES.

Array<object>
<= 256 items
SimpleWafExclusionRule

Simple WAF exclusion rule specifies a simple set of match conditions to be matched to skip a list of WAF detections.

object
any_domain
object
any_path
object
app_firewall_detection_control
object
exclude_attack_type_contexts
Exclude Attack Types Contexts

Attack Types to be excluded for the defined match criteria.

Array<object>
<= 64 items
App Firewall Attack Type Context

App Firewall Attack Type context changes to be applied for this request.

object
context
string
default: CONTEXT_ANY
Allowed values: CONTEXT_ANY CONTEXT_BODY CONTEXT_REQUEST CONTEXT_RESPONSE CONTEXT_PARAMETER CONTEXT_HEADER CONTEXT_COOKIE CONTEXT_URL CONTEXT_URI
context_name
Context Name

Relevant only for contexts: Header, Cookie and Parameter. Name of the Context that the WAF Exclusion Rules will check. Wildcard matching can be used by prefixing or suffixing the context name with an wildcard asterisk (*).

string
<= 128 characters
exclude_attack_type
string
default: ATTACK_TYPE_NONE
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
exclude_bot_name_contexts
Exclude Bot Names Contexts

Bot Names to be excluded for the defined match criteria.

Array<object>
<= 64 items
Bot Name Context

Specifies bot to be excluded by its name.

object
bot_name
BotName

Required: YES.

string
<= 1024 characters
exclude_signature_contexts
Exclude Signature Contexts

Signature IDs to be excluded for the defined match criteria.

Array<object>
<= 1024 items
App Firewall Signature Context

App Firewall signature context changes to be applied for this request.

object
context
string
default: CONTEXT_ANY
Allowed values: CONTEXT_ANY CONTEXT_BODY CONTEXT_REQUEST CONTEXT_RESPONSE CONTEXT_PARAMETER CONTEXT_HEADER CONTEXT_COOKIE CONTEXT_URL CONTEXT_URI
context_name
Context Name

Relevant only for contexts: Header, Cookie and Parameter. Name of the Context that the WAF Exclusion Rules will check. Wildcard matching can be used by prefixing or suffixing the context name with an wildcard asterisk (*).

string
<= 128 characters
signature_id
SignatureID

The allowed values for signature ID are 0 and in the range of 200000001-299999999. 0 implies that all signatures will be excluded for the specified context. Required: YES.

integer format: int64
exclude_violation_contexts
Exclude Violation Contexts

Violations to be excluded for the defined match criteria.

Array<object>
<= 64 items
App Firewall Violation Context

App Firewall violation context changes to be applied for this request.

object
context
string
default: CONTEXT_ANY
Allowed values: CONTEXT_ANY CONTEXT_BODY CONTEXT_REQUEST CONTEXT_RESPONSE CONTEXT_PARAMETER CONTEXT_HEADER CONTEXT_COOKIE CONTEXT_URL CONTEXT_URI
context_name
Context Name

Relevant only for contexts: Header, Cookie and Parameter. Name of the Context that the WAF Exclusion Rules will check. Wildcard matching can be used by prefixing or suffixing the context name with an wildcard asterisk (*).

string
<= 128 characters
exclude_violation
string
default: VIOL_NONE
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
exact_value
exact value

Exclusive with [any_domain suffix_value] Exact domain name.

string
>= 1 characters <= 256 characters
expiration_timestamp
expiration timestamp

The expiration_timestamp is the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in the configuration but is not applied anymore.

string format: date-time
<= 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
methods
Methods

Methods to be matched.

Array<string>
<= 16 items
Allowed values: ANY GET HEAD POST PUT DELETE CONNECT OPTIONS TRACE PATCH COPY
path_prefix
prefix

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

string
<= 256 characters
path_regex
Path Regex

Exclusive with [any_path path_prefix] Define the regex for the path. For example, the regex ^/.*$ will match on all paths.

string
<= 256 characters
suffix_value
suffix value

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

string
>= 1 characters <= 256 characters
waf_skip_processing
object
labels
labels

The set of labels present on this waf_exclusion_policy.

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 waf_exclusion_policy.

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>
Most recently observed status of object
object
conditions
conditions

Conditions reported by various component of the system.

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

Reference to object for current status.

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 waf_exclusion_policy.

string format: uuid
>= 36 characters <= 1024 characters
Example
{
"errors": [
{
"code": "EOK"
}
],
"items": [
{
"get_spec": {
"waf_exclusion_rules": [
{
"app_firewall_detection_control": {
"exclude_attack_type_contexts": [
{
"context": "CONTEXT_ANY",
"exclude_attack_type": "ATTACK_TYPE_NONE"
}
],
"exclude_signature_contexts": [
{
"context": "CONTEXT_ANY"
}
],
"exclude_violation_contexts": [
{
"context": "CONTEXT_ANY",
"exclude_violation": "VIOL_NONE"
}
]
},
"methods": [
"ANY"
]
}
]
},
"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