// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HardwareInterface {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, tag = "2")]
    pub name: ::prost::alloc::string::String,
    #[prost(bool, tag = "3")]
    pub is_available: bool,
    #[prost(bool, tag = "4")]
    pub is_claimed: bool,
}
impl ::prost::Name for HardwareInterface {
    const NAME: &'static str = "HardwareInterface";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.controller_manager_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.controller_manager_msgs.msg.HardwareInterface"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.controller_manager_msgs.msg.HardwareInterface"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HardwareComponentState {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, tag = "2")]
    pub name: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub r#type: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub class_type: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "5")]
    pub state: ::core::option::Option<super::super::lifecycle_msgs::msg::State>,
    #[prost(message, repeated, tag = "6")]
    pub command_interfaces: ::prost::alloc::vec::Vec<HardwareInterface>,
    #[prost(message, repeated, tag = "7")]
    pub state_interfaces: ::prost::alloc::vec::Vec<HardwareInterface>,
}
impl ::prost::Name for HardwareComponentState {
    const NAME: &'static str = "HardwareComponentState";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.controller_manager_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.controller_manager_msgs.msg.HardwareComponentState"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.controller_manager_msgs.msg.HardwareComponentState"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChainConnection {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, tag = "2")]
    pub name: ::prost::alloc::string::String,
    #[prost(string, repeated, tag = "3")]
    pub reference_interfaces: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
impl ::prost::Name for ChainConnection {
    const NAME: &'static str = "ChainConnection";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.controller_manager_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.controller_manager_msgs.msg.ChainConnection".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.controller_manager_msgs.msg.ChainConnection".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ControllerState {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, tag = "2")]
    pub name: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub state: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub r#type: ::prost::alloc::string::String,
    #[prost(string, repeated, tag = "5")]
    pub claimed_interfaces: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag = "6")]
    pub required_command_interfaces: ::prost::alloc::vec::Vec<
        ::prost::alloc::string::String,
    >,
    #[prost(string, repeated, tag = "7")]
    pub required_state_interfaces: ::prost::alloc::vec::Vec<
        ::prost::alloc::string::String,
    >,
    #[prost(bool, tag = "8")]
    pub is_chainable: bool,
    #[prost(bool, tag = "9")]
    pub is_chained: bool,
    #[prost(string, repeated, tag = "10")]
    pub reference_interfaces: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(message, repeated, tag = "11")]
    pub chain_connections: ::prost::alloc::vec::Vec<ChainConnection>,
}
impl ::prost::Name for ControllerState {
    const NAME: &'static str = "ControllerState";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.controller_manager_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.controller_manager_msgs.msg.ControllerState".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.controller_manager_msgs.msg.ControllerState".into()
    }
}
