"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import ni.measurementlink.pin_map_context_pb2
import session_pb2
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class SessionInformation(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SESSION_FIELD_NUMBER: builtins.int
    RESOURCE_NAME_FIELD_NUMBER: builtins.int
    CHANNEL_LIST_FIELD_NUMBER: builtins.int
    INSTRUMENT_TYPE_ID_FIELD_NUMBER: builtins.int
    SESSION_EXISTS_FIELD_NUMBER: builtins.int
    SESSION_RESERVED_FIELD_NUMBER: builtins.int
    CHANNEL_MAPPINGS_FIELD_NUMBER: builtins.int
    resource_name: builtins.str
    """Resource name used to open this session in the driver.
    This field is readonly.
    """
    channel_list: builtins.str
    """Channel list used for driver initialization and measurement methods.
    This field is empty for any SessionInformation returned from ReserveAllRegisteredSessions.
    This field is readonly.
    """
    instrument_type_id: builtins.str
    """Instrument type ID to identify which type of instrument the session represents.
    The session management service has built in instrument definitions using the following NI driver based instrument type ids:
         "niDCPower"
         "niDigitalPattern"
         "niScope"
         "niDMM"
         "niDAQmx"
         "niFGen"
         "niRelayDriver"
    For custom instruments the user defined instrument type id is defined in the pin map file or custom session management plugin service.
    This field is readonly.
    """
    session_exists: builtins.bool
    """Indicates whether the session has been created and registered with the Session Manager.
    This field is readonly.
    """
    session_reserved: builtins.bool
    """Indicates whether the session has been reserved with the Session Manager.
    This field is readonly.
    """
    @property
    def session(self) -> session_pb2.Session:
        """Session identifier used to identify the session in the session management service, as well as in driver services such as grpc-device.
        This field is readonly.
        """

    @property
    def channel_mappings(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ChannelMapping]:
        """List of site and I/O resource mappings with optional multiplexer information for each channel in the channel_list.
        Each item represents a channel-to-I/O-resource connection for this instrument resource. In the case of shared pins, there is a separate item for each connection.
        This field is empty for any SessionInformation returned from ReserveAllRegisteredSessions.
        This field is readonly.
        """

    def __init__(
        self,
        *,
        session: session_pb2.Session | None = ...,
        resource_name: builtins.str = ...,
        channel_list: builtins.str = ...,
        instrument_type_id: builtins.str = ...,
        session_exists: builtins.bool = ...,
        session_reserved: builtins.bool = ...,
        channel_mappings: collections.abc.Iterable[global___ChannelMapping] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["session", b"session"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["channel_list", b"channel_list", "channel_mappings", b"channel_mappings", "instrument_type_id", b"instrument_type_id", "resource_name", b"resource_name", "session", b"session", "session_exists", b"session_exists", "session_reserved", b"session_reserved"]) -> None: ...

global___SessionInformation = SessionInformation

@typing.final
class ChannelMapping(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PIN_OR_RELAY_NAME_FIELD_NUMBER: builtins.int
    SITE_FIELD_NUMBER: builtins.int
    CHANNEL_FIELD_NUMBER: builtins.int
    MULTIPLEXER_RESOURCE_NAME_FIELD_NUMBER: builtins.int
    MULTIPLEXER_ROUTE_FIELD_NUMBER: builtins.int
    pin_or_relay_name: builtins.str
    """The I/O resource that is mapped to a channel."""
    site: builtins.int
    """The site on which the I/O resource is mapped to a channel.
    For system pins/relays the site number is -1 since they do not belong to a specific site.
    """
    channel: builtins.str
    """The channel to which the I/O resource is mapped on this site."""
    multiplexer_resource_name: builtins.str
    """The multiplexer resource name is used to open the multiplexer session in the driver."""
    multiplexer_route: builtins.str
    """The multiplexer route through which the pin is connected to an instrument's channel."""
    def __init__(
        self,
        *,
        pin_or_relay_name: builtins.str = ...,
        site: builtins.int = ...,
        channel: builtins.str = ...,
        multiplexer_resource_name: builtins.str = ...,
        multiplexer_route: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["channel", b"channel", "multiplexer_resource_name", b"multiplexer_resource_name", "multiplexer_route", b"multiplexer_route", "pin_or_relay_name", b"pin_or_relay_name", "site", b"site"]) -> None: ...

global___ChannelMapping = ChannelMapping

@typing.final
class MultiplexerSessionInformation(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SESSION_FIELD_NUMBER: builtins.int
    RESOURCE_NAME_FIELD_NUMBER: builtins.int
    MULTIPLEXER_TYPE_ID_FIELD_NUMBER: builtins.int
    SESSION_EXISTS_FIELD_NUMBER: builtins.int
    resource_name: builtins.str
    """Resource name is used to open this session in the driver.
    This field is readonly.
    """
    multiplexer_type_id: builtins.str
    """User-defined identifier for the multiplexer type in the pin map editor.
    This field is readonly.
    """
    session_exists: builtins.bool
    """Indicates whether the session exists in the Session Manager. This indicates whether the session has been created.
    This field is readonly.
    """
    @property
    def session(self) -> session_pb2.Session:
        """Session identifier used to identify the session in the session management service, as well as in driver services such as grpc-device.
        This field is readonly.
        """

    def __init__(
        self,
        *,
        session: session_pb2.Session | None = ...,
        resource_name: builtins.str = ...,
        multiplexer_type_id: builtins.str = ...,
        session_exists: builtins.bool = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["session", b"session"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["multiplexer_type_id", b"multiplexer_type_id", "resource_name", b"resource_name", "session", b"session", "session_exists", b"session_exists"]) -> None: ...

global___MultiplexerSessionInformation = MultiplexerSessionInformation

@typing.final
class ReserveSessionsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PIN_MAP_CONTEXT_FIELD_NUMBER: builtins.int
    PIN_OR_RELAY_NAMES_FIELD_NUMBER: builtins.int
    INSTRUMENT_TYPE_ID_FIELD_NUMBER: builtins.int
    TIMEOUT_IN_MILLISECONDS_FIELD_NUMBER: builtins.int
    instrument_type_id: builtins.str
    """Optional. Instrument type ID for the measurement. If unspecified, reserve sessions for all instrument types connected in the registered pin map resource.
    The session management service has built in instrument definitions using the following NI driver based instrument type ids:
         "niDCPower"
         "niDigitalPattern"
         "niScope"
         "niDMM"
         "niDAQmx"
         "niFGen"
         "niRelayDriver"
    For custom instruments the user defined instrument type id is defined in the pin map file or custom session management plugin service.
    """
    timeout_in_milliseconds: builtins.int
    """Optional. Timeout for the reservation request.
    Allowed values: 0 (non-blocking, fails immediately if resources cannot be reserved), -1 (infinite timeout), or any other positive numeric value (wait for that number of milliseconds)
    """
    @property
    def pin_map_context(self) -> ni.measurementlink.pin_map_context_pb2.PinMapContext:
        """Optional. Includes the pin map ID for the pin map in the Pin Map Service, as well as the list of sites for the measurement. If unspecified, specify non-pin I/O resources for pin_or_relay_names."""

    @property
    def pin_or_relay_names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """Optional. List of I/O resources (pins, pin groups, relays, relay groups, or channels) to use for the measurement. If unspecified, reserve sessions for all pins and relays in the registered pin map resource."""

    def __init__(
        self,
        *,
        pin_map_context: ni.measurementlink.pin_map_context_pb2.PinMapContext | None = ...,
        pin_or_relay_names: collections.abc.Iterable[builtins.str] | None = ...,
        instrument_type_id: builtins.str = ...,
        timeout_in_milliseconds: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["pin_map_context", b"pin_map_context"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["instrument_type_id", b"instrument_type_id", "pin_map_context", b"pin_map_context", "pin_or_relay_names", b"pin_or_relay_names", "timeout_in_milliseconds", b"timeout_in_milliseconds"]) -> None: ...

global___ReserveSessionsRequest = ReserveSessionsRequest

@typing.final
class ReserveSessionsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class GroupMappingsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        @property
        def value(self) -> global___ResolvedPinsOrRelays: ...
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: global___ResolvedPinsOrRelays | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

    SESSIONS_FIELD_NUMBER: builtins.int
    MULTIPLEXER_SESSIONS_FIELD_NUMBER: builtins.int
    GROUP_MAPPINGS_FIELD_NUMBER: builtins.int
    @property
    def sessions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SessionInformation]:
        """List of information needed to create or use each session for the given I/O resource, site, and instrument type ID."""

    @property
    def multiplexer_sessions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MultiplexerSessionInformation]:
        """List of information needed to create or use each multiplexer session for the given I/O resource, site, and instrument type ID."""

    @property
    def group_mappings(self) -> google.protobuf.internal.containers.MessageMap[builtins.str, global___ResolvedPinsOrRelays]:
        """Represents the mapping between pin or relay groups and their respective pin or relay names."""

    def __init__(
        self,
        *,
        sessions: collections.abc.Iterable[global___SessionInformation] | None = ...,
        multiplexer_sessions: collections.abc.Iterable[global___MultiplexerSessionInformation] | None = ...,
        group_mappings: collections.abc.Mapping[builtins.str, global___ResolvedPinsOrRelays] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["group_mappings", b"group_mappings", "multiplexer_sessions", b"multiplexer_sessions", "sessions", b"sessions"]) -> None: ...

global___ReserveSessionsResponse = ReserveSessionsResponse

@typing.final
class UnreserveSessionsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SESSIONS_FIELD_NUMBER: builtins.int
    @property
    def sessions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SessionInformation]:
        """Required. List of information of sessions to be unreserved in the session management service."""

    def __init__(
        self,
        *,
        sessions: collections.abc.Iterable[global___SessionInformation] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["sessions", b"sessions"]) -> None: ...

global___UnreserveSessionsRequest = UnreserveSessionsRequest

@typing.final
class UnreserveSessionsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___UnreserveSessionsResponse = UnreserveSessionsResponse

@typing.final
class RegisterSessionsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SESSIONS_FIELD_NUMBER: builtins.int
    @property
    def sessions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SessionInformation]:
        """Required. List of sessions to register with the session management service to track as the sessions are open."""

    def __init__(
        self,
        *,
        sessions: collections.abc.Iterable[global___SessionInformation] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["sessions", b"sessions"]) -> None: ...

global___RegisterSessionsRequest = RegisterSessionsRequest

@typing.final
class RegisterSessionsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___RegisterSessionsResponse = RegisterSessionsResponse

@typing.final
class UnregisterSessionsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SESSIONS_FIELD_NUMBER: builtins.int
    @property
    def sessions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SessionInformation]:
        """Required. List of sessions to unregister with the session management service to mark them as sessions were closed."""

    def __init__(
        self,
        *,
        sessions: collections.abc.Iterable[global___SessionInformation] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["sessions", b"sessions"]) -> None: ...

global___UnregisterSessionsRequest = UnregisterSessionsRequest

@typing.final
class UnregisterSessionsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___UnregisterSessionsResponse = UnregisterSessionsResponse

@typing.final
class ReserveAllRegisteredSessionsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TIMEOUT_IN_MILLISECONDS_FIELD_NUMBER: builtins.int
    INSTRUMENT_TYPE_ID_FIELD_NUMBER: builtins.int
    timeout_in_milliseconds: builtins.int
    """Optional. Timeout for the reservation request.
    Allowed values: 0 (non-blocking, fails immediately if resources cannot be reserved), -1 (infinite timeout), or any other positive numeric value (wait for that number of milliseconds)
    """
    instrument_type_id: builtins.str
    """Optional. Instrument type ID of the registered sessions to reserve. If unspecified, reserve sessions for all instrument types connected in the registered pin map resource.
    The session management service has built in instrument definitions using the following NI driver based instrument type ids:
         "niDCPower"
         "niDigitalPattern"
         "niScope"
         "niDMM"
         "niDAQmx"
         "niFGen"
         "niRelayDriver"
    For custom instruments the user defined instrument type id is defined in the pin map file or custom session management plugin service.
    """
    def __init__(
        self,
        *,
        timeout_in_milliseconds: builtins.int = ...,
        instrument_type_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["instrument_type_id", b"instrument_type_id", "timeout_in_milliseconds", b"timeout_in_milliseconds"]) -> None: ...

global___ReserveAllRegisteredSessionsRequest = ReserveAllRegisteredSessionsRequest

@typing.final
class ReserveAllRegisteredSessionsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SESSIONS_FIELD_NUMBER: builtins.int
    @property
    def sessions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SessionInformation]:
        """Sessions currently registered in the session management service."""

    def __init__(
        self,
        *,
        sessions: collections.abc.Iterable[global___SessionInformation] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["sessions", b"sessions"]) -> None: ...

