"""ROS1 diagnostic_msgs message definitions for noetic.

Auto-generated by scripts/generate_ros1_messages.py
Source: https://github.com/ros/common_msgs/tree/noetic-devel/diagnostic_msgs/msg
"""
from __future__ import annotations

from dataclasses import dataclass
from typing import Literal

import pybag.ros1.noetic.std_msgs as std_msgs
import pybag.types as t


@dataclass(kw_only=True)
class KeyValue:
    __msg_name__ = 'diagnostic_msgs/KeyValue'

    key: t.string
    value: t.string


@dataclass(kw_only=True)
class DiagnosticStatus:
    __msg_name__ = 'diagnostic_msgs/DiagnosticStatus'

    OK: t.Constant[t.byte] = 0
    WARN: t.Constant[t.byte] = 1
    ERROR: t.Constant[t.byte] = 2
    STALE: t.Constant[t.byte] = 3
    level: t.byte
    name: t.string
    message: t.string
    hardware_id: t.string
    values: t.Array[KeyValue]


@dataclass(kw_only=True)
class DiagnosticArray:
    __msg_name__ = 'diagnostic_msgs/DiagnosticArray'

    header: std_msgs.Header
    status: t.Array[DiagnosticStatus]
