class EventsRealmVlobsUpdatedRepSchema(BaseRepSchema): event = fields.EnumCheckedConstant(APIEvent.REALM_VLOBS_UPDATED, required=True) realm_id = fields.UUID(required=True) checkpoint = fields.Integer(required=True) src_id = fields.UUID(required=True) src_version = fields.Integer(required=True)
class VlobCreateReqSchema(BaseReqSchema): realm_id = fields.UUID(required=True) encryption_revision = fields.Integer(required=True) vlob_id = fields.UUID(required=True) # If blob contains a signed message, it timestamp cannot be directly enforced # by the backend (given the message is probably also encrypted). # Hence the timestamp is passed in clear so backend can reject the message # if it considers the timestamp invalid. On top of that each client asking # for the message will receive the declared timestamp to check against # the actual timestamp within the message. timestamp = fields.DateTime(required=True) blob = fields.Bytes(required=True)
class RealmStartReencryptionMaintenanceReqSchema(BaseReqSchema): realm_id = fields.UUID(required=True) encryption_revision = fields.Integer(required=True) timestamp = fields.DateTime(required=True) per_participant_message = fields.Map(UserIDField(), fields.Bytes(required=True), required=True)
class HandshakeInvitedAnswerSchema(BaseSchema): handshake = fields.CheckedConstant("answer", required=True) type = fields.EnumCheckedConstant(HandshakeType.INVITED, required=True) client_api_version = ApiVersionField(required=True) organization_id = OrganizationIDField(required=True) invitation_type = InvitationTypeField(required=True) token = fields.UUID(required=True)
class RealmStatsReqSchema(BaseReqSchema): realm_id = fields.UUID(required=True)
class RealmFinishReencryptionMaintenanceReqSchema(BaseReqSchema): realm_id = fields.UUID(required=True) encryption_revision = fields.Integer(required=True)
class InviteListItemDeviceSchema(BaseSchema): type = fields.EnumCheckedConstant(InvitationType.DEVICE, required=True) token = fields.UUID(required=True) created_on = fields.DateTime(required=True) status = InvitationStatusField(required=True)
class VlobPollChangesRepSchema(BaseRepSchema): changes = fields.Map(fields.UUID(), fields.Integer(required=True), required=True) current_checkpoint = fields.Integer(required=True)
class Invite2bGreeterSendNonceReqSchema(BaseReqSchema): token = fields.UUID(required=True) greeter_nonce = fields.Bytes(required=True)
class ReencryptionBatchEntrySchema(BaseSchema): vlob_id = fields.UUID(required=True) version = fields.Integer(required=True, validate=validate.Range(min=0)) blob = fields.Bytes(required=True)
class BlockCreateReqSchema(BaseReqSchema): block_id = fields.UUID(required=True) realm_id = fields.UUID(required=True) block = fields.Bytes(required=True)
class InviteNewRepSchema(BaseRepSchema): token = fields.UUID(required=True)
class InviteDeleteReqSchema(BaseReqSchema): token = fields.UUID(required=True) reason = InvitationDeletedReasonField(required=True)
class Invite4GreeterCommunicateReqSchema(BaseReqSchema): token = fields.UUID(required=True) payload = fields.Bytes(required=True)
class Invite3bGreeterSignifyTrustReqSchema(BaseReqSchema): token = fields.UUID(required=True)
class Invite3aGreeterWaitPeerTrustReqSchema(BaseReqSchema): token = fields.UUID(required=True)
class RealmGetRoleCertificatesReqSchema(BaseReqSchema): realm_id = fields.UUID(required=True) since = fields.DateTime(missing=None)
class EventsRealmRolesUpdatedRepSchema(BaseRepSchema): event = fields.EnumCheckedConstant(APIEvent.REALM_ROLES_UPDATED, required=True) realm_id = fields.UUID(required=True) role = RealmRoleField(required=True, allow_none=True)
class BlockReadReqSchema(BaseReqSchema): block_id = fields.UUID(required=True)
class Invite1GreeterWaitPeerReqSchema(BaseReqSchema): token = fields.UUID(required=True) greeter_public_key = fields.PublicKey(required=True)
class VlobMaintenanceGetReencryptionBatchReqSchema(BaseReqSchema): realm_id = fields.UUID(required=True) encryption_revision = fields.Integer(required=True) size = fields.Integer(required=True, validate=validate.Range(min=0, max=1000))
class VlobUpdateReqSchema(BaseReqSchema): encryption_revision = fields.Integer(required=True) vlob_id = fields.UUID(required=True) timestamp = fields.DateTime(required=True) version = fields.Integer(required=True, validate=_validate_version) blob = fields.Bytes(required=True)
class VlobMaintenanceSaveReencryptionBatchReqSchema(BaseReqSchema): realm_id = fields.UUID(required=True) encryption_revision = fields.Integer(required=True) batch = fields.List(fields.Nested(ReencryptionBatchEntrySchema), required=True)
class Invite2aGreeterGetHashedNonceReqSchema(BaseReqSchema): token = fields.UUID(required=True)
class VlobReadReqSchema(BaseReqSchema): encryption_revision = fields.Integer(required=True) vlob_id = fields.UUID(required=True) version = fields.Integer(validate=lambda n: n is None or _validate_version(n), missing=None) timestamp = fields.DateTime(allow_none=True, missing=None)
class EventsRealmMaintenanceFinishedRepSchema(BaseRepSchema): event = fields.EnumCheckedConstant(APIEvent.REALM_MAINTENANCE_FINISHED, required=True) realm_id = fields.UUID(required=True) encryption_revision = fields.Integer(required=True)
class VlobPollChangesReqSchema(BaseReqSchema): realm_id = fields.UUID(required=True) last_checkpoint = fields.Integer(required=True)
class EventsInviteStatusChangedRepSchema(BaseRepSchema): event = fields.EnumCheckedConstant(APIEvent.INVITE_STATUS_CHANGED, required=True) token = fields.UUID(required=True) invitation_status = InvitationStatusField(required=True)
class VlobListVersionsReqSchema(BaseReqSchema): vlob_id = fields.UUID(required=True)
class InviteListItemUserSchema(BaseSchema): type = fields.EnumCheckedConstant(InvitationType.USER, required=True) token = fields.UUID(required=True) created_on = fields.DateTime(required=True) claimer_email = fields.String(required=True) status = InvitationStatusField(required=True)