global___ReserveAllRegisteredSessionsResponse = ReserveAllRegisteredSessionsResponse

@typing.final
class RegisterMultiplexerSessionsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MULTIPLEXER_SESSIONS_FIELD_NUMBER: builtins.int
    @property
    def multiplexer_sessions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MultiplexerSessionInformation]:
        """Required. List of multiplexer sessions to register with the session management service to track as the sessions are open."""

    def __init__(
        self,
        *,
        multiplexer_sessions: collections.abc.Iterable[global___MultiplexerSessionInformation] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["multiplexer_sessions", b"multiplexer_sessions"]) -> None: ...

global___RegisterMultiplexerSessionsRequest = RegisterMultiplexerSessionsRequest

@typing.final
class RegisterMultiplexerSessionsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___RegisterMultiplexerSessionsResponse = RegisterMultiplexerSessionsResponse

@typing.final
class UnregisterMultiplexerSessionsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MULTIPLEXER_SESSIONS_FIELD_NUMBER: builtins.int
    @property
    def multiplexer_sessions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MultiplexerSessionInformation]:
        """Required. List of multiplexer sessions to unregister with the session management service to mark them as sessions were closed."""

    def __init__(
        self,
        *,
        multiplexer_sessions: collections.abc.Iterable[global___MultiplexerSessionInformation] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["multiplexer_sessions", b"multiplexer_sessions"]) -> None: ...

