GetAll
GetAll
fetches (and optionally filters) all resource instances.
For the filtering options available, see the Filtering section. These filtering options are the same for Subscribe.
This RPC is effectively a full-table-scan so the time to complete depends on the amount of data the resource reflects. However, being a streaming API, this RPC will return the first message as soon as it is available without any buffering.
RPC Definition
The protobuf definition of GetAll
is defined as such (for ExampleConfig
):
rpc GetAll (ExampleConfigStreamRequest) returns (stream ExampleConfigStreamResponse);
Request Type
The generated request for a model (ExampleConfig
, here) looks like so:
message ExampleConfigStreamRequest {
// PartialEqFilter provides a way to server-side filter a GetAll/Subscribe.
// This requires all provided fields to be equal to the response.
//
// While transparent to users, this field also allows services to optimize internal
// subscriptions if filter(s) are sufficiently specific.
repeated ExampleConfig partial_eq_filter = 1;
//
// NOTE: Models are allowed to also contain a "implementation specific" filter
// which is more targetted, simple, or otherwise helpful.
// This filter type will be defined in the protobuf definition.
//
// TimeRange allows limiting response data to within a specified time window.
// If this field is populated, at least one of the two time fields are required.
//
// This field is not allowed in the Subscribe RPC.
arista.time.TimeBounds time = 3;
};
Time bounds
GetAll allows retrieving the history of one or many instances of a resource. These options are passed through the TimeBounds message:
message TimeBounds {
google.protobuf.Timestamp start = 1;
google.protobuf.Timestamp end = 2;
}
The fields start
and end
can be used in the following combinations:
end
: returns the state of resources atend
.- responds with only fully-specified models
start
: returns the state of resources atstart
and updates until now.- returns all fully-specified models as of the
start
time, and then all subsequent changes/partials/diffs
- returns all fully-specified models as of the
start
andend
: returns the state of resources atstart
as well as any changes untilend
.- same semantics as
start
alone, but only changes up to theend
time
- same semantics as