endhost_api_protobuf/proto/endhost.api_service.v1.rs
1// This file is @generated by prost-build.
2/// List segments request.
3#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4pub struct ListSegmentsRequest {
5 /// The source ISD-AS of the final end-to-end path. This is most likely
6 /// the requester's own ISD-AS.
7 #[prost(uint64, tag = "1")]
8 pub src_isd_as: u64,
9 /// The destination ISD-AS the final end-to-end path.
10 #[prost(uint64, tag = "2")]
11 pub dst_isd_as: u64,
12 /// The maximum total number of segments to return.
13 /// The service may return fewer than this value.
14 /// If unspecified, the maximum number of segments
15 /// per page is returned, which is 64.
16 #[prost(int32, tag = "3")]
17 pub page_size: i32,
18 /// A page token, received from a previous
19 /// ListSegmentsRequest call.
20 /// Provide this to retrieve the subsequent page.
21 ///
22 /// When paginating, all other parameters provided in
23 /// ListSegmentsRequest must match the call that provided
24 /// the page token.
25 #[prost(string, tag = "4")]
26 pub page_token: ::prost::alloc::string::String,
27}
28/// ListSegmentsReponse includes up, down, and core path segments that
29/// can be combined to end-to-end paths.
30#[derive(Clone, PartialEq, ::prost::Message)]
31pub struct ListSegmentsResponse {
32 /// The list of returned up path segments.
33 #[prost(message, repeated, tag = "1")]
34 pub up_segments: ::prost::alloc::vec::Vec<
35 scion_protobuf::control_plane::v1::PathSegment,
36 >,
37 /// The list of returned down path segments.
38 #[prost(message, repeated, tag = "2")]
39 pub down_segments: ::prost::alloc::vec::Vec<
40 scion_protobuf::control_plane::v1::PathSegment,
41 >,
42 /// The list of returned core path segments.
43 #[prost(message, repeated, tag = "3")]
44 pub core_segments: ::prost::alloc::vec::Vec<
45 scion_protobuf::control_plane::v1::PathSegment,
46 >,
47 /// The token for the next page of results.
48 #[prost(string, tag = "4")]
49 pub next_page_token: ::prost::alloc::string::String,
50}
51/// ListUnderlaysRequest is used to discover available transport underlays.
52#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
53pub struct ListUnderlaysRequest {
54 /// Include the underlays for the provided ISD-AS. This can be left empty or set to 0 which
55 /// indicates that the requester wants the underlay information for all possible local SCION ASes.
56 #[prost(uint64, optional, tag = "1")]
57 pub isd_as: ::core::option::Option<u64>,
58}
59/// ListUnderlaysResponse contains information about available underlays. At least one underlay
60/// must be present for endhosts to use.
61#[derive(Clone, PartialEq, ::prost::Message)]
62pub struct ListUnderlaysResponse {
63 /// The UDP/IP underlay of the AS.
64 #[prost(message, optional, tag = "1")]
65 pub udp: ::core::option::Option<UdpUnderlay>,
66 /// The SNAP underlay of the AS.
67 #[prost(message, optional, tag = "2")]
68 pub snap: ::core::option::Option<SnapUnderlay>,
69}
70/// The UDP/IP underlay consisting of the available SCION routers.
71#[derive(Clone, PartialEq, ::prost::Message)]
72pub struct UdpUnderlay {
73 /// The list of available SCION routers.
74 #[prost(message, repeated, tag = "1")]
75 pub routers: ::prost::alloc::vec::Vec<Router>,
76}
77/// Router represents a SCION routers internal interface and the associated SCION interface IDs.
78#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
79pub struct Router {
80 /// The ISD-AS identifier
81 #[prost(uint64, tag = "1")]
82 pub isd_as: u64,
83 /// The UDP endpoint (host:port) of the internal interface.
84 #[prost(string, tag = "2")]
85 pub address: ::prost::alloc::string::String,
86 /// The list of external SCION interface IDs on that router.
87 #[prost(uint32, repeated, tag = "3")]
88 pub interfaces: ::prost::alloc::vec::Vec<u32>,
89}
90/// The SNAP underlay consisting of the available SNAPs.
91#[derive(Clone, PartialEq, ::prost::Message)]
92pub struct SnapUnderlay {
93 /// The list of available SNAPs.
94 #[prost(message, repeated, tag = "1")]
95 pub snaps: ::prost::alloc::vec::Vec<Snap>,
96}
97/// SNAP represents a SNAP control plane API.
98#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
99pub struct Snap {
100 /// The address (host:port) of the SNAP control plane API. This can be the same
101 /// as the SCION endhost API endpoint.
102 #[prost(string, tag = "1")]
103 pub address: ::prost::alloc::string::String,
104 /// The ISD-ASes of the SNAP.
105 #[prost(uint64, repeated, tag = "2")]
106 pub isd_ases: ::prost::alloc::vec::Vec<u64>,
107}