global___UnregisterMultiplexerSessionsRequest = UnregisterMultiplexerSessionsRequest

@typing.final
class UnregisterMultiplexerSessionsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___UnregisterMultiplexerSessionsResponse = UnregisterMultiplexerSessionsResponse

@typing.final
class GetMultiplexerSessionsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PIN_MAP_CONTEXT_FIELD_NUMBER: builtins.int
    MULTIPLEXER_TYPE_ID_FIELD_NUMBER: builtins.int
    multiplexer_type_id: builtins.str
    """Optional. User-defined identifier for the multiplexer type in the pin map editor.
    If unspecified, information for all multiplexer types is returned.
    """
    @property
    def pin_map_context(self) -> ni.measurementlink.pin_map_context_pb2.PinMapContext:
        """Required. Includes the pin map ID for the pin map in the Pin Map Service, as well as the list of sites for the measurement."""

    def __init__(
        self,
        *,
        pin_map_context: ni.measurementlink.pin_map_context_pb2.PinMapContext | None = ...,
        multiplexer_type_id: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["pin_map_context", b"pin_map_context"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["multiplexer_type_id", b"multiplexer_type_id", "pin_map_context", b"pin_map_context"]) -> None: ...

global___GetMultiplexerSessionsRequest = GetMultiplexerSessionsRequest

@typing.final
class GetMultiplexerSessionsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MULTIPLEXER_SESSIONS_FIELD_NUMBER: builtins.int
    @property
    def multiplexer_sessions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MultiplexerSessionInformation]:
        """List of information needed to create or use each multiplexer session for the given pin map context and multiplexer type ID."""

    def __init__(
        self,
        *,
        multiplexer_sessions: collections.abc.Iterable[global___MultiplexerSessionInformation] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["multiplexer_sessions", b"multiplexer_sessions"]) -> None: ...

