Source code for aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.mediate_request

"""mediate-request message used to request mediation from a mediator."""

from typing import Sequence

from marshmallow import fields

from .....messaging.agent_message import AgentMessage, AgentMessageSchema

from ..message_types import MEDIATE_REQUEST, PROTOCOL_PACKAGE

HANDLER_CLASS = (
    f"{PROTOCOL_PACKAGE}.handlers.mediation_request_handler.MediationRequestHandler"
)


[docs]class MediationRequest(AgentMessage): """Represents a request for mediation."""
[docs] class Meta: """MediationRequest metadata.""" handler_class = HANDLER_CLASS message_type = MEDIATE_REQUEST schema_class = "MediationRequestSchema"
def __init__( self, *, mediator_terms: Sequence[str] = None, recipient_terms: Sequence[str] = None, **kwargs, ): """ Initialize mediation request object. Args: mediator_terms: Mediator's terms for granting mediation. recipient_terms: Recipient's proposed mediation terms. """ super(MediationRequest, self).__init__(**kwargs) self.mediator_terms = list(mediator_terms) if mediator_terms else [] self.recipient_terms = list(recipient_terms) if recipient_terms else []
[docs]class MediationRequestSchema(AgentMessageSchema): """Mediation request schema class."""
[docs] class Meta: """Mediation request schema metadata.""" model_class = MediationRequest
mediator_terms = fields.List( fields.Str( description="Indicate terms that the mediator " "requires the recipient to agree to" ), required=False, description="List of mediator rules for recipient", ) recipient_terms = fields.List( fields.Str( description="Indicate terms that the recipient " "requires the mediator to agree to" ), required=False, )