// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UserdataInfo {
    #[prost(string, tag = "1")]
    pub state: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub key: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub r#type: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub data: ::prost::alloc::string::String,
}
impl ::prost::Name for UserdataInfo {
    const NAME: &'static str = "UserdataInfo";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.flexbe_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.flexbe_msgs.msg.UserdataInfo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.flexbe_msgs.msg.UserdataInfo".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BehaviorSync {
    #[prost(int32, tag = "1")]
    pub behavior_id: i32,
    #[prost(int32, repeated, tag = "2")]
    pub current_state_checksums: ::prost::alloc::vec::Vec<i32>,
}
impl ::prost::Name for BehaviorSync {
    const NAME: &'static str = "BehaviorSync";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.flexbe_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.flexbe_msgs.msg.BehaviorSync".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.flexbe_msgs.msg.BehaviorSync".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct SynthesisErrorCodes {
    #[prost(int32, tag = "1")]
    pub value: i32,
}
impl ::prost::Name for SynthesisErrorCodes {
    const NAME: &'static str = "SynthesisErrorCodes";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.flexbe_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.flexbe_msgs.msg.SynthesisErrorCodes".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.flexbe_msgs.msg.SynthesisErrorCodes".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BehaviorModification {
    #[prost(int32, tag = "1")]
    pub index_begin: i32,
    #[prost(int32, tag = "2")]
    pub index_end: i32,
    #[prost(string, tag = "3")]
    pub new_content: ::prost::alloc::string::String,
}
impl ::prost::Name for BehaviorModification {
    const NAME: &'static str = "BehaviorModification";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.flexbe_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.flexbe_msgs.msg.BehaviorModification".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.flexbe_msgs.msg.BehaviorModification".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BehaviorSelection {
    #[prost(int32, tag = "1")]
    pub behavior_key: i32,
    #[prost(int32, tag = "2")]
    pub behavior_id: i32,
    #[prost(uint32, tag = "3")]
    pub autonomy_level: u32,
    #[prost(string, repeated, tag = "4")]
    pub arg_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "5")]
    pub arg_values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "6")]
    pub input_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "7")]
    pub input_values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(message, repeated, tag = "8")]
    pub modifications: ::prost::alloc::vec::Vec<BehaviorModification>,
}
impl ::prost::Name for BehaviorSelection {
    const NAME: &'static str = "BehaviorSelection";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.flexbe_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.flexbe_msgs.msg.BehaviorSelection".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.flexbe_msgs.msg.BehaviorSelection".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CommandFeedback {
    #[prost(string, tag = "1")]
    pub command: ::prost::alloc::string::String,
    #[prost(string, repeated, tag = "2")]
    pub args: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
impl ::prost::Name for CommandFeedback {
    const NAME: &'static str = "CommandFeedback";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.flexbe_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.flexbe_msgs.msg.CommandFeedback".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.flexbe_msgs.msg.CommandFeedback".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Container {
    #[prost(int32, tag = "1")]
    pub state_id: i32,
    #[prost(string, tag = "2")]
    pub path: ::prost::alloc::string::String,
    #[prost(string, repeated, tag = "3")]
    pub children: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "4")]
    pub outcomes: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "5")]
    pub transitions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(int32, tag = "6")]
    pub r#type: i32,
    #[prost(int32, repeated, tag = "7")]
    pub autonomy: ::prost::alloc::vec::Vec<i32>,
}
impl ::prost::Name for Container {
    const NAME: &'static str = "Container";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.flexbe_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.flexbe_msgs.msg.Container".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.flexbe_msgs.msg.Container".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ContainerStructure {
    #[prost(int32, tag = "1")]
    pub behavior_id: i32,
    #[prost(message, repeated, tag = "2")]
    pub containers: ::prost::alloc::vec::Vec<Container>,
}
impl ::prost::Name for ContainerStructure {
    const NAME: &'static str = "ContainerStructure";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.flexbe_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.flexbe_msgs.msg.ContainerStructure".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.flexbe_msgs.msg.ContainerStructure".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OutcomeRequest {
    #[prost(uint32, tag = "1")]
    pub outcome: u32,
    #[prost(string, tag = "2")]
    pub target: ::prost::alloc::string::String,
}
impl ::prost::Name for OutcomeRequest {
    const NAME: &'static str = "OutcomeRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.flexbe_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.flexbe_msgs.msg.OutcomeRequest".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.flexbe_msgs.msg.OutcomeRequest".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OutcomeCondition {
    #[prost(string, repeated, tag = "1")]
    pub state_name: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "2")]
    pub state_outcome: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