global___GetMultiplexerSessionsResponse = GetMultiplexerSessionsResponse

@typing.final
class GetAllRegisteredMultiplexerSessionsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MULTIPLEXER_TYPE_ID_FIELD_NUMBER: builtins.int
    multiplexer_type_id: builtins.str
    """Optional. User-defined identifier for the multiplexer type in the pin map editor.
    If unspecified, information for all registered multiplexer types is returned.
    """
    def __init__(
        self,
        *,
        multiplexer_type_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["multiplexer_type_id", b"multiplexer_type_id"]) -> None: ...

global___GetAllRegisteredMultiplexerSessionsRequest = GetAllRegisteredMultiplexerSessionsRequest

@typing.final
class GetAllRegisteredMultiplexerSessionsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MULTIPLEXER_SESSIONS_FIELD_NUMBER: builtins.int
    @property
    def multiplexer_sessions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MultiplexerSessionInformation]:
        """Multiplexer sessions currently registered in the session management service."""

    def __init__(
        self,
        *,
        multiplexer_sessions: collections.abc.Iterable[global___MultiplexerSessionInformation] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["multiplexer_sessions", b"multiplexer_sessions"]) -> None: ...

global___GetAllRegisteredMultiplexerSessionsResponse = GetAllRegisteredMultiplexerSessionsResponse

