WireAPI
TopThe Wire API allows clients to subscribe and publish to Volt wire resources.
PublishWire()
Establishes a client-streaming call to the wire resource.
SubscribeWire()
Establishes a bi-directional streaming call to the wire resource.
Although we're only really interested in receiving data from the wire, a bi-directional stream is required so that we can gracefully stop the subscription.
PublishWireRequest
Because the publish RPC is streaming, the policy will not be checked until the first message arrives. This can mean that the `PublishWire` call appears to succeed but then fails after the first attempt to publish a message.
To avoid this, clients can immediately send a message with the `wire_id` set and no `chunk` set. This will establish that the correct permissions are in place and fail fast if not.
Field | Type | Description |
wire_id | string | Only necessary in the first payload. |
chunk | bytes | The chunk of data to publish. |
do_not_persist | bool | Whether to persist the chunk. This is only valid if the wire is configured to persist messages, i.e. the `volt:wire-persist` attribute is true. |
PublishWireResponse
Field | Type | Description |
status | Status | Details of any error that occurred on the call. |
SubscribeWireRequest
The request must include one of the following fields.
Field | Type | Description |
wire_id | string | The wire id, only required for the first message. |
stop | bool | Request to stop the subscription. |
SubscribeWireResponse
One of the following fields will be present in the response.
Field | Type | Description |
status | Status | Details of any error that occured on the call. |
chunk | bytes | Data received from the wire. |
Status
Field | Type | Description |
code | int32 | A simple error code that can be easily handled by the client. Mirrors the grpc StatusCode enum, 0 => OK |
message | string | A developer-facing human-readable error message in English. It should both explain the error and offer an actionable resolution to it. |
description | string | Long form error description. |
Scalar Value Types
.proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby |
double | double | double | float | float64 | double | float | Float | |
float | float | float | float | float32 | float | float | Float | |
int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum |
uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) |
uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) |
sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum |
fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) |
fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum |
sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum |
bool | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | |
string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) |
bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |