Module mydata_did.v1_0.models.exchange_records.data_agreement_personal_data_record
Expand source code
from os import environ
import typing
from typing import Any
from marshmallow import fields, validate
from aries_cloudagent.messaging.models.base_record import BaseExchangeRecord, BaseExchangeSchema
from aries_cloudagent.messaging.valid import UUIDFour
from ..data_agreement_model import DataAgreementPersonalDataRestriction, DataAgreementPersonalDataRestrictionSchema
class DataAgreementPersonalDataRecord(BaseExchangeRecord):
"""
DataAgreementPersonalDataRecord model class for serialisation/deserialisation of data agreement personal data records to/from wallet.
"""
class Meta:
# Data Agreement Personal Data Record schema class
schema_class = "DataAgreementPersonalDataRecordSchema"
# Wallet record type
RECORD_TYPE = "data_agreement_personal_data_record"
# Wallet record identifier field
RECORD_ID_NAME = "personal_data_id"
# Webhook topic name for this record type
WEBHOOK_TOPIC = None
# Wallet record tags used for filtering
# Note: These are not tags for the ledger, but rather tags for the wallet
# to group records.
TAG_NAMES = {"~attribute_category", "~attribute_sensitive", "~da_template_id"}
def __init__(
self,
*,
personal_data_id: str = None,
attribute_name: str = None,
attribute_category: str = "Other",
attribute_sensitive: str = "true",
attribute_description: str = "Nil",
state: str = None,
restrictions: typing.List[dict] = None,
da_template_id: str = None,
da_template_version: int = None,
**kwargs
):
"""
Initialise a new DataAgreementPersonalDataRecord instance.
Args:
personal_data_id: The unique identifier for the data agreement personal data record.
attribute_name: The name of the attribute.
attribute_category: The category of the attribute.
attribute_sensitive: The sensitive flag of the attribute.
state: The state of the data agreement personal data record.
"""
super().__init__(personal_data_id, state, **kwargs)
self.state = state
self.attribute_name = attribute_name
self.attribute_category = attribute_category
self.attribute_sensitive = attribute_sensitive
self.attribute_description = attribute_description
self.restrictions = restrictions
self.da_template_id = da_template_id
self.da_template_version = da_template_version
@property
def personal_data_id(self) -> str:
"""
Get the data agreement personal data record identifier.
Returns:
The data agreement personal data record identifier.
"""
return self._id
@property
def record_value(self) -> dict:
"""Accessor for JSON record value generated for this transaction record."""
return {
prop: getattr(self, prop)
for prop in (
"attribute_name",
"attribute_category",
"attribute_sensitive",
"attribute_description",
"restrictions",
"da_template_id",
"da_template_version"
)
}
def __eq__(self, other: Any) -> bool:
"""Comparison between records."""
return super().__eq__(other)
class DataAgreementPersonalDataRecordSchema(BaseExchangeSchema):
class Meta:
"""DataAgreementPersonalDataRecordSchema metadata."""
# Model class
model_class = DataAgreementPersonalDataRecord
personal_data_id = fields.Str(
required=True,
example=UUIDFour.EXAMPLE
)
attribute_name = fields.Str(
required=True,
description="The name of the attribute.",
example="name"
)
attribute_description = fields.Str(
required=True,
description="The description of the attribute.",
example="Name of the customer"
)
attribute_category = fields.Str(
required=True,
description="The category of the attribute.",
example="personal"
)
attribute_sensitive = fields.Str(
required=True,
description="The sensitive flag of the attribute.",
example="true"
)
restrictions = fields.List(fields.Nested(DataAgreementPersonalDataRestrictionSchema), required=False)
da_template_id = fields.Str(
required=True,
description="The data agreement template identifier.",
example=UUIDFour.EXAMPLE
)
da_template_version = fields.Int(
example=1,
description="Data agreement template version"
)
Classes
class DataAgreementPersonalDataRecord (*, personal_data_id: str = None, attribute_name: str = None, attribute_category: str = 'Other', attribute_sensitive: str = 'true', attribute_description: str = 'Nil', state: str = None, restrictions: List[dict] = None, da_template_id: str = None, da_template_version: int = None, **kwargs)
-
DataAgreementPersonalDataRecord model class for serialisation/deserialisation of data agreement personal data records to/from wallet.
Initialise a new DataAgreementPersonalDataRecord instance.
Args
personal_data_id
- The unique identifier for the data agreement personal data record.
attribute_name
- The name of the attribute.
attribute_category
- The category of the attribute.
attribute_sensitive
- The sensitive flag of the attribute.
state
- The state of the data agreement personal data record.
Expand source code
class DataAgreementPersonalDataRecord(BaseExchangeRecord): """ DataAgreementPersonalDataRecord model class for serialisation/deserialisation of data agreement personal data records to/from wallet. """ class Meta: # Data Agreement Personal Data Record schema class schema_class = "DataAgreementPersonalDataRecordSchema" # Wallet record type RECORD_TYPE = "data_agreement_personal_data_record" # Wallet record identifier field RECORD_ID_NAME = "personal_data_id" # Webhook topic name for this record type WEBHOOK_TOPIC = None # Wallet record tags used for filtering # Note: These are not tags for the ledger, but rather tags for the wallet # to group records. TAG_NAMES = {"~attribute_category", "~attribute_sensitive", "~da_template_id"} def __init__( self, *, personal_data_id: str = None, attribute_name: str = None, attribute_category: str = "Other", attribute_sensitive: str = "true", attribute_description: str = "Nil", state: str = None, restrictions: typing.List[dict] = None, da_template_id: str = None, da_template_version: int = None, **kwargs ): """ Initialise a new DataAgreementPersonalDataRecord instance. Args: personal_data_id: The unique identifier for the data agreement personal data record. attribute_name: The name of the attribute. attribute_category: The category of the attribute. attribute_sensitive: The sensitive flag of the attribute. state: The state of the data agreement personal data record. """ super().__init__(personal_data_id, state, **kwargs) self.state = state self.attribute_name = attribute_name self.attribute_category = attribute_category self.attribute_sensitive = attribute_sensitive self.attribute_description = attribute_description self.restrictions = restrictions self.da_template_id = da_template_id self.da_template_version = da_template_version @property def personal_data_id(self) -> str: """ Get the data agreement personal data record identifier. Returns: The data agreement personal data record identifier. """ return self._id @property def record_value(self) -> dict: """Accessor for JSON record value generated for this transaction record.""" return { prop: getattr(self, prop) for prop in ( "attribute_name", "attribute_category", "attribute_sensitive", "attribute_description", "restrictions", "da_template_id", "da_template_version" ) } def __eq__(self, other: Any) -> bool: """Comparison between records.""" return super().__eq__(other)
Ancestors
- aries_cloudagent.messaging.models.base_record.BaseExchangeRecord
- aries_cloudagent.messaging.models.base_record.BaseRecord
- aries_cloudagent.messaging.models.base.BaseModel
- abc.ABC
Class variables
var Meta
var RECORD_ID_NAME
var RECORD_TYPE
var TAG_NAMES
var WEBHOOK_TOPIC
Instance variables
var personal_data_id : str
-
Get the data agreement personal data record identifier.
Returns
The data agreement personal data record identifier.
Expand source code
@property def personal_data_id(self) -> str: """ Get the data agreement personal data record identifier. Returns: The data agreement personal data record identifier. """ return self._id
var record_value : dict
-
Accessor for JSON record value generated for this transaction record.
Expand source code
@property def record_value(self) -> dict: """Accessor for JSON record value generated for this transaction record.""" return { prop: getattr(self, prop) for prop in ( "attribute_name", "attribute_category", "attribute_sensitive", "attribute_description", "restrictions", "da_template_id", "da_template_version" ) }
class DataAgreementPersonalDataRecordSchema (*args, **kwargs)
-
Base schema for exchange records.
Initialize BaseModelSchema.
Raises
TypeError
- If model_class is not set on Meta
Expand source code
class DataAgreementPersonalDataRecordSchema(BaseExchangeSchema): class Meta: """DataAgreementPersonalDataRecordSchema metadata.""" # Model class model_class = DataAgreementPersonalDataRecord personal_data_id = fields.Str( required=True, example=UUIDFour.EXAMPLE ) attribute_name = fields.Str( required=True, description="The name of the attribute.", example="name" ) attribute_description = fields.Str( required=True, description="The description of the attribute.", example="Name of the customer" ) attribute_category = fields.Str( required=True, description="The category of the attribute.", example="personal" ) attribute_sensitive = fields.Str( required=True, description="The sensitive flag of the attribute.", example="true" ) restrictions = fields.List(fields.Nested(DataAgreementPersonalDataRestrictionSchema), required=False) da_template_id = fields.Str( required=True, description="The data agreement template identifier.", example=UUIDFour.EXAMPLE ) da_template_version = fields.Int( example=1, description="Data agreement template version" )
Ancestors
- aries_cloudagent.messaging.models.base_record.BaseExchangeSchema
- aries_cloudagent.messaging.models.base_record.BaseRecordSchema
- aries_cloudagent.messaging.models.base.BaseModelSchema
- marshmallow.schema.Schema
- marshmallow.base.SchemaABC
Class variables
var Meta
-
DataAgreementPersonalDataRecordSchema metadata.
var opts