Request Service
Protobuf Definition#
service RequestService { rpc GetLsNodes(TopologyRequest) returns (LsNodeResponse) {} rpc GetLsLinks(TopologyRequest) returns (LsLinkResponse) {} rpc GetLsPrefixes(TopologyRequest) returns (LsPrefixResponse) {} rpc GetLsSrv6Sids(TopologyRequest) returns (LsSrv6SidResponse) {} rpc GetLsNodeEdges(TopologyRequest) returns (LsNodeEdgeResponse) {} rpc GetTelemetryData(TelemetryRequest) returns (TelemetryResponse) {}}Methods#
GetLsNodes()#
rpc GetLsNodes(TopologyRequest) returns (LsNodeResponse) {}See also: TopologyRequest, LsNodeResponse
Description#
Takes a TopologyRequest with the specified keys and properties and returns an LsNodeResponse containing all requested LsNodes with the requested properties.
- Omitting keys returns all available LsNodes.
- Omitting properties returns LsNodes with all available properties.
Examples#
| keys | properties | LsNodeResponse |
|---|---|---|
| [ "nodeKey1", "nodeKey2" ] | [ "Name", "Asn", "RouterIp" ] | LsNodeResponse contains LsNodes for the two specified keys with the three requested properties. |
| - | [ "Name", "Asn", "RouterIp" ] | LsNodeResponse contains all available LsNodes with the three requested properties. |
| [ "nodeKey1", "nodeKey2" ] | - | LsNodeResponse contains LsNodes for the two specified keys with all available properties. |
| - | - | LsNodeResponse contains all available LsNodes with all available properties. |
GetLsLinks()#
rpc GetLsLinks(TopologyRequest) returns (LsLinkResponse) {}See also: TopologyRequest, LsLinkResponse
Description#
See method GetLsNodes(). It follows the same principle regarding keys and properties.
GetLsPrefixes()#
rpc GetLsPrefixes(TopologyRequest) returns (LsPrefixResponse) {}See also: TopologyRequest, LsPrefixResponse
Description#
See method GetLsNodes(). It follows the same principle regarding keys and properties.
GetLsSrv6Sids()#
rpc GetLsSrv6Sids(TopologyRequest) returns (LsSrv6SidResponse) {}See also: TopologyRequest, LsSrv6SidResponse
Description#
See method GetLsNodes(). It follows the same principle regarding keys and properties.
GetLsNodeEdges()#
rpc GetLsNodeEdges(TopologyRequest) returns (LsNodeEdgeResponse) {}See also: TopologyRequest, LsNodeEdgeResponse
Description#
See method GetLsNodes(). It follows the same principle regarding keys and properties.
GetTelemetryData()#
rpc GetTelemetryData(TelemetryRequest) returns (TelemetryResponse) {}See also: TelemetryRequest, TelemetryResponse
Description#
Takes a TelemetryRequest and returns a TelemetryResponse containing an array of JSON strings.
The Jalapeño API Gateway works with all Yang Models that are supported by Jalapeño. To use a Yang Model, simply configure it on the routers and supply the Sensor Path in the request.
message TelemetryRequest { required string sensor_path = 1; repeated string properties = 2; repeated StringFilter string_filters = 3; optional RangeFilter range_filter = 4;}- sensor_path: Sensor Path of which data is requested (i.e.
"Cisco-IOS-XR-pfi-im-cmd-oper:interfaces/interface-xr/interface") - properties: String array of properties to select from the Yang Model. The property names are the exact sensor path that point to the property but without the more generic Sensor Path specified before, (i.e.
"data_rates/output_data_rate") - StringFilter: Allows to filter by string values.
- RangeFilter: Allows to request a range of data.
TelemetryRequest { sensorPath: "Cisco-IOS-XR-pfi-im-cmd-oper:interfaces/interface-xr/interface", properties: [ "data_rates/output_data_rate", "interface_statistics/full_interface_stats/bytes_sent" ], StringFilter: [ { property: "source", value: "XR-8", operator: StringOperator.EQUAL } ], RangeFilter: { earliestTimestamp: 1630050953974000000 }}The response contains JSON objects where the property names match the ones from the Yang Model, but converted to camel case.
For example, data_rates/output_data_rate becomes DataRates_OutputDataRate.
TelemetryResponse { telemetryData: [ "{ Time: "2021-11-10T08:53:08.382Z", DataRates_OutputDataRate: 53, InterfaceStatistics_FullInterfaceStats_BytesSent: 447 }" ]}