endhost-api-protobuf 0.4.0

Protobuf definitions for the SCION endhost API
Documentation
// This file is @generated by prost-build.
/// List segments request.
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ListSegmentsRequest {
    /// The source ISD-AS of the final end-to-end path. This is most likely
    /// the requester's own ISD-AS.
    #[prost(uint64, tag = "1")]
    pub src_isd_as: u64,
    /// The destination ISD-AS the final end-to-end path.
    #[prost(uint64, tag = "2")]
    pub dst_isd_as: u64,
    /// The maximum total number of segments to return.
    /// The service may return fewer than this value.
    /// If unspecified, the maximum number of segments
    /// per page is returned, which is 64.
    #[prost(int32, tag = "3")]
    pub page_size: i32,
    /// A page token, received from a previous
    /// ListSegmentsRequest call.
    /// Provide this to retrieve the subsequent page.
    ///
    /// When paginating, all other parameters provided in
    /// ListSegmentsRequest must match the call that provided
    /// the page token.
    #[prost(string, tag = "4")]
    pub page_token: ::prost::alloc::string::String,
}
/// ListSegmentsReponse includes up, down, and core path segments that
/// can be combined to end-to-end paths.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListSegmentsResponse {
    /// The list of returned up path segments.
    #[prost(message, repeated, tag = "1")]
    pub up_segments: ::prost::alloc::vec::Vec<
        scion_protobuf::control_plane::v1::PathSegment,
    >,
    /// The list of returned down path segments.
    #[prost(message, repeated, tag = "2")]
    pub down_segments: ::prost::alloc::vec::Vec<
        scion_protobuf::control_plane::v1::PathSegment,
    >,
    /// The list of returned core path segments.
    #[prost(message, repeated, tag = "3")]
    pub core_segments: ::prost::alloc::vec::Vec<
        scion_protobuf::control_plane::v1::PathSegment,
    >,
    /// The token for the next page of results.
    #[prost(string, tag = "4")]
    pub next_page_token: ::prost::alloc::string::String,
}
/// ListUnderlaysRequest is used to discover available transport underlays.
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ListUnderlaysRequest {
    /// Include the underlays for the provided ISD-AS. This can be left empty or set to 0 which
    /// indicates that the requester wants the underlay information for all possible local SCION ASes.
    #[prost(uint64, optional, tag = "1")]
    pub isd_as: ::core::option::Option<u64>,
}
/// ListUnderlaysResponse contains information about available underlays. At least one underlay
/// must be present for endhosts to use.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListUnderlaysResponse {
    /// The UDP/IP underlay of the AS.
    #[prost(message, optional, tag = "1")]
    pub udp: ::core::option::Option<UdpUnderlay>,
    /// The SNAP underlay of the AS.
    #[prost(message, optional, tag = "2")]
    pub snap: ::core::option::Option<SnapUnderlay>,
}
/// The UDP/IP underlay consisting of the available SCION routers.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UdpUnderlay {
    /// The list of available SCION routers.
    #[prost(message, repeated, tag = "1")]
    pub routers: ::prost::alloc::vec::Vec<Router>,
}
/// Router represents a SCION routers internal interface and the associated SCION interface IDs.
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Router {
    /// The ISD-AS identifier
    #[prost(uint64, tag = "1")]
    pub isd_as: u64,
    /// The UDP endpoint (host:port) of the internal interface.
    #[prost(string, tag = "2")]
    pub address: ::prost::alloc::string::String,
    /// The list of external SCION interface IDs on that router.
    #[prost(uint32, repeated, tag = "3")]
    pub interfaces: ::prost::alloc::vec::Vec<u32>,
}
/// The SNAP underlay consisting of the available SNAPs.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SnapUnderlay {
    /// The list of available SNAPs.
    #[prost(message, repeated, tag = "1")]
    pub snaps: ::prost::alloc::vec::Vec<Snap>,
}
/// SNAP represents a SNAP control plane API.
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Snap {
    /// The address (host:port) of the SNAP control plane API. This can be the same
    /// as the SCION endhost API endpoint.
    #[prost(string, tag = "1")]
    pub address: ::prost::alloc::string::String,
    /// The ISD-ASes of the SNAP.
    #[prost(uint64, repeated, tag = "2")]
    pub isd_ases: ::prost::alloc::vec::Vec<u64>,
}