// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Param {
    #[prost(string, tag = "1")]
    pub name: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub r#type: ::prost::alloc::string::String,
    #[prost(string, repeated, tag = "3")]
    pub sub_types: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
impl ::prost::Name for Param {
    const NAME: &'static str = "Param";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.plansys2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.plansys2_msgs.msg.Param".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.plansys2_msgs.msg.Param".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Node {
    #[prost(uint32, tag = "1")]
    pub node_type: u32,
    #[prost(uint32, tag = "2")]
    pub expression_type: u32,
    #[prost(uint32, tag = "3")]
    pub modifier_type: u32,
    #[prost(uint32, tag = "4")]
    pub node_id: u32,
    #[prost(uint32, repeated, tag = "5")]
    pub children: ::prost::alloc::vec::Vec<u32>,
    #[prost(string, tag = "6")]
    pub name: ::prost::alloc::string::String,
    #[prost(message, repeated, tag = "7")]
    pub parameters: ::prost::alloc::vec::Vec<Param>,
    #[prost(double, tag = "8")]
    pub value: f64,
    #[prost(bool, tag = "9")]
    pub negate: bool,
}
impl ::prost::Name for Node {
    const NAME: &'static str = "Node";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.plansys2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.plansys2_msgs.msg.Node".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.plansys2_msgs.msg.Node".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Tree {
    #[prost(message, repeated, tag = "1")]
    pub nodes: ::prost::alloc::vec::Vec<Node>,
}
impl ::prost::Name for Tree {
    const NAME: &'static str = "Tree";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.plansys2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.plansys2_msgs.msg.Tree".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.plansys2_msgs.msg.Tree".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PlanItem {
    #[prost(float, tag = "1")]
    pub time: f32,
    #[prost(string, tag = "2")]
    pub action: ::prost::alloc::string::String,
    #[prost(float, tag = "3")]
    pub duration: f32,
}
impl ::prost::Name for PlanItem {
    const NAME: &'static str = "PlanItem";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.plansys2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.plansys2_msgs.msg.PlanItem".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.plansys2_msgs.msg.PlanItem".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Plan {
    #[prost(message, repeated, tag = "1")]
    pub items: ::prost::alloc::vec::Vec<PlanItem>,
}
impl ::prost::Name for Plan {
    const NAME: &'static str = "Plan";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.plansys2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.plansys2_msgs.msg.Plan".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.plansys2_msgs.msg.Plan".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DurativeAction {
    #[prost(string, tag = "1")]
    pub name: ::prost::alloc::string::String,
    #[prost(message, repeated, tag = "2")]
    pub parameters: ::prost::alloc::vec::Vec<Param>,
    #[prost(message, optional, tag = "3")]
    pub at_start_requirements: ::core::option::Option<Tree>,
    #[prost(message, optional, tag = "4")]
    pub over_all_requirements: ::core::option::Option<Tree>,
    #[prost(message, optional, tag = "5")]
    pub at_end_requirements: ::core::option::Option<Tree>,
    #[prost(message, optional, tag = "6")]
    pub at_start_effects: ::core::option::Option<Tree>,
    #[prost(message, optional, tag = "7")]
    pub at_end_effects: ::core::option::Option<Tree>,
}
impl ::prost::Name for DurativeAction {
    const NAME: &'static str = "DurativeAction";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.plansys2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.plansys2_msgs.msg.DurativeAction".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.plansys2_msgs.msg.DurativeAction".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Derived {
    #[prost(message, optional, tag = "1")]
    pub predicate: ::core::option::Option<Node>,
    #[prost(message, optional, tag = "2")]
    pub preconditions: ::core::option::Option<Tree>,
}
impl ::prost::Name for Derived {
    const NAME: &'static str = "Derived";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.plansys2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.plansys2_msgs.msg.Derived".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.plansys2_msgs.msg.Derived".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Action {
    #[prost(string, tag = "1")]
    pub name: ::prost::alloc::string::String,
    #[prost(message, repeated, tag = "2")]
    pub parameters: ::prost::alloc::vec::Vec<Param>,
    #[prost(message, optional, tag = "3")]
    pub preconditions: ::core::option::Option<Tree>,
    #[prost(message, optional, tag = "4")]
    pub effects: ::core::option::Option<Tree>,
}
impl ::prost::Name for Action {
    const NAME: &'static str = "Action";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.plansys2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.plansys2_msgs.msg.Action".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.plansys2_msgs.msg.Action".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ActionExecution {
    #[prost(int32, tag = "1")]
    pub r#type: i32,
    #[prost(string, tag = "2")]
    pub node_id: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub action: ::prost::alloc::string::String,
    #[prost(string, repeated, tag = "4")]
    pub arguments: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(bool, tag = "5")]
    pub success: bool,
    #[prost(float, tag = "6")]
    pub completion: f32,
    #[prost(string, tag = "7")]
    pub status: ::prost::alloc::string::String,
}
impl ::prost::Name for ActionExecution {
    const NAME: &'static str = "ActionExecution";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.plansys2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.plansys2_msgs.msg.ActionExecution".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.plansys2_msgs.msg.ActionExecution".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ActionPerformerStatus {
    #[prost(message, optional, tag = "1")]
    pub status_stamp: ::core::option::Option<
        super::super::builtin_interfaces::msg::Time,
    >,
    #[prost(int32, tag = "2")]
    pub state: i32,
    #[prost(string, tag = "3")]
    pub action: ::prost::alloc::string::String,
    #[prost(string, repeated, tag = "4")]
    pub specialized_arguments: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, tag = "5")]
    pub node_name: ::prost::alloc::string::String,
}
impl ::prost::Name for ActionPerformerStatus {
    const NAME: &'static str = "ActionPerformerStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.plansys2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.plansys2_msgs.msg.ActionPerformerStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.plansys2_msgs.msg.ActionPerformerStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Knowledge {
    #[prost(string, repeated, tag = "1")]
    pub instances: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "2")]
    pub predicates: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "3")]
    pub functions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, tag = "4")]
    pub goal: ::prost::alloc::string::String,
}
impl ::prost::Name for Knowledge {
    const NAME: &'static str = "Knowledge";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.plansys2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.plansys2_msgs.msg.Knowledge".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.plansys2_msgs.msg.Knowledge".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ActionExecutionInfo {
    #[prost(int32, tag = "1")]
    pub status: i32,
    #[prost(message, optional, tag = "2")]
    pub start_stamp: ::core::option::Option<super::super::builtin_interfaces::msg::Time>,
    #[prost(message, optional, tag = "3")]
    pub status_stamp: ::core::option::Option<
        super::super::builtin_interfaces::msg::Time,
    >,
    #[prost(string, tag = "4")]
    pub action_full_name: ::prost::alloc::string::String,
    #[prost(string, tag = "5")]
    pub action: ::prost::alloc::string::String,
    #[prost(string, repeated, tag = "6")]
    pub arguments: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(message, optional, tag = "7")]
    pub duration: ::core::option::Option<
        super::super::builtin_interfaces::msg::Duration,
    >,
    #[prost(float, tag = "8")]
    pub completion: f32,
    #[prost(string, tag = "9")]
    pub message_status: ::prost::alloc::string::String,
}
impl ::prost::Name for ActionExecutionInfo {
    const NAME: &'static str = "ActionExecutionInfo";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.plansys2_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.plansys2_msgs.msg.ActionExecutionInfo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.plansys2_msgs.msg.ActionExecutionInfo".into()
    }
}
