aries_cloudagent.protocols.coordinate_mediation.v1_0 package
Subpackages
- aries_cloudagent.protocols.coordinate_mediation.v1_0.handlers package
- Submodules
- aries_cloudagent.protocols.coordinate_mediation.v1_0.handlers.keylist_handler module
- aries_cloudagent.protocols.coordinate_mediation.v1_0.handlers.keylist_query_handler module
- aries_cloudagent.protocols.coordinate_mediation.v1_0.handlers.keylist_update_handler module
- aries_cloudagent.protocols.coordinate_mediation.v1_0.handlers.keylist_update_response_handler module
- aries_cloudagent.protocols.coordinate_mediation.v1_0.handlers.mediation_deny_handler module
- aries_cloudagent.protocols.coordinate_mediation.v1_0.handlers.mediation_grant_handler module
- aries_cloudagent.protocols.coordinate_mediation.v1_0.handlers.mediation_request_handler module
- aries_cloudagent.protocols.coordinate_mediation.v1_0.handlers.problem_report_handler module
- aries_cloudagent.protocols.coordinate_mediation.v1_0.messages package
- Subpackages
- aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.inner package
- Submodules
- aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.inner.keylist_key module
- aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.inner.keylist_query_paginate module
- aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.inner.keylist_update_rule module
- aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.inner.keylist_updated module
- aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.inner package
- Submodules
- aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.keylist module
- aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.keylist_query module
- aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.keylist_update module
- aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.keylist_update_response module
- aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.mediate_deny module
- aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.mediate_grant module
- aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.mediate_request module
- aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.problem_report module
- Subpackages
- aries_cloudagent.protocols.coordinate_mediation.v1_0.models package
Submodules
aries_cloudagent.protocols.coordinate_mediation.v1_0.controller module
Protocol controller for coordinate mediation.
aries_cloudagent.protocols.coordinate_mediation.v1_0.manager module
Manager for Mediation coordination.
- exception aries_cloudagent.protocols.coordinate_mediation.v1_0.manager.MediationAlreadyExists(*args, error_code: Optional[str] = None, **kwargs)[source]
Bases:
aries_cloudagent.protocols.coordinate_mediation.v1_0.manager.MediationManagerError
Raised on mediation record already exists for given connection.
- class aries_cloudagent.protocols.coordinate_mediation.v1_0.manager.MediationManager(profile: aries_cloudagent.core.profile.Profile)[source]
Bases:
object
Class for handling Mediation.
MediationManager creates or retrieves a routing DID as a means to hand out a consistent routing key to mediation clients.
- DEFAULT_MEDIATOR_RECORD_TYPE = 'default_mediator'
- KEYLIST_UPDATED_EVENT = 'acapy::keylist::updated'
- METADATA_ID = 'id'
- METADATA_KEY = 'mediation'
- ROUTING_DID_RECORD_TYPE = 'routing_did'
- SEND_REQ_AFTER_CONNECTION = 'send_mediation_request_on_connection'
- SET_TO_DEFAULT_ON_GRANTED = 'set_to_default_on_granted'
- async add_key(recipient_key: str, message: Optional[aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.keylist_update.KeylistUpdate] = None) aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.keylist_update.KeylistUpdate [source]
Prepare a keylist update add.
- Parameters
recipient_key (str) – key to add
message (Optional[KeylistUpdate]) – append update to message
- Returns
Message to send to mediator to notify of key addition.
- Return type
KeylistUpdate
- async create_keylist_query_response(keylist: Sequence[aries_cloudagent.protocols.routing.v1_0.models.route_record.RouteRecord]) aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.keylist.Keylist [source]
Prepare a keylist message from keylist.
- Parameters
keylist (Sequence[RouteRecord]) – keylist to format into message
- Returns
message to return to client
- Return type
Keylist
- async deny_request(mediation_id: str) Tuple[aries_cloudagent.protocols.coordinate_mediation.v1_0.models.mediation_record.MediationRecord, aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.mediate_deny.MediationDeny] [source]
Deny a mediation request and prepare a deny message.
- Parameters
mediation_id – mediation record ID to deny
- Returns
message to return to denied client.
- Return type
MediationDeny
- async get_default_mediator() Optional[aries_cloudagent.protocols.coordinate_mediation.v1_0.models.mediation_record.MediationRecord] [source]
Retrieve default mediator from the store.
- Returns
retrieved default mediator or None if not set
- Return type
Optional[MediationRecord]
- async get_default_mediator_id() Optional[str] [source]
Retrieve default mediator ID from the store.
- Returns
retrieved default mediator ID or None if not set
- Return type
Optional[str]
- async get_keylist(record: aries_cloudagent.protocols.coordinate_mediation.v1_0.models.mediation_record.MediationRecord) Sequence[aries_cloudagent.protocols.routing.v1_0.models.route_record.RouteRecord] [source]
Retrieve keylist for mediation client.
- Parameters
record (MediationRecord) – record associated with client keylist
- Returns
sequence of routes (the keylist)
- Return type
Sequence[RouteRecord]
- async get_my_keylist(connection_id: Optional[str] = None) Sequence[aries_cloudagent.protocols.routing.v1_0.models.route_record.RouteRecord] [source]
Get my routed keys.
- Parameters
connection_id (Optional[str]) – connection id of mediator
- Returns
list of routes (the keylist)
- Return type
Sequence[RouteRecord]
- async grant_request(mediation_id: str) Tuple[aries_cloudagent.protocols.coordinate_mediation.v1_0.models.mediation_record.MediationRecord, aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.mediate_grant.MediationGrant] [source]
Grant a mediation request and prepare grant message.
- Parameters
mediation_id – mediation record ID to grant
- Returns
updated mediation record and message to return to grantee
- Return type
(MediationRecord, MediationGrant)
- async prepare_keylist_query(filter_: Optional[dict] = None, paginate_limit: int = - 1, paginate_offset: int = 0) aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.keylist_query.KeylistQuery [source]
Prepare keylist query message.
- async prepare_request(connection_id: str) Tuple[aries_cloudagent.protocols.coordinate_mediation.v1_0.models.mediation_record.MediationRecord, aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.mediate_request.MediationRequest] [source]
Prepare a MediationRequest Message, saving a new mediation record.
- Parameters
connection_id (str) – ID representing mediator
- Returns
message to send to mediator
- Return type
MediationRequest
- async receive_request(connection_id: str, request: aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.mediate_request.MediationRequest) aries_cloudagent.protocols.coordinate_mediation.v1_0.models.mediation_record.MediationRecord [source]
Create a new mediation record to track this request.
- Parameters
request (MediationRequest) – request message
- Returns
record created during receipt of request.
- Return type
MediationRecord
- async remove_key(recipient_key: str, message: Optional[aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.keylist_update.KeylistUpdate] = None) aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.keylist_update.KeylistUpdate [source]
Prepare keylist update remove.
- Parameters
recipient_key (str) – key to remove
message (Optional[KeylistUpdate]) – append update to message
- Returns
Message to send to mediator to notify of key removal.
- Return type
KeylistUpdate
- async request_denied(record: aries_cloudagent.protocols.coordinate_mediation.v1_0.models.mediation_record.MediationRecord, deny: aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.mediate_deny.MediationDeny)[source]
Process mediation denied message.
- Parameters
record (MediationRecord) – record representing the denied mediation request
- async request_granted(record: aries_cloudagent.protocols.coordinate_mediation.v1_0.models.mediation_record.MediationRecord, grant: aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.mediate_grant.MediationGrant)[source]
Process mediation grant message.
- Parameters
record (MediationRecord) – record representing the granted mediation request
- async set_default_mediator(record: aries_cloudagent.protocols.coordinate_mediation.v1_0.models.mediation_record.MediationRecord)[source]
Set default mediator from record.
- async store_update_results(connection_id: str, results: Sequence[aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.inner.keylist_updated.KeylistUpdated])[source]
Store results of keylist update from keylist update response message.
- Parameters
connection_id (str) – connection ID of mediator sending results
results (Sequence[KeylistUpdated]) – keylist update results
session – An active profile session
- async update_keylist(record: aries_cloudagent.protocols.coordinate_mediation.v1_0.models.mediation_record.MediationRecord, updates: Sequence[aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.inner.keylist_update_rule.KeylistUpdateRule]) aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.keylist_update_response.KeylistUpdateResponse [source]
Update routes defined in keylist update rules.
- Parameters
record (MediationRecord) – record associated with client updating keylist
updates (Sequence[KeylistUpdateRule]) – updates to apply
- Returns
message to return to client
- Return type
KeylistUpdateResponse
- exception aries_cloudagent.protocols.coordinate_mediation.v1_0.manager.MediationManagerError(*args, error_code: Optional[str] = None, **kwargs)[source]
Bases:
aries_cloudagent.core.error.BaseError
Generic Mediation error.
- exception aries_cloudagent.protocols.coordinate_mediation.v1_0.manager.MediationNotGrantedError(*args, error_code: Optional[str] = None, **kwargs)[source]
Bases:
aries_cloudagent.protocols.coordinate_mediation.v1_0.manager.MediationManagerError
Raised when mediation state should be granted and is not.
aries_cloudagent.protocols.coordinate_mediation.v1_0.message_types module
Message type identifiers for Coordinate Mediation protocol.
aries_cloudagent.protocols.coordinate_mediation.v1_0.normalization module
Normalization methods used while transitioning to DID:Key method.
- aries_cloudagent.protocols.coordinate_mediation.v1_0.normalization.normalize_from_did_key(key: str)[source]
Normalize Recipient/Routing keys from DID:Key to public keys.
- aries_cloudagent.protocols.coordinate_mediation.v1_0.normalization.normalize_from_public_key(key: str)[source]
Normalize Recipient/Routing keys from public keys to DID:Key.
- aries_cloudagent.protocols.coordinate_mediation.v1_0.normalization.normalize_to_did_key(value: Union[str, aries_cloudagent.did.did_key.DIDKey]) aries_cloudagent.did.did_key.DIDKey [source]
Normalize a value to a DIDKey.
aries_cloudagent.protocols.coordinate_mediation.v1_0.route_manager module
Route manager.
Set up routing for newly formed connections.
- class aries_cloudagent.protocols.coordinate_mediation.v1_0.route_manager.CoordinateMediationV1RouteManager[source]
Bases:
aries_cloudagent.protocols.coordinate_mediation.v1_0.route_manager.RouteManager
Manage routes using Coordinate Mediation protocol.
- async routing_info(profile: aries_cloudagent.core.profile.Profile, mediation_record: Optional[aries_cloudagent.protocols.coordinate_mediation.v1_0.models.mediation_record.MediationRecord] = None) aries_cloudagent.protocols.coordinate_mediation.v1_0.route_manager.RoutingInfo [source]
Return routing info for mediator.
- class aries_cloudagent.protocols.coordinate_mediation.v1_0.route_manager.RouteManager[source]
Bases:
abc.ABC
Base Route Manager.
- async connection_from_recipient_key(profile: aries_cloudagent.core.profile.Profile, recipient_key: str) aries_cloudagent.connections.models.conn_record.ConnRecord [source]
Retrieve connection for a recipient_key.
The recipient key is expected to be a local key owned by this agent.
- async get_or_create_my_did(profile: aries_cloudagent.core.profile.Profile, conn_record: aries_cloudagent.connections.models.conn_record.ConnRecord) aries_cloudagent.wallet.did_info.DIDInfo [source]
Create or retrieve DID info for a conneciton.
- async mediation_record_if_id(profile: aries_cloudagent.core.profile.Profile, mediation_id: Optional[str] = None, or_default: bool = False)[source]
Validate mediation and return record.
If mediation_id is not None, validate mediation record state and return record else, return None
- async mediation_records_for_connection(profile: aries_cloudagent.core.profile.Profile, conn_record: aries_cloudagent.connections.models.conn_record.ConnRecord, mediation_id: Optional[str] = None, or_default: bool = False) List[aries_cloudagent.protocols.coordinate_mediation.v1_0.models.mediation_record.MediationRecord] [source]
Return relevant mediator for connection.
- async route_connection(profile: aries_cloudagent.core.profile.Profile, conn_record: aries_cloudagent.connections.models.conn_record.ConnRecord, mediation_records: List[aries_cloudagent.protocols.coordinate_mediation.v1_0.models.mediation_record.MediationRecord]) Optional[aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.keylist_update.KeylistUpdate] [source]
Set up routing for a connection.
This method will evaluate connection state and call the appropriate methods.
- async route_connection_as_invitee(profile: aries_cloudagent.core.profile.Profile, conn_record: aries_cloudagent.connections.models.conn_record.ConnRecord, mediation_records: List[aries_cloudagent.protocols.coordinate_mediation.v1_0.models.mediation_record.MediationRecord]) Optional[aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.keylist_update.KeylistUpdate] [source]
Set up routing for a new connection when we are the invitee.
- async route_connection_as_inviter(profile: aries_cloudagent.core.profile.Profile, conn_record: aries_cloudagent.connections.models.conn_record.ConnRecord, mediation_records: List[aries_cloudagent.protocols.coordinate_mediation.v1_0.models.mediation_record.MediationRecord]) Optional[aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.keylist_update.KeylistUpdate] [source]
Set up routing for a new connection when we are the inviter.
- async route_invitation(profile: aries_cloudagent.core.profile.Profile, conn_record: aries_cloudagent.connections.models.conn_record.ConnRecord, mediation_record: Optional[aries_cloudagent.protocols.coordinate_mediation.v1_0.models.mediation_record.MediationRecord] = None) Optional[aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.keylist_update.KeylistUpdate] [source]
Set up routing for receiving a response to an invitation.
- async route_public_did(profile: aries_cloudagent.core.profile.Profile, verkey: str)[source]
Establish routing for a public DID.
[DEPRECATED] Establish routing for a public DID. Use route_verkey() instead.
- async route_static(profile: aries_cloudagent.core.profile.Profile, conn_record: aries_cloudagent.connections.models.conn_record.ConnRecord, mediation_record: Optional[aries_cloudagent.protocols.coordinate_mediation.v1_0.models.mediation_record.MediationRecord] = None) Optional[aries_cloudagent.protocols.coordinate_mediation.v1_0.messages.keylist_update.KeylistUpdate] [source]
Establish routing for a static connection.
- async route_verkey(profile: aries_cloudagent.core.profile.Profile, verkey: str)[source]
Establish routing for a public DID.
- abstract async routing_info(profile: aries_cloudagent.core.profile.Profile, mediation_record: Optional[aries_cloudagent.protocols.coordinate_mediation.v1_0.models.mediation_record.MediationRecord] = None) aries_cloudagent.protocols.coordinate_mediation.v1_0.route_manager.RoutingInfo [source]
Retrieve routing keys.
- async save_mediator_for_connection(profile: aries_cloudagent.core.profile.Profile, conn_record: aries_cloudagent.connections.models.conn_record.ConnRecord, mediation_record: Optional[aries_cloudagent.protocols.coordinate_mediation.v1_0.models.mediation_record.MediationRecord] = None, mediation_id: Optional[str] = None)[source]
Save mediator info to connection metadata.
- exception aries_cloudagent.protocols.coordinate_mediation.v1_0.route_manager.RouteManagerError[source]
Bases:
Exception
Raised on error from route manager.
- class aries_cloudagent.protocols.coordinate_mediation.v1_0.route_manager.RoutingInfo(routing_keys: Optional[List[str]], endpoint: Optional[str])[source]
Bases:
NamedTuple
Routing info tuple contiaing routing keys and endpoint.
aries_cloudagent.protocols.coordinate_mediation.v1_0.route_manager_provider module
RouteManager provider.
- class aries_cloudagent.protocols.coordinate_mediation.v1_0.route_manager_provider.RouteManagerProvider(root_profile: aries_cloudagent.core.profile.Profile)[source]
Bases:
aries_cloudagent.config.base.BaseProvider
Route manager provider.
Decides whcih route manager to use based on settings.
- provide(settings: aries_cloudagent.config.base.BaseSettings, injector: aries_cloudagent.config.base.BaseInjector)[source]
Create the appropriate route manager instance.
aries_cloudagent.protocols.coordinate_mediation.v1_0.routes module
coordinate mediation admin routes.
- class aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.AdminMediationDenySchema(*args: Any, **kwargs: Any)[source]
Bases:
marshmallow.
Parameters and validators for Mediation deny admin request query string.
- class aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.GetKeylistQuerySchema(*args: Any, **kwargs: Any)[source]
Bases:
marshmallow.
Get keylist query string paramaters.
- conn_id
- role
- class aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.KeylistQueryFilterRequestSchema(*args: Any, **kwargs: Any)[source]
Bases:
marshmallow.
Request schema for keylist query filtering.
- filter
- class aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.KeylistQueryPaginateQuerySchema(*args: Any, **kwargs: Any)[source]
Bases:
marshmallow.
Query string schema for keylist query pagination.
- paginate_limit
- paginate_offset
- class aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.KeylistSchema(*args: Any, **kwargs: Any)[source]
Bases:
marshmallow.
Result schema for mediation list query.
- results
- class aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.KeylistUpdateRequestSchema(*args: Any, **kwargs: Any)[source]
Bases:
marshmallow.
keylist update request schema.
- updates
- class aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.MediationCreateRequestSchema(*args: Any, **kwargs: Any)[source]
Bases:
marshmallow.
Parameters and validators for create Mediation request query string.
- class aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.MediationIdMatchInfoSchema(*args: Any, **kwargs: Any)[source]
Bases:
marshmallow.
Path parameters and validators for request taking mediation request id.
- mediation_id
- class aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.MediationListQueryStringSchema(*args: Any, **kwargs: Any)[source]
Bases:
marshmallow.
Parameters and validators for mediation record list request query string.
- conn_id
- state
- class aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.MediationListSchema(*args: Any, **kwargs: Any)[source]
Bases:
marshmallow.
Result schema for mediation list query.
- results
- aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.mediation_sort_key(mediation: dict)[source]
Get the sorting key for a particular serialized mediation record.