Subscribe
first returns the initial state (fully-specified messages) and then any received updates.
The first messages received are effectively the result of a GetAll). Once existing state has been sent to the client, any changes to resource entities are streamed back to the client. The update messages will represent what was updated and can either be a diff/partial or a fully-specified model.
Any filters apply both to the initial state and updates.
Clients can determine whether a given message is part of the initial GetAll
or an update via the
arista.subscriptions.Operation
enum field on the StreamResponse
type for the given resource. This enum can
be found here.
The flow of messages follows these steps:
N
messages with arista.subscriptions.Operation::INITIAL
arista.subscriptions.Operation::INITIAL_SYNC_COMPLETE
N
messages with either:arista.subscriptions.Operation::UPDATED
arista.subscriptions.Operation::DELETED
The protobuf definition of GetAll
is defined as such (for ExampleConfig
):
rpc Subscribe (ExampleConfigStreamRequest) returns (stream ExampleConfigStreamResponse);