aries_cloudagent.protocols.coordinate_mediation.v1_0 package

Subpackages

Submodules

aries_cloudagent.protocols.coordinate_mediation.v1_0.controller module

Protocol controller for coordinate mediation.

class aries_cloudagent.protocols.coordinate_mediation.v1_0.controller.Controller(protocol: str)[source]

Bases: object

Coordinate mediation protocol controller.

determine_goal_codes() → Sequence[str][source]

Return defined goal_codes.

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: 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'
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

clear_default_mediator()[source]

Clear the stored default mediator.

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
deny_request(mediation_id: str, *, mediator_terms: Sequence[str] = None, recipient_terms: 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.

Parameters:
  • mediation_id – mediation record ID to deny
  • mediator_terms (Sequence[str]) – updated mediator terms to return to
  • requester.
  • recipient_terms (Sequence[str]) – updated recipient terms to return to
  • requester.
Returns:

message to return to denied client.

Return type:

MediationDeny

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]
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]
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]
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]
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)
prepare_keylist_query(filter_: 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.

Parameters:
  • filter (dict) – filter for keylist query
  • paginate_limit (int) – paginate_limit
  • paginate_offset (int) – paginate_offset
Returns:

message to send to mediator

Return type:

KeylistQuery

prepare_request(connection_id: str, mediator_terms: Sequence[str] = None, recipient_terms: 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.

Parameters:
  • connection_id (str) – ID representing mediator
  • mediator_terms (Sequence[str]) – mediator_terms
  • recipient_terms (Sequence[str]) – recipient_terms
Returns:

message to send to mediator

Return type:

MediationRequest

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
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

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
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
set_default_mediator(record: aries_cloudagent.protocols.coordinate_mediation.v1_0.models.mediation_record.MediationRecord)[source]

Set default mediator from record.

set_default_mediator_by_id(mediation_id: str)[source]

Set default mediator from ID.

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
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: 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: 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.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.

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.

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.

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.

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.

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

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.

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.

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.

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.

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.

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.

route_verkey(profile: aries_cloudagent.core.profile.Profile, verkey: str)[source]

Establish routing for a public DID.

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.

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.

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, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

Parameters and validators for Mediation deny admin request query string.

mediator_terms

Used by autodoc_mock_imports.

recipient_terms

Used by autodoc_mock_imports.

class aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.GetKeylistQuerySchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

Get keylist query string paramaters.

conn_id

Used by autodoc_mock_imports.

role

Used by autodoc_mock_imports.

class aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.KeylistQueryFilterRequestSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

Request schema for keylist query filtering.

filter

Used by autodoc_mock_imports.

class aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.KeylistQueryPaginateQuerySchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

Query string schema for keylist query pagination.

paginate_limit

Used by autodoc_mock_imports.

paginate_offset

Used by autodoc_mock_imports.

class aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.KeylistSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

Result schema for mediation list query.

results

Used by autodoc_mock_imports.

class aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.KeylistUpdateRequestSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

keylist update request schema.

updates

Used by autodoc_mock_imports.

class aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.MediationCreateRequestSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

Parameters and validators for create Mediation request query string.

mediator_terms

Used by autodoc_mock_imports.

recipient_terms

Used by autodoc_mock_imports.

class aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.MediationIdMatchInfoSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

Path parameters and validators for request taking mediation request id.

mediation_id

Used by autodoc_mock_imports.

class aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.MediationListQueryStringSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

Parameters and validators for mediation record list request query string.

conn_id

Used by autodoc_mock_imports.

mediator_terms

Used by autodoc_mock_imports.

recipient_terms

Used by autodoc_mock_imports.

state

Used by autodoc_mock_imports.

class aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.MediationListSchema(*args, **kwargs)[source]

Bases: aries_cloudagent.messaging.models.openapi.OpenAPISchema

Result schema for mediation list query.

results

Used by autodoc_mock_imports.

aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.clear_default_mediator(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fc044e94250>)[source]

Clear set default mediator.

aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.delete_mediation_request(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fc044e94250>)[source]

Delete a mediation request by ID.

aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.get_default_mediator(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fc044e94250>)[source]

Get default mediator.

aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.get_keylist(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fc044e94250>)[source]

Retrieve keylists by connection or role.

aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.list_mediation_requests(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fc044e94250>)[source]

List mediation requests for either client or server role.

aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.mediation_request_deny(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fc044e94250>)[source]

Deny a stored mediation request.

aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.mediation_request_grant(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fc044e94250>)[source]

Grant a stored mediation request.

aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.mediation_sort_key(mediation: dict)[source]

Get the sorting key for a particular serialized mediation record.

aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.post_process_routes(app: <sphinx.ext.autodoc.importer._MockObject object at 0x7fc044e94250>)[source]

Amend swagger API.

aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.register(app: <sphinx.ext.autodoc.importer._MockObject object at 0x7fc044e94250>)[source]

Register routes.

aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.request_mediation(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fc044e94250>)[source]

Request mediation from connection.

aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.retrieve_mediation_request(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fc044e94250>)[source]

Retrieve a single mediation request.

aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.send_keylist_query(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fc044e94250>)[source]

Send keylist query to mediator.

aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.send_keylist_update(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fc044e94250>)[source]

Send keylist update to mediator.

aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.set_default_mediator(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fc044e94250>)[source]

Set default mediator.

aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.update_keylist_for_connection(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fc044e94250>)[source]

Update keylist for a connection.