opsicommon.messagebus package¶
Submodules¶
opsicommon.messagebus.file_transfer module¶
This file is part of opsi - https://www.opsi.org
- class opsicommon.messagebus.file_transfer.FileDownload(file_download_request, send_message, sender='@', back_channel=None)¶
- Bases: - FileTransfer- Parameters:
- file_download_request ( - FileDownloadRequestMessage)
- send_message ( - Callable)
- sender ( - str)
- back_channel ( - str|- None)
 
 - async send_data()¶
- Return type:
- None
 
 - async start()¶
- Return type:
- None
 
 
- class opsicommon.messagebus.file_transfer.FileTransfer(send_message, file_request, sender='@', back_channel=None)¶
- Bases: - object- Parameters:
- send_message ( - Callable)
- file_request ( - FileDownloadRequestMessage|- FileUploadRequestMessage)
- sender ( - str)
- back_channel ( - str|- None)
 
 - chunk_timeout = 300¶
 - 
default_destination: Path|None= None¶
 - async process_file_chunk(message)¶
- Parameters:
- message ( - FileChunkMessage)
- Return type:
- None
 
 - async stop()¶
- Return type:
- None
 
 
- class opsicommon.messagebus.file_transfer.FileUpload(file_upload_request, send_message, sender='@', back_channel=None)¶
- Bases: - FileTransfer- Parameters:
- file_upload_request ( - FileUploadRequestMessage)
- send_message ( - Callable)
- sender ( - str)
- back_channel ( - str|- None)
 
 - async start()¶
- Return type:
- None
 
 
- opsicommon.messagebus.file_transfer.calc_no_of_chunks(file_size, chunk_size)¶
- Parameters:
- file_size ( - int)
- chunk_size ( - int)
 
- Return type:
- int
 
- async opsicommon.messagebus.file_transfer.process_messagebus_message(message, send_message, *, sender='@', back_channel=None)¶
- Parameters:
- message ( - FileTransferMessage)
- send_message ( - Callable)
- sender ( - str)
- back_channel ( - str|- None)
 
- Return type:
- None
 
- opsicommon.messagebus.file_transfer.remove_file_transfer(file_id)¶
- Parameters:
- file_id ( - str)
- Return type:
- None
 
- async opsicommon.messagebus.file_transfer.stop_running_file_transfers()¶
- Return type:
- None
 
opsicommon.messagebus.message module¶
This file is part of opsi - https://www.opsi.org
- class opsicommon.messagebus.message.ChannelSubscriptionEventMessage(**data)¶
- Bases: - Message- Message for confirming channel access - Is response to ChannelSubscriptionRequestMessage and contains total subscribed_channels or error. - Parameters:
- data ( - Any)
 - error: Error | None¶
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'error': FieldInfo(annotation=Union[Error, NoneType], required=False, default=None), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'subscribed_channels': FieldInfo(annotation=list[str], required=False, default_factory=list), 'type': FieldInfo(annotation=str, required=False, default='channel_subscription_event')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - subscribed_channels: list[str]¶
 - type: str¶
 
- class opsicommon.messagebus.message.ChannelSubscriptionOperation(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)¶
- Bases: - StrEnum- ADD = 'add'¶
 - REMOVE = 'remove'¶
 - SET = 'set'¶
 
- class opsicommon.messagebus.message.ChannelSubscriptionRequestMessage(**data)¶
- Bases: - Message- Message for requesting channel access - Can be used to set, add or remove subscribed channels. - Parameters:
- data ( - Any)
 - channels: list[str]¶
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'channels': FieldInfo(annotation=list[str], required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'operation': FieldInfo(annotation=str, required=False, default='set'), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=str, required=False, default='channel_subscription_request')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - operation: str¶
 - type: str¶
 
- class opsicommon.messagebus.message.Error(**data)¶
- Bases: - BaseModel- Parameters:
- data ( - Any)
 - code: ErrorCode | Annotated[int, AfterValidator(lambda x: None)] | None¶
 - details: Any¶
 - message: str¶
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'code': FieldInfo(annotation=Union[ErrorCode, Annotated[int, AfterValidator], NoneType], required=False, default=None), 'details': FieldInfo(annotation=Any, required=False, default=None), 'message': FieldInfo(annotation=str, required=True)}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 
- class opsicommon.messagebus.message.ErrorCode(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)¶
- Bases: - StrEnum- FILE_NOT_FOUND = 'file_not_found'¶
 - PERMISSION_ERROR = 'permission_error'¶
 - TIMEOUT_REACHED = 'timeout_reached'¶
 
- class opsicommon.messagebus.message.EventMessage(**data)¶
- Bases: - Message- Class for Event Messages - Used to notify messagebus of an event that occured. - Parameters:
- data ( - Any)
 - data: dict[str, Any]¶
 - event: str¶
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'data': FieldInfo(annotation=dict[str, Any], required=False, default_factory=dict), 'event': FieldInfo(annotation=str, required=True), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=str, required=False, default='event')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - type: str¶
 
- class opsicommon.messagebus.message.FileChunkMessage(**data)¶
- Bases: - FileTransferMessage- Message to send a chunk of a file - Contains the chunk number (for ordering in assembly) and the actual data as bytes. The last chunk of a file should contain last=True to conclude the upload. - Parameters:
- data ( - Any)
 - data: bytes¶
 - last: bool¶
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'data': FieldInfo(annotation=bytes, required=True), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'file_id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'last': FieldInfo(annotation=bool, required=False, default=False), 'number': FieldInfo(annotation=int, required=True), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=str, required=False, default='file_chunk')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - number: int¶
 - type: str¶
 
- class opsicommon.messagebus.message.FileDownloadRequestMessage(**data)¶
- Bases: - FileTransferMessage- Message for requesting a file download - Parameters:
- data ( - Any)
 - chunk_size: int | None¶
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'chunk_size': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'file_id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'path': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'terminal_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'type': FieldInfo(annotation=str, required=False, default=<MessageType.FILE_DOWNLOAD_REQUEST: 'file_download_request'>)}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - path: str | None¶
 - terminal_id: str | None¶
 - type: str¶
 
- class opsicommon.messagebus.message.FileDownloadResponseMessage(**data)¶
- Bases: - FileTransferMessage- Message with information like file size, type, number of chunks. - Parameters:
- data ( - Any)
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'file_id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'no_of_chunks': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'size': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'type': FieldInfo(annotation=str, required=False, default=<MessageType.FILE_DOWNLOAD_INFORMATION: 'file_download_information'>)}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - no_of_chunks: int | None¶
 - size: int | None¶
 - type: str¶
 
- class opsicommon.messagebus.message.FileTransferErrorMessage(**data)¶
- Bases: - FileTransferMessage- Message reporting a file transfer related Error - Used to transport Error object via messagebus. - Parameters:
- data ( - Any)
 - error: Error¶
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'error': FieldInfo(annotation=Error, required=True), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'file_id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=str, required=False, default='file_transfer_error')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - type: str¶
 
- class opsicommon.messagebus.message.FileTransferMessage(**data)¶
- Bases: - Message,- ABC- Message regarding a file transfer. - Contains a unique file_id. - Parameters:
- data ( - Any)
 - file_id: UUID4Str¶
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'file_id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=str, required=True)}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 
- class opsicommon.messagebus.message.FileUploadRequestMessage(**data)¶
- Bases: - FileTransferMessage- Message for requesting a file upload - Contains a unique file_id and the MIME content type. May contain name, size, destination directory and an associated terminal id. - Parameters:
- data ( - Any)
 - content_type: str¶
 - destination_dir: str | None¶
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'content_type': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'destination_dir': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'file_id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'name': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'size': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'terminal_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'type': FieldInfo(annotation=str, required=False, default='file_upload_request')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - name: str | None¶
 - size: int | None¶
 - terminal_id: str | None¶
 - type: str¶
 
- class opsicommon.messagebus.message.FileUploadResponseMessage(**data)¶
- Bases: - FileTransferMessage- Message to send as response to a file upload request - Contains the local path of the file to be uploaded. - Parameters:
- data ( - Any)
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'file_id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'path': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=str, required=False, default='file_upload_response')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - path: str | None¶
 - type: str¶
 