impl ::prost::Name for OutcomeCondition {
    const NAME: &'static str = "OutcomeCondition";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.flexbe_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.flexbe_msgs.msg.OutcomeCondition".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.flexbe_msgs.msg.OutcomeCondition".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BeStatus {
    #[prost(message, optional, tag = "1")]
    pub stamp: ::core::option::Option<super::super::builtin_interfaces::msg::Time>,
    #[prost(int32, tag = "2")]
    pub behavior_id: i32,
    #[prost(uint32, tag = "3")]
    pub code: u32,
    #[prost(string, repeated, tag = "4")]
    pub args: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
impl ::prost::Name for BeStatus {
    const NAME: &'static str = "BEStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.flexbe_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.flexbe_msgs.msg.BEStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.flexbe_msgs.msg.BEStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UiCommand {
    #[prost(string, tag = "1")]
    pub command: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub key: ::prost::alloc::string::String,
}
impl ::prost::Name for UiCommand {
    const NAME: &'static str = "UICommand";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.flexbe_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.flexbe_msgs.msg.UICommand".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.flexbe_msgs.msg.UICommand".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StateInstantiation {
    #[prost(string, tag = "1")]
    pub state_path: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub state_class: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub initial_state_name: ::prost::alloc::string::String,
    #[prost(string, repeated, tag = "4")]
    pub input_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "5")]
    pub output_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "6")]
    pub cond_outcome: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(message, repeated, tag = "7")]
    pub cond_transition: ::prost::alloc::vec::Vec<OutcomeCondition>,
    #[prost(string, tag = "8")]
    pub behavior_class: ::prost::alloc::string::String,
    #[prost(string, repeated, tag = "9")]
    pub parameter_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "10")]
    pub parameter_values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(float, repeated, tag = "11")]
    pub position: ::prost::alloc::vec::Vec<f32>,
    #[prost(string, repeated, tag = "12")]
    pub outcomes: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "13")]
    pub transitions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(int32, repeated, tag = "14")]
    pub autonomy: ::prost::alloc::vec::Vec<i32>,
    #[prost(string, repeated, tag = "15")]
    pub userdata_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "16")]
    pub userdata_remapping: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
impl ::prost::Name for StateInstantiation {
    const NAME: &'static str = "StateInstantiation";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.flexbe_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.flexbe_msgs.msg.StateInstantiation".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.flexbe_msgs.msg.StateInstantiation".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BehaviorRequest {
    #[prost(string, tag = "1")]
    pub behavior_name: ::prost::alloc::string::String,
    #[prost(uint32, tag = "2")]
    pub autonomy_level: u32,
    #[prost(string, repeated, tag = "3")]
    pub arg_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "4")]
    pub arg_values: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(message, repeated, tag = "5")]
    pub structure: ::prost::alloc::vec::Vec<Container>,
}
impl ::prost::Name for BehaviorRequest {
    const NAME: &'static str = "BehaviorRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.flexbe_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.flexbe_msgs.msg.BehaviorRequest".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.flexbe_msgs.msg.BehaviorRequest".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SynthesisRequest {
    #[prost(string, tag = "1")]
    pub name: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub system: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub goal: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub initial_condition: ::prost::alloc::string::String,
    #[prost(string, repeated, tag = "5")]
    pub sm_outcomes: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
impl ::prost::Name for SynthesisRequest {
    const NAME: &'static str = "SynthesisRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.flexbe_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.flexbe_msgs.msg.SynthesisRequest".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.flexbe_msgs.msg.SynthesisRequest".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BehaviorLog {
    #[prost(string, tag = "1")]
    pub text: ::prost::alloc::string::String,
    #[prost(uint32, tag = "2")]
    pub status_code: u32,
}
impl ::prost::Name for BehaviorLog {
    const NAME: &'static str = "BehaviorLog";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.flexbe_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.flexbe_msgs.msg.BehaviorLog".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.flexbe_msgs.msg.BehaviorLog".into()
    }
}
