Skip to content

Replace App Setting.

PUT
/api/config/namespaces/{metadata.namespace}/app_settings/{metadata.name}
curl --request PUT \
--url https://example-corp.console.ves.volterra.io/api/v1/api/production/us-east-1/namespaces/default/api/config/namespaces/example/app_settings/example \
--header 'Authorization: <Authorization>' \
--header 'Content-Type: application/json' \
--data '{ "metadata": { "annotations": {}, "description": "example", "disable": true, "labels": {}, "name": "example", "namespace": "example" }, "spec": { "app_type_settings": [ { "app_type_ref": [ { "name": "example", "namespace": "example" } ], "business_logic_markup_setting": { "disable": {}, "enable": {} }, "timeseries_analyses_setting": { "metric_selectors": [ { "metric": [ "NO_METRICS" ], "metrics_source": "NONE" } ] }, "user_behavior_analysis_setting": { "disable_detection": {}, "disable_learning": {}, "enable_detection": { "bola_detection_automatic": {}, "cooling_off_period": 1, "exclude_bola_detection": {}, "exclude_bot_defense_activity": {}, "exclude_failed_login_activity": {}, "exclude_forbidden_activity": {}, "exclude_ip_reputation": {}, "exclude_non_existent_url_activity": {}, "exclude_rate_limit": {}, "exclude_waf_activity": {}, "include_bot_defense_activity": {}, "include_failed_login_activity": { "login_failures_threshold": 1 }, "include_forbidden_activity": { "forbidden_requests_threshold": 1 }, "include_ip_reputation": {}, "include_non_existent_url_activity_automatic": { "high": {}, "low": {}, "medium": {} }, "include_non_existent_url_activity_custom": { "nonexistent_requests_threshold": 1 }, "include_rate_limit": {}, "include_waf_activity": {} }, "enable_learning": {} } } ] } }'

Replacing an App setting will update the configuration by replacing the existing spec with the provided one. For read-then-write operations a resourceVersion mismatch will occur if the object was modified between the read and write.

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 app_setting

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
app_type_settings

List of settings to enable for each AppType, given instance of AppType Exist in this Namespace

Required: YES.

Array<object>
>= 1 items <= 16 items
AppType Setting

Namespace is considered an app instance which can be of one or more types also known as AppTypes. AppType setting defines the analyses setting to be applied to this namespace for a given AppType.

object
app_type_ref
app_type_ref

The AppType of App instance in current Namespace. Associating an AppType reference, will enable analysis on this instance’s generated data

Required: YES.

Array<object>
<= 1 items
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
business_logic_markup_setting
object
disable
object
enable
object
timeseries_analyses_setting
object
metric_selectors
Metric Selector

Define the metric selection criteria, i.e. The metrics source and the actual metrics that should be included in the detection logic.

Array<object>
Metric Selector

Specifies which metrics are selected to be analyzed.

object
metric
Metrics

Choose one or more metrics to be included in the detection logic.

Array<string>
Allowed values: NO_METRICS REQUEST_RATE ERROR_RATE LATENCY THROUGHPUT
metrics_source
string
default: NONE
Allowed values: NONE NODES EDGES VIRTUAL_HOSTS
user_behavior_analysis_setting
object
disable_detection
object
disable_learning
object
enable_detection
object
bola_detection_automatic
object
cooling_off_period
Cooling Off Period

Exclusive with [] Malicious user detection assigns a threat level to each user based on their activity. Once a threat level is assigned, the system continues tracking activity from this user and if no further malicious activity is seen, it gradually reduces the threat assessment to lower levels. This field specifies the time period, in minutes, used by the system to decay a user’s threat level from a high to medium or medium to low or low to none.

integer format: int64
exclude_bola_detection
object
exclude_bot_defense_activity
object
exclude_failed_login_activity
object
exclude_forbidden_activity
object
exclude_ip_reputation
object
exclude_non_existent_url_activity
object
exclude_rate_limit
object
exclude_waf_activity
object
include_bot_defense_activity
object
include_failed_login_activity
object
login_failures_threshold
Login failures threshold

The number of failed logins beyond which the system will flag this user as malicious Required: YES.

integer format: int64
include_forbidden_activity
object
forbidden_requests_threshold
forbidden requests threshold

The number of forbidden requests beyond which the system will flag this user as malicious Required: YES.

integer format: int64
include_ip_reputation
object
include_non_existent_url_activity_automatic
object
high
object
low
object
medium
object
include_non_existent_url_activity_custom
object
nonexistent_requests_threshold
non-existent url custom threshold

The percentage of non-existent requests beyond which the system will flag this user as malicious Required: YES.

integer format: int64
include_rate_limit
object
include_waf_activity
object
enable_learning
object

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