"""
@generated by codestare-proto-plus.  Do not edit manually!
"""
from proto import (
    Enum,
    Field,
    RepeatedField,
    STRING,
    module,
)

from proto.message import (
    Message,
)

from ubii.proto.v1.devices.component_pb_plus import (
    Component,
)


__protobuf__ = module(
    package="ubii.proto.v1",
    manifest={
        "Device",
        "DeviceList",
    }
)


class Device(Message):
    """Generated from ubii/proto/v1/devices/device.proto

    Attributes:
        id (proto.fields.Field): :obj:`~proto.fields.Field` of type
            :obj:`~proto.STRING`

        name (proto.fields.Field): :obj:`~proto.fields.Field` of type
            :obj:`~proto.STRING`

        device_type (proto.fields.Field): :obj:`~proto.fields.Field` of type
            :obj:`~.DeviceType`

        components (proto.fields.RepeatedField): :obj:`~proto.fields.RepeatedField` of
            type :obj:`~ubii.proto.v1.devices.component_pb_plus.Component`

        client_id (proto.fields.Field): :obj:`~proto.fields.Field` of type
            :obj:`~proto.STRING`

        tags (proto.fields.RepeatedField): :obj:`~proto.fields.RepeatedField` of type
            :obj:`~proto.STRING`

        description (proto.fields.Field): :obj:`~proto.fields.Field` of type
            :obj:`~proto.STRING`

    """

    class DeviceType(Enum):
        PARTICIPANT = 0
        WATCHER = 1

    id = Field(
        STRING,
        number=1,
    )
    name = Field(
        STRING,
        number=2,
    )
    device_type = Field(
        DeviceType,
        number=3,
    )
    components = RepeatedField(
        Component,
        number=4,
    )
    client_id = Field(
        STRING,
        number=5,
    )
    tags = RepeatedField(
        STRING,
        number=6,
    )
    description = Field(
        STRING,
        number=7,
    )


class DeviceList(Message):
    """Generated from ubii/proto/v1/devices/device.proto

    Attributes:
        elements (proto.fields.RepeatedField): :obj:`~proto.fields.RepeatedField` of
            type :obj:`~.Device`

    """

    elements = RepeatedField(
        Device,
        number=1,
    )

