// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RequestHeader {
    #[prost(string, tag = "1")]
    pub robot_name: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub fleet_name: ::prost::alloc::string::String,
    #[prost(uint64, tag = "3")]
    pub request_id: u64,
}
impl ::prost::Name for RequestHeader {
    const NAME: &'static str = "RequestHeader";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rmf_reservation_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rmf_reservation_msgs.msg.RequestHeader".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rmf_reservation_msgs.msg.RequestHeader".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Ticket {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<RequestHeader>,
    #[prost(uint64, tag = "2")]
    pub ticket_id: u64,
}
impl ::prost::Name for Ticket {
    const NAME: &'static str = "Ticket";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rmf_reservation_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rmf_reservation_msgs.msg.Ticket".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rmf_reservation_msgs.msg.Ticket".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct StartTimeRange {
    #[prost(message, optional, tag = "1")]
    pub earliest_start_time: ::core::option::Option<
        super::super::builtin_interfaces::msg::Time,
    >,
    #[prost(bool, tag = "2")]
    pub has_earliest_start_time: bool,
    #[prost(message, optional, tag = "3")]
    pub latest_start_time: ::core::option::Option<
        super::super::builtin_interfaces::msg::Time,
    >,
    #[prost(bool, tag = "4")]
    pub has_latest_start_time: bool,
}
impl ::prost::Name for StartTimeRange {
    const NAME: &'static str = "StartTimeRange";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rmf_reservation_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rmf_reservation_msgs.msg.StartTimeRange".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rmf_reservation_msgs.msg.StartTimeRange".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FlexibleTimeReservationAlt {
    #[prost(string, tag = "1")]
    pub resource_name: ::prost::alloc::string::String,
    #[prost(double, tag = "2")]
    pub cost: f64,
    #[prost(message, optional, tag = "3")]
    pub start_time: ::core::option::Option<StartTimeRange>,
    #[prost(bool, tag = "4")]
    pub has_end: bool,
    #[prost(message, optional, tag = "5")]
    pub duration: ::core::option::Option<
        super::super::builtin_interfaces::msg::Duration,
    >,
}
impl ::prost::Name for FlexibleTimeReservationAlt {
    const NAME: &'static str = "FlexibleTimeReservationAlt";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rmf_reservation_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rmf_reservation_msgs.msg.FlexibleTimeReservationAlt"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rmf_reservation_msgs.msg.FlexibleTimeReservationAlt"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FixedTimeReservationAlt {
    #[prost(string, tag = "1")]
    pub resource_name: ::prost::alloc::string::String,
    #[prost(double, tag = "2")]
    pub cost: f64,
    #[prost(message, optional, tag = "3")]
    pub start_time: ::core::option::Option<super::super::builtin_interfaces::msg::Time>,
    #[prost(bool, tag = "4")]
    pub has_end: bool,
    #[prost(message, optional, tag = "5")]
    pub duration: ::core::option::Option<
        super::super::builtin_interfaces::msg::Duration,
    >,
}
impl ::prost::Name for FixedTimeReservationAlt {
    const NAME: &'static str = "FixedTimeReservationAlt";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rmf_reservation_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rmf_reservation_msgs.msg.FixedTimeReservationAlt"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rmf_reservation_msgs.msg.FixedTimeReservationAlt"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ClaimRequest {
    #[prost(message, optional, tag = "1")]
    pub ticket: ::core::option::Option<Ticket>,
    #[prost(string, repeated, tag = "2")]
    pub wait_points: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
impl ::prost::Name for ClaimRequest {
    const NAME: &'static str = "ClaimRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rmf_reservation_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rmf_reservation_msgs.msg.ClaimRequest".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rmf_reservation_msgs.msg.ClaimRequest".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FlexibleTimeRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<RequestHeader>,
    #[prost(message, repeated, tag = "2")]
    pub alternatives: ::prost::alloc::vec::Vec<FlexibleTimeReservationAlt>,
}
impl ::prost::Name for FlexibleTimeRequest {
    const NAME: &'static str = "FlexibleTimeRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rmf_reservation_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rmf_reservation_msgs.msg.FlexibleTimeRequest"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rmf_reservation_msgs.msg.FlexibleTimeRequest"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FreeParkingSpots {
    #[prost(string, repeated, tag = "1")]
    pub spots: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
impl ::prost::Name for FreeParkingSpots {
    const NAME: &'static str = "FreeParkingSpots";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rmf_reservation_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rmf_reservation_msgs.msg.FreeParkingSpots".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rmf_reservation_msgs.msg.FreeParkingSpots".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReservationAllocation {
    #[prost(message, optional, tag = "1")]
    pub ticket: ::core::option::Option<Ticket>,
    #[prost(uint32, tag = "2")]
    pub instruction_type: u32,
    #[prost(uint64, tag = "3")]
    pub chosen_alternative: u64,
    #[prost(string, tag = "4")]
    pub resource: ::prost::alloc::string::String,
}
impl ::prost::Name for ReservationAllocation {
    const NAME: &'static str = "ReservationAllocation";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rmf_reservation_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rmf_reservation_msgs.msg.ReservationAllocation"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rmf_reservation_msgs.msg.ReservationAllocation"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReleaseRequest {
    #[prost(message, optional, tag = "1")]
    pub ticket: ::core::option::Option<Ticket>,
    #[prost(string, tag = "2")]
    pub location: ::prost::alloc::string::String,
}
impl ::prost::Name for ReleaseRequest {
    const NAME: &'static str = "ReleaseRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.rmf_reservation_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.rmf_reservation_msgs.msg.ReleaseRequest".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.rmf_reservation_msgs.msg.ReleaseRequest".into()
    }
}