- class opsicommon.messagebus.message.FileUploadResultMessage(**data)¶
- Bases: - FileTransferMessage- Message to send after file upload concluded - Contains the path of the uploaded file. - Parameters:
- data ( - Any)
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'file_id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'path': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=str, required=False, default='file_upload_result')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - path: str | None¶
 - type: str¶
 
- class opsicommon.messagebus.message.GeneralErrorMessage(**data)¶
- Bases: - Message- Base Class for Error Messages - Used to transport Error object via messagebus - Parameters:
- data ( - Any)
 - error: Error¶
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'error': FieldInfo(annotation=Error, required=True), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=str, required=False, default='general_error')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - type: str¶
 
- class opsicommon.messagebus.message.JSONRPCRequestMessage(**data)¶
- Bases: - Message- Message for triggering an rpc - Requests the execution of an rpc with given parameters on receiving end. - Parameters:
- data ( - Any)
 - api_version: str¶
 - method: str¶
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'api_version': FieldInfo(annotation=str, required=False, default='1'), 'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'method': FieldInfo(annotation=str, required=True), 'params': FieldInfo(annotation=tuple[Any, ...], required=False, default=()), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'rpc_id': FieldInfo(annotation=Union[str, int], required=False, default_factory=<lambda>), 'sender': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=str, required=False, default='jsonrpc_request')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - params: tuple[Any, ...]¶
 - rpc_id: str | int¶
 - type: str¶
 
- class opsicommon.messagebus.message.JSONRPCResponseMessage(**data)¶
- Bases: - Message- Message for transmitting result of rpc - Is response to JSONRPCRequestMessage and contains either result or an error. rpc_id matches the one specified in the corresponding JSONRPCRequestMessage. - Parameters:
- data ( - Any)
 - error: Any¶
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'error': FieldInfo(annotation=Any, required=False, default=None), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'result': FieldInfo(annotation=Any, required=False, default=None), 'rpc_id': FieldInfo(annotation=Union[str, int], required=True), 'sender': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=str, required=False, default='jsonrpc_response')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - result: Any¶
 - rpc_id: str | int¶
 - type: str¶
 
- class opsicommon.messagebus.message.Message(**data)¶
- Bases: - BaseModel,- ABC- Parameters:
- data ( - Any)
 - back_channel: str | None¶
 - channel: str¶
 - created: int¶
 - expires: int¶
 - classmethod from_dict(data)¶
- Parameters:
- data ( - dict[- str,- Any])
- Return type:
- TypeVar(- MessageT, bound= Message)
 
 - classmethod from_msgpack(data)¶
- Parameters:
- data ( - bytes)
- Return type:
- TypeVar(- MessageT, bound= Message)
 
 - id: UUID4Str¶
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=str, required=True)}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - ref_id: str | None¶
 - property response_channel: str¶
 - sender: str¶
 - to_dict(none_values=False)¶
- Parameters:
- none_values ( - bool)
- Return type:
- dict[- str,- Any]
 
 - to_msgpack(none_values=False)¶
- Parameters:
- none_values ( - bool)
- Return type:
- bytes
 
 - type: str¶
 
- class opsicommon.messagebus.message.MessageType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)¶
- Bases: - StrEnum- CHANNEL_SUBSCRIPTION_EVENT = 'channel_subscription_event'¶
 - CHANNEL_SUBSCRIPTION_REQUEST = 'channel_subscription_request'¶
 - EVENT = 'event'¶
 - FILE_CHUNK = 'file_chunk'¶
 - FILE_DOWNLOAD_INFORMATION = 'file_download_information'¶
 - FILE_DOWNLOAD_REQUEST = 'file_download_request'¶
 - FILE_TRANSFER_ERROR = 'file_transfer_error'¶
 - FILE_UPLOAD_REQUEST = 'file_upload_request'¶
 - FILE_UPLOAD_RESPONSE = 'file_upload_response'¶
 - FILE_UPLOAD_RESULT = 'file_upload_result'¶
 - GENERAL_ERROR = 'general_error'¶
 - JSONRPC_REQUEST = 'jsonrpc_request'¶
 - JSONRPC_RESPONSE = 'jsonrpc_response'¶
 - PROCESS_DATA_READ = 'process_data_read'¶
 - PROCESS_DATA_WRITE = 'process_data_write'¶
 - PROCESS_ERROR = 'process_error'¶
 - PROCESS_START_EVENT = 'process_start_event'¶
 - PROCESS_START_REQUEST = 'process_start_request'¶
 - PROCESS_STOP_EVENT = 'process_stop_event'¶
 - PROCESS_STOP_REQUEST = 'process_stop_request'¶
 - TERMINAL_CLOSE_EVENT = 'terminal_close_event'¶
 - TERMINAL_CLOSE_REQUEST = 'terminal_close_request'¶
 - TERMINAL_DATA_READ = 'terminal_data_read'¶
 - TERMINAL_DATA_WRITE = 'terminal_data_write'¶
 - TERMINAL_ERROR = 'terminal_error'¶
 - TERMINAL_OPEN_EVENT = 'terminal_open_event'¶
 - TERMINAL_OPEN_REQUEST = 'terminal_open_request'¶
 - TERMINAL_RESIZE_EVENT = 'terminal_resize_event'¶
 - TERMINAL_RESIZE_REQUEST = 'terminal_resize_request'¶
 - TRACE_REQUEST = 'trace_request'¶
 - TRACE_RESPONSE = 'trace_response'¶
 
