Volga Infras

FIXME.

Create a new volga infra

SecurityaccessToken
Request
query Parameters
validate
string <enumeration>

Validate the request but do not actually perform the requested operation

Value: "true"
Request Body schema:
name
required
string <topic-name> ^[0-9A-Za-z+_=:@.-]+$
chunks
integer <uint32>
Default: 1000
persistence
string <enumeration>
Default: "disk"
  • disk
  • ram
format
required
string <enumeration>
  • string: The message payload is a string.
  • json: The message payload is an arbitrary json object.

The format of messages on this infra.

allow-stitch
boolean
Default: false

Allow messages on this infra to be passed from site to site via the control tower

Responses
201

Created

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

409

Conflict (instance exists)

503

Service Unavailable (strongbox sealed)

post/v1/config/volga/infras
Request samples
name: myinfra
chunks: 1000
persistence: disk
format: string
allow-stitch: false

Retrieve the configuration of all volga infras

SecurityaccessToken
Request
query Parameters
fields
string

Retrieve only requested fields from the resource

See section fields

validate
string <enumeration>

Validate the request but do not actually perform the requested operation

Value: "true"
keys
string <enumeration>

Retrieve only the keys for the list

Value: "true"
count
string <enumeration>

Retrieve only the number of elements in the list

Value: "true"
Responses
200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

412

Precondition Failed

503

Service Unavailable (strongbox sealed)

get/v1/config/volga/infras
Response samples
- name: myinfra
  chunks: 1000
  persistence: disk
  format: string
  allow-stitch: false
  

Update a volga infra

SecurityaccessToken
Request
path Parameters
volga-infra-name
required
string <topic-name> ^[0-9A-Za-z+_=:@.-]+$

name of volga-infra

query Parameters
validate
string <enumeration>

Validate the request but do not actually perform the requested operation

Value: "true"
Request Body schema:
name
required
string <topic-name> ^[0-9A-Za-z+_=:@.-]+$
chunks
integer <uint32>
Default: 1000
persistence
string <enumeration>
Default: "disk"
  • disk
  • ram
format
required
string <enumeration>
  • string: The message payload is a string.
  • json: The message payload is an arbitrary json object.

The format of messages on this infra.

allow-stitch
boolean
Default: false

Allow messages on this infra to be passed from site to site via the control tower

Responses
204

No Content

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

412

Precondition Failed

503

Service Unavailable (strongbox sealed)

patch/v1/config/volga/infras/{volga-infra-name}
Request samples
name: myinfra
chunks: 1000
persistence: disk
format: string
allow-stitch: false

Delete a volga infra

SecurityaccessToken
Request
path Parameters
volga-infra-name
required
string <topic-name> ^[0-9A-Za-z+_=:@.-]+$

name of volga-infra

query Parameters
validate
string <enumeration>

Validate the request but do not actually perform the requested operation

Value: "true"
Responses
204

No Content

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

412

Precondition Failed

503

Service Unavailable (strongbox sealed)

delete/v1/config/volga/infras/{volga-infra-name}

Replace or create a new volga infra

SecurityaccessToken
Request
path Parameters
volga-infra-name
required
string <topic-name> ^[0-9A-Za-z+_=:@.-]+$

name of volga-infra

query Parameters
validate
string <enumeration>

Validate the request but do not actually perform the requested operation

Value: "true"
Request Body schema:
name
required
string <topic-name> ^[0-9A-Za-z+_=:@.-]+$
chunks
integer <uint32>
Default: 1000
persistence
string <enumeration>
Default: "disk"
  • disk
  • ram
format
required
string <enumeration>
  • string: The message payload is a string.
  • json: The message payload is an arbitrary json object.

The format of messages on this infra.

allow-stitch
boolean
Default: false

Allow messages on this infra to be passed from site to site via the control tower

Responses
201

Created

204

No Content

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

412

Precondition Failed

503

Service Unavailable (strongbox sealed)

put/v1/config/volga/infras/{volga-infra-name}
Request samples
name: myinfra
chunks: 1000
persistence: disk
format: string
allow-stitch: false

Retrieve the configuration of a volga infra

SecurityaccessToken
Request
path Parameters
volga-infra-name
required
string <topic-name> ^[0-9A-Za-z+_=:@.-]+$

name of volga-infra

query Parameters
fields
string

Retrieve only requested fields from the resource

See section fields

validate
string <enumeration>

Validate the request but do not actually perform the requested operation

Value: "true"
Responses
200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

412

Precondition Failed

503

Service Unavailable (strongbox sealed)

get/v1/config/volga/infras/{volga-infra-name}
Response samples
name: myinfra
chunks: 1000
persistence: disk
format: string
allow-stitch: false

Retrieve the state of all volga infras

SecurityaccessToken
Request
query Parameters
fields
string

Retrieve only requested fields from the resource

See section fields

site
string

Send the request to the specfifed site

content
string <enumeration>

