Source code for aries_cloudagent.protocols.actionmenu.v1_0.messages.perform
"""Represents a request to perform a menu action."""
from typing import Mapping
from marshmallow import EXCLUDE, fields
from .....messaging.agent_message import AgentMessage, AgentMessageSchema
from ..message_types import PERFORM, PROTOCOL_PACKAGE
HANDLER_CLASS = f"{PROTOCOL_PACKAGE}.handlers.perform_handler.PerformHandler"
[docs]class Perform(AgentMessage):
"""Class representing a request to perform a menu action."""
[docs] class Meta:
"""Perform metadata."""
handler_class = HANDLER_CLASS
message_type = PERFORM
schema_class = "PerformSchema"
def __init__(self, *, name: str = None, params: Mapping[str, str] = None, **kwargs):
"""Initialize a Perform object.
Args:
name: The name of the menu option
params: Input parameter values
"""
super().__init__(**kwargs)
self.name = name
self.params = params
[docs]class PerformSchema(AgentMessageSchema):
"""Perform schema class."""
name = fields.Str(
required=True, metadata={"description": "Menu option name", "example": "Query"}
)
params = fields.Dict(
required=False,
keys=fields.Str(metadata={"example": "parameter"}),
values=fields.Str(metadata={"example": "value"}),
)