- class opsicommon.messagebus.message.ProcessDataReadMessage(**data)¶
- Bases: - ProcessMessage- Message transmitting process output data - Process stdout and stderr output data is contained as bytes. - Parameters:
- data ( - Any)
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'process_id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'stderr': FieldInfo(annotation=bytes, required=False, default=b''), 'stdout': FieldInfo(annotation=bytes, required=False, default=b''), 'type': FieldInfo(annotation=str, required=False, default='process_data_read')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - stderr: bytes¶
 - stdout: bytes¶
 - type: str¶
 
- class opsicommon.messagebus.message.ProcessDataWriteMessage(**data)¶
- Bases: - ProcessMessage- Message transmitting process input data - Process input data (stdin) is contained as bytes. - Parameters:
- data ( - Any)
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'process_id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'stdin': FieldInfo(annotation=bytes, required=False, default=b''), 'type': FieldInfo(annotation=str, required=False, default='process_data_write')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - stdin: bytes¶
 - type: str¶
 
- class opsicommon.messagebus.message.ProcessErrorMessage(**data)¶
- Bases: - ProcessMessage- Message reporting a process related Error - Used to transport Error object via messagebus. - Parameters:
- data ( - Any)
 - error: Error¶
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'error': FieldInfo(annotation=Error, required=True), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'process_id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=str, required=False, default='process_error')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - type: str¶
 
- class opsicommon.messagebus.message.ProcessMessage(**data)¶
- Bases: - Message,- ABC- Message regarding a process. - Contains a unique process_id. - Parameters:
- data ( - Any)
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'process_id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=str, required=True)}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - process_id: UUID4Str¶
 
- class opsicommon.messagebus.message.ProcessStartEventMessage(**data)¶
- Bases: - ProcessMessage- Message to respond to ProcessStartRequestMessage - Contains the local process id. - Parameters:
- data ( - Any)
 - locale_encoding: str | None¶
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'locale_encoding': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'os_process_id': FieldInfo(annotation=int, required=True, alias_priority=2, validation_alias=AliasChoices(choices=['os_process_id', 'local_process_id'])), 'process_id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=str, required=False, default='process_start_event')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - os_process_id: int¶
 - type: str¶
 
- class opsicommon.messagebus.message.ProcessStartRequestMessage(**data)¶
- Bases: - ProcessMessage- Message requesting to start a process - Contains a unique process_id and the command to execute as tuple. Optional timeout. - Parameters:
- data ( - Any)
 - command: tuple[str, ...]¶
 - env: dict[str, str]¶
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'command': FieldInfo(annotation=tuple[str, ...], required=False, default=()), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'env': FieldInfo(annotation=dict[str, str], required=False, default_factory=dict), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'process_id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'shell': FieldInfo(annotation=bool, required=False, default=False), 'timeout': FieldInfo(annotation=int, required=False, default=0), 'type': FieldInfo(annotation=str, required=False, default='process_start_request')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - shell: bool¶
 - timeout: int¶
 - type: str¶
 
