Skip to content

Replace User Identification.

PUT
/api/config/namespaces/{metadata.namespace}/user_identifications/{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/user_identifications/example \
--header 'Authorization: <Authorization>' \
--header 'Content-Type: application/json' \
--data '{ "metadata": { "annotations": {}, "description": "example", "disable": true, "labels": {}, "name": "example", "namespace": "example" }, "spec": { "rules": [ { "client_asn": {}, "client_city": {}, "client_country": {}, "client_ip": {}, "client_region": {}, "cookie_name": "example", "http_header_name": "example", "ip_and_http_header_name": "example", "ip_and_ja4_tls_fingerprint": {}, "ip_and_tls_fingerprint": {}, "ja4_tls_fingerprint": {}, "jwt_claim_name": "example", "none": {}, "query_param_key": "example", "tls_fingerprint": {} } ] } }'

Replace user_identification replaces an existing object in the storage backend for metadata.namespace.

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 user_identification

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
rules

An ordered list of rules that are evaluated sequentially against the input fields extracted from an API request in order to determine a user identifier. Evaluation of the rules is terminated once a user identifier has been extracted.

Required: YES.

Array<object>
>= 1 items <= 4 items
UserIdentificationRule

A user identification rule specifies a single criterion to determine an identifier from the input fields extracted from an API request . A rule is considered to have a successful outcome if an identifier gets extracted.

object
client_asn
object
client_city
object
client_country
object
client_ip
object
client_region
object
cookie_name
Cookie Name

Exclusive with [client_asn client_city client_country client_ip client_region http_header_name ip_and_http_header_name ip_and_ja4_tls_fingerprint ip_and_tls_fingerprint ja4_tls_fingerprint jwt_claim_name none query_param_key tls_fingerprint] Use the HTTP cookie value for the given name as user identifier.

string
>= 1 characters <= 256 characters
http_header_name
HTTP header name

Exclusive with [client_asn client_city client_country client_ip client_region cookie_name ip_and_http_header_name ip_and_ja4_tls_fingerprint ip_and_tls_fingerprint ja4_tls_fingerprint jwt_claim_name none query_param_key tls_fingerprint] Use the HTTP header value for the given name as user identifier.

string
>= 1 characters <= 256 characters
ip_and_http_header_name
HTTP header name

Exclusive with [client_asn client_city client_country client_ip client_region cookie_name http_header_name ip_and_ja4_tls_fingerprint ip_and_tls_fingerprint ja4_tls_fingerprint jwt_claim_name none query_param_key tls_fingerprint] Name of HTTP header from which the value should be extracted.

string
>= 1 characters <= 256 characters
ip_and_ja4_tls_fingerprint
object
ip_and_tls_fingerprint
object
ja4_tls_fingerprint
object
jwt_claim_name
JWT claim name

Exclusive with [client_asn client_city client_country client_ip client_region cookie_name http_header_name ip_and_http_header_name ip_and_ja4_tls_fingerprint ip_and_tls_fingerprint ja4_tls_fingerprint none query_param_key tls_fingerprint] Use the JWT claim value as user identifier.

string
>= 1 characters <= 256 characters
none
object
query_param_key
query param key

Exclusive with [client_asn client_city client_country client_ip client_region cookie_name http_header_name ip_and_http_header_name ip_and_ja4_tls_fingerprint ip_and_tls_fingerprint ja4_tls_fingerprint jwt_claim_name none tls_fingerprint] Use the query parameter value for the given key as user identifier.

string
>= 1 characters <= 256 characters
tls_fingerprint
object
Examplegenerated
{
"metadata": {
"annotations": {},
"description": "example",
"disable": true,
"labels": {},
"name": "example",
"namespace": "example"
},
"spec": {
"rules": [
{
"client_asn": {},
"client_city": {},
"client_country": {},
"client_ip": {},
"client_region": {},
"cookie_name": "example",
"http_header_name": "example",
"ip_and_http_header_name": "example",
"ip_and_ja4_tls_fingerprint": {},
"ip_and_tls_fingerprint": {},
"ja4_tls_fingerprint": {},
"jwt_claim_name": "example",
"none": {},
"query_param_key": "example",
"tls_fingerprint": {}
}
]
}
}

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