"""Represents a protocol discovery disclosure message."""
from typing import Mapping
from marshmallow import fields, Schema
from ...agent_message import AgentMessage, AgentMessageSchema
from ..message_types import DISCLOSE
HANDLER_CLASS = (
"aries_cloudagent.messaging.discovery.handlers.disclose_handler.DiscloseHandler"
)
[docs]class Disclose(AgentMessage):
"""Represents a protocol discovery disclosure, the response to a query message."""
def __init__(self, *, protocols: Mapping[str, Mapping] = None, **kwargs):
"""
Initialize disclose message object.
Args:
protocols: A mapping of protocol names to a dictionary of properties
"""
super(Disclose, self).__init__(**kwargs)
self.protocols = list(protocols) if protocols else []
[docs]class ProtocolDescriptorSchema(Schema):
"""Schema for an entry in the protocols list."""
pid = fields.Str(required=True)
roles = fields.List(fields.Str(), required=False, allow_none=True)
[docs]class DiscloseSchema(AgentMessageSchema):
"""Disclose message schema used in serialization/deserialization."""
protocols = fields.List(fields.Nested(ProtocolDescriptorSchema()), required=True)