

# Generated by the protocol buffer compiler.  DO NOT EDIT!
# sources: blickfeld/diagnostics/config/log.proto, blickfeld/diagnostics/config/self_test.proto
# plugin: python-betterproto
from dataclasses import dataclass

import blickfeld_qb2.betterproto as betterproto
import blickfeld_qb2.betterproto.lib.google.protobuf as betterproto_lib_google_protobuf


class LogTimeDirection(betterproto.Enum):
    """The direction in time in which the service provides new log entries"""

    TIME_DIRECTION_UNSPECIFIED = 0
    """No direction is specified"""

    TIME_DIRECTION_FORWARD = 1
    """
    Streaming direction forward in time. The log entries are streamed towards
    the tail of the journal. When the tail is reached, the stream continues
    waiting for newly written logs.
    """

    TIME_DIRECTION_BACKWARD = 2
    """
    Streaming direction backward in time. The log entries are streamed towards
    the head of the journal. When the head is reached, the stream terminates.
    """


class LogFilterSoftwareModule(betterproto.Enum):
    """
    This field specifies the list of software modules that can be accessed via
    the log service.
    """

    SOFTWARE_MODULE_UNSPECIFIED = 0
    """No module is selected"""

    SOFTWARE_MODULE_BLICKFELD_PROXY = 1
    """
    gRPC proxy where all clients requests are handled. Helps to review & audit
    calls of client applications.
    """

    SOFTWARE_MODULE_BLICKFELD_FLOW = 2
    """
    Logs of the embedded node-red instance. Helps to trace & understand
    blickfeld flow behaviourals or crashes.
    """

    SOFTWARE_MODULE_BLICKFELD_DIAGNOSTICS = 3
    """
    Logs of the global diagnostics module. Helps to trace & understand system
    health changes.
    """


class SelfTest(betterproto.Enum):
    """
    List of available self tests   NOTE: The test list is still incomplete.
    """

    SELF_TEST_UNSPECIFIED = 0
    """No test is specified."""

    SELF_TEST_POINT_CLOUD = 1
    """
    Simple test which starts up the device, requests a point cloud, validates
    its properties and stops the device.
    """

    SELF_TEST_CONNECTION = 2
    """
    Simple connection tests to basic peripherals: PCIe, laser, detector,
    vertical BDC & horizontal BDC. It performs version requests to the modules.
    """

    SELF_TEST_BEAM_DEFLECTION_UNIT = 3
    """Simple check for basic functionality of the beam deflection units"""


@dataclass(eq=False, repr=False)
class Log(betterproto.Message):
    """
    This message aggregates the configurations related to the log service.
    """

    pass


@dataclass(eq=False, repr=False)
class LogFilter(betterproto.Message):
    """Filter configuration for filtering the requested log entries."""

    pass
