"""
The transport decorator (~transport).
This decorator allows changes to agent response behaviour and queue status updates.
"""
from marshmallow import fields
from marshmallow.validate import OneOf
from ..models.base import BaseModel, BaseModelSchema
from ..valid import UUIDFour
[docs]class TransportDecorator(BaseModel):
"""Class representing the transport decorator."""
def __init__(
self,
*,
return_route: str = None,
return_route_thread: str = None,
queued_message_count: int = None,
):
"""
Initialize a TransportDecorator instance.
Args:
return_route: Set the return routing mode
return_route_thread: Identify the thread to enable return routing for
queued_message_count: Indicate the number of queued messages
"""
super(TransportDecorator, self).__init__()
self.return_route = return_route
self.return_route_thread = return_route_thread
self.queued_message_count = queued_message_count
[docs]class TransportDecoratorSchema(BaseModelSchema):
"""Transport decorator schema used in serialization/deserialization."""
return_route = fields.Str(
required=False,
description="Return routing mode: none, all, or thread",
example="all",
validate=OneOf(["none", "all", "thread"]),
)
return_route_thread = fields.Str(
required=False,
description="Identifier for thread for which to enable return routing",
example=UUIDFour.EXAMPLE,
)
queued_message_count = fields.Int(
required=False, description="Number of queued messages", example=3,
)