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, *, mediator_terms: Optional[Sequence[str]] = None, recipient_terms: Optional[Sequence[str]] = None) 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.
- 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, mediator_terms: Optional[Sequence[str]] = None, recipient_terms: Optional[Sequence[str]] = None) 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.
- 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.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, my_endpoint: str, mediation_record: Optional[aries_cloudagent.protocols.coordinate_mediation.v1_0.models.mediation_record.MediationRecord] = None) Tuple[List[str], str] [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_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)[source]
Return relevant mediator for connection.
- 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 route_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) 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_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 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_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 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.
- 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.
- abstract async routing_info(profile: aries_cloudagent.core.profile.Profile, my_endpoint: str, mediation_record: Optional[aries_cloudagent.protocols.coordinate_mediation.v1_0.models.mediation_record.MediationRecord] = None) Tuple[List[str], str] [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.