Module adcp.types.generated_poc.governance.attribute_definition

Classes

class AttributeDefinition (**data: Any)
Expand source code
class AttributeDefinition(AdCPBaseModel):
    model_config = ConfigDict(
        extra='forbid',
    )
    attribute_id: Annotated[
        str,
        Field(
            description='Unique identifier for this attribute. Used in plan.restricted_attributes, signal-definition.restricted_attributes, and data marketplace catalog entries.',
            pattern='^[a-z][a-z0-9_]*$',
        ),
    ]
    name: Annotated[str, Field(description="Human-readable name (e.g., 'Health Data').")]
    description: Annotated[
        str,
        Field(
            description='What this attribute category covers. Defines the boundary — what is and is not included.'
        ),
    ]
    regulatory_basis: Annotated[
        list[RegulatoryBasi] | None,
        Field(description='Regulations that define or restrict this attribute category.'),
    ] = None
    includes: Annotated[
        list[str] | None,
        Field(
            description="Specific data types that fall within this category (e.g., for health_data: 'medical conditions', 'disability status', 'prescription history', 'inferred health from behavioral signals')."
        ),
    ] = None
    excludes: Annotated[
        list[str] | None,
        Field(
            description='Data types that might seem related but are explicitly outside this category. Helps with boundary cases.'
        ),
    ] = None
    signal_patterns: Annotated[
        list[str] | None,
        Field(
            description="Common signal naming or tagging patterns that indicate this attribute (e.g., 'health:', 'condition_', 'diagnosis_'). Data providers and governance agents use these as hints when signals lack explicit restricted_attributes declarations."
        ),
    ] = None
    guidance: Annotated[
        str | None,
        Field(
            description='Implementation notes. Covers edge cases, inferred vs. declared data, and common pitfalls.'
        ),
    ] = None

Base model for AdCP types with spec-compliant serialization.

Defaults to extra='ignore' so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas set additionalProperties: true override this with extra='allow' in their own model_config. Consumers who want strict validation can override with extra='forbid'.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var attribute_id : str
var description : str
var excludes : list[str] | None
var guidance : str | None
var includes : list[str] | None
var model_config
var name : str
var regulatory_basis : list[RegulatoryBasi] | None
var signal_patterns : list[str] | None

Inherited members

class RegulatoryBasi (**data: Any)
Expand source code
class RegulatoryBasi(AdCPBaseModel):
    model_config = ConfigDict(
        extra='forbid',
    )
    name: Annotated[str, Field(description="Name of the regulation (e.g., 'GDPR Article 9(1)').")]
    jurisdictions: Annotated[
        list[str] | None,
        Field(description='ISO 3166-1 alpha-2 codes where this regulation applies.'),
    ] = None
    summary: Annotated[
        str, Field(description='How this regulation defines or restricts the attribute.')
    ]

Base model for AdCP types with spec-compliant serialization.

Defaults to extra='ignore' so that unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas set additionalProperties: true override this with extra='allow' in their own model_config. Consumers who want strict validation can override with extra='forbid'.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors

Class variables

var jurisdictions : list[str] | None
var model_config
var name : str
var summary : str

Inherited members