- class opsicommon.messagebus.message.ProcessStopEventMessage(**data)¶
- Bases: - ProcessMessage- Message to respond to ProcessStopRequestMessage - Contains the exit code of the process. May contain error. - Parameters:
- data ( - Any)
 - exit_code: int¶
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'exit_code': FieldInfo(annotation=int, required=True), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'process_id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=str, required=False, default='process_stop_event')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - type: str¶
 
- class opsicommon.messagebus.message.ProcessStopRequestMessage(**data)¶
- Bases: - ProcessMessage- Message requesting to stop a running process - Contains the local process id. - Parameters:
- data ( - Any)
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'process_id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'type': FieldInfo(annotation=str, required=False, default='process_stop_request')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - type: str¶
 
- class opsicommon.messagebus.message.TerminalCloseEventMessage(**data)¶
- Bases: - TerminalMessage- Message to respond to TerminalCloseRequestMessage - Parameters:
- data ( - Any)
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'terminal_id': FieldInfo(annotation=str, required=True, metadata=[MinLen(min_length=1)]), 'type': FieldInfo(annotation=str, required=False, default='terminal_close_event')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - type: str¶
 
- class opsicommon.messagebus.message.TerminalCloseRequestMessage(**data)¶
- Bases: - TerminalMessage- Message to request a terminal to be closed - Contains terminal_id for open termial to be closed. - Parameters:
- data ( - Any)
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'terminal_id': FieldInfo(annotation=str, required=True, metadata=[MinLen(min_length=1)]), 'type': FieldInfo(annotation=str, required=False, default='terminal_close_request')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - type: str¶
 
- class opsicommon.messagebus.message.TerminalDataReadMessage(**data)¶
- Bases: - TerminalMessage- Message transmitting terminal output data - Terminal output data is contained as bytes. - Parameters:
- data ( - Any)
 - data: bytes¶
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'data': FieldInfo(annotation=bytes, required=True), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'terminal_id': FieldInfo(annotation=str, required=True, metadata=[MinLen(min_length=1)]), 'type': FieldInfo(annotation=str, required=False, default='terminal_data_read')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - type: str¶
 
- class opsicommon.messagebus.message.TerminalDataWriteMessage(**data)¶
- Bases: - TerminalMessage- Message transmitting terminal input data - Terminal input data (stdin) is contained as bytes. - Parameters:
- data ( - Any)
 - data: bytes¶
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'data': FieldInfo(annotation=bytes, required=True), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'terminal_id': FieldInfo(annotation=str, required=True, metadata=[MinLen(min_length=1)]), 'type': FieldInfo(annotation=str, required=False, default='terminal_data_write')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - type: str¶
 
- class opsicommon.messagebus.message.TerminalErrorMessage(**data)¶
- Bases: - TerminalMessage- Message reporting a terminal related Error - Used to transport Error object via messagebus. - Parameters:
- data ( - Any)
 - error: Error¶
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'error': FieldInfo(annotation=Error, required=True), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'terminal_id': FieldInfo(annotation=str, required=True, metadata=[MinLen(min_length=1)]), 'type': FieldInfo(annotation=str, required=False, default='terminal_error')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - type: str¶
 
- class opsicommon.messagebus.message.TerminalMessage(**data)¶
- Bases: - Message,- ABC- Message interacting with a terminal - terminal_id is used as an identifier. - Parameters:
- data ( - Any)
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'terminal_id': FieldInfo(annotation=str, required=True, metadata=[MinLen(min_length=1)]), 'type': FieldInfo(annotation=str, required=True)}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - terminal_id: str¶
 
