Module adcp.types.domains.adagents
Classes
class AdcpAgentsAuthorization (root: RootModelRootType = PydanticUndefined, **data)-
Expand source code
class AdcpAgentsAuthorization(RootModel[AdcpAgentsAuthorization1 | AdcpAgentsAuthorization2]): root: Annotated[ AdcpAgentsAuthorization1 | AdcpAgentsAuthorization2, Field( description='Declaration of authorized agents for advertising inventory and data signals. Hosted at /.well-known/adagents.json on publisher domains (for properties) or data provider domains (for signals). Can either contain the full structure inline or reference an authoritative URL.', examples=[ { '$schema': 'https://adcontextprotocol.org/schemas/3.2.1/adagents.json', 'authoritative_location': 'https://cdn.example.com/adagents/v2/adagents.json', 'last_updated': '2025-01-15T10:00:00Z', }, { '$schema': 'https://adcontextprotocol.org/schemas/3.2.1/adagents.json', 'properties': [ { 'property_id': 'example_site', 'property_type': 'website', 'name': 'Example Site', 'identifiers': [{'type': 'domain', 'value': 'example.com'}], 'publisher_domain': 'example.com', } ], 'placements': [ { 'placement_id': 'homepage_banner', 'name': 'Homepage Banner', 'tags': ['homepage', 'display', 'premium'], 'property_ids': ['example_site'], 'format_options': [ {'format_kind': 'image', 'params': {'width': 728, 'height': 90}} ], } ], 'placement_tags': { 'homepage': { 'name': 'Homepage', 'description': 'Placements that render on the homepage', }, 'display': { 'name': 'Display', 'description': 'Standard display placements', }, 'premium': { 'name': 'Premium', 'description': 'Premium monetization placements', }, }, 'authorized_agents': [ { 'url': 'https://agent.example.com', 'authorized_for': 'Official sales agent', 'authorization_type': 'property_tags', 'property_tags': ['all'], 'placement_ids': ['homepage_banner'], 'delegation_type': 'direct', 'exclusive': True, 'countries': ['US', 'CA'], 'effective_from': '2025-01-01T00:00:00Z', } ], 'tags': { 'all': { 'name': 'All Properties', 'description': 'All properties in this file', } }, 'last_updated': '2025-01-10T12:00:00Z', }, { '$schema': 'https://adcontextprotocol.org/schemas/3.2.1/adagents.json', 'contact': { 'name': 'Meta Advertising Operations', 'email': 'adops@meta.com', 'domain': 'meta.com', 'seller_id': 'pub-meta-12345', 'tag_id': '12345', 'privacy_policy_url': 'https://www.meta.com/privacy/policy', }, 'properties': [ { 'property_type': 'mobile_app', 'name': 'Instagram', 'identifiers': [ {'type': 'ios_bundle', 'value': 'com.burbn.instagram'}, {'type': 'android_package', 'value': 'com.instagram.android'}, ], 'tags': ['meta_network', 'social_media'], 'supported_channels': ['social', 'display', 'olv'], 'publisher_domain': 'instagram.com', }, { 'property_type': 'mobile_app', 'name': 'Facebook', 'identifiers': [ {'type': 'ios_bundle', 'value': 'com.facebook.Facebook'}, {'type': 'android_package', 'value': 'com.facebook.katana'}, ], 'tags': ['meta_network', 'social_media'], 'supported_channels': ['social', 'display', 'olv'], 'publisher_domain': 'facebook.com', }, { 'property_type': 'mobile_app', 'name': 'WhatsApp', 'identifiers': [ {'type': 'ios_bundle', 'value': 'net.whatsapp.WhatsApp'}, {'type': 'android_package', 'value': 'com.whatsapp'}, ], 'tags': ['meta_network', 'messaging'], 'supported_channels': ['social', 'display'], 'publisher_domain': 'whatsapp.com', }, ], 'tags': { 'meta_network': { 'name': 'Meta Network', 'description': 'All Meta-owned properties', }, 'social_media': { 'name': 'Social Media Apps', 'description': 'Social networking applications', }, 'messaging': { 'name': 'Messaging Apps', 'description': 'Messaging and communication apps', }, }, 'authorized_agents': [ { 'url': 'https://meta-ads.com', 'authorized_for': 'All Meta properties', 'authorization_type': 'property_tags', 'property_tags': ['meta_network'], } ], 'last_updated': '2025-01-10T15:30:00Z', }, { '$schema': 'https://adcontextprotocol.org/schemas/3.2.1/adagents.json', 'contact': {'name': 'Tumblr Advertising'}, 'properties': [ { 'property_type': 'website', 'name': 'Tumblr Corporate', 'identifiers': [{'type': 'domain', 'value': 'tumblr.com'}], 'tags': ['corporate'], 'publisher_domain': 'tumblr.com', } ], 'tags': { 'corporate': { 'name': 'Corporate Properties', 'description': 'Tumblr-owned corporate properties (not user blogs)', } }, 'authorized_agents': [ { 'url': 'https://tumblr-sales.com', 'authorized_for': 'Tumblr corporate properties only', 'authorization_type': 'property_tags', 'property_tags': ['corporate'], } ], 'last_updated': '2025-01-10T16:00:00Z', }, { '$schema': 'https://adcontextprotocol.org/schemas/3.2.1/adagents.json', 'contact': { 'name': 'Example Third-Party Sales Agent', 'email': 'sales@agent.example', 'domain': 'agent.example', }, 'authorized_agents': [ { 'url': 'https://agent.example/api', 'authorized_for': 'CNN CTV properties via publisher authorization', 'authorization_type': 'publisher_properties', 'publisher_properties': [ { 'publisher_domain': 'cnn.com', 'selection_type': 'by_id', 'property_ids': ['cnn_ctv_app'], } ], }, { 'url': 'https://agent.example/api', 'authorized_for': 'All CTV properties from multiple publishers', 'authorization_type': 'publisher_properties', 'publisher_properties': [ { 'publisher_domain': 'cnn.com', 'selection_type': 'by_tag', 'property_tags': ['ctv'], }, { 'publisher_domain': 'espn.com', 'selection_type': 'by_tag', 'property_tags': ['ctv'], }, ], }, { 'url': 'https://agent.example/api', 'authorized_for': 'Managed-network display inventory across represented publishers (compact form)', 'authorization_type': 'publisher_properties', 'publisher_properties': [ { 'publisher_domains': [ 'site1.example', 'site2.example', 'site3.example', ], 'selection_type': 'by_tag', 'property_tags': ['managed_network'], } ], 'delegation_type': 'ad_network', }, ], 'last_updated': '2025-01-10T17:00:00Z', }, { '$schema': 'https://adcontextprotocol.org/schemas/3.2.1/adagents.json', 'contact': { 'name': 'Premium News Publisher', 'email': 'adops@news.example.com', 'domain': 'news.example.com', }, 'properties': [ { 'property_type': 'website', 'name': 'News Example', 'identifiers': [{'type': 'domain', 'value': 'news.example.com'}], 'tags': ['premium', 'news'], 'publisher_domain': 'news.example.com', } ], 'tags': { 'premium': { 'name': 'Premium Properties', 'description': 'High-quality, brand-safe properties', }, 'news': { 'name': 'News Properties', 'description': 'News and journalism content', }, }, 'authorized_agents': [ { 'url': 'https://sales.news.example.com', 'authorized_for': 'All news properties', 'authorization_type': 'property_tags', 'property_tags': ['news'], } ], 'property_features': [ { 'url': 'https://api.scope3.com', 'name': 'Scope3', 'features': ['carbon_score', 'sustainability_grade'], 'publisher_id': 'pub_news_12345', }, { 'url': 'https://api.tagtoday.net', 'name': 'TAG', 'features': [ 'tag_certified_against_fraud', 'tag_brand_safety_certified', ], }, { 'url': 'https://api.onetrust.com', 'name': 'OneTrust', 'features': ['gdpr_compliant', 'tcf_registered', 'ccpa_compliant'], 'publisher_id': 'ot_news_67890', }, ], 'last_updated': '2025-01-10T18:00:00Z', }, { '$schema': 'https://adcontextprotocol.org/schemas/3.2.1/adagents.json', 'contact': { 'name': 'Polk Automotive Data', 'email': 'partnerships@polk.com', 'domain': 'polk.com', }, 'signals': [ { 'id': 'likely_tesla_buyers', 'name': 'Likely Tesla Buyers', 'description': 'Consumers modeled as likely to purchase a Tesla in the next 12 months based on vehicle registration, financial, and behavioral data', 'value_type': 'binary', 'category': 'purchase_intent', 'tags': ['automotive', 'premium'], }, { 'id': 'vehicle_ownership', 'name': 'Current Vehicle Ownership', 'description': 'Current vehicle make owned by the consumer', 'value_type': 'categorical', 'category': 'ownership', 'allowed_values': [ 'tesla', 'bmw', 'mercedes', 'audi', 'lexus', 'other_luxury', 'non_luxury', ], 'tags': ['automotive'], }, { 'id': 'purchase_propensity', 'name': 'Auto Purchase Propensity', 'description': 'Likelihood score of purchasing any new vehicle in the next 6 months', 'value_type': 'numeric', 'category': 'purchase_intent', 'range': {'min': 0, 'max': 1, 'unit': 'score'}, 'tags': ['automotive'], }, ], 'signal_tags': { 'automotive': { 'name': 'Automotive Signals', 'description': 'Vehicle-related audience segments', }, 'premium': { 'name': 'Premium Signals', 'description': 'High-value premium audience segments', }, }, 'authorized_agents': [ { 'url': 'https://liveramp.com/.well-known/adcp/signals', 'authorized_for': 'All Polk automotive signals via LiveRamp', 'authorization_type': 'signal_tags', 'signal_tags': ['automotive'], }, { 'url': 'https://the-trade-desk.com/.well-known/adcp/signals', 'authorized_for': 'Polk premium signals only', 'authorization_type': 'signal_ids', 'signal_ids': ['likely_tesla_buyers'], }, ], 'last_updated': '2025-01-15T10:00:00Z', }, ], title='AdCP Agents Authorization', ), ] @model_validator(mode='before') @classmethod def _validate_reference_renderer_catalog(cls, value: Any) -> Any: data = value.get('root', value) if isinstance(value, dict) else value if not isinstance(data, dict) or not isinstance(data.get('formats'), list): return value renderer_formats = [ item for item in data['formats'] if isinstance(item, dict) and item.get('reference_renderer') is not None ] if not renderer_formats: return value catalog_etag = data.get('catalog_etag') if not isinstance(catalog_etag, str) or not catalog_etag.strip(): raise ValueError('reference_renderer requires a non-empty catalog_etag') if data.get('catalog_role') != 'community_format_registry': raise ValueError( "reference_renderer requires catalog_role='community_format_registry'" ) for item in renderer_formats: renderer = item.get('reference_renderer') renderer_model = reference_renderer.ReferenceRenderer.model_validate(renderer) if item.get('format_revision') != renderer_model.format_revision: raise ValueError( 'format_revision must equal reference_renderer.format_revision' ) return value def __getattr__(self, name: str) -> Any: """Proxy attribute access to the wrapped type.""" if name.startswith('_'): raise AttributeError(name) return getattr(self.root, name)Usage Documentation
A Pydantic
BaseModelfor the root object of the model.- Attributes
- -----=
root- The root object of the model.
__pydantic_root_model__- Whether the model is a RootModel.
__pydantic_private__- Private fields in the model.
__pydantic_extra__- Extra fields in the model.
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
- pydantic.root_model.RootModel[Union[AdcpAgentsAuthorization1, AdcpAgentsAuthorization2]]
- pydantic.root_model.RootModel
- pydantic.main.BaseModel
- typing.Generic
Class variables
var model_configvar root : AdcpAgentsAuthorization1 | AdcpAgentsAuthorization2
class AdcpAgentsAuthorization1 (**data: Any)-
Expand source code
class AdcpAgentsAuthorization1(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) field_schema: Annotated[ str | None, Field(alias='$schema', description='JSON Schema identifier for this adagents.json file'), ] = None authoritative_location: Annotated[ AnyUrl, Field( description="HTTPS URL of the authoritative adagents.json file. When present, this file is a reference and the authoritative location contains the actual agent authorization data. Because one deploy can change authorization across every publisher in the network, validators MUST cap response size, refuse redirects on the fetch, enforce short timeouts, and serve the previously cached file on transient 5xx. Two-tier size cap: pointer files served at `/.well-known/adagents.json` use the general 5 MB SSRF cap; dereferenced authoritative files (this URL's response, after the indirection) use a recommended 20 MB cap because the origin has explicitly opted in to fanning out across a publisher network. See docs/governance/property/managed-networks#security-considerations." ), ] last_updated: Annotated[ AwareDatetime | None, Field(description='ISO 8601 timestamp indicating when this reference was last updated'), ] = 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 field_schema : str | Nonevar last_updated : pydantic.types.AwareDatetime | Nonevar model_config
Inherited members
class AdcpAgentsAuthorization2 (root: RootModelRootType = PydanticUndefined, **data)-
Expand source code
class AdcpAgentsAuthorization2( RootModel[ AdcpAgentsAuthorization28 | AdcpAgentsAuthorization29 | AdcpAgentsAuthorization210 | AdcpAgentsAuthorization211 | AdcpAgentsAuthorization212 | AdcpAgentsAuthorization213 ] ): root: Annotated[ AdcpAgentsAuthorization28 | AdcpAgentsAuthorization29 | AdcpAgentsAuthorization210 | AdcpAgentsAuthorization211 | AdcpAgentsAuthorization212 | AdcpAgentsAuthorization213, Field( description='Inline structure variant - contains full agent authorization data', examples=[ { '$schema': 'https://adcontextprotocol.org/schemas/3.2.1/adagents.json', 'authoritative_location': 'https://cdn.example.com/adagents/v2/adagents.json', 'last_updated': '2025-01-15T10:00:00Z', }, { '$schema': 'https://adcontextprotocol.org/schemas/3.2.1/adagents.json', 'properties': [ { 'property_id': 'example_site', 'property_type': 'website', 'name': 'Example Site', 'identifiers': [{'type': 'domain', 'value': 'example.com'}], 'publisher_domain': 'example.com', } ], 'placements': [ { 'placement_id': 'homepage_banner', 'name': 'Homepage Banner', 'tags': ['homepage', 'display', 'premium'], 'property_ids': ['example_site'], 'format_options': [ {'format_kind': 'image', 'params': {'width': 728, 'height': 90}} ], } ], 'placement_tags': { 'homepage': { 'name': 'Homepage', 'description': 'Placements that render on the homepage', }, 'display': { 'name': 'Display', 'description': 'Standard display placements', }, 'premium': { 'name': 'Premium', 'description': 'Premium monetization placements', }, }, 'authorized_agents': [ { 'url': 'https://agent.example.com', 'authorized_for': 'Official sales agent', 'authorization_type': 'property_tags', 'property_tags': ['all'], 'placement_ids': ['homepage_banner'], 'delegation_type': 'direct', 'exclusive': True, 'countries': ['US', 'CA'], 'effective_from': '2025-01-01T00:00:00Z', } ], 'tags': { 'all': { 'name': 'All Properties', 'description': 'All properties in this file', } }, 'last_updated': '2025-01-10T12:00:00Z', }, { '$schema': 'https://adcontextprotocol.org/schemas/3.2.1/adagents.json', 'contact': { 'name': 'Meta Advertising Operations', 'email': 'adops@meta.com', 'domain': 'meta.com', 'seller_id': 'pub-meta-12345', 'tag_id': '12345', 'privacy_policy_url': 'https://www.meta.com/privacy/policy', }, 'properties': [ { 'property_type': 'mobile_app', 'name': 'Instagram', 'identifiers': [ {'type': 'ios_bundle', 'value': 'com.burbn.instagram'}, {'type': 'android_package', 'value': 'com.instagram.android'}, ], 'tags': ['meta_network', 'social_media'], 'supported_channels': ['social', 'display', 'olv'], 'publisher_domain': 'instagram.com', }, { 'property_type': 'mobile_app', 'name': 'Facebook', 'identifiers': [ {'type': 'ios_bundle', 'value': 'com.facebook.Facebook'}, {'type': 'android_package', 'value': 'com.facebook.katana'}, ], 'tags': ['meta_network', 'social_media'], 'supported_channels': ['social', 'display', 'olv'], 'publisher_domain': 'facebook.com', }, { 'property_type': 'mobile_app', 'name': 'WhatsApp', 'identifiers': [ {'type': 'ios_bundle', 'value': 'net.whatsapp.WhatsApp'}, {'type': 'android_package', 'value': 'com.whatsapp'}, ], 'tags': ['meta_network', 'messaging'], 'supported_channels': ['social', 'display'], 'publisher_domain': 'whatsapp.com', }, ], 'tags': { 'meta_network': { 'name': 'Meta Network', 'description': 'All Meta-owned properties', }, 'social_media': { 'name': 'Social Media Apps', 'description': 'Social networking applications', }, 'messaging': { 'name': 'Messaging Apps', 'description': 'Messaging and communication apps', }, }, 'authorized_agents': [ { 'url': 'https://meta-ads.com', 'authorized_for': 'All Meta properties', 'authorization_type': 'property_tags', 'property_tags': ['meta_network'], } ], 'last_updated': '2025-01-10T15:30:00Z', }, { '$schema': 'https://adcontextprotocol.org/schemas/3.2.1/adagents.json', 'contact': {'name': 'Tumblr Advertising'}, 'properties': [ { 'property_type': 'website', 'name': 'Tumblr Corporate', 'identifiers': [{'type': 'domain', 'value': 'tumblr.com'}], 'tags': ['corporate'], 'publisher_domain': 'tumblr.com', } ], 'tags': { 'corporate': { 'name': 'Corporate Properties', 'description': 'Tumblr-owned corporate properties (not user blogs)', } }, 'authorized_agents': [ { 'url': 'https://tumblr-sales.com', 'authorized_for': 'Tumblr corporate properties only', 'authorization_type': 'property_tags', 'property_tags': ['corporate'], } ], 'last_updated': '2025-01-10T16:00:00Z', }, { '$schema': 'https://adcontextprotocol.org/schemas/3.2.1/adagents.json', 'contact': { 'name': 'Example Third-Party Sales Agent', 'email': 'sales@agent.example', 'domain': 'agent.example', }, 'authorized_agents': [ { 'url': 'https://agent.example/api', 'authorized_for': 'CNN CTV properties via publisher authorization', 'authorization_type': 'publisher_properties', 'publisher_properties': [ { 'publisher_domain': 'cnn.com', 'selection_type': 'by_id', 'property_ids': ['cnn_ctv_app'], } ], }, { 'url': 'https://agent.example/api', 'authorized_for': 'All CTV properties from multiple publishers', 'authorization_type': 'publisher_properties', 'publisher_properties': [ { 'publisher_domain': 'cnn.com', 'selection_type': 'by_tag', 'property_tags': ['ctv'], }, { 'publisher_domain': 'espn.com', 'selection_type': 'by_tag', 'property_tags': ['ctv'], }, ], }, { 'url': 'https://agent.example/api', 'authorized_for': 'Managed-network display inventory across represented publishers (compact form)', 'authorization_type': 'publisher_properties', 'publisher_properties': [ { 'publisher_domains': [ 'site1.example', 'site2.example', 'site3.example', ], 'selection_type': 'by_tag', 'property_tags': ['managed_network'], } ], 'delegation_type': 'ad_network', }, ], 'last_updated': '2025-01-10T17:00:00Z', }, { '$schema': 'https://adcontextprotocol.org/schemas/3.2.1/adagents.json', 'contact': { 'name': 'Premium News Publisher', 'email': 'adops@news.example.com', 'domain': 'news.example.com', }, 'properties': [ { 'property_type': 'website', 'name': 'News Example', 'identifiers': [{'type': 'domain', 'value': 'news.example.com'}], 'tags': ['premium', 'news'], 'publisher_domain': 'news.example.com', } ], 'tags': { 'premium': { 'name': 'Premium Properties', 'description': 'High-quality, brand-safe properties', }, 'news': { 'name': 'News Properties', 'description': 'News and journalism content', }, }, 'authorized_agents': [ { 'url': 'https://sales.news.example.com', 'authorized_for': 'All news properties', 'authorization_type': 'property_tags', 'property_tags': ['news'], } ], 'property_features': [ { 'url': 'https://api.scope3.com', 'name': 'Scope3', 'features': ['carbon_score', 'sustainability_grade'], 'publisher_id': 'pub_news_12345', }, { 'url': 'https://api.tagtoday.net', 'name': 'TAG', 'features': [ 'tag_certified_against_fraud', 'tag_brand_safety_certified', ], }, { 'url': 'https://api.onetrust.com', 'name': 'OneTrust', 'features': ['gdpr_compliant', 'tcf_registered', 'ccpa_compliant'], 'publisher_id': 'ot_news_67890', }, ], 'last_updated': '2025-01-10T18:00:00Z', }, { '$schema': 'https://adcontextprotocol.org/schemas/3.2.1/adagents.json', 'contact': { 'name': 'Polk Automotive Data', 'email': 'partnerships@polk.com', 'domain': 'polk.com', }, 'signals': [ { 'id': 'likely_tesla_buyers', 'name': 'Likely Tesla Buyers', 'description': 'Consumers modeled as likely to purchase a Tesla in the next 12 months based on vehicle registration, financial, and behavioral data', 'value_type': 'binary', 'category': 'purchase_intent', 'tags': ['automotive', 'premium'], }, { 'id': 'vehicle_ownership', 'name': 'Current Vehicle Ownership', 'description': 'Current vehicle make owned by the consumer', 'value_type': 'categorical', 'category': 'ownership', 'allowed_values': [ 'tesla', 'bmw', 'mercedes', 'audi', 'lexus', 'other_luxury', 'non_luxury', ], 'tags': ['automotive'], }, { 'id': 'purchase_propensity', 'name': 'Auto Purchase Propensity', 'description': 'Likelihood score of purchasing any new vehicle in the next 6 months', 'value_type': 'numeric', 'category': 'purchase_intent', 'range': {'min': 0, 'max': 1, 'unit': 'score'}, 'tags': ['automotive'], }, ], 'signal_tags': { 'automotive': { 'name': 'Automotive Signals', 'description': 'Vehicle-related audience segments', }, 'premium': { 'name': 'Premium Signals', 'description': 'High-value premium audience segments', }, }, 'authorized_agents': [ { 'url': 'https://liveramp.com/.well-known/adcp/signals', 'authorized_for': 'All Polk automotive signals via LiveRamp', 'authorization_type': 'signal_tags', 'signal_tags': ['automotive'], }, { 'url': 'https://the-trade-desk.com/.well-known/adcp/signals', 'authorized_for': 'Polk premium signals only', 'authorization_type': 'signal_ids', 'signal_ids': ['likely_tesla_buyers'], }, ], 'last_updated': '2025-01-15T10:00:00Z', }, ], title='AdCP Agents Authorization', ), ] def __getattr__(self, name: str) -> Any: """Proxy attribute access to the wrapped type.""" if name.startswith('_'): raise AttributeError(name) return getattr(self.root, name)Usage Documentation
A Pydantic
BaseModelfor the root object of the model.- Attributes
- -----=
root- The root object of the model.
__pydantic_root_model__- Whether the model is a RootModel.
__pydantic_private__- Private fields in the model.
__pydantic_extra__- Extra fields in the model.
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
- pydantic.root_model.RootModel[Union[AdcpAgentsAuthorization28, AdcpAgentsAuthorization29, AdcpAgentsAuthorization210, AdcpAgentsAuthorization211, AdcpAgentsAuthorization212, AdcpAgentsAuthorization213]]
- pydantic.root_model.RootModel
- pydantic.main.BaseModel
- typing.Generic
Class variables
var model_configvar root : AdcpAgentsAuthorization28 | AdcpAgentsAuthorization29 | AdcpAgentsAuthorization210 | AdcpAgentsAuthorization211 | AdcpAgentsAuthorization212 | AdcpAgentsAuthorization213
class AdcpAgentsAuthorization21 (**data: Any)-
Expand source code
class AdcpAgentsAuthorization21(AdCPBaseModel): authorized_agents: Annotated[Any | None, Field(min_length=1)] = 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 model_config
Inherited members
class AdcpAgentsAuthorization210 (**data: Any)-
Expand source code
class AdcpAgentsAuthorization210(AdcpAgentsAuthorization27): model_config = ConfigDict( extra='allow', ) properties: Annotated[list[property.Property], Field(description='Array of all properties covered by this adagents.json file. Defines the canonical property list that authorized agents reference.', min_length=1), Field(min_length=1)]Base 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
- AdcpAgentsAuthorization27
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_configvar properties : list[Property]
Inherited members
class AdcpAgentsAuthorization211 (**data: Any)-
Expand source code
class AdcpAgentsAuthorization211(AdcpAgentsAuthorization27): model_config = ConfigDict( extra='allow', ) placements: Annotated[list[placement_definition.PlacementDefinition], Field(description='Canonical placement definitions for properties in this file. Products SHOULD reuse these placement_id values when exposing inventory in get_products, and authorized agents can scope authorization to these placement IDs.', min_length=1), Field(min_length=1)]Base 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
- AdcpAgentsAuthorization27
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_configvar placements : list[PlacementDefinition]
Inherited members
class AdcpAgentsAuthorization212 (**data: Any)-
Expand source code
class AdcpAgentsAuthorization212(AdcpAgentsAuthorization27): model_config = ConfigDict( extra='allow', ) collections: Annotated[list[collection.Collection], Field(description='Collections produced or distributed by this publisher. Declares the content programs whose inventory is sold through authorized agents. Products in get_products responses reference these collections by collection_id.'), Field(min_length=1)]Base 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
- AdcpAgentsAuthorization27
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var collections : list[Collection]var model_config
Inherited members
class AdcpAgentsAuthorization213 (**data: Any)-
Expand source code
class AdcpAgentsAuthorization213(AdcpAgentsAuthorization27): model_config = ConfigDict( extra='allow', ) signals: Annotated[list[signal_definition.SignalDefinition], Field(description="Signal definitions published by this domain. Each entry defines a signal id within this file's publishing-domain namespace; entries do not include signal_ref objects. Signals Protocol discovery and media-buy product targeting reference these through signal_ref scope 'data_provider', with data_provider_domain set to this file's publishing domain and signal_id set to signals[].id.", min_length=1), Field(min_length=1)]Base 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
- AdcpAgentsAuthorization27
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_configvar signals : list[SignalDefinition]
Inherited members
class AdcpAgentsAuthorization22 (**data: Any)-
Expand source code
class AdcpAgentsAuthorization22(AdCPBaseModel): formats: Annotated[Any, Field(min_length=1)]Base 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
Subclasses
Class variables
var formats : Anyvar model_config
Inherited members
class AdcpAgentsAuthorization23 (**data: Any)-
Expand source code
class AdcpAgentsAuthorization23(AdCPBaseModel): properties: Annotated[Any, Field(min_length=1)]Base 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 model_configvar properties : Any
Inherited members
class AdcpAgentsAuthorization24 (**data: Any)-
Expand source code
class AdcpAgentsAuthorization24(AdCPBaseModel): placements: Annotated[Any, Field(min_length=1)]Base 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 model_configvar placements : Any
Inherited members
class AdcpAgentsAuthorization25 (**data: Any)-
Expand source code
class AdcpAgentsAuthorization25(AdCPBaseModel): collections: Annotated[Any, Field(min_length=1)]Base 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 collections : Anyvar model_config
Inherited members
class AdcpAgentsAuthorization26 (**data: Any)-
Expand source code
class AdcpAgentsAuthorization26(AdCPBaseModel): signals: Annotated[Any, Field(min_length=1)]Base 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 model_configvar signals : Any
Inherited members
class AdcpAgentsAuthorization27 (**data: Any)-
Expand source code
class AdcpAgentsAuthorization27(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) field_schema: Annotated[ str | None, Field(alias='$schema', description='JSON Schema identifier for this adagents.json file'), ] = None contact: Annotated[ Contact | None, Field( description='Contact information for the entity managing this adagents.json file (may be publisher or third-party operator)' ), ] = None catalog_etag: Annotated[ str | None, Field( description='Opaque publisher-controlled cache validator for the public catalog portions of this file (`properties[]`, `collections[]`, `placements[]`, `formats[]`, `signals[]`, and tag metadata). Publishers SHOULD change this value whenever any catalog entry or catalog-scoped authorization changes, even when the hosting URL and HTTP validators stay the same. Buyer SDKs SHOULD cache resolved catalog lookups by URL plus `catalog_etag` (falling back to HTTP ETag/Last-Modified, then bounded TTL when absent) and re-resolve placement, format, collection, property, and signal references when it changes. This value is not a cryptographic digest; it is a compact version token such as a deployment hash, revision ID, or ISO timestamp.', max_length=255, min_length=1, ), ] = None catalog_role: Annotated[ Literal['community_format_registry'] | None, Field( description='Marks a catalog payload intended for the fixed AgenticAdvertising.org community-format registry. This self-description is not provenance: consumers accept reference_renderer only when the document was obtained from the configured, reviewed community-registry origin.' ), ] = None properties: Annotated[ list[property.Property] | None, Field( description='Array of all properties covered by this adagents.json file. Defines the canonical property list that authorized agents reference.', min_length=1, ), ] = None revoked_publisher_domains: Annotated[ list[RevokedPublisherDomain] | None, Field( description="Publisher domains explicitly removed from this managed network. Validators MUST treat any publisher domain listed here as no-longer-authorized, taking precedence over any appearance of the same domain in `authorized_agents[].publisher_properties[].publisher_domain` / `.publisher_domains[]`, in `authorized_agents[].properties[].publisher_domain` (`inline_properties` authorization type), or in top-level `properties[].publisher_domain`. Lets a network propagate per-publisher revocations on the next refresh instead of waiting for the file-level 7-day cache cap. Validators MUST hold previously-observed publisher revocations, keyed by authority and publisher_domain, for 7 days from the validator's first observation; changing revoked_at MUST NOT reset that first observation, even if the entry vanishes from a subsequent fetch — this closes the rollback gap where an attacker re-serves a stale file with the revocation removed. Networks SHOULD retain entries for at least 7 days after `revoked_at` so validators that didn't observe the original entry still pick it up on refresh." ), ] = None collections: Annotated[ list[collection.Collection] | None, Field( description='Collections produced or distributed by this publisher. Declares the content programs whose inventory is sold through authorized agents. Products in get_products responses reference these collections by collection_id.' ), ] = None placements: Annotated[ list[placement_definition.PlacementDefinition] | None, Field( description='Canonical placement definitions for properties in this file. Products SHOULD reuse these placement_id values when exposing inventory in get_products, and authorized agents can scope authorization to these placement IDs.', min_length=1, ), ] = None superseded_by: Annotated[ AnyUrl | None, Field( description='Optional pointer indicating this adagents.json file has been superseded by another adagents.json at a different URL. Used by the AAO community-mirror lifecycle: when a platform (e.g., Meta) adopts AdCP and publishes its own adagents.json at `<platform-domain>/.well-known/adagents.json`, the AAO mirror file at `creative.adcontextprotocol.org/translated/<platform>/adagents.json` sets `superseded_by` to the platform-hosted URL. Buyer SDKs encountering a file with `superseded_by` SHOULD short-circuit and re-fetch from the named URL rather than serving stale content from the mirror. The mirror SHOULD continue serving with `superseded_by` set for ≥1 minor release after platform adoption so buyer caches keyed on the mirror URL get an explicit migration signal rather than a silent break.' ), ] = None tags: Annotated[ dict[str, Tags] | None, Field( description='Metadata for each tag referenced by properties. Provides human-readable context for property tag values.' ), ] = None placement_tags: Annotated[ dict[str, PlacementTags] | None, Field( description='Metadata for each tag referenced by placements. Provides human-readable context for publisher-defined placement tag values used in grouping and authorization.' ), ] = None authorized_agents: Annotated[ list[AuthorizedAgents], Field( description='Array of sales agents authorized to make inventory from this file available to buyers. Authorization can be scoped to specific properties, collections, countries, and time windows, with optional delegation metadata indicating whether the path is direct, delegated, or network-mediated. MAY be empty (`[]`) for a catalog-only community mirror — a file that publishes `formats`/`properties`/`placements` (with `catalog_etag`) for a platform that has not adopted AdCP, where there is no sales agent to authorize (see `catalog_etag`, `formats`, `superseded_by`). An empty array asserts *no sales authorization*: validators MUST NOT read it as deny-all, authorize-all, or a revocation, MUST NOT treat its presence as an error, and MUST still consume the catalog arrays.' ), ] last_updated: Annotated[ AwareDatetime | None, Field(description='ISO 8601 timestamp indicating when this file was last updated'), ] = None property_features: Annotated[ list[PropertyFeature] | None, Field( description='[AdCP 3.0] Optional list of agents that provide property feature data (certifications, scores, compliance status). Used for discovery - actual data is accessed through property list filters.' ), ] = None signals: Annotated[ list[signal_definition.SignalDefinition] | None, Field( description="Signal definitions published by this domain. Each entry defines a signal id within this file's publishing-domain namespace; entries do not include signal_ref objects. Signals Protocol discovery and media-buy product targeting reference these through signal_ref scope 'data_provider', with data_provider_domain set to this file's publishing domain and signal_id set to signals[].id.", min_length=1, ), ] = None signal_tags: Annotated[ dict[str, SignalTags] | None, Field( description='Metadata for each tag referenced by signals. Provides human-readable context for signal tag values.' ), ] = 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
Subclasses
- AdcpAgentsAuthorization210
- AdcpAgentsAuthorization211
- AdcpAgentsAuthorization212
- AdcpAgentsAuthorization213
- AdcpAgentsAuthorization28
- AdcpAgentsAuthorization29
Class variables
var catalog_etag : str | Nonevar catalog_role : Literal['community_format_registry'] | Nonevar collections : list[Collection] | Nonevar contact : Contact | Nonevar field_schema : str | Nonevar last_updated : pydantic.types.AwareDatetime | Nonevar model_configvar placements : list[PlacementDefinition] | Nonevar properties : list[Property] | Nonevar property_features : list[PropertyFeature] | Nonevar revoked_publisher_domains : list[RevokedPublisherDomain] | Nonevar signals : list[SignalDefinition] | Nonevar superseded_by : pydantic.networks.AnyUrl | None
Inherited members
class AdcpAgentsAuthorization28 (**data: Any)-
Expand source code
class AdcpAgentsAuthorization28(AdcpAgentsAuthorization27): model_config = ConfigDict( extra='allow', ) authorized_agents: Annotated[list[AuthorizedAgents], Field(description='Array of sales agents authorized to make inventory from this file available to buyers. Authorization can be scoped to specific properties, collections, countries, and time windows, with optional delegation metadata indicating whether the path is direct, delegated, or network-mediated. MAY be empty (`[]`) for a catalog-only community mirror — a file that publishes `formats`/`properties`/`placements` (with `catalog_etag`) for a platform that has not adopted AdCP, where there is no sales agent to authorize (see `catalog_etag`, `formats`, `superseded_by`). An empty array asserts *no sales authorization*: validators MUST NOT read it as deny-all, authorize-all, or a revocation, MUST NOT treat its presence as an error, and MUST still consume the catalog arrays.'), Field(min_length=1)]Base 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
- AdcpAgentsAuthorization27
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AdcpAgentsAuthorization29 (**data: Any)-
Expand source code
class AdcpAgentsAuthorization29(AdcpAgentsAuthorization22, AdcpAgentsAuthorization27): model_config = ConfigDict( extra='allow', ) field_schema: Annotated[ str | None, Field(alias='$schema', description='JSON Schema identifier for this adagents.json file'), ] = None contact: Annotated[ Contact | None, Field( description='Contact information for the entity managing this adagents.json file (may be publisher or third-party operator)' ), ] = None catalog_etag: Annotated[ str | None, Field( description='Opaque publisher-controlled cache validator for the public catalog portions of this file (`properties[]`, `collections[]`, `placements[]`, `formats[]`, `signals[]`, and tag metadata). Publishers SHOULD change this value whenever any catalog entry or catalog-scoped authorization changes, even when the hosting URL and HTTP validators stay the same. Buyer SDKs SHOULD cache resolved catalog lookups by URL plus `catalog_etag` (falling back to HTTP ETag/Last-Modified, then bounded TTL when absent) and re-resolve placement, format, collection, property, and signal references when it changes. This value is not a cryptographic digest; it is a compact version token such as a deployment hash, revision ID, or ISO timestamp.', max_length=255, min_length=1, ), ] = None catalog_role: Annotated[ Literal['community_format_registry'] | None, Field( description='Marks a catalog payload intended for the fixed AgenticAdvertising.org community-format registry. This self-description is not provenance: consumers accept reference_renderer only when the document was obtained from the configured, reviewed community-registry origin.' ), ] = None properties: Annotated[ list[property.Property] | None, Field( description='Array of all properties covered by this adagents.json file. Defines the canonical property list that authorized agents reference.', min_length=1, ), ] = None revoked_publisher_domains: Annotated[ list[RevokedPublisherDomain2] | None, Field( description="Publisher domains explicitly removed from this managed network. Validators MUST treat any publisher domain listed here as no-longer-authorized, taking precedence over any appearance of the same domain in `authorized_agents[].publisher_properties[].publisher_domain` / `.publisher_domains[]`, in `authorized_agents[].properties[].publisher_domain` (`inline_properties` authorization type), or in top-level `properties[].publisher_domain`. Lets a network propagate per-publisher revocations on the next refresh instead of waiting for the file-level 7-day cache cap. Validators MUST hold previously-observed publisher revocations, keyed by authority and publisher_domain, for 7 days from the validator's first observation; changing revoked_at MUST NOT reset that first observation, even if the entry vanishes from a subsequent fetch — this closes the rollback gap where an attacker re-serves a stale file with the revocation removed. Networks SHOULD retain entries for at least 7 days after `revoked_at` so validators that didn't observe the original entry still pick it up on refresh." ), ] = None collections: Annotated[ list[collection.Collection] | None, Field( description='Collections produced or distributed by this publisher. Declares the content programs whose inventory is sold through authorized agents. Products in get_products responses reference these collections by collection_id.' ), ] = None placements: Annotated[ list[placement_definition.PlacementDefinition] | None, Field( description='Canonical placement definitions for properties in this file. Products SHOULD reuse these placement_id values when exposing inventory in get_products, and authorized agents can scope authorization to these placement IDs.', min_length=1, ), ] = None superseded_by: Annotated[ AnyUrl | None, Field( description='Optional pointer indicating this adagents.json file has been superseded by another adagents.json at a different URL. Used by the AAO community-mirror lifecycle: when a platform (e.g., Meta) adopts AdCP and publishes its own adagents.json at `<platform-domain>/.well-known/adagents.json`, the AAO mirror file at `creative.adcontextprotocol.org/translated/<platform>/adagents.json` sets `superseded_by` to the platform-hosted URL. Buyer SDKs encountering a file with `superseded_by` SHOULD short-circuit and re-fetch from the named URL rather than serving stale content from the mirror. The mirror SHOULD continue serving with `superseded_by` set for ≥1 minor release after platform adoption so buyer caches keyed on the mirror URL get an explicit migration signal rather than a silent break.' ), ] = None tags: Annotated[ dict[str, Tags] | None, Field( description='Metadata for each tag referenced by properties. Provides human-readable context for property tag values.' ), ] = None placement_tags: Annotated[ dict[str, PlacementTags] | None, Field( description='Metadata for each tag referenced by placements. Provides human-readable context for publisher-defined placement tag values used in grouping and authorization.' ), ] = None authorized_agents: Annotated[ list[AuthorizedAgents14], Field( description='Array of sales agents authorized to make inventory from this file available to buyers. Authorization can be scoped to specific properties, collections, countries, and time windows, with optional delegation metadata indicating whether the path is direct, delegated, or network-mediated. MAY be empty (`[]`) for a catalog-only community mirror — a file that publishes `formats`/`properties`/`placements` (with `catalog_etag`) for a platform that has not adopted AdCP, where there is no sales agent to authorize (see `catalog_etag`, `formats`, `superseded_by`). An empty array asserts *no sales authorization*: validators MUST NOT read it as deny-all, authorize-all, or a revocation, MUST NOT treat its presence as an error, and MUST still consume the catalog arrays.' ), ] last_updated: Annotated[ AwareDatetime | None, Field(description='ISO 8601 timestamp indicating when this file was last updated'), ] = None property_features: Annotated[ list[PropertyFeature] | None, Field( description='[AdCP 3.0] Optional list of agents that provide property feature data (certifications, scores, compliance status). Used for discovery - actual data is accessed through property list filters.' ), ] = None signals: Annotated[ list[signal_definition.SignalDefinition] | None, Field( description="Signal definitions published by this domain. Each entry defines a signal id within this file's publishing-domain namespace; entries do not include signal_ref objects. Signals Protocol discovery and media-buy product targeting reference these through signal_ref scope 'data_provider', with data_provider_domain set to this file's publishing domain and signal_id set to signals[].id.", min_length=1, ), ] = None signal_tags: Annotated[ dict[str, SignalTags] | None, Field( description='Metadata for each tag referenced by signals. Provides human-readable context for signal tag values.' ), ] = 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
- AdcpAgentsAuthorization22
- AdcpAgentsAuthorization27
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var catalog_etag : str | Nonevar catalog_role : Literal['community_format_registry'] | Nonevar collections : list[Collection] | Nonevar contact : Contact | Nonevar field_schema : str | Nonevar last_updated : pydantic.types.AwareDatetime | Nonevar model_configvar placements : list[PlacementDefinition] | Nonevar properties : list[Property] | Nonevar property_features : list[PropertyFeature] | Nonevar revoked_publisher_domains : list[RevokedPublisherDomain] | Nonevar signals : list[SignalDefinition] | Nonevar superseded_by : pydantic.networks.AnyUrl | None
Inherited members
class AuthorizedAgents1 (**data: Any)-
Expand source code
class AuthorizedAgents1(AuthorizedAgentBaseFields): model_config = ConfigDict( extra='allow', ) authorization_type: Annotated[ Literal['property_ids'], Field(description='Discriminator indicating authorization by specific property IDs'), ] = 'property_ids' property_ids: Annotated[ list[property_id.PropertyId], Field( description='Property IDs this agent is authorized for. Resolved against the top-level properties array in this file', min_length=1, ), ] collections: Annotated[ list[collection_selector.CollectionSelector] | None, Field( description="Optional collection constraints. When present, authorization only applies to inventory associated with these collections. A selector without collection_ids grants for all collections declared in that selector's publisher_domain adagents.json (the bulk-grant form for owner-sold carriage).", min_length=1, ), ] = None placement_ids: Annotated[ list[str] | None, Field( description='Optional placement constraints. When present, authorization only applies to these placement IDs from the top-level placements array in this file.', min_length=1, ), ] = None placement_tags: Annotated[ list[str] | None, Field( description='Optional placement tag constraints. When present, authorization only applies to placements whose tags include any of these publisher-defined values.', min_length=1, ), ] = None delegation_type: Annotated[ DelegationType | None, Field( description="Commercial relationship for this inventory path. 'direct' means the publisher treats this as a direct way to buy from them, even if a third party operates the software. 'delegated' means the agent is authorized to sell on the publisher's behalf. 'ad_network' means the inventory is sold as part of a network/package context rather than as the publisher's direct endpoint." ), ] = None exclusive: Annotated[ StrictBool | None, Field( description="Whether this agent is the publisher's sole authorized path for the scoped inventory slice. When false or absent, other authorized agents may also sell the same inventory." ), ] = None countries: Annotated[ list[Country] | None, Field( description='Optional ISO 3166-1 alpha-2 country codes limiting where this authorization applies. Omit for worldwide authorization.', min_length=1, ), ] = None effective_from: Annotated[ AwareDatetime | None, Field(description='Optional start time for this authorization window.'), ] = None effective_until: Annotated[ AwareDatetime | None, Field(description='Optional end time for this authorization window.') ] = 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
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Subclasses
- AuthorizedAgents15
- AuthorizedAgents22
- AuthorizedAgents29
- AuthorizedAgents36
- AuthorizedAgents43
- AuthorizedAgents8
Class variables
var collections : list[CollectionSelector] | Nonevar countries : list[Country] | Nonevar delegation_type : DelegationType | Nonevar effective_from : pydantic.types.AwareDatetime | Nonevar effective_until : pydantic.types.AwareDatetime | Nonevar exclusive : bool | Nonevar model_configvar placement_ids : list[str] | Nonevar property_ids : list[PropertyId]
Inherited members
class AuthorizedAgents10 (**data: Any)-
Expand source code
class AuthorizedAgents10(AuthorizedAgents3): authorization_type: Literal['inline_properties'] = 'inline_properties'Base 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
- AuthorizedAgents3
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents11 (**data: Any)-
Expand source code
class AuthorizedAgents11(AuthorizedAgents4): authorization_type: Literal['publisher_properties'] = 'publisher_properties'Base 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
- AuthorizedAgents4
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents12 (**data: Any)-
Expand source code
class AuthorizedAgents12(AuthorizedAgents5): authorization_type: Literal['signal_ids'] = 'signal_ids'Base 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
- AuthorizedAgents5
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents13 (**data: Any)-
Expand source code
class AuthorizedAgents13(AuthorizedAgents6): authorization_type: Literal['signal_tags'] = 'signal_tags'Base 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
- AuthorizedAgents6
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents15 (**data: Any)-
Expand source code
class AuthorizedAgents15(AuthorizedAgents1): authorization_type: Literal['property_ids'] = 'property_ids'Base 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
- AuthorizedAgents1
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents16 (**data: Any)-
Expand source code
class AuthorizedAgents16(AuthorizedAgents2): authorization_type: Literal['property_tags'] = 'property_tags'Base 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
- AuthorizedAgents2
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents17 (**data: Any)-
Expand source code
class AuthorizedAgents17(AuthorizedAgents3): authorization_type: Literal['inline_properties'] = 'inline_properties'Base 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
- AuthorizedAgents3
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents18 (**data: Any)-
Expand source code
class AuthorizedAgents18(AuthorizedAgents4): authorization_type: Literal['publisher_properties'] = 'publisher_properties'Base 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
- AuthorizedAgents4
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents19 (**data: Any)-
Expand source code
class AuthorizedAgents19(AuthorizedAgents5): authorization_type: Literal['signal_ids'] = 'signal_ids'Base 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
- AuthorizedAgents5
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents2 (**data: Any)-
Expand source code
class AuthorizedAgents2(AuthorizedAgentBaseFields): model_config = ConfigDict( extra='allow', ) authorization_type: Annotated[ Literal['property_tags'], Field(description='Discriminator indicating authorization by property tags'), ] = 'property_tags' property_tags: Annotated[ list[property_tag.PropertyTag], Field( description='Tags identifying which properties this agent is authorized for. Resolved against the top-level properties array in this file using tag matching', min_length=1, ), ] collections: Annotated[ list[collection_selector.CollectionSelector] | None, Field( description="Optional collection constraints. When present, authorization only applies to inventory associated with these collections. A selector without collection_ids grants for all collections declared in that selector's publisher_domain adagents.json (the bulk-grant form for owner-sold carriage).", min_length=1, ), ] = None placement_ids: Annotated[ list[str] | None, Field( description='Optional placement constraints. When present, authorization only applies to these placement IDs from the top-level placements array in this file.', min_length=1, ), ] = None placement_tags: Annotated[ list[str] | None, Field( description='Optional placement tag constraints. When present, authorization only applies to placements whose tags include any of these publisher-defined values.', min_length=1, ), ] = None delegation_type: Annotated[ DelegationType | None, Field( description="Commercial relationship for this inventory path. 'direct' means the publisher treats this as a direct way to buy from them, even if a third party operates the software. 'delegated' means the agent is authorized to sell on the publisher's behalf. 'ad_network' means the inventory is sold as part of a network/package context rather than as the publisher's direct endpoint." ), ] = None exclusive: Annotated[ StrictBool | None, Field( description="Whether this agent is the publisher's sole authorized path for the scoped inventory slice. When false or absent, other authorized agents may also sell the same inventory." ), ] = None countries: Annotated[ list[Country] | None, Field( description='Optional ISO 3166-1 alpha-2 country codes limiting where this authorization applies. Omit for worldwide authorization.', min_length=1, ), ] = None effective_from: Annotated[ AwareDatetime | None, Field(description='Optional start time for this authorization window.'), ] = None effective_until: Annotated[ AwareDatetime | None, Field(description='Optional end time for this authorization window.') ] = 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
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Subclasses
- AuthorizedAgents16
- AuthorizedAgents23
- AuthorizedAgents30
- AuthorizedAgents37
- AuthorizedAgents44
- AuthorizedAgents9
Class variables
var collections : list[CollectionSelector] | Nonevar countries : list[Country] | Nonevar delegation_type : DelegationType | Nonevar effective_from : pydantic.types.AwareDatetime | Nonevar effective_until : pydantic.types.AwareDatetime | Nonevar exclusive : bool | Nonevar model_configvar placement_ids : list[str] | None
Inherited members
class AuthorizedAgents20 (**data: Any)-
Expand source code
class AuthorizedAgents20(AuthorizedAgents6): authorization_type: Literal['signal_tags'] = 'signal_tags'Base 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
- AuthorizedAgents6
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents22 (**data: Any)-
Expand source code
class AuthorizedAgents22(AuthorizedAgents1): authorization_type: Literal['property_ids'] = 'property_ids'Base 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
- AuthorizedAgents1
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents23 (**data: Any)-
Expand source code
class AuthorizedAgents23(AuthorizedAgents2): authorization_type: Literal['property_tags'] = 'property_tags'Base 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
- AuthorizedAgents2
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents24 (**data: Any)-
Expand source code
class AuthorizedAgents24(AuthorizedAgents3): authorization_type: Literal['inline_properties'] = 'inline_properties'Base 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
- AuthorizedAgents3
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents25 (**data: Any)-
Expand source code
class AuthorizedAgents25(AuthorizedAgents4): authorization_type: Literal['publisher_properties'] = 'publisher_properties'Base 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
- AuthorizedAgents4
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents26 (**data: Any)-
Expand source code
class AuthorizedAgents26(AuthorizedAgents5): authorization_type: Literal['signal_ids'] = 'signal_ids'Base 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
- AuthorizedAgents5
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents27 (**data: Any)-
Expand source code
class AuthorizedAgents27(AuthorizedAgents6): authorization_type: Literal['signal_tags'] = 'signal_tags'Base 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
- AuthorizedAgents6
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents29 (**data: Any)-
Expand source code
class AuthorizedAgents29(AuthorizedAgents1): authorization_type: Literal['property_ids'] = 'property_ids'Base 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
- AuthorizedAgents1
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents3 (**data: Any)-
Expand source code
class AuthorizedAgents3(AuthorizedAgentBaseFields): model_config = ConfigDict( extra='allow', ) authorization_type: Annotated[ Literal['inline_properties'], Field( description='Discriminator indicating authorization by inline property definitions. Companion field is `properties` (not `inline_properties`) — the only authorization_type whose companion field name does not mirror the discriminator value.' ), ] = 'inline_properties' properties: Annotated[ list[property.Property], Field( description='Specific properties this agent is authorized for, defined inline on the agent entry (alternative to property_ids/property_tags). Note: this is the companion field for `authorization_type: "inline_properties"` — the field is named `properties`, not `inline_properties`.', min_length=1, ), ] collections: Annotated[ list[collection_selector.CollectionSelector] | None, Field( description="Optional collection constraints. When present, authorization only applies to inventory associated with these collections. A selector without collection_ids grants for all collections declared in that selector's publisher_domain adagents.json (the bulk-grant form for owner-sold carriage).", min_length=1, ), ] = None placement_ids: Annotated[ list[str] | None, Field( description='Optional placement constraints. When present, authorization only applies to these placement IDs from the top-level placements array in this file.', min_length=1, ), ] = None placement_tags: Annotated[ list[str] | None, Field( description='Optional placement tag constraints. When present, authorization only applies to placements whose tags include any of these publisher-defined values.', min_length=1, ), ] = None delegation_type: Annotated[ DelegationType | None, Field( description="Commercial relationship for this inventory path. 'direct' means the publisher treats this as a direct way to buy from them, even if a third party operates the software. 'delegated' means the agent is authorized to sell on the publisher's behalf. 'ad_network' means the inventory is sold as part of a network/package context rather than as the publisher's direct endpoint." ), ] = None exclusive: Annotated[ StrictBool | None, Field( description="Whether this agent is the publisher's sole authorized path for the scoped inventory slice. When false or absent, other authorized agents may also sell the same inventory." ), ] = None countries: Annotated[ list[Country] | None, Field( description='Optional ISO 3166-1 alpha-2 country codes limiting where this authorization applies. Omit for worldwide authorization.', min_length=1, ), ] = None effective_from: Annotated[ AwareDatetime | None, Field(description='Optional start time for this authorization window.'), ] = None effective_until: Annotated[ AwareDatetime | None, Field(description='Optional end time for this authorization window.') ] = 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
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Subclasses
- AuthorizedAgents10
- AuthorizedAgents17
- AuthorizedAgents24
- AuthorizedAgents31
- AuthorizedAgents38
- AuthorizedAgents45
Class variables
var collections : list[CollectionSelector] | Nonevar countries : list[Country] | Nonevar delegation_type : DelegationType | Nonevar effective_from : pydantic.types.AwareDatetime | Nonevar effective_until : pydantic.types.AwareDatetime | Nonevar exclusive : bool | Nonevar model_configvar placement_ids : list[str] | Nonevar properties : list[Property]
Inherited members
class AuthorizedAgents30 (**data: Any)-
Expand source code
class AuthorizedAgents30(AuthorizedAgents2): authorization_type: Literal['property_tags'] = 'property_tags'Base 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
- AuthorizedAgents2
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents31 (**data: Any)-
Expand source code
class AuthorizedAgents31(AuthorizedAgents3): authorization_type: Literal['inline_properties'] = 'inline_properties'Base 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
- AuthorizedAgents3
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents32 (**data: Any)-
Expand source code
class AuthorizedAgents32(AuthorizedAgents4): authorization_type: Literal['publisher_properties'] = 'publisher_properties'Base 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
- AuthorizedAgents4
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents33 (**data: Any)-
Expand source code
class AuthorizedAgents33(AuthorizedAgents5): authorization_type: Literal['signal_ids'] = 'signal_ids'Base 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
- AuthorizedAgents5
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents34 (**data: Any)-
Expand source code
class AuthorizedAgents34(AuthorizedAgents6): authorization_type: Literal['signal_tags'] = 'signal_tags'Base 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
- AuthorizedAgents6
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents36 (**data: Any)-
Expand source code
class AuthorizedAgents36(AuthorizedAgents1): authorization_type: Literal['property_ids'] = 'property_ids'Base 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
- AuthorizedAgents1
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents37 (**data: Any)-
Expand source code
class AuthorizedAgents37(AuthorizedAgents2): authorization_type: Literal['property_tags'] = 'property_tags'Base 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
- AuthorizedAgents2
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents38 (**data: Any)-
Expand source code
class AuthorizedAgents38(AuthorizedAgents3): authorization_type: Literal['inline_properties'] = 'inline_properties'Base 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
- AuthorizedAgents3
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents39 (**data: Any)-
Expand source code
class AuthorizedAgents39(AuthorizedAgents4): authorization_type: Literal['publisher_properties'] = 'publisher_properties'Base 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
- AuthorizedAgents4
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents4 (**data: Any)-
Expand source code
class AuthorizedAgents4(AuthorizedAgentBaseFields): model_config = ConfigDict( extra='allow', ) authorization_type: Annotated[ Literal['publisher_properties'], Field( description='Discriminator indicating authorization for properties from other publisher domains' ), ] = 'publisher_properties' publisher_properties: Annotated[ list[publisher_property_selector.PublisherPropertySelector], Field( description='Properties from other publisher domains this agent is authorized for. Each entry specifies a publisher domain and which of their properties this agent can sell', min_length=1, ), ] collections: Annotated[ list[collection_selector.CollectionSelector] | None, Field( description="Optional collection constraints. When present, authorization only applies to inventory associated with these collections. A selector without collection_ids grants for all collections declared in that selector's publisher_domain adagents.json (the bulk-grant form for owner-sold carriage).", min_length=1, ), ] = None placement_ids: Annotated[ list[str] | None, Field( description='Optional placement constraints. When present, authorization only applies to these placement IDs from the top-level placements array in this file.', min_length=1, ), ] = None placement_tags: Annotated[ list[str] | None, Field( description='Optional placement tag constraints. When present, authorization only applies to placements whose tags include any of these publisher-defined values.', min_length=1, ), ] = None delegation_type: Annotated[ DelegationType | None, Field( description="Commercial relationship for this inventory path. 'direct' means the publisher treats this as a direct way to buy from them, even if a third party operates the software. 'delegated' means the agent is authorized to sell on the publisher's behalf. 'ad_network' means the inventory is sold as part of a network/package context rather than as the publisher's direct endpoint." ), ] = None exclusive: Annotated[ StrictBool | None, Field( description="Whether this agent is the publisher's sole authorized path for the scoped inventory slice. When false or absent, other authorized agents may also sell the same inventory." ), ] = None countries: Annotated[ list[Country] | None, Field( description='Optional ISO 3166-1 alpha-2 country codes limiting where this authorization applies. Omit for worldwide authorization.', min_length=1, ), ] = None effective_from: Annotated[ AwareDatetime | None, Field(description='Optional start time for this authorization window.'), ] = None effective_until: Annotated[ AwareDatetime | None, Field(description='Optional end time for this authorization window.') ] = 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
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Subclasses
- AuthorizedAgents11
- AuthorizedAgents18
- AuthorizedAgents25
- AuthorizedAgents32
- AuthorizedAgents39
- AuthorizedAgents46
Class variables
var collections : list[CollectionSelector] | Nonevar countries : list[Country] | Nonevar delegation_type : DelegationType | Nonevar effective_from : pydantic.types.AwareDatetime | Nonevar effective_until : pydantic.types.AwareDatetime | Nonevar exclusive : bool | Nonevar model_configvar placement_ids : list[str] | Nonevar publisher_properties : list[PublisherPropertySelector1 | PublisherPropertySelector2 | PublisherPropertySelector3]
Inherited members
class AuthorizedAgents40 (**data: Any)-
Expand source code
class AuthorizedAgents40(AuthorizedAgents5): authorization_type: Literal['signal_ids'] = 'signal_ids'Base 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
- AuthorizedAgents5
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents41 (**data: Any)-
Expand source code
class AuthorizedAgents41(AuthorizedAgents6): authorization_type: Literal['signal_tags'] = 'signal_tags'Base 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
- AuthorizedAgents6
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents43 (**data: Any)-
Expand source code
class AuthorizedAgents43(AuthorizedAgents1): authorization_type: Literal['property_ids'] = 'property_ids'Base 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
- AuthorizedAgents1
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents44 (**data: Any)-
Expand source code
class AuthorizedAgents44(AuthorizedAgents2): authorization_type: Literal['property_tags'] = 'property_tags'Base 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
- AuthorizedAgents2
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents45 (**data: Any)-
Expand source code
class AuthorizedAgents45(AuthorizedAgents3): authorization_type: Literal['inline_properties'] = 'inline_properties'Base 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
- AuthorizedAgents3
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents46 (**data: Any)-
Expand source code
class AuthorizedAgents46(AuthorizedAgents4): authorization_type: Literal['publisher_properties'] = 'publisher_properties'Base 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
- AuthorizedAgents4
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents47 (**data: Any)-
Expand source code
class AuthorizedAgents47(AuthorizedAgents5): authorization_type: Literal['signal_ids'] = 'signal_ids'Base 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
- AuthorizedAgents5
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents48 (**data: Any)-
Expand source code
class AuthorizedAgents48(AuthorizedAgents6): authorization_type: Literal['signal_tags'] = 'signal_tags'Base 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
- AuthorizedAgents6
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents5 (**data: Any)-
Expand source code
class AuthorizedAgents5(AuthorizedAgentBaseFields): model_config = ConfigDict( extra='allow', ) authorization_type: Annotated[ Literal['signal_ids'], Field(description='Discriminator indicating authorization by specific signal IDs'), ] = 'signal_ids' signal_ids: Annotated[ list[SignalId], Field( description='Signal IDs this agent is authorized to resell. Resolved against the top-level signals array in this file', min_length=1, ), ]Base 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
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Subclasses
- AuthorizedAgents12
- AuthorizedAgents19
- AuthorizedAgents26
- AuthorizedAgents33
- AuthorizedAgents40
- AuthorizedAgents47
Class variables
var model_configvar signal_ids : list[SignalId]
Inherited members
class AuthorizedAgents6 (**data: Any)-
Expand source code
class AuthorizedAgents6(AuthorizedAgentBaseFields): model_config = ConfigDict( extra='allow', ) authorization_type: Annotated[ Literal['signal_tags'], Field(description='Discriminator indicating authorization by signal tags'), ] = 'signal_tags' signal_tags: Annotated[ list[SignalTag], Field( description='Signal tags this agent is authorized for. Agent can resell all signals with these tags', min_length=1, ), ]Base 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
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Subclasses
- AuthorizedAgents13
- AuthorizedAgents20
- AuthorizedAgents27
- AuthorizedAgents34
- AuthorizedAgents41
- AuthorizedAgents48
Class variables
var model_config
Inherited members
class AuthorizedAgents8 (**data: Any)-
Expand source code
class AuthorizedAgents8(AuthorizedAgents1): authorization_type: Literal['property_ids'] = 'property_ids'Base 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
- AuthorizedAgents1
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class AuthorizedAgents9 (**data: Any)-
Expand source code
class AuthorizedAgents9(AuthorizedAgents2): authorization_type: Literal['property_tags'] = 'property_tags'Base 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
- AuthorizedAgents2
- AuthorizedAgentBaseFields
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class Contact (**data: Any)-
Expand source code
class Contact(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) name: Annotated[ str, Field( description="Name of the entity managing this file (e.g., 'Meta Advertising Operations', 'Clear Channel Digital')", max_length=255, min_length=1, ), ] email: Annotated[ EmailStr | None, Field( description='Contact email for questions or issues with this authorization file', max_length=255, min_length=1, ), ] = None domain: Annotated[ str | None, Field( description='Primary domain of the entity managing this file', pattern='^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$', ), ] = None seller_id: Annotated[ str | None, Field( description='Seller ID from IAB Tech Lab sellers.json (if applicable)', max_length=255, min_length=1, ), ] = None tag_id: Annotated[ str | None, Field( description='TAG Certified Against Fraud ID for verification (if applicable)', max_length=100, min_length=1, ), ] = None privacy_policy_url: Annotated[ AnyUrl | None, Field( description="URL to the entity's privacy policy. Used for consumer consent flows when interacting with this sales agent." ), ] = 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 domain : str | Nonevar email : pydantic.networks.EmailStr | Nonevar model_configvar name : strvar privacy_policy_url : pydantic.networks.AnyUrl | Nonevar seller_id : str | Nonevar tag_id : str | None
Inherited members
class Country (value: Any = <object object>, *, root: Any = <object object>)-
Expand source code
class Country(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 DelegationType (*args, **kwds)-
Expand source code
class DelegationType(StrEnum): direct = 'direct' delegated = 'delegated' ad_network = 'ad_network'Enum where members are also (and must be) strings
Ancestors
- enum.StrEnum
- builtins.str
- enum.ReprEnum
- enum.Enum
Class variables
var ad_networkvar delegatedvar direct
class PlacementTags (**data: Any)-
Expand source code
class PlacementTags(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) name: Annotated[str, Field(description='Human-readable name for this placement tag')] description: Annotated[ str, Field(description='Description of what this placement tag represents') ]Base 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 description : strvar model_configvar name : str
Inherited members
class PropertyFeature (**data: Any)-
Expand source code
class PropertyFeature(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) url: Annotated[ AnyUrl, Field( description="The agent's API endpoint URL. Callers comparing this URL against a feature-provider registry MUST canonicalize both sides per the AdCP URL canonicalization rules, not byte-equality. See docs/reference/url-canonicalization." ), ] name: Annotated[ str, Field( description="Human-readable name of the vendor/agent (e.g., 'Scope3', 'TAG', 'OneTrust')" ), ] features: Annotated[ list[str], Field( description="Feature IDs this agent provides (e.g., 'carbon_score', 'tag_certified_against_fraud'). Use get_adcp_capabilities on the agent for full definitions.", min_length=1, ), ] publisher_id: Annotated[ str | None, Field(description='Optional publisher identifier at this agent (for lookup)') ] = 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 features : list[str]var model_configvar name : strvar publisher_id : str | Nonevar url : pydantic.networks.AnyUrl
Inherited members
class Reason (*args, **kwds)-
Expand source code
class Reason(StrEnum): relationship_ended = 'relationship_ended' compliance_violation = 'compliance_violation' publisher_request = 'publisher_request' other = 'other'Enum where members are also (and must be) strings
Ancestors
- enum.StrEnum
- builtins.str
- enum.ReprEnum
- enum.Enum
Class variables
var compliance_violationvar othervar publisher_requestvar relationship_ended
class RevokedPublisherDomain (**data: Any)-
Expand source code
class RevokedPublisherDomain(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) publisher_domain: Annotated[ str, Field( description='Publisher domain being revoked. Matches against the same canonicalized form used in `publisher_properties[].publisher_domain`.', pattern='^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$', ), ] revoked_at: Annotated[ AwareDatetime, Field( description='ISO 8601 timestamp when this publisher was revoked. Validators MAY use this to order revocations against their own cached state.' ), ] reason: Annotated[ Reason | None, Field( description='Reason for revocation. **Operator-internal self-classification for review routing — not a public accusation.** `relationship_ended` is the routine commercial case. `compliance_violation` SHOULD be used only when the network has itself determined the publisher is out of policy; for un-adjudicated third-party allegations (regulator inquiries, advertiser complaints, ongoing investigations), use `other` to avoid making a discoverable adverse statement. `publisher_request` is for publisher-initiated exits. Compare to sellers.json, which deliberately carries no reason field for the same exposure concern.' ), ] = 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 model_configvar publisher_domain : strvar reason : Reason | Nonevar revoked_at : pydantic.types.AwareDatetime
class RevokedPublisherDomain1 (**data: Any)-
Expand source code
class RevokedPublisherDomain(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) publisher_domain: Annotated[ str, Field( description='Publisher domain being revoked. Matches against the same canonicalized form used in `publisher_properties[].publisher_domain`.', pattern='^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$', ), ] revoked_at: Annotated[ AwareDatetime, Field( description='ISO 8601 timestamp when this publisher was revoked. Validators MAY use this to order revocations against their own cached state.' ), ] reason: Annotated[ Reason | None, Field( description='Reason for revocation. **Operator-internal self-classification for review routing — not a public accusation.** `relationship_ended` is the routine commercial case. `compliance_violation` SHOULD be used only when the network has itself determined the publisher is out of policy; for un-adjudicated third-party allegations (regulator inquiries, advertiser complaints, ongoing investigations), use `other` to avoid making a discoverable adverse statement. `publisher_request` is for publisher-initiated exits. Compare to sellers.json, which deliberately carries no reason field for the same exposure concern.' ), ] = 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 model_configvar publisher_domain : strvar reason : Reason | Nonevar revoked_at : pydantic.types.AwareDatetime
class RevokedPublisherDomain2 (**data: Any)-
Expand source code
class RevokedPublisherDomain(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) publisher_domain: Annotated[ str, Field( description='Publisher domain being revoked. Matches against the same canonicalized form used in `publisher_properties[].publisher_domain`.', pattern='^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$', ), ] revoked_at: Annotated[ AwareDatetime, Field( description='ISO 8601 timestamp when this publisher was revoked. Validators MAY use this to order revocations against their own cached state.' ), ] reason: Annotated[ Reason | None, Field( description='Reason for revocation. **Operator-internal self-classification for review routing — not a public accusation.** `relationship_ended` is the routine commercial case. `compliance_violation` SHOULD be used only when the network has itself determined the publisher is out of policy; for un-adjudicated third-party allegations (regulator inquiries, advertiser complaints, ongoing investigations), use `other` to avoid making a discoverable adverse statement. `publisher_request` is for publisher-initiated exits. Compare to sellers.json, which deliberately carries no reason field for the same exposure concern.' ), ] = 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 model_configvar publisher_domain : strvar reason : Reason | Nonevar revoked_at : pydantic.types.AwareDatetime
class RevokedPublisherDomain3 (**data: Any)-
Expand source code
class RevokedPublisherDomain(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) publisher_domain: Annotated[ str, Field( description='Publisher domain being revoked. Matches against the same canonicalized form used in `publisher_properties[].publisher_domain`.', pattern='^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$', ), ] revoked_at: Annotated[ AwareDatetime, Field( description='ISO 8601 timestamp when this publisher was revoked. Validators MAY use this to order revocations against their own cached state.' ), ] reason: Annotated[ Reason | None, Field( description='Reason for revocation. **Operator-internal self-classification for review routing — not a public accusation.** `relationship_ended` is the routine commercial case. `compliance_violation` SHOULD be used only when the network has itself determined the publisher is out of policy; for un-adjudicated third-party allegations (regulator inquiries, advertiser complaints, ongoing investigations), use `other` to avoid making a discoverable adverse statement. `publisher_request` is for publisher-initiated exits. Compare to sellers.json, which deliberately carries no reason field for the same exposure concern.' ), ] = 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 model_configvar publisher_domain : strvar reason : Reason | Nonevar revoked_at : pydantic.types.AwareDatetime
class RevokedPublisherDomain4 (**data: Any)-
Expand source code
class RevokedPublisherDomain(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) publisher_domain: Annotated[ str, Field( description='Publisher domain being revoked. Matches against the same canonicalized form used in `publisher_properties[].publisher_domain`.', pattern='^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$', ), ] revoked_at: Annotated[ AwareDatetime, Field( description='ISO 8601 timestamp when this publisher was revoked. Validators MAY use this to order revocations against their own cached state.' ), ] reason: Annotated[ Reason | None, Field( description='Reason for revocation. **Operator-internal self-classification for review routing — not a public accusation.** `relationship_ended` is the routine commercial case. `compliance_violation` SHOULD be used only when the network has itself determined the publisher is out of policy; for un-adjudicated third-party allegations (regulator inquiries, advertiser complaints, ongoing investigations), use `other` to avoid making a discoverable adverse statement. `publisher_request` is for publisher-initiated exits. Compare to sellers.json, which deliberately carries no reason field for the same exposure concern.' ), ] = 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 model_configvar publisher_domain : strvar reason : Reason | Nonevar revoked_at : pydantic.types.AwareDatetime
class RevokedPublisherDomain5 (**data: Any)-
Expand source code
class RevokedPublisherDomain(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) publisher_domain: Annotated[ str, Field( description='Publisher domain being revoked. Matches against the same canonicalized form used in `publisher_properties[].publisher_domain`.', pattern='^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$', ), ] revoked_at: Annotated[ AwareDatetime, Field( description='ISO 8601 timestamp when this publisher was revoked. Validators MAY use this to order revocations against their own cached state.' ), ] reason: Annotated[ Reason | None, Field( description='Reason for revocation. **Operator-internal self-classification for review routing — not a public accusation.** `relationship_ended` is the routine commercial case. `compliance_violation` SHOULD be used only when the network has itself determined the publisher is out of policy; for un-adjudicated third-party allegations (regulator inquiries, advertiser complaints, ongoing investigations), use `other` to avoid making a discoverable adverse statement. `publisher_request` is for publisher-initiated exits. Compare to sellers.json, which deliberately carries no reason field for the same exposure concern.' ), ] = 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 model_configvar publisher_domain : strvar reason : Reason | Nonevar revoked_at : pydantic.types.AwareDatetime
class RevokedPublisherDomain6 (**data: Any)-
Expand source code
class RevokedPublisherDomain(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) publisher_domain: Annotated[ str, Field( description='Publisher domain being revoked. Matches against the same canonicalized form used in `publisher_properties[].publisher_domain`.', pattern='^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$', ), ] revoked_at: Annotated[ AwareDatetime, Field( description='ISO 8601 timestamp when this publisher was revoked. Validators MAY use this to order revocations against their own cached state.' ), ] reason: Annotated[ Reason | None, Field( description='Reason for revocation. **Operator-internal self-classification for review routing — not a public accusation.** `relationship_ended` is the routine commercial case. `compliance_violation` SHOULD be used only when the network has itself determined the publisher is out of policy; for un-adjudicated third-party allegations (regulator inquiries, advertiser complaints, ongoing investigations), use `other` to avoid making a discoverable adverse statement. `publisher_request` is for publisher-initiated exits. Compare to sellers.json, which deliberately carries no reason field for the same exposure concern.' ), ] = 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 model_configvar publisher_domain : strvar reason : Reason | Nonevar revoked_at : pydantic.types.AwareDatetime
Inherited members
class SignalId (value: Any = <object object>, *, root: Any = <object object>)-
Expand source code
class SignalId(ScalarStr): __slots__ = () _constraints = {'pattern': '^[a-zA-Z0-9_-]+$'}A
strgenerated from a JSON Schema string root.Ancestors
- adcp.types._scalar.ScalarStr
- adcp.types._scalar._ScalarRoot
- builtins.str
class SignalTag (value: Any = <object object>, *, root: Any = <object object>)-
Expand source code
class SignalTag(ScalarStr): __slots__ = () _constraints = {'pattern': '^[a-z0-9_-]+$'}A
strgenerated from a JSON Schema string root.Ancestors
- adcp.types._scalar.ScalarStr
- adcp.types._scalar._ScalarRoot
- builtins.str
class SignalTags (**data: Any)-
Expand source code
class SignalTags(Tags): passBase 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
- Tags
- AdCPBaseModel
- pydantic.main.BaseModel
Class variables
var model_config
Inherited members
class Tags (**data: Any)-
Expand source code
class Tags(AdCPBaseModel): model_config = ConfigDict( extra='allow', ) name: Annotated[str, Field(description='Human-readable name for this tag')] description: Annotated[str, Field(description='Description of what this tag represents')]Base 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
Subclasses
Class variables
var description : strvar model_configvar name : str
Inherited members