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