- class opsicommon.messagebus.message.TerminalOpenEventMessage(**data)¶
- Bases: - TerminalMessage- Message to respond to TerminalOpenRequestMessage - Contains number of rows and columns. - Parameters:
- data ( - Any)
 - cols: int¶
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'cols': FieldInfo(annotation=int, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'rows': FieldInfo(annotation=int, required=True), 'sender': FieldInfo(annotation=str, required=True), 'terminal_id': FieldInfo(annotation=str, required=True, metadata=[MinLen(min_length=1)]), 'type': FieldInfo(annotation=str, required=False, default='terminal_open_event')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - rows: int¶
 - type: str¶
 
- class opsicommon.messagebus.message.TerminalOpenRequestMessage(**data)¶
- Bases: - TerminalMessage- Message requesting to open a terminal - Shell and number of rows and columns can be specified. If a terminal with that id already exists, access to this terminal may be granted resulting in shared access to it. - Parameters:
- data ( - Any)
 - cols: int | None¶
 - env: dict[str, str]¶
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'cols': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'env': FieldInfo(annotation=dict[str, str], required=False, default_factory=dict), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'rows': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'shell': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'terminal_id': FieldInfo(annotation=str, required=True, metadata=[MinLen(min_length=1)]), 'type': FieldInfo(annotation=str, required=False, default='terminal_open_request')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - rows: int | None¶
 - shell: str | None¶
 - type: str¶
 
- class opsicommon.messagebus.message.TerminalResizeEventMessage(**data)¶
- Bases: - TerminalMessage- Message to respond to TerminalResizeRequestMessage - Contains new number of rows and columns. - Parameters:
- data ( - Any)
 - cols: int¶
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'cols': FieldInfo(annotation=int, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'rows': FieldInfo(annotation=int, required=True), 'sender': FieldInfo(annotation=str, required=True), 'terminal_id': FieldInfo(annotation=str, required=True, metadata=[MinLen(min_length=1)]), 'type': FieldInfo(annotation=str, required=False, default='terminal_resize_event')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - rows: int¶
 - type: str¶
 
- class opsicommon.messagebus.message.TerminalResizeRequestMessage(**data)¶
- Bases: - TerminalMessage- Message requesting to resize an open terminal - Contains new number of rows and columns for an already open terminal. - Parameters:
- data ( - Any)
 - cols: int¶
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'cols': FieldInfo(annotation=int, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'rows': FieldInfo(annotation=int, required=True), 'sender': FieldInfo(annotation=str, required=True), 'terminal_id': FieldInfo(annotation=str, required=True, metadata=[MinLen(min_length=1)]), 'type': FieldInfo(annotation=str, required=False, default='terminal_resize_request')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - rows: int¶
 - type: str¶
 
- class opsicommon.messagebus.message.TraceRequestMessage(**data)¶
- Bases: - Message- Message for tracing transmission times - It contains trace data (timestamp of sending). - Parameters:
- data ( - Any)
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'payload': FieldInfo(annotation=Union[bytes, NoneType], required=False, default=None), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'sender': FieldInfo(annotation=str, required=True), 'trace': FieldInfo(annotation=dict[str, Any], required=False, default_factory=dict), 'type': FieldInfo(annotation=str, required=False, default='trace_request')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - payload: bytes | None¶
 - trace: dict[str, Any]¶
 - type: str¶
 
- class opsicommon.messagebus.message.TraceResponseMessage(**data)¶
- Bases: - Message- Message for tracing transmission times (response) - It contains trace data (timestamp of sending, receiving request and response). - Parameters:
- data ( - Any)
 - model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}¶
- A dictionary of computed field names and their corresponding ComputedFieldInfo objects. 
 - model_config: ClassVar[ConfigDict] = {}¶
- Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict]. 
 - model_fields: ClassVar[dict[str, FieldInfo]] = {'back_channel': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'channel': FieldInfo(annotation=str, required=True), 'created': FieldInfo(annotation=int, required=False, default_factory=timestamp), 'expires': FieldInfo(annotation=int, required=False, default_factory=<lambda>), 'id': FieldInfo(annotation=str, required=False, default_factory=<lambda>, metadata=[StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=True, min_length=None, max_length=None, pattern='^[0-9a-f]{8}\\-[0-9a-f]{4}\\-4[0-9a-f]{3}\\-[89ab][0-9a-f]{3}\\-[0-9a-f]{12}$')]), 'payload': FieldInfo(annotation=Union[bytes, NoneType], required=False, default=None), 'ref_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'req_trace': FieldInfo(annotation=dict[str, Any], required=True), 'sender': FieldInfo(annotation=str, required=True), 'trace': FieldInfo(annotation=dict[str, Any], required=True), 'type': FieldInfo(annotation=str, required=False, default='trace_response')}¶
- Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo]. - This replaces Model.__fields__ from Pydantic V1. 
 - payload: bytes | None¶
 - req_trace: dict[str, Any]¶
 - trace: dict[str, Any]¶
 - type: str¶
 
