Module adcp.types.domains.media_buy.acceptance_policy_rule
Classes
class AcceptancePolicyRule (**data: Any)-
Expand source code
class AcceptancePolicyRule(AdCPBaseModel): model_config = ConfigDict( extra='forbid', ) rule_id: Annotated[str, Field(pattern='^[A-Za-z0-9_.:-]+$')] subject_category: Annotated[ str, Field( description='Registry policy-category-definition category_id. Named subject_category to avoid collision with PolicyEntry.category, whose values are regulation and standard.', pattern='^[a-z][a-z0-9_]*$', ), ] subject_facets: Annotated[ list[SubjectFacet] | None, Field( description='Facet IDs defined by the selected policy category. Omission means the rule applies to every facet in the category.', min_length=1, ), ] = None advertiser_roles: Annotated[ list[AdvertiserRole] | None, Field( description='Registry-extensible roles such as political_actor, election_authority, government_entity, news_publisher, or commercial_advertiser.', min_length=1, ), ] = None jurisdictions: Annotated[ list[Jurisdiction] | None, Field( description='Delivery jurisdictions where this rule applies. Omission means every jurisdiction served by the seller.', min_length=1, ), ] = None jurisdiction_groups: Annotated[ list[JurisdictionGroup] | None, Field( description="Named country groups declared by the containing profile's region_aliases. Unknown group IDs invalidate the profile; they never match permissively.", min_length=1, ), ] = None applies_to: Annotated[list[AppliesToEnum], Field(min_length=1)] disposition: Disposition requirements: Annotated[ list[acceptance_policy_requirement.AcceptancePolicyRequirement] | None, Field(min_length=1) ] = None policy_ids: Annotated[ list[PolicyId] | None, Field( description='Registry policies that define the exact obligations behind this coarse rule.', min_length=1, ), ] = None description: Annotated[ str | None, Field( description='Display-only explanation. Matchers MUST NOT interpret this text as executable instructions or use it to override typed fields.', max_length=1000, min_length=1, ), ] = None effective_at: AwareDatetime | None = None expires_at: AwareDatetime | None = None ext: ext_1.ExtensionObject | None = NoneBase model for AdCP types with spec-compliant serialization.
Defaults to
extra='ignore'so unknown fields from newer spec versions are silently dropped rather than causing validation errors. Generated types whose schemas setadditionalProperties: trueoverride this withextra='allow'in their ownmodel_config.Set
ADCP_STRICT_VALIDATION=1in the environment ("1","true","yes","on"are accepted) to flip the default toextra='forbid'. Use this during spec upgrades to catch silently-dropped renamed fields in tests. See :func:_resolve_extra_policy.Important
The env var is resolved once at module import time. Set it in your shell or CI environment before
import adcpruns — mutatingos.environ["ADCP_STRICT_VALIDATION"]after the firstadcpimport has no effect on already-imported model classes (they captured the policy at class-body evaluation).Consumers who want per-model strict validation can override
model_configon their subclass.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.selfis explicitly positional-only to allowselfas a field name.Ancestors
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var advertiser_roles : list[AdvertiserRole] | Nonevar applies_to : list[AppliesToEnum]var description : str | Nonevar disposition : Dispositionvar effective_at : pydantic.types.AwareDatetime | Nonevar expires_at : pydantic.types.AwareDatetime | Nonevar ext : ExtensionObject | Nonevar jurisdiction_groups : list[JurisdictionGroup] | Nonevar jurisdictions : list[Jurisdiction] | Nonevar model_configvar policy_ids : list[PolicyId] | Nonevar requirements : list[AcceptancePolicyRequirement1 | AcceptancePolicyRequirement2 | AcceptancePolicyRequirement3 | AcceptancePolicyRequirement4 | AcceptancePolicyRequirement5 | AcceptancePolicyRequirement6 | AcceptancePolicyRequirement7 | AcceptancePolicyRequirement8 | AcceptancePolicyRequirement9 | AcceptancePolicyRequirement10 | AcceptancePolicyRequirement11 | AcceptancePolicyRequirement12 | AcceptancePolicyRequirement13 | AcceptancePolicyRequirement14 | AcceptancePolicyRequirement15 | AcceptancePolicyRequirement16 | AcceptancePolicyRequirement17] | Nonevar rule_id : strvar subject_category : strvar subject_facets : list[SubjectFacet] | None
Inherited members
class AdvertiserRole (value: Any = <object object>, *, root: Any = <object object>)-
Expand source code
class AdvertiserRole(SubjectFacet): passA
strgenerated from a JSON Schema string root.Ancestors
- SubjectFacet
- adcp.types._scalar.ScalarStr
- adcp.types._scalar._ScalarRoot
- builtins.str
class AppliesToEnum (*args, **kwds)-
Expand source code
class AppliesToEnum(StrEnum): account = 'account' media_buy = 'media_buy' creative = 'creative' landing_page = 'landing_page' targeting = 'targeting' delivery = 'delivery' format = 'format' # type: ignore[assignment]Enum where members are also (and must be) strings
Ancestors
- enum.StrEnum
- builtins.str
- enum.ReprEnum
- enum.Enum
Class variables
var accountvar creativevar deliveryvar formatvar landing_pagevar media_buyvar targeting
class Disposition (*args, **kwds)-
Expand source code
class Disposition(StrEnum): allowed = 'allowed' conditional = 'conditional' prohibited = 'prohibited'Enum where members are also (and must be) strings
Ancestors
- enum.StrEnum
- builtins.str
- enum.ReprEnum
- enum.Enum
Class variables
var allowedvar conditionalvar prohibited
class Jurisdiction (value: Any = <object object>, *, root: Any = <object object>)-
Expand source code
class Jurisdiction(ScalarStr): __slots__ = () _constraints = {'pattern': '^[A-Z]{2}$'}A
strgenerated from a JSON Schema string root.Ancestors
- adcp.types._scalar.ScalarStr
- adcp.types._scalar._ScalarRoot
- builtins.str
class JurisdictionGroup (value: Any = <object object>, *, root: Any = <object object>)-
Expand source code
class JurisdictionGroup(ScalarStr): __slots__ = () _constraints = {'pattern': '^[A-Z][A-Z0-9_-]*$'}A
strgenerated from a JSON Schema string root.Ancestors
- adcp.types._scalar.ScalarStr
- adcp.types._scalar._ScalarRoot
- builtins.str
class PolicyId (value: Any = <object object>, *, root: Any = <object object>)-
Expand source code
class PolicyId(ScalarStr): __slots__ = () _constraints = {'min_length': 1}A
strgenerated from a JSON Schema string root.Ancestors
- adcp.types._scalar.ScalarStr
- adcp.types._scalar._ScalarRoot
- builtins.str
class SubjectFacet (value: Any = <object object>, *, root: Any = <object object>)-
Expand source code
class SubjectFacet(ScalarStr): __slots__ = () _constraints = {'pattern': '^[a-z][a-z0-9_]*$'}A
strgenerated from a JSON Schema string root.Ancestors
- adcp.types._scalar.ScalarStr
- adcp.types._scalar._ScalarRoot
- builtins.str
Subclasses