"""ROS2 diagnostic_msgs message definitions.

Auto-generated by scripts/generate_messages.py
Source: https://github.com/ros2/common_interfaces/tree/iron/diagnostic_msgs
"""
from __future__ import annotations

from dataclasses import dataclass, field
from typing import Literal

import pybag.ros2.iron.std_msgs as std_msgs
import pybag.types as t


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

    key: t.string
    value: t.string


@dataclass(kw_only=True)
class DiagnosticStatus:
    __msg_name__ = 'diagnostic_msgs/msg/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/msg/DiagnosticArray'

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