Skip to main content
Version: v1.0.0

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 at end.
    • responds with only fully-specified models
  • start: returns the state of resources at start and updates until now.
    • returns all fully-specified models as of the start time, and then all subsequent changes/partials/diffs
  • start and end: returns the state of resources at start as well as any changes until end.
    • same semantics as start alone, but only changes up to the end time