Skip to main content

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}