- opsicommon.messagebus.message.timestamp(add_seconds=0.0)¶
- Returns the current time (UTC) as messagebus timestamp. add_seconds can be used to add or subtract seconds from the current time. - Parameters:
- add_seconds ( - float)
- Return type:
- int
 
opsicommon.messagebus.process module¶
This file is part of opsi - https://www.opsi.org
- class opsicommon.messagebus.process.Process(process_start_request, send_message, sender='@', back_channel=None)¶
- Bases: - object- Parameters:
- process_start_request ( - ProcessStartRequestMessage)
- send_message ( - Callable)
- sender ( - str)
- back_channel ( - str|- None)
 
 - async close_stdin()¶
- Return type:
- None
 
 - max_data_size = 8192¶
 - async start()¶
- Return type:
- None
 
 - async stop()¶
- Return type:
- None
 
 - async write_stdin(data)¶
- Parameters:
- data ( - bytes)
- Return type:
- None
 
 
- opsicommon.messagebus.process.get_locale_encoding(shell=False)¶
- Parameters:
- shell ( - bool)
- Return type:
- str
 
- async opsicommon.messagebus.process.process_messagebus_message(message, send_message, *, sender='@', back_channel=None)¶
- Parameters:
- message ( - ProcessMessage)
- send_message ( - Callable)
- sender ( - str)
- back_channel ( - str|- None)
 
- Return type:
- None
 
- opsicommon.messagebus.process.remove_process(process_id)¶
- Parameters:
- process_id ( - str)
- Return type:
- None
 
- async opsicommon.messagebus.process.stop_running_processes()¶
- Return type:
- None
 
opsicommon.messagebus.terminal module¶
This file is part of opsi - https://www.opsi.org
- class opsicommon.messagebus.terminal.Terminal(terminal_open_request, send_message, sender='@', back_channel=None, default_shell=None)¶
- Bases: - object- Parameters:
- terminal_open_request ( - TerminalOpenRequestMessage)
- send_message ( - Callable)
- sender ( - str)
- back_channel ( - str|- None)
- default_shell ( - str|- None)
 
 - async close(message=None, use_terminals_lock=True)¶
- Parameters:
- message ( - TerminalCloseRequestMessage|- None)
- use_terminals_lock ( - bool)
 
- Return type:
- None
 
 - default_cols = 120¶
 - default_rows = 30¶
 - get_cwd()¶
- Return type:
- Path|- None
 
 - idle_timeout = 28800¶
 - max_cols = 300¶
 - max_rows = 100¶
 - async process_message(message)¶
- Parameters:
- message ( - TerminalDataWriteMessage|- TerminalResizeRequestMessage|- TerminalCloseRequestMessage)
- Return type:
- None
 
 - pty_reader_block_size = 16384¶
 - async reuse(terminal_open_request)¶
- Parameters:
- terminal_open_request ( - TerminalOpenRequestMessage)
- Return type:
- None
 
 - async set_size(rows=None, cols=None)¶
- Parameters:
- rows ( - int|- None)
- cols ( - int|- None)
 
- Return type:
- None
 
 - async start()¶
- Return type:
- None
 
 - property terminal_id: str¶
 
- async opsicommon.messagebus.terminal.process_messagebus_message(message, send_message, *, sender='@', back_channel=None)¶
- Parameters:
- message ( - TerminalMessage)
- send_message ( - Callable)
- sender ( - str)
- back_channel ( - str|- None)
 
- Return type:
- None
 
- opsicommon.messagebus.terminal.remove_terminal(terminal_id)¶
- Parameters:
- terminal_id ( - str)
- Return type:
- None
 
- opsicommon.messagebus.terminal.start_pty(shell, rows=30, cols=120, cwd=None, env=None)¶
- Parameters:
- shell ( - str)
- rows ( - int|- None)
- cols ( - int|- None)
- cwd ( - str|- None)
- env ( - dict[- str,- str] |- None)
 
- Return type:
- tuple[- int,- Callable,- Callable,- Callable,- Callable]
 
- async opsicommon.messagebus.terminal.stop_running_terminals()¶
- Return type:
- None
 
Module contents¶
This file is part of opsi - https://www.opsi.org