Filter descendant nodes in the response

Enum: "config" "nonconfig"
keys
string <enumeration>

Retrieve only the keys for the list

Value: "true"
count
string <enumeration>

Retrieve only the number of elements in the list

Value: "true"
Responses
200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

503

Service Unavailable (strongbox sealed)

get/v1/state/volga/infras
Response samples
- name: myinfra
  chunks: 1000
  persistence: disk
  format: string
  allow-stitch: false
  

Retrieve the state of a volga infra

SecurityaccessToken
Request
path Parameters
volga-infra-name
required
string <topic-name> ^[0-9A-Za-z+_=:@.-]+$

name of volga-infra

query Parameters
fields
string

Retrieve only requested fields from the resource

See section fields

site
string

Send the request to the specfifed site

content
string <enumeration>

Filter descendant nodes in the response

Enum: "config" "nonconfig"
Responses
200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

503

Service Unavailable (strongbox sealed)

get/v1/state/volga/infras/{volga-infra-name}
Response samples
name: myinfra
chunks: 1000
persistence: disk
format: string
allow-stitch: false

Invoke the consume operation

Consume an infra topic

SecurityaccessToken
Request
path Parameters
volga-infra-name
required
string <topic-name> ^[0-9A-Za-z+_=:@.-]+$

name of volga-infra

query Parameters
site
string

Send the request to the specfifed site

Request Body schema:
One of:
position
string <enumeration>
Default: "beginning"
  • beginning: Start consuming from the beginning of the stream. If the topic has wrapped, i.e., started to drop chunks, the first message will be the oldest one remaining on the topic.
  • end: Start consuming from the end of the stream
  • unread: Start consuming from last acked message plus one

Indicates where to start consuming in the topic stream

topic-tag
string

If topic-tag is set, only messages produced with the same topic-tag will be received by this consumer. This can be useful when multiple applications need to share the same topic of infra.

re-match
string

Consume only messages that match this Perl RE pattern, and just skip all other messages.

invert-match
boolean

Must have the value true.

Invert the match provided by the re-match pattern

fields
string <select-fields-expression>

A string that matches:

expr = term \*( ',' term )
term = path \*( '/' '[' expr ']' )
path = field-name [ '/' path ]
field-name = identifier / identifier '=' identifier

For example:

  • fields=foo,bar - selects the fields foo and bar
  • fields=foo/bar - selects the fields bar in foo
  • fields=foo/[bar,baz] - selects bar and baz in foo
  • fields=foo=x - selects foo, and renames foo to x in the output

Volga can trim incoming messages, delivering only the fields given here.

follow
boolean
Default: false

In follow mode, the client will continue to consume, although the last message in the topic has been delivered. By default the client will receive a socket close when the topic has been exhausted.

payload-only
boolean
Default: false

By default, a REST consumer will receive JSON structs, with sequence number and more. With this option, only the payload is delivered. This option is useful when viewing plain text logs.

ignore-all-filters
boolean
Default: false

Receive messages regardless of filters such as topic-tags and destination sites. This is sometime useful for debugging

compact-output
boolean
Default: false

DEPRECATED - will be removed.

Deprecated, use accept header application/jsonlines to get new-line separated json.

Responses
204

No Content

400
401

Unauthorized

403

Forbidden

404

Not Found

503

Service Unavailable (strongbox sealed)

post/v1/state/volga/infras/{volga-infra-name}/consume
Request samples
position-since: 10m
topic-tag: mytag
re-match: joe
fields: payload/user
follow: false
payload-only: false
ignore-all-filters: false
compact-output: false
Response samples
No sample

Invoke the produce operation

Produce a single item to an infra topic

SecurityaccessToken
Request
path Parameters
volga-infra-name
required
string <topic-name> ^[0-9A-Za-z+_=:@.-]+$

name of volga-infra

query Parameters
site
string

Send the request to the specfifed site

Request Body schema:
direction
required
string <enumeration>
  • up
  • down
  • stitch: Topic stitching between different sites. It's possible to send data through infra from one site to another, although they're both behind NAT and have no IP connectivity
stitch-site
string

Valid when: ../direction = 'stitch'

If we use stitching, data will go from one edge site to the Control Tower, turn down there and go 'down' to the indicated edge site

local-site-deliver
boolean
Default: false

Deliver on infra on the producing site too

Array of objects

Deliver only to these sites. If unset, all sites where the current tenant resides will receive the message.

payload
required
object

The payload of the message

topic-tag
string

If set, the message will only reach consumers listening for this specific topic-tag.

Responses
204

No Content

400
401

Unauthorized

403

Forbidden

404

Not Found

503

Service Unavailable (strongbox sealed)

post/v1/state/volga/infras/{volga-infra-name}/produce
Request samples
direction: down
local-site-deliver: true
destination-sites:
  - site: mysite
  - site: myothersite
payload: Hello world
topic-tag: mytag
Response samples
No sample