Skip to content

Replace Endpoint.

PUT
/api/config/namespaces/{metadata.namespace}/endpoints/{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/endpoints/example \
--header 'Authorization: <Authorization>' \
--header 'Content-Type: application/json' \
--data '{ "metadata": { "annotations": {}, "description": "example", "disable": true, "labels": {}, "name": "example", "namespace": "example" }, "spec": { "dns_name": "example", "dns_name_advanced": { "name": "example", "refresh_interval": 1 }, "health_check_port": 1, "ip": "example", "port": 1, "protocol": "example", "service_info": { "discovery_type": "INVALID_DISCOVERY", "service_name": "example", "service_selector": { "expressions": [ "example" ] } }, "snat_pool": { "no_snat_pool": {}, "snat_pool": { "prefixes": [ "example" ] } }, "where": { "site": { "disable_internet_vip": {}, "enable_internet_vip": {}, "network_type": "VIRTUAL_NETWORK_SITE_LOCAL", "ref": [ { "name": "example", "namespace": "example" } ] }, "virtual_network": { "ref": [ { "name": "example", "namespace": "example" } ] }, "virtual_site": { "disable_internet_vip": {}, "enable_internet_vip": {}, "network_type": "VIRTUAL_NETWORK_SITE_LOCAL", "ref": [ { "name": "example", "namespace": "example" } ] } } } }'

Replacing an endpoint object will update the object 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 endpoint

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
dns_name

Exclusive with [dns_name_advanced IP service_info] Endpoint’s IP address is discovered using DNS name resolution. The name given here is fully qualified domain name.

string
<= 256 characters
dns_name_advanced
object
name
name

Endpoint’s IP address is discovered using DNS name resolution. The name given here is fully qualified domain name.

string
>= 6 characters <= 256 characters
refresh_interval
refresh_interval

Exclusive with [] Interval for DNS refresh in seconds.

integer format: int64
health_check_port

By default the health check port of an endpoint is the same as the endpoint’s port. This option provides an alternative health check port. Setting this with a non-zero value allows an endpoint to have different health check port.

integer format: int64
ip

Exclusive with [dns_name dns_name_advanced service_info] Endpoint is reachable at the given IPv4/IPv6 address.

string
<= 1024 characters
port

Endpoint service is available on this port.

integer format: int64
>= 1 <= 65535
protocol

Endpoint protocol. Default is TCP. Both TCP and UDP protocols are supported.

string
<= 1024 characters
service_info
object
discovery_type
string
default: INVALID_DISCOVERY
Allowed values: INVALID_DISCOVERY K8S CONSUL CLASSIC_BIGIP THIRD_PARTY NGINX_ONE
service_name
service_name

Exclusive with [service_selector] Name of the service to discover with an optional namespace and cluster identifier. The format is service_name.namespace_name:cluster_identifier for K8s and service_name:cluster_identifier for Consul Endpoint will be discovered in all discovery objects where the cluster identifier matches. If cluster identifier is not specified then discovery will be done in all discovery objects of the site.

string
<= 256 characters
service_selector
object
expressions
expressions

Expressions contains the Kubernetes style label expression for selections. Required: YES.

Array<string>
<= 1 items
snat_pool
object
no_snat_pool
object
snat_pool
object
prefixes
ipv4 prefix list

List of IPv4 prefixes that represent an endpoint.

Array<string>
<= 128 items
where
object
site
object
disable_internet_vip
object
enable_internet_vip
object
network_type
string
default: VIRTUAL_NETWORK_SITE_LOCAL
Allowed values: VIRTUAL_NETWORK_SITE_LOCAL VIRTUAL_NETWORK_SITE_LOCAL_INSIDE VIRTUAL_NETWORK_PER_SITE VIRTUAL_NETWORK_PUBLIC VIRTUAL_NETWORK_GLOBAL VIRTUAL_NETWORK_SITE_SERVICE VIRTUAL_NETWORK_VER_INTERNAL VIRTUAL_NETWORK_SITE_LOCAL_INSIDE_OUTSIDE VIRTUAL_NETWORK_IP_AUTO VIRTUAL_NETWORK_VOLTADN_PRIVATE_NETWORK VIRTUAL_NETWORK_SRV6_NETWORK VIRTUAL_NETWORK_IP_FABRIC VIRTUAL_NETWORK_SEGMENT VIRTUAL_NETWORK_MANAGEMENT
ref
ref

A site direct reference

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
virtual_network
object
ref
ref

A virtual network direct reference

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
virtual_site
object
disable_internet_vip
object
enable_internet_vip
object
network_type
string
default: VIRTUAL_NETWORK_SITE_LOCAL
Allowed values: VIRTUAL_NETWORK_SITE_LOCAL VIRTUAL_NETWORK_SITE_LOCAL_INSIDE VIRTUAL_NETWORK_PER_SITE VIRTUAL_NETWORK_PUBLIC VIRTUAL_NETWORK_GLOBAL VIRTUAL_NETWORK_SITE_SERVICE VIRTUAL_NETWORK_VER_INTERNAL VIRTUAL_NETWORK_SITE_LOCAL_INSIDE_OUTSIDE VIRTUAL_NETWORK_IP_AUTO VIRTUAL_NETWORK_VOLTADN_PRIVATE_NETWORK VIRTUAL_NETWORK_SRV6_NETWORK VIRTUAL_NETWORK_IP_FABRIC VIRTUAL_NETWORK_SEGMENT VIRTUAL_NETWORK_MANAGEMENT
ref
ref

A virtual_site direct reference

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

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