@typing.final
class ResolvedPinsOrRelays(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PIN_OR_RELAY_NAMES_FIELD_NUMBER: builtins.int
    @property
    def pin_or_relay_names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """List of pin or relay names in the pin or relay group."""

    def __init__(
        self,
        *,
        pin_or_relay_names: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["pin_or_relay_names", b"pin_or_relay_names"]) -> None: ...

global___ResolvedPinsOrRelays = ResolvedPinsOrRelays

@typing.final
class GetSessionsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    INSTRUMENT_TYPE_ID_FIELD_NUMBER: builtins.int
    MULTIPLEXER_TYPE_ID_FIELD_NUMBER: builtins.int
    instrument_type_id: builtins.str
    """Optional. Instrument type ID of the instruments.
    If unspecified, information for all instrument types is returned.
    """
    multiplexer_type_id: builtins.str
    """Optional. User-defined identifier for the multiplexers.
    If unspecified, information for all registered multiplexer types is returned.
    """
    def __init__(
        self,
        *,
        instrument_type_id: builtins.str = ...,
        multiplexer_type_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["instrument_type_id", b"instrument_type_id", "multiplexer_type_id", b"multiplexer_type_id"]) -> None: ...

global___GetSessionsRequest = GetSessionsRequest

@typing.final
class GetSessionsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SESSIONS_FIELD_NUMBER: builtins.int
    MULTIPLEXER_SESSIONS_FIELD_NUMBER: builtins.int
    @property
    def sessions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SessionInformation]:
        """List of reserved or registered instrument sessions."""

    @property
    def multiplexer_sessions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___MultiplexerSessionInformation]:
        """List of registered multiplexer sessions."""

    def __init__(
        self,
        *,
        sessions: collections.abc.Iterable[global___SessionInformation] | None = ...,
        multiplexer_sessions: collections.abc.Iterable[global___MultiplexerSessionInformation] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["multiplexer_sessions", b"multiplexer_sessions", "sessions", b"sessions"]) -> None: ...

global___GetSessionsResponse = GetSessionsResponse
