aries_cloudagent.protocols.coordinate_mediation.v1_0 package

Subpackages

Submodules

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'
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:
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.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 = <fields.List(default=<marshmallow.missing>, attribute=None, validate=None, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid list.'})>
recipient_terms = <fields.List(default=<marshmallow.missing>, attribute=None, validate=None, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid list.'})>
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 = <fields.UUID(default=<marshmallow.missing>, attribute=None, validate=None, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid string.', 'invalid_utf8': 'Not a valid utf-8 string.', 'invalid_uuid': 'Not a valid UUID.'})>
role = <fields.String(default=<marshmallow.missing>, attribute=None, validate=<OneOf(choices=['client', 'server'], labels=[], error='Must be one of: {choices}.')>, required=False, load_only=False, dump_only=False, missing=server, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid string.', 'invalid_utf8': 'Not a valid utf-8 string.'})>
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 = <fields.Dict(default=<marshmallow.missing>, attribute=None, validate=None, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid mapping type.'})>
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 = <fields.Integer(default=<marshmallow.missing>, attribute=None, validate=None, required=False, load_only=False, dump_only=False, missing=-1, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid integer.', 'too_large': 'Number too large.'})>
paginate_offset = <fields.Integer(default=<marshmallow.missing>, attribute=None, validate=None, required=False, load_only=False, dump_only=False, missing=0, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid integer.', 'too_large': 'Number too large.'})>
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 = <fields.List(default=<marshmallow.missing>, attribute=None, validate=None, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid list.'})>
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 = <fields.List(default=<marshmallow.missing>, attribute=None, validate=None, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid list.'})>
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 = <fields.List(default=<marshmallow.missing>, attribute=None, validate=None, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid list.'})>
recipient_terms = <fields.List(default=<marshmallow.missing>, attribute=None, validate=None, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid list.'})>
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 = <fields.UUID(default=<marshmallow.missing>, attribute=None, validate=None, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid string.', 'invalid_utf8': 'Not a valid utf-8 string.', 'invalid_uuid': 'Not a valid UUID.'})>
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 = <fields.UUID(default=<marshmallow.missing>, attribute=None, validate=None, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid string.', 'invalid_utf8': 'Not a valid utf-8 string.', 'invalid_uuid': 'Not a valid UUID.'})>
mediator_terms = <fields.List(default=<marshmallow.missing>, attribute=None, validate=None, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid list.'})>
recipient_terms = <fields.List(default=<marshmallow.missing>, attribute=None, validate=None, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid list.'})>
state = <fields.String(default=<marshmallow.missing>, attribute=None, validate=<OneOf(choices=['request', 'granted', 'denied'], labels=[], error='Must be one of: {choices}.')>, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid string.', 'invalid_utf8': 'Not a valid utf-8 string.'})>
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 = <fields.List(default=<marshmallow.missing>, attribute=None, validate=None, required=False, load_only=False, dump_only=False, missing=<marshmallow.missing>, allow_none=False, error_messages={'required': 'Missing data for required field.', 'null': 'Field may not be null.', 'validator_failed': 'Invalid value.', 'invalid': 'Not a valid list.'})>
aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.clear_default_mediator(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fb0540b4950>)[source]

Clear set default mediator.

aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.delete_mediation_request(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fb0540b4950>)[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 0x7fb0540b4950>)[source]

Get default mediator.

aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.get_keylist(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fb0540b4950>)[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 0x7fb0540b4950>)[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 0x7fb0540b4950>)[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 0x7fb0540b4950>)[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 0x7fb0540b4950>)[source]

Amend swagger API.

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

Register routes.

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

Request mediation from connection.

aries_cloudagent.protocols.coordinate_mediation.v1_0.routes.retrieve_mediation_request(request: <sphinx.ext.autodoc.importer._MockObject object at 0x7fb0540b4950>)[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 0x7fb0540b4950>)[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 0x7fb0540b4950>)[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 0x7fb0540b4950>)[source]